HomeTurtlegrafikGPanelRobotik WebTigerPython |
Python - Online |
Deutsch English |
DU LERNST HIER... |
wie du eine Bluetooth-Kommunikation zwischen zwei Bluetooth-fähigen Robotern aufbauen kannst und wie du den Roboter fernsteuern kannst. |
SENDEN UND EMPFANGEN |
|
MUSTERBEISPIELE |
Beispiel 1: Button-Klick auf micro:bit bewirkt eine Pfeilanzeige auf mbRobot
Lade das Programm zuerst auf den mbRobot und schalte die Stromversorgung ein. Dann kannst du das USB-Kabel wegnehmen und es für die Übertragung und Programmausführung auf dem zweiten micro:bit verwenden. Mit radio.on() wird die Verbindung aufgebaut. Danach wartet in einer endlosen Schleife jedes Gerät, ob ein Button gedrück wird (dann sendet es eine Message), oder ob es eine Message erhält (dann führt es den entsprechenden Befehl aus). Programm: from microbit import * import radio radio.on() while True: if button_a.was_pressed(): radio.send("left") elif button_b.was_pressed(): radio.send("right") rec = radio.receive() if rec != None: if rec == "left": display.show(Image.ARROW_E) elif rec == "right": display.show(Image.ARROW_W) sleep(10)
Da du den fahrenden Roboter steuern willst, verwendest du in diesem Beispiel den micro:bit als Sender und den mbRobot als Empfänger. Da der Sender nicht alle mbRobot-Befehle braucht und umgekehrt, ist es sinnvoll, zwei verschiedene Programme zu verwenden. Die Steuerung erfolgt wie folgt:
Die sogenannte Zustandsprogrammierung ist in diesem Beispiel sehr sinnvoll. Es hat keinen Sinn alle 10 Millisekunden eine Message "FORWARD" zu senden, wenn der andere Roboter bereits geradeaus fährt. Eine Massage wird nur dann geschickt, wenn der Zustand geändert hat (oldState != state). Programm für den Sender: from microbit import * import radio radio.on() display.show(Image.YES) state = "STOP" oldState = "" while True: if button_a.is_pressed() and button_b.is_pressed(): state = "FORWARD" elif button_a.is_pressed(): state = "LEFT" elif button_b.is_pressed(): state = "RIGHT" else: state = "STOP" if oldState != state: radio.send(state) oldState = state sleep(10) Auf dem mbRobot wird nach dem Programmstart ein "Ok"-Zeichen angezeigt, damit du weisst, dass er bereits ist. Danach wartet er auf die Befehle, die er via Bluetooth empfängt. Falls er Message "FORWARD" erhält, führt er den Befehl forward() aus und bleibt in diesem Zustand, bis er eine neue Message erhält. Mit "LEFT" bewegt er sich auf einem Linksbogen, mit "STOP" hält er an. Programm für den Empfänger: from mbRobot import * from microbit import * import radio radio.on() display.show(Image.YES) while True: rec = radio.receive() if rec == "FORWARD": forward() elif rec == "LEFT": leftArc(0.1) elif rec == "RIGHT": rightArc(0.1) elif rec == "STOP": stop() sleep(10) Damit du dich mit dem Steuergerät frei bewegen kannst, kannst du nach dem Programmdownload für Stromversorgung des micro:bits eine Powerbank verwenden. |
MERKE DIR... |
Damit du die Befehle für die Bluetooth-Kommunikation verwenden kannst, musst du das Modul radio importieren. Mit radio.on() wird die Verbindung aufgebaut. Mit radio.send(msg) wird eine Message verschickt, mit radio.receive() wird sie am anderen Gerät empfangen und in einem Empfangsbuffer so lange gespeichert, bis man sie abgeholt hat. |
ZUM SELBST LÖSEN |
|