Legoino - Konzept
1 Leitlinien des Legoino-Konzepts:
- Open Source Software für die Roboterprogrammierung.
- Open Source Hardware für die Robotersteuerung und Elektronikperipherie.
- Verwendung standardisierter Low Cost Bauteile mit Zielpreis Roboter <50 €.
- Vermeidung von Lötarbeit durch vorkonfektionierte Steckverbinder.
- Verwendung vorhandener einfacher Legosteine für die Robotermechanik.
- Verbindung der Elektronikkomponenten mit Legosteinen für einen flexiblen Roboteraufbau.
- Nur lösbare Verbindungen damit Roboterkomponenten uneingeschränkt wiederverwendet werden können.
- Integration von Android-Endgeräten für die Kommunikation mit dem Legoino.
2 Systemdesign des Legoinos
Die mechanische Basis bilden normale Legosteine mit Noppen, also Legosteine die in fast jedem Haushalt mit (früheren) Kindern verfügbar sind. Falls nicht, dann können solche Legos auch sehr preiswert auf Flohmärkten oder im Internet im gebrauchten Zustand erworben werden.
Als Antriebe werden Modellbauservos verwendet. Normalerweise dreht sich deren Achse nur um einen Winkelbereich von +/-90°, weshalb diese auch als „180°-Servos“ bezeichnet werden. Im Modellbauhandel sind aber auch sogenannte volldrehende Servos verfügbar: Bei dieser Spezialversion bewirkt ein Steuersignal nicht eine definierte Winkelstellung wie bei normalen 180°-Servos, sondern eine definierte kontinuierliche Drehzahl.
Alle analogen 180°-Servos können grundsätzlich in volldrehende Servos umgebaut werden. Für den Legoino wird dieser Weg gewählt, da hier eine weitaus größere Auswahl an Servomodellen zur Auswahl steht, die gleichzeitig wesentlich kostengünstiger sind.
Die Energieversorgung wird über handelsübliche und ungefährliche AA-Akkus gewährleistet, die in externen Akkuladegeräten aufgeladen werden. Anders als bei LiPo-Modellbauakkus ist also kein thermisches Durchgehen der Akkus zu befürchten und leere Akkus können „im Notfall“ durch normale Batterien ersetzt werden.
Streng genommen sollte der Legoino zwei getrennte Stromversorgungen haben:
Eine für den µC und eine für die Antriebe. Der µC hat eine Betriebsspannung von 5 V. Er besitzt aber eingangsseitig einen DC-DC-Wandler der eine Gleichspannung zwischen 7 und 12 V benötigt.
Bei Verwendung von AA-Akkus sind also mindestens 6 Akkus nötig, die dann eine Spannung von knapp 7 V bereitstellen.
Servos sind für eine Versorgungsspannung von ca. 4,8 bis 6 V ausgelegt. Daher können sie nicht direkt über den Akkupack versorgt werden. Den DC-DC Wandler des Iteaduinos für die Servos mit zu benutzen, ist kritisch, da dieser nicht auf hohe Servoströme ausgelegt ist. Trotzdem wird beim Legoino diese Lösung gewählt, um die Kosten und Komplexität des Systems gering zu halten.
Die Steuerung des Legoino übernimmt eine Arduino-µC-Platine. Aus Kostengründen wurde dafür das Hardwaredesign „Arduino UNO / Duemillenova“ ausgewählt, das auf einem 8-Bit Atmel µC basiert.
Aus der Vielzahl der auf diesem Design basierenden Arduino-Klone wurde das Modell „Iteaduino“1 ausgewählt: Als Besonderheit besitzt dieser Arduino einen DC-DC-Wandler, der die für einen Batteriebetrieb nötige Energieeffizienz gewährleistet und zusätzlich die Antriebe versorgt. Weiter besitzt dieser Arduino vorkonfektionierte Steckplätze für Servos und andere Hardwareerweiterungen, die ein Löten von Anschlussleitungen weitgehend überflüssig macht.
Es ist aber auch möglich, einen schon vorhandenen Arduino Uno (egal ob im Original oder ein sogenannter „Klon“) zu verwenden. Siehe dazu die Anmerkungen in Abschnitt 6.6 in der PDF-Dokumentation.
Der Arduino selbst wie auch sämtliche Hardwareerweiterungen werden mit Legosteinen verbunden. Dadurch sind diese flexibel am Legoino platzierbar. Die Legosteine sollen dabei nicht irreversibel verändert werden, weshalb die Verbindung mittels doppelseitiger lösbarer Klebebänder realisiert wird.
Die elektrischen Verbindungen sollen ausschließlich über Steckverbinder erfolgen, die wenn möglich schon fertig konfektioniert an den Hardwareerweiterungen vorliegen.
Als Hardwareerweiterungen kommen Sensoren, Aktuatoren und Kommunikationsbausteine in Frage. Diese Erweiterungen gibt es teils fertig konfektioniert für die am Iteaduino vorhanden Steckplätze. Neben Servos kommen z.B. Leuchten (LEDs, Laser), Summer, Lautsprecher oder Gleichstrommotoren in Frage. Eine Kommunikation kann z.B. über Bluetooth (BT), WLAN oder Infrarot erfolgen. Diese Elektronikbauteile werden jeweils auf Legosteine geklebt.
Als Benutzerinterface (HMI) werden neben Grafikdisplays auch Android-Endgeräte verwendet , die über BT mit dem Legoino kommunizieren.
Das Programmieren des µC geschieht über die Open Source Arduino IDE, welche kostenlos für verschiedene Plattformen verfügbar ist.
Wird eine Android-Endgerät als HMI verwendet, dann wird dessen App über die Open Source IDE Processing2 (im Android-Modus) erstellt, die ebenfalls kostenlos für verschiedene Plattformen erhältlich ist.
Beide IDEs können auf einem preiswerten PC (z.B. Windows 7 mit ca. 2 GHz Taktrate und 2 GB Arbeitsspeicher) ohne Einschränkungen verwendet werden.
Nachfolgend sind von den schier unendlichen Möglichkeiten zwei konkrete Legoinomodelle näher beschrieben:
Das erste Modell nutzt einen Ultraschallsensor zur Kollisionsvermeidung und kann damit autonom umherfahren.
Das zweite Modell wird über ein Android-Endgerät via BT ferngesteuert.
Eine Kalkulation der Hardwarekosten für beide Modelle finden Sie in Abschnitt 5, eine exemplarische Stückliste in Abschnitt 8.1 der PDF-Dokumentation.
3a Beispiel: Legoino als autonomer Roboter mit Ultraschallsensorik
Nach Einschalten der Spannungsversorgung wird dieser Roboter aktiviert, indem man seinen Lichtsensor abdunkelt. Daraufhin setzt sich der Legoino in Bewegung. Erfasst sein Ultraschallsensor ein Objekt vor ihm, dann ändert er seine Mundwinkel im Display auf „traurig“ und weicht diesem Hindernis aus.
Die Arduino-Software hierzu heißt: LegoinoFinalOhneSmartphone.
Legoino als autonomer Roboter mit UltraschallsensorGalerie starten
3b Beispiel: Legoino als Smartphone-gesteuerter Roboter
Dieser Arduino baut über sein BT-Modul eine Verbindung zu einem Android-Endgerät auf, wenn auf diesem eine entsprechende (vorhandene aber selbst modifizierbare) App gestartet wird.
Dann kann der Roboter durch Kippen des Android-Endgeräts gesteuert werden. Zusätzlich können die LED, der Laserpointer und der Piepser des Legoino über die Android-App ein- und ausgeschaltet werden.
Der Ultraschallsensor des Legoino überwacht den Abstand zu einem möglichen Hindernis vor dem Roboter und gibt dessen gemessene Entfernung an die Android-App zurück.
Die Arduino-Software hierzu heißt: LegoinoFinalMitSmartphone, die Android-App LegoinoBT.
Legoino mit Fernsteuerung über ein SmartphoneGalerie starten
1Siehe www.imall.iteadstudio.com/im130312001.html.
2Siehe www.processing.org.