Heute verwenden wir den Raspberry Pi um Lego Roboter zu steuern.
Lego hat das NXT System -
Intelligente Bausteine
zur Steuerung von
Motoren und um Sensoren auszulesen.
Aber heute werden wir dafür den Raspberry Pi verwenden.
Wir haben eine spezielle Platine entwickelt,
um Lego Roboter damit zu steuern.
Im Schaltplan kann man folgendes sehen:
das Netzteil für die Spannungsversorung mit 9V Gleichspannung.
9V werden benötigt, um die Motoren anzutreiben, die an diesen Anschlüssen verbunden werden.
Wir regeln die Spannung auf 5V, womit die Bauteile auf unserem HAT betrieben werden.
Außerdem wird der Raspberry Pi mit dieser Spannung versorgt.
Rechts sehen wir die Anschlüsse für die Motoren.
Zwei Motor-Treiber ICs
Die beiden oberen nutzen Pulsweitenmodulation (PWM) -
dadurch kann die Geschwindigkeit der Motoren reguliert werden.
Die unteren Anschlüsse können nur ein- und ausgeschaltet werden -
im Uhrzeigersinn und gegen ihn.
Lego Motoren geben Rückmeldung
dank interner Enkoder,
die Pulse ausgeben,
kann man Geschwindigkeit und die Stellung der Motorachsen auslesen.
Hier ist die Verbindung zum Raspberry Pi zu sehen, der das HAT mit dem Pi verbindet.
Und links gibt es zwei I2C I/O Expander.
Dadurch erhält man 16 digitale I/Os.
Diese Pins können als Eingänge oder Ausgänge ganz nach Bedarf konfiguriert werden.
Das geht auch zur Laufzeit: man kann jeden Eingang zum Ausgang machen und umgekehrt.
Man kann die Hardware in Python programmieren, was recht üblich auf dem Raspberry Pi ist.
Und wir bieten eine spezielle Bibliothek für dieses Projekt an,
die die Motoren steuert und sich um die 16 digitalen IOs kümmert.
Hier ist eine holländische Anleitung, aber wir werden sie bald übersetzen.
Sie beschreibt alle Funktionen der Bibliothek.
Eine Funktion heißt z.B. execfile.
Sie startet die Threads und richtet die Pulseweitenmodulation beim Programmstart ein.
Und natürlich gibt es Funktionen, um die Motoren zu steuern:
forward
reverse
float
break
pwm für die Geschwindigkeitsregelung
und abort, um die Motoren zu stoppen.
Und es gibt Befehle für die I/O Pins: ioread und iowrite
Weitere Befehle konfigurieren die I/O Pins.
Mit der tacho Funktion kann die Geschwindigkeit der Motoren ausgelesen werden.
Dazu werden die optischen Sensoren in den Lego Motoren verwendet.
Wir bieten zahlreiche Demos für dieses Projekt an.
ich kann ein paar Dinge vorführen.
Das erste Beispiel steuert Motor 3.
Es startet den Motor,
lässt ihn eine halbe Drehung lang laufen
und ändert dann die Laufrichtung.
Korrektur: es macht eine volle Drehung und wechselt dann.
Das gleiche kann man auch mit dem Motor an Ausgang 4 machen.
Natürlich kann man sie auch gleichzeitig in einem Skript verwenden.
Das ist das Beispiel für Motor 4.
Das letzte Beispiel zeigt die Verwendung der IOs.
Hier wurde ein Lauflicht für alle 16 Ausgänge implementiert,
aber wir haben nur 4 LEDs eingesteckt.
Das war das wichtigste!
Vielen Dank für's Zuschauen!
