CALLIOPE Motorsteuerung

Motorsteuerung

Motor anschließen

An CALLIOPE kann ein Motor angeschlossen werden, der vorwärts und rückwärts drehen kann oder zwei Motoren, die nur in eine Richtung drehen können. Der Anschluss erfolgt an der Stelle, wo im Titelbild die grüne Schraubklemme ist. (Die graue Steckerleiste unten wird für Motoren nicht benötigt.) Im Originalzustand befinden sich dort nur Lötstellen und man muss erst basteln, um dort Drähte anzuschließen. Es ist richtig, dass Motoren an der selben Stelle angeschlossen werden wie der Lautsprecher.

Der Lautsprecher hat gleich funktioniert, mit den Motoren gibt es Probleme. Nicht jeder vorhandene Motor funktioniert. Es fehlen technische Daten, um einen passenden Motor zu finden. Die Motoren im Titelbild sind aus Baukästen in der Schule mit unbekannten technischen Daten. Jedenfalls drehen sie sich mit 3 Volt Batterien. Weil CALLIOPE auch mit 3 Volt betrieben wird, sollte das funktionieren.

Wenn ein Motor mit 100% Leistung gestartet wird, muss er noch angeschubst werden, damit er sich dreht. Eine Drehzahlregelung mit mehr oder weniger Prozent Leistung ist (mit diesen Motoren) nicht wirklich realisierbar. Sollen beide Motoren drehen, stürzt CALLIOPE ab, geht aus und startet neu.

Hier ist die Stromstärke zu beachten. Bei 3 Volt fließt ein hoher Strom, um die Motor-Leistung zu erbringen. An die rechten Kontakte der grünen Schraubklemme kann eine zusätzliche Batterie bis max. 9 Volt - nur für die Motoren - angeschlossen werden. Ein 9 Volt Motor hat (bei gleicher Leistung) eine geringere Stromstärke als ein 3 Volt Motor. Mit anderen Motoren, die weniger Strom "ziehen", kann es dann vielleicht funktionieren.

Mit dem Anschluss einer 4,5 Volt Batterie an die entsprechenden Kontakte, ist CALLIOPE gleich, nachdem der Motor anfangen wolle zu drehen, abgestürzt. Mit der externen Stromquelle ging also gar nichts, von der 3 Volt Batterie kam zu wenig beim Motor an, USB am PC ist nicht geeignet, Motoren anzuschließen. Im praktischen Test funktionierte wenigstens ein Motor am besten mit einer Powerbank oder einem Netzteil, wenn CALLIOPE den Strom über USB, aber nicht vom PC bekommen hat. Der Motor muss mit 3,3 Volt drehen und sehr wenig Strom brauchen. Ein Modell kann man damit eher nicht antreiben.

Die Messung von Gleichspannung am Motoranschluss brachte kein sinnvolles Ergebnis. Wahrscheinlich kommen dort auch irgendwelche Impulse heraus, um verschiedene Drehzahlen zu realisieren. Das wäre auch logisch, weil dort auch der Laustprecher angeschlossen werden kann.

Dampflok mit Funk-Fernsteuerung

In der Lok ist normalerweise eine 4,5 Volt Flachbatterie drin. Es ist aber kein Problem, den Motor mit Krokodilklemmen an den CALLIOPE anzuschließen. Der Vorwärts/Rückwärts Betrieb funktioniert auch - wenn die Antriebs-Räder nicht auf den Schienen stehen. Um zu fahren reicht die Kraft nicht. Mit einer externen 4,5 Volt Batterie an die entsprechenden Anschlüsse geklemmt, stürzt CALLIOPE wieder ab und startet neu, sobald der Motor anfängt zu drehen. Es funktioniert nur über USB. Dann drehen sich die Räder vorwärts und rückwärts, wenn sie in der Luft hängen.

Dampflok

Das Programm für die Motorsteuerung und die Fernsteuerung

Bei den Blöcken aus der Gruppe Motoren muss beachtet werden, in welchem Modus der oder die Motoren angeklemmt sind. Im Single-Motor-Modus kann eine Prozentzahl der Kraft von -100% bis +100% programmiert werden. Bei negativen Werten dreht der Motor dann rückwärts. An einen Single-Motor kann auch noch der Befehl 'auslaufen', 'bremsen' und 'schlafen' gesendet werden.

Für den Dual-Motor-Modus geeignete Blöcke sind daran zu erkennen, dass der Motor A oder B ausgewählt werden muss. Weil zwei angeschlossene Motoren nur in eine Richtung drehen können, ist die Prozentzahl der Kraft nur von 0% bis 100% zulässig.

Dampflok

Für das Programmbeispiel im Bild zum fernsteuern der Dampflok werden zwei CALLIOPE benötigt. Auf beide wird aber das selbe Programm kopiert. Einer ist der Sender mit den Tasten A und B. Der andere fährt mit der Lok mit, empfängt die Daten über Funk und steuert den Motor vorwärts, rückwärts oder bremsen.

