lehrkraefte:blc:informatik:glf20:robotik:motorenkontrolle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
lehrkraefte:blc:informatik:glf20:robotik:motorenkontrolle [2021/04/30 10:13]
Ivo Blöchliger
lehrkraefte:blc:informatik:glf20:robotik:motorenkontrolle [2021/05/03 09:02]
Ivo Blöchliger
Line 176: Line 176:
   * Intervall verschieben: Bestimmen eine Verschiebung (Funktion $f_4(x)$) so, dass $f_4(0)=c$.   * Intervall verschieben: Bestimmen eine Verschiebung (Funktion $f_4(x)$) so, dass $f_4(0)=c$.
   * Die gesuchte Funktion ist $f(x) = f_4(f_3(f_2(f_1(x))))$.   * Die gesuchte Funktion ist $f(x) = f_4(f_3(f_2(f_1(x))))$.
 +
 +{{lehrkraefte:blc:informatik:glf20:robotik:2021-04-30-note-11-44.pdf|Notizen 2pG als pdf}}
 +
 +{{lehrkraefte:blc:informatik:glf20:robotik:2021-05-03-note-09-00.pdf|Notizen 2aLM als pdf}}
  
 Programmieren Sie diese Funktion nun in Python: Programmieren Sie diese Funktion nun in Python:
Line 188: Line 192:
 <code python> <code python>
 if gear.getLeftMotorCount()<zehncm: if gear.getLeftMotorCount()<zehncm:
-    gear.setSpeed(linear(0,zehncm, 5, myspeed, gear.getLeftMotorCount()))+    gear.setSpeed(int(linear(0,zehncm, 5, myspeed, gear.getLeftMotorCount())))
 </code> </code>
-  * Bauen Sie die Funktion ''linear(a,b,c,d,x)'' in Ihr Programm ein, so dass der Roboter auf den ersten 10 cm sauber anfährt und auf den letzten 10 cm wieder bremst.+ 
 +<hidden Lösungsvorschlag> 
 +<code python> 
 +def linear(a,b,c,d,x): 
 +    return (x-a)/(b-a)*(d-c)+c   
 + 
 + 
 +einMeter = 100/0.048  # Die korrekte Anzahl Grad für 1 m  ausrechnen und eintragen! 
 +anfahren = 0.4*einMeter  # Strecke bis wohin beschleunigt wird 
 +bremsen = 0.6*einMeter   # Strecke ab der gebremst wird 
 +gear.resetLeftMotorCount()   # Strecke auf 0 Grad setzen 
 +mySpeed = 60   # Egal welche Geschwindigkeit 
 + 
 +while gear.getLeftMotorCount()<einMeter: 
 +    if gear.getLeftMotorCount()<anfahren: 
 +        v = linear(0,anfahren, 5, mySpeed, gear.getLeftMotorCount()) # Formel mit gear.getLeftMotorCount() 
 +        print(int(v)) 
 +        gear.setSpeed(int(v)) 
 +        gear.forward() 
 + 
 +</code> 
 +</hidden> 
 +  * Bauen Sie die Funktion ''linear(a,b,c,d,x)'' in Ihr Programm ein, so dass der Roboter auf den ersten 40 cm sauber anfährt und auf den letzten 40 cm wieder bremst.
   * Programieren Sie eine Funktion ''fahrgut(distanz)'', die den Roboter die ''distanz'' geradeaus fahren lässt, wobei auf den ersten 10 cm sauber anfahren und auf den lezten 10 cm wieder sauber bremst.   * Programieren Sie eine Funktion ''fahrgut(distanz)'', die den Roboter die ''distanz'' geradeaus fahren lässt, wobei auf den ersten 10 cm sauber anfahren und auf den lezten 10 cm wieder sauber bremst.
 <code python> <code python>
  • lehrkraefte/blc/informatik/glf20/robotik/motorenkontrolle.txt
  • Last modified: 2021/05/03 09:15
  • by Ivo Blöchliger