Calliope

Herzlich Willkommen zum zweiten Teil vom Calliope mini – Ferngesteuertes Auto. In diesem Artikel geht es um die Programmierung der Motoransteuerung und der Fernbedienung.

Im ersten Teil haben wir uns mit der Hardware auseinander gesetzt. Hierbei habe ich einen möglichen Bauplan zur Verfügung gestellt.
Damit unser Calliope-Fahrzeug nun zum Leben erweckt wird, müssen wir uns noch um die Programmierung der beiden Calliopes kümmern.

Der Editor

Auf der offiziellen Seite von Calliope finden wir drei verschiedene Editoren, welche für Programmieranfänger ausgelegt sind. Hierbei findent die Programmierung im Baukastenverfahren statt. Ich habe mich für MAKECODE entschieden. Diese ist nach einmaligem Laden auch offline verfügbar, sofern man den Browser bzw. den Tab nicht schließt. Außerdem ist das spielerische Programmieren mit den Blöcken übersichtlich und selbsterklärend.
Wenn du einen anderen Editor ausprobieren möchtest, dann schaue bei den anderen Calliope Editoren nach. Im Folgendem werde ich alle Beispiele allerdings nur mit dem MAKECODE-Editor darstellen.

Die Calliope-Fernbedienung

Zuerst kümmern wir uns um die Fernbedienung.
Damit diese mit der Motorsteuerung, also mit dem anderen Calliope, kommunizieren kann, muss zunächst die Übertragungsgruppe und die Übertragungsstärke gesetzt werden.
Dazu suchen wir uns im Menü Grundlagen den Block beim Start. Unter Funk\… mehr finden wir dann die beiden Blöcke setze Gruppe und lege Übertragungsstärke.
Funkübertragung

Als nächstes überlegen wir uns, wie wir das Auto steuern wollen. Die beiden Motoren werden später jeweils über einen eigenen Pin angesteuert. Um das Auto leicht lenken zu können, habe ich mich zunächst dafür entschieden, mit den beiden Knöpfen A und B zu arbeiten. Eine andere, elegantere Möglichkeit, wäre natürlich mit dem eingebauten Lagesensor zu arbeiten. Eventuell werde ich dazu irgendwann an dieser Stelle den Code nachreichen. 🙂

Nun müssen wir uns überlegen, was wir dem Calliope, welcher den Motor steuert, übermitteln, damit dieser bescheid weiß, was zu tun ist.
Unter Eingabe  finden wir den Baustein wenn Knopf (…) gedrückt. Diesen brauchen wir drei mal. Des weiteren ziehen wir uns den wenn geschüttelt Block in den Editor. Damit können wir später das Bremsen umsetzen.
Welchen Knopf wir abfragen wollen, regeln wir über das Dropdown Menü in dem jeweiligen Block.
Bei den Bausteinen finden wir unter Funk: sende Zeichenfolge und sende Zahl. Wenn man den „Code“ später schön sprechend lesen möchte, bietet es sich an, den Block sende Zeichenfolge zu nehmen. Die Blöcke werden dann entweder mit sprechenden Zeichenfolgen, also mit Strings, oder mit Zahlen (Integer) befüllt.
Beide Möglichkeiten sehen dann so aus:
Code_Fernbedienung

Damit ist die Fernbedienung auch schon fertig.

Die Calliope Motorsteuerung

Der Motor muss zunächst, genau so wie die Fernbedienung für den Funkbetrieb gesetzt werden. Dazu wieder die Übertragungsgruppe und die Übertragungsstärke festlegen.
Grundlagen -> beim Start
Funk -> … mehr setze Gruppe und lege Übertragungsstärke.

Danach, je nach Entscheidung bei der Fernbedienung, die Steuerung bei Empfang des Datenpakets auf die jeweiligen Motoren übersetzen. Dafür liefert uns die Bibliothek Motoren den Baustein Motor (…) mit (…). Davon brauchen wir insgesamt sechs. Unter Funk holen wir uns den Block wenn Datenpaket empfangen receivedNumber.  Die Variable receivedNumber können wir noch sprechend umbenennen.
Um die verschiedenen möglichen Werte abfragen zu können, brauchen wir noch Logikblöcke. Bei der normalen Programmierung würden wir auf if-Abfragen zurückgreifen. In der Calliope-Block-Sprache heißen die Blöcke wenn "wahr" dann und sind im Menü hinter Logik verborgen. Da wir vier verschiedene Möglichkeiten von Werten haben, welche wir empfangen können, ziehen wir uns vier von diesen Abfrage-Blöcken in den Datenpaket empfangen Block und verketten diese.

Abfrage-Blöcke

An die Verknüpfung wo aktuell noch wahr hängt, packen wir überall den Vergleichsoperator 0 = 0. Danach tauschen wir die erste Variable durch receivedNumber bzw. die Variable für den empfangenden String aus.
An das „dann“ kommen dann überall die Motorbausteine. Die Werte legen wir dann entweder auf 0 oder auf 100. Dadurch wird der Motor entweder gestoppt oder mit maximaler Leistung angesteuert.

Komplett zusammengesetzt sehen beide Möglichkeiten dann folgendermaßen aus:

Damit ist die Steuerung, bzw. eine mögliche Steuerung, auch schon fertig umgesetzt.

Über den Button Herunterladen können wir das Programm im .hex Format zwischenspeichern oder direkt auf den Calliope laden. Dazu einfach den Calliope über das beiliegende Mini-USB-Kabel mit dem Rechner verbinden.

Um diese Steuerung umzusetzen, gibt es wahrscheinlich 100 Möglichkeiten. Die hier beschriebene ist wohl eine der einfachsten und unspektakulärsten. Für Programmiereinsteiger aber eine schöne und leicht Art, mit den zwei Calliopes ein Einstiegsprojekt umzusetzen.
Wenn dir das kleine Tutorial gefallen hat, dann lass mir doch gerne dein Feedback in den Kommentaren da! 🙂

Calliope mini – Ferngesteuertes Auto – Teil 2

Ein Gedanke zu „Calliope mini – Ferngesteuertes Auto – Teil 2

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.