Ziel: Ein Calli:bot wird durch die Neigung eines Calliope mini ferngesteuert.
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: