Nachdem der Roboter nun über ein Fahrgestell verfügt und die Motoren verkabelt sind, wird es Zeit, ihm das Fahren beizubringen!
In der Kategorie "Motoren" gibt es dazu den Block "Motor ... an mit ...%", der es erlaubt, die Leistung der Motoren einzustellen:

Zunächst müssen die Motoren konfiguriert werden. Dabei werden die Anschlüsse von Motor M0 als Port A bezeichnet und diejenigen von Motor M1 als Port B. Es ist sinnvoll, die Benennung der Motoren so vorzunehmen, dass man gleich sieht, welcher Motor links und welcher rechts am Roboter angebracht ist.

In der Kategorie "Aktion" -> "Bewegen" finden sich einige Blöcke zum Steuern der Motoren. Die Werte für das Tempo in % können dabei von -100 (maximale Geschwindigkeit rückwärts) bis 100 (maximale Geschwindigkeit vorwärts) reichen.

Die Motor-Befehle finden sich in der Referenz unter "Motoren". Dort gibt es auch bereits einige hilfreiche Erklärungen und auswählbare Beispiele.
# Imports go at the top
from calliopemini import *
# Code in a 'while True:' loop repeats forever
while True:
# vorwärts
pin_M_MODE.write_digital(1)
pin_M0_DIR.write_digital(0) # Motor M0 vorwärts
pin_M1_DIR.write_digital(0) # Motor M1 vorwärts
pin_M0_SPEED.write_analog(1023) # Motor M0 mit voller Geschwindigkeit
pin_M1_SPEED.write_analog(1023) # Motor M1 mit voller Geschwindigkeit
sleep(1000) # für 1 Sekunde fahren
# Stoppen
pin_M_MODE.write_digital(1)
pin_M0_DIR.write_digital(1) # Motor M0 rückwärts
pin_M1_DIR.write_digital(1) # Motor M1 rückwärts
pin_M0_SPEED.write_analog(0) # Motor M0 Stopp (Geschwindigkeit 0)
pin_M1_SPEED.write_analog(0) # Motor M1 Stopp (Geschwindigkeit 0)
sleep(1000) # für 1 Sekunde stoppen
Bevor der Calliope per USB-Kabel am Computer angeschlossen wird, muss die Batterie stets abgeklemmt werden. Ziehe dazu das rote Kabel vom Pluspol heraus. Das schwarze Kabel vom Minuspol kann stecken bleiben, da die Verbindung bereits unterbrochen ist. So musst du später nur ein Kabel wieder einstecken und dir dabei nicht merken, wohin "+" und "-" müssen, weil das Kabel vom Minuspol ja noch steckt.
Tipp: Damit sich der Roboter auf der Stelle dreht, lasse einen Motor vorwärts und den anderen rückwärts drehen (eine sogenannte "Hebelsteuerung"). Füge danach eine Pause mit dem Block "pausiere ... ms" ein, die genau so lang ist, dass sich der Roboter um 90° dreht.
Die Programme werden handlicher und übersichtlicher, wenn die einzelnen Fahrfunktionen auch als Funktion im Programm umgesetzt werden. Implementiere die unten abgebildeten Funktionen.



def vorwaerts_fahren(geschwindigkeit): # geschwindigkeit von 0 bis 1023
pass
def rueckwaerts_fahren(geschwindigkeit): # geschwindigkeit von 0 bis 1023
pass
def stoppen():
pass
def lenke_rechts_um_90_grad():
pass
def lenke_links_um_90_grad():
pass
def fahre(geschwindigkeitLinks, geschwindigkeitRechts): # geschwindigkeit jeweils von 0 bis 1023
pass