Aus Raspberry Pi Geek 08/2018

Raspberry Pi steuert Fischertechnik-Roboter (Seite 4)

Das Schlüsselwort volatile in der Definition von position weist den C-Compiler an, die Variable in jedem Fall aus dem Speicher auszulesen und nicht zu puffern – das ist wichtig, weil andere Programmteile eventuell die Variable asynchron verändern.

Im Hauptteil legt das Testprogramm zuerst die Ein- und Ausgänge fest, danach lädt es die Interrupt-Handler. Nun beginnt das eigentliche Programm: Der Befehl digitalWrite(ENGINE_PIN_0, HIGH) fährt die Spindel in die linke Endposition und setzt die Variable position auf null.

Jetzt sollten Sie sehen, ob die Polung des Motors stimmt. Dreht er richtig herum, lassen Sie das Programm bis zum Ende laufen und stellen die mechanische Verbindung her. Tut er das nicht, lassen Sie das Programm ebenso durchlaufen und stellen die mechanische Verbindung her, vertauschen jedoch die Anschlüsse am Motor. Bei der nächsten Programmausführung klappt dann alles wie geplant.

Das Kommando digitalWrite(ENGINE_PIN_1, HIGH) fährt die Spindel nun in die rechte Endposition und setzt so die Variable maxposition. Nun errechnet das Programm die Mittelposition, setzt die Variable target auf diesen Wert und fährt die Spindelmutter dorthin – fertig.

Bitte beachten Sie, dass das Ansteuern des Motors komplett über Interrupt-Verarbeitung erfolgt. Die Parameter der delay()-Kommandos müssen Sie dabei so wählen, dass die Spindelmutter die Endposition auch erreicht. Bemessen Sie sie zu knapp, funktioniert das Initialisieren nicht.

Sie kompilieren das Programm mit dem Kommando cc init.c -lwiringPi und rufen danach mit dem Befehl ./a.out das Testprogramm auf.

Fazit

Den Raspberry Pi so zu erweitern, dass er mit Fischertechnik-Komponenten zusammenarbeitet, war kein Kinderspiel. Das kleine Testprogramm gibt schon jetzt einen Einblick in die dazu nötigen hardwarenahen Programmiertechniken. Mit dem gewonnenen Wissen und dem erfolgreich in Betrieb genommenen Testaufbau starten Sie dann in der nächsten Folge der Artikelserie direkt mit dem Programmieren eines Roboters. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben