Thymio II

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.

Thymio Tutorial: Handdreher

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.

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

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.

zur Webseite

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
  • 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.

Teile diese Seite