Thymio II
Inhalt
Typ, Ausstattung, Fähigkeiten, kurze Beschreibung
Der Thymio ist ein kleiner, programmierbarer Lernroboter, der perfekt für Programmiereinsteiger geeignet ist.
Er besitzt 2 Antriebsmotoren (Heckantrieb und Bug-Sporn), 5 IR Abstandssensoren, 2 Helligkeitssensoren (Boden), weitere Sensoren (s. Grafik), on-top, Bedienpanel, Multi-color LED, Lautsprecher und USB. Zudem ist er Lego-kompatibel (andere Reifen, Anbauten).
Dieses Werk unter liegt dem © der Webseite https://www.thymio.org/de:thymio und ist im Original lizenziert unter einer Creative Commons Attribution-ShareAlike 3.0 License
Basisfunktionen
Der Thymio besitzt standardmäßig mehrere Modi, wie z.B. Line-follower Bot, Hindernis Vermeidung oder Verfolger. Desweiteren ist er selbst programmierbar und verfügt über Bot-zu-Bot Kommunikation im API (ohne Wifi)
Preis: Basisgerät 139,- opt. Varianten: Wifi (189,- ) IR Fernsteuerung (12,-)
Thymio II ist ein Open Source und Open Hardware Projekt. Das vollständige 3D-Design des Roboters Thymio II ist frei verfügbar, wie auch der Source Code und die Programmierumgebung. Diese Dokumente sind unter der Creative Commons Lizenz veröffentlicht und als LGPL erhältlich.
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.
Programmierung und IDE
- Für Anfänger und Schüler: Visual Programming Language (VPL): https://www.thymio.org/de:visualprogramming
- Mittleres Niveau: Google Blockly: https://www.thymio.org/de:blocklyprogramming
- Programmiersprache Aseba: http://wiki.thymio.org/de:asebalanguage
Die Syntax der Programmiersprache Aseba gleicht derjenigen von Matlab (verbreitete wissenschaftliche Programmiersprache). Dies ermöglicht Programmierern mit Vorkenntnissen sich schnell zu orientieren und Aseba in Kürze zu erlernen. Semantisch gesehen, ist Aseba eine einfache, imperative Programmierung mit einem einzelnen Datentyp (16 Bit Ganzzahlen mit Vorzeichen) und Vektoren davon. - Aseba besitzt eine ereignisbasierte (event-based) Architektur, was eine asynchrone Ereignisauslösung ermöglicht. Extern können Ereignisse zum Beispiel von einem anderen Aseba-Netzwerkelement ausgelöst werden. Intern können Ereignisse zum Beispiel von einem Sensor mit aktualisierten Daten ausgelöst werden.
Aseba Sample Code (einfach)
var run = 0
onevent start #falls das Ereignis ’start‘ eintritt, starte run = 1 onevent stop #falls das Ereignis ’stop‘ eintritt, halte an run = 0 onevent ir_sensors if run == 1 then #wenn==1, dann emit sensors_values proximity_sensors_values #Gib das Ereignis ’sensors_values‘ aus mit den Variablen ‚proximity_sensors_values‘ end #Ende des ‚if‘ blocks # Blinken beim Steuern nach rechts, links und hinten: onevent timer0 if turnleft==1 then if yellowl==0 then yellowl=1 call leds.bottom.left(32,32,0) else yellowl=0 call leds.bottom.left(32,0,0) end else call leds.bottom.left(32,32,0) end […] |
Weitere Code Beispiele (allgemein)
Der Line-Follower Bot, optimiert für nur einen Sensor und mit einem Proportional-Integral Controller. Der Source Code ist unter folgendem Link zu finden:
https://aseba.wdfiles.com/local–files/de:thymioedgefollower/edge-follower.aesl
Aseba Sample Code (Zustandsautomat)
#Main event where all the computation is done
onevent prox #if the robot is not stopped or across another road, it follows the line if state != S_STOP and state != S_CONTINUE then intensityDiff = prox.ground.delta[0]-GREY_REF #The robot is given a reference mean value. Its speed is controlled to stay as close as possible #to this value with a P controller. The gain (dividing factor) depends on the state. if state == S_ROAD or state == S_BACK then controlFactor = 3 elseif state == S_ACTION or state == S_EXIT or state == S_RECEPT then controlFactor = 2 elseif state == S_READ then controlFactor = 6 end addSpeedLeft = intensityDiff/controlFactor addSpeedRight = -intensityDiff/controlFactor #Obstacle avoidance […] #Mehr dazu: s.u.im Text „Multi-Bot Programmierung“ |
B.O.T Challenge
Line Follower Algorithmus – Flussdiagramm
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.
Beispielcode Thymio II
Hier kannst du Beispielcode für den Thymio II downloaden.
Der hier veröffentlichte Code ist unter der Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 International Lizenz lizenziert.
Dokumentation und Tutorials
Allgemein
Für alle drei Programmier-Arten empfiehlt sich folgende gut lesbare Anleitung: https://www.thymio.org/de:asebausermanual
Aseba Studio Installationsanleitung
In diesem Tutorial wird gezeigt wie die IDE für den Thymio II (Aseba Studio) installiert und für die Verwendung bereit gemacht wird.
Aseba Studio Funktionen und Programmiersprache
Dieses Tutorial beschreibt zunächst die Oberfläche des Aseba Studios. Anschließend wird die eigene Programmiersprache Aseba erläutert.
Tutorial Handdreher
In diesem Tutorial werden die wichtigsten Funktionen von Aseba anhand des „Handdrehers“ erklärt. Ziel ist es, den Thymio so zu programmieren, damit er mit den vorderen Abstandssensoren eine Handbewegung misst und sich danach im Kreis dreht.
Sensoren und Aktoren von Thymio II
In diesem Tutorial werden die verschiedenen Sensoren und Aktoren, mit denen der Thymio II ausgestattet ist beschrieben und deren Funktionen erklärt.
Simulator einrichten
Auf dieser Seite wird erklärt, wie dieser simulierte Thymio mit Aseba Playground und Aseba Studio benutzt wird.
FAQ, Videos, Einsatz in Projekten, Foren und Support (allgemein)
- Mehrere step-by-step Anleitungen zum Kennenlernen, mit Video, unter https://www.thymio.org/de:thymioschoolprojects
- Sehr viele Beispiele (Balancieren auf einem Ball, Barcodes lesen, usw.) https://www.thymio.org/de:creations
- Aktives Forum unter https://github.com/aseba-community/aseba
- Videos auf dem YouTube Channel https://www.youtube.com/user/ThymioII/videos
Infos für Experten
- Code auf den Bot flashen: https://www.thymio.org/de:thymioflash
- D-Bus: Aseba bietet asebamedulla, ein Befehlszeilenprogramm mit dem Sie auf ein Aseba Netzwerk mittels D-Bus zugreifen können. Dies ermöglicht die Verwendung von Aseba-fähigen Geräten von Drittsprachen wie Python, Perl oder einer Sprache, die das D-Bus -Protokoll unterstützt. Asebamedulla ist nur unter Linux getestet.
Siehe dazu: Magnenat, Stephane & Mondada, Francesco. (2009). ASEBA Meets D-Bus: From the Depths of a Low-Level Event-Based Architecture into the Middleware Realm, in: IEEE TC-Soft Workshop on Event-based Systems in Robotics (EBS-RO), St. Louis, October 15, 2009, online http://infoscience.epfl.ch/record/140494/files/aseba-esb-ro09.pdf?version=2 - Kommunikation mit dem Raspberry PI: siehe http://wiki.thymio.org/en:thymioexplorer
- Extension für Scratch-X: „Mit Scratch kannst du deine eigenen interaktiven Geschichten, Spiele und Animationen programmieren und deine Kreationen mit anderen in der Gemeinschaft online teilen.
[…]scratch ist ein Projekt der Lifelong-Kindergarten-Group am Media-Lab des MIT. Es wird frei von jedweder Gebühr angeboten.“ (Quelle: https://scratch.mit.edu/about/)
Scratch Anleitung unter https://www.thymio.org/de:scratchprogramming
Zusammenfassung: Vorteile für den Einsatz im AK Smart Machines
Der Thymio-2 ist leicht zu erproben und bringt „Line Following“ schon mit, hat eine Konzeption und Ausbildungsmaterial nach pädagogischen Ansprüchen, und ist für breite Altersgruppen von Jung (Bsp.: Summer School für SchülerInnen) bis hin zu komplexeren Anwendungen für Studierende geeignet.
- Preis/Leistung gut (deutlich besser als bspw. LEGOs EV3)
- Robustes Gehäuse, Lego Kompatibel
- Thymio II ist ein Open Source und Open Hardware Projekt. Das vollständige 3D-Design des Roboters Thymio II ist hier verfügbar, wie auch der Source Code und die Programmierumgebung. Diese Dokumente sind unter der Creative Commons Lizenz veröffentlicht und als LGPL erhältlich.
- Die Programmierung erfolgt in Aseba; dabei handelt sich um eine Sammlung von Werkzeugen, mit denen es auch Anfängern gelingt, Roboter einfach und effizient zu programmieren. Somit eignet sich Aseba gut für die Ausbildung und Forschung im Robotik-Umfeld. Aseba ist eine Open-Source-Software, entwickelt und unterhalten von Dr. Stéphane Magnenat mit aus der Community.
- Für die fortgeschrittene Programmierung in der Robotik sind vertiefende, sehr gut dokumentierte Beispiele vorhanden. Es gibt eine Anbindung an D-Bus. Zudem ist eine Kommunikation mit dem Raspberry PI vorhanden.