Thymio II

Typ, Ausstattung, Fähigkeiten, kurze Beschreibung

Programmierbarer Mini Roboter, 2 Antriebsmotoren (Heckantrieb und Bug-Sporn), 5 IR Abstandssensoren, 2 Helligkeitssensoren (Boden), weitere Sensoren (s. Grafik), on-top,  Bedienpanel, Multi-color LED, Lautsprecher, USB, 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

Line-follower Bot, vier weitere Interaktions-Modi wählbar (Bsp.: Hindernis Vermeidung, Verfolger), 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: https://www.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,  wird hier https://www.thymio.org/en:thymioedgefollower beschrieben, der Source Code ist hier: 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 unter https://www.thymio.org/de:asebausermanual, sehr gut lesbare Webseiten

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.

zum Dokument

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.

zum Dokument

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.

zum Dokument

Simulator einrichten

Auf dieser Seite wird erklärt, wie dieser simulierte Thymio mit Aseba Playground und Aseba Studio benutzt wird.

zur Webseite (thymio.org)

 

FAQ, Videos, Einsatz in Projekten, Foren und Support (allgemein)
Infos für Experten
  • Multi-Bot Programmierung, Das “producer-consumer Problem”: Mehrere Tyhmios müssen sich beim Fahren auf einem Parcours abstimmen, wer wann in welchen Abschnitt einfahren darf. Die Lösung erfolgt ohne Wifi, nur über die eingebauten Sensoren (den „infrared distance sensor“, 10HZ 11bit Übertragungsbreite, max. 15cm Distanz), s. https://www.thymio.org/en:concurrencywiththymio , da auch die Konzeption der Lösung (je ein Zustandsautomat, und „binäre semaphore“ zwischen den Bots), und der Source Code
  • 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. S. 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: s. https://www.thymio.org/de: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: ttps://scratch.mit.edu/about/ 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 , und eine Kommunikation mit dem Raspberry PI ist vorhanden.