Der Bildschirm des Calliope mini ist dafür zwar verwendbar, aber auf Grund seiner Trägheit nicht gut geeignet. Besser ist die 4-Digit-Anzeige, die das Ergebnis sofort anzeigt.
Ergebnis: Sowohl der x- als auch der y-Wert sind in der waagerecheten Lage 0. Neigt man den Calliope mini nach
Hinweis: In früheren Versionen des OpenRobertaLab waren die Werte für links und rechts anders.
Zuerst werden die X-Werte und dann die Y-Werte gezeigt. In der Anzeige leuchtet der Doppelpunkt bei negativen Werten auf.
Im nächsten Schritt sollen die X-Werte an einen zweiten Calliope mini übertragen werden. Dazu wird auf dem Sender in der unendlichen Schleife nach der Anzeige des X-Wertes auf dem Display der X-Werte als Zahl gesendet.
Der Empfänger zeigt auf seinem Display die empfangene Zahl an. Das darf er aber nur, wenn auch wirklich eine Zahl
empfangen wurde. Die Funktion "Empfange Nachricht Zahl" liefert eine 0 zurück, wenn nichts empfangen wurde. Das
wird in dem Programm für die Entscheidung genutzt.
Überraschung: das Programm funktioniert nicht richtig. Werden positive Zahlen übertragen, kommen falsche Werte an. Damit
wäre eine Fernsteuerung nicht möglich.
Es hat sich aber gezeigt, dass alles korrekt übertragen wird, wenn man in der unendlichen Schleife auf
Empängerseite den Block
irgendwo einfügt.
Die Übertragung funktioniert nur bei negativen Zahlen. Bei positiven Zahlen kommen falsche Werte an.
Zeigt man bei jedem Schleifendurchlauf auf dem Bildschirm ein Zeichen (z.B. eine 0), funktioniert es. Klinkt seltsam; ist aber so. (Stand Januar 2020)
Auf Empängerseite liegen nun je nach Neigung des Senders um die X-Achse Werte zwischen -90 und 90 vor. Die kann man
nun fast unbehandelt zur Steuerung der Motoren verwenden. Damit der Calli:bot bei der Neigung nach vorn auch wirklich
vorwärts fährt, muss der empangene x-Wert mit -1 multipliziert werden.
z.B. so:
Damit der Calli:bot auch nach rechts und links fahren kann, müssen neben den x-Werten auch die y-Werte übertragen werden.
Dafür gibt es zwei Lösungsansätze:
Ich habe mich für die zweite Variante entschieden und addiere zum y-Wert vor dem Senden den Wert 500. Damit liegt der y-Wert zwischen 410 und 590.
Der Empfänger empfängt ununterbrochen und entscheidet dann, ob der gerade empfangene Wert x oder y ist. Liegt der Wert über 400, muss es y sein. Dann werden einfach 500 subtrahiert und man hat wieder den ursprünglichen Wert.
Mit A wird die Anzege umgeschaltet. LED rot: x-Werte, LED grün: y-Werte.
Die 2 in der Anzeige dient dem richtigen Übertragen der Werte (siehe oben) und zeigt gleichzeitig den
Kanal an, auf dem gesendet wird.
Nachdem nun sowohl die x- als auch die y-Werte vorliegen, kann man die Motorsteuerung realisieren. Ein Vorschlag sieht so aus:
Je nach Neigung des Steuer-Calliope mini wird der x-Wert auf einem Rad verkleinert. Damit fährt der Calli:bot in die Richtung, wo man das Rad bremst.
Folgende Änderungen machen das Fahren noch geschmeidiger:
Ein Calliope mini arbeitet als Sender. Er überträgt über Bluetooth ununterbrochen in zwei Wertepaaren die x- und die y-Neigung. Die Begriffe nicken und rollen kommen aus dem Flugwesen.
Damit der Calli:both nicht unkontrolliert fährt, muss entweder Taste A oder Taste B gedrückt werden. Ansonsten wird nur der Text "stop" übertragen.
Die Anzeige der Funkgruppe dient nur zur Kontrolle.
Bevor der Calli:both losfährt, wird überprüft, ob die Werte übertagen werden.Das dargestellte Programm zeigt den Test des x-Wertes. Man sollte auch den y-Wert und den Stop-Wert überprüfen. Das erspart dann viel Sucherei, wenn etwas nicht funktioniert.
Man sollte auch aufschreiben, wo die x- und y-Achsen liegen und in welcher Richtung positive oder negative Werte geliefert werden.
Der Programmauschnitt zeigt die Ansteuerung für negative x-Werte im Dauerhaft-Block.
Die Winkelwerte können sofort verwendet werden, da die Leistung der Motoren in Prozent festgelegt werden. Die Neigung geht von 0° bis 90°, so dass das gut zusammenpasst. Die fehlenden 10% bis zur vollen Leistung mekt man nicht.
Da die Motoren nur positive Angaben für die Geschwindigkeit verstehen, müssen die Absolutwerte gebildet werden.
Wenn man den Block für positive x-Werte geschrieben hat, fährt der Callio:bot je nach Neigung nach allen Richtungen.
Wenn beim Sender keine Taste gedrückt ist, schickt er dauerhaft die Textnachricht stop zum Empfänger. Der muss auf den Empfang der Textnachricht reagieren und die Variable stop auf wahr setzen. Wird dagegen das Wertepaar aus x- oder y-Achse mit den entsprechenden Winkeln empfangen, geht die Variable auf falsch zurück.