In der Funktion loop() befindet sich der Code zum Ansteuern des Roboters. Sie fragt die Taster I8 und I7 ab. Betätigen Sie einen der beiden, führt die Software den dahinterliegenden Programmcode aus. Über die Methode ftduino.motor_counter() geben Sie wieder für einen Motor eine bestimmte Anzahl Umdrehungen in eine bestimmte Richtung vor.
Da die Funktion nicht blockiert, dürfen mehrere Motoren gleichzeitig laufen. Sie benötigen allerdings eine Möglichkeit, um herauszufinden, ob alle Motoren ihre Positionen erreicht haben, bevor das Programm weiterläuft. Dabei hilft die Methode ftduino.motor_counter_active(). Sie gibt true zurück, solange der Motor noch läuft. Erreicht er die gewünschte Position, liefert sie ein false. Mithilfe einer While-Schleife halten Sie nun das Programm so lange an, bis einer der Motoren sein Ziel erreicht hat. Haben Sie mehr als einen Motor gestartet, verknüpfen Sie in der While-Schleife alle Rückgabewerte logisch.
Bei den Impulsgebern der Motoren ist es wichtig zu wissen, dass die einfachen Geber (Greifen und Ausfahren) vier Impulse pro Motorumdrehung liefern. Die Motoren mit eingebautem Pulsgeber (Heben und Drehen) liefern hingegen 75 Impulse pro Umdrehung. So kommt es, dass die Werte für die Anzahl der Impulse so stark variieren.
Der Greifer stellt noch ein echtes Problem dar. Die korrekte Anzahl an Impulsen, die nötig sind, um die Tonne gut festzuhalten, lässt sich nur schwer herausfinden. Je nachdem, wie der Greifer sie erwischt, erreicht die Software die vorgegebene Anzahl von Schritten eventuell nie – dann bleibt das Programm hängen.
Um das zu verhindern, fragt das Programm beim Greifen nie den Counter ab. Sie geben eine Schrittanzahl vor, von der Sie wissen, das sie gut passt, und warten nur eine gewisse Zeit, bis Sie mit dem Ausführen fortfahren. Mit diesem einfachen Trick umschiffen Sie das Problem recht gut.
Fazit
Es macht immer wieder Spaß, mit Fischertechnik zu arbeiten. Die Aufbauten erweisen sich als robust und technisch ausgereift. Möchten Sie dennoch etwas ändern, stellt das meist kein Problem dar. Das Ftduino-Modul erweitert dieses System sinnvoll: Es bietet viele Möglichkeiten zum Ansteuern und ermöglicht so den Aufbau komplexer Modelle. Bei Bedarf lassen sich über die I2C-Schnittstelle auch mehrere Ftduino-Module kaskadieren, die ein Raspberry Pi dann alle ansteuern könnte. Haben Sie sich schon immer für Roboter interessiert und programmieren gerne, dann finden Sie in dieser Hardware-Kombination also ein passendes Betätigungsfeld.
Der Autor
Martin Mohr interessierte sich schon in früher Jugend für alles, was blinkt; eine Vorliebe, die eine Ausbildung zum Elektroniker noch verstärkte. Nach einem Informatikstudium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte die alte Liebe zur Elektronik wieder.
Infos
- Ftduino-Workshop (Teil 1): Martin Mohr, “Vermittlungsstelle”, RPG 01-02/2019, S. 72, http://www.raspi-geek.de/41698
- Youtube-Video Roboter: https://youtu.be/mpYdTpJfO3Y
- Fischertechnik-Roboter: https://www.fischertechnik.de/de-de/produkte/spielen/robotics/511933-robotics-txt-automation-robots
- Ftduino-Projekt: http://www.ftduino.de
- Gehäuse für das OLED-Display: https://www.thingiverse.com/thing:2542260
- Ftduino-Dokumentation: https://harbaum.github.io/ftduino/manual.pdf]