Eigentlich können daraus zwei Programme für Sender und Empfänger gemacht werden. Das Ereignis 'beim Start' wird für beide gebraucht. Der Sender benötigt die Ereignisse für die Tasten 'wenn Knopf A/B/A+B gedrückt'. Der Empfänger braucht nur das Ereignis 'wenn Datenpaket empfangen Zahl'.

Gesendet und empfangen wird immer nur eine Zahl. Die über Funk empfangene Zahl wird in der Bedingung getestet, ob sie zwischen -100 und +100 liegt. Dann wird damit der Motor angesteuert. Außerhalb dieser Grenzen ist noch 200 gültig. Der Sender kann durch drücken beider Tasten A+B den Befehl 'bremsen' zum Motor senden. Für diesen Sonderfall haben Sender und Empfänger den Zahlencode 200 vereinbart.

Der Zweig 'ansonsten' kann eigentlich nicht vorkommen, weil der Sender ungültige Zahlen nicht senden kann. Es ist aber besser, wenn der Programmierer unerwünschte Zustände einplant und diese meldet. Hier leuchtet die LED rot und der Motor hält an (0%). Das kann passieren, wenn das Programm (vom Sender) geändert wird. Aber auch wenn andere CALLIOPE in der Nähe sind und auf der selben Funkgruppe senden, werden möglicherweise falsche Daten empfangen. Es wäre schlecht, wenn durch falsche Daten die Lok plötzlich los fährt.

Ein Problem gibt es auch, wenn von +100% auf -100% durch drücken der Tasten A und B, plötzlich die Richtung geändert werden soll. Dann stürzt der Empfänger ab.

Der Programmierer ist also nicht fertig, wenn das Programm läuft. Ein Programm muss auch Zustände berücksichtigen, die eigentlich nicht sein können.

Dampflok

Aufgabe in einem eigenen Fenster anzeigen

Aufgabe Motoren

Im Programmbeispiel auf dem Bild wird ein CALLIOPE als Sender und ein zweiter als Empfänger benötigt. Damit kannst du ferngesteuert die Lok vorwärts und rückwärts fahren lassen und anhalten.

1. Ändere das Programm so, dass nur ein CALLIOPE benötigt wird. Schiebe die Blöcke 'Motor an mit -100%' und 'Motor an mit 100%' direkt in die Ereignisse 'wenn Knopf A gedrückt' und 'wenn Knopf B gedrückt'. Mache das auch mit 'Motor bremsen'.

2. Lösche alle Blöcke, die zum Funk (senden und empfangen) gehören. Lösche auch die nicht mehr benötigten Bedingungen und Variablen.

3. Kopiere das Programm auf den CALLIOPE und probiere es aus. Der Motor muss im Single-Motor-Modus angeklemmt sein, damit er vorwärts und rückwärts dreht.

4. Speichere das Programm auf dem PC als .hex-Datei, um es später weiter zu bearbeiten. Du kannst das Programm auch hier auf die Internetseite hoch laden, um es anderen zu zeigen.

Wissenschaft (über Funk eine Antwort bekommen)

Über Funk ruft ein Computer eine Funktion auf einem anderen Computer auf. Das nennt man Remote Procedure Call (RPC). Dabei werden Parameter übergeben, hier ist es eine Zahl. Meistens bekommt der Sender auch eine Rückmeldung (Response) vom Empfänger, mit dem Ergebnis der Funktion (Funktionswert).

1. Sende vom Empfänger zurück, welche Bedingung erfüllt war. Der Empfänger 'wenn Datenpaket empfangen' zeigt die LED Grün, Gelb und Rot an. Die LED soll auch beim Sender ihre Farbe ändern, wenn der Empfänger sich zurück meldet. So kann der Sender erkennen, ob der Empfänger aus war oder zu weit entfernt ist.

Wissenschaft (lokale Funktion aufrufen)

1. Für diese Aufgabe wird nur ein CALLIOPE benötigt. Erstelle eine lokale Funktion (unter Fortgeschritten - Funktionen) und verschiebe den gesamten Inhalt aus 'wenn Datenpaket empfangen' in diese Funktion. Rufe aus den Ereignissen 'wenn Knopf gedrückt' jeweils die neue Funktion auf. Lösche alle Blöcke, die zum Funk (senden und empfangen) gehören.

Im Editor MakeCode kann an die Funktion kein Parameter übergeben werden. Verwende deshalb in der Funktion die selben (globalen) Variablen wie außerhalb der Funktion. Beim Aufruf einer Funktion über Funk geht das natürlich nicht, weil der Empfänger nicht die Variablen auf dem Sender kennt.

Hinweise und Fehlermeldungen können hier anonym oder - wenn eine Antwort erwartet wird - per E-Mail gesendet werden. Impressum