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
Last revision Both sides next revision
lehrkraefte:blc:informatik:glf20:robotik:motorenkontrolle [2021/04/30 10:13]
Ivo Blöchliger [Intervall umrechnen, ein für alle mal]
lehrkraefte:blc:informatik:glf20:robotik:motorenkontrolle [2021/05/03 09:15]
Ivo Blöchliger [Steuerung der Motoren]
Line 25: Line 25:
 robot.exit()                  # Programm korrekt beenden robot.exit()                  # Programm korrekt beenden
 </code> </code>
 +{{:lehrkraefte:blc:informatik:glf20:robotik:pasted:20210503-091521.png}}
 </WRAP> </WRAP>
  
Line 176: Line 177:
   * 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 190: Line 195:
     gear.setSpeed(int(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