Beschaffung
Philosophie Alle Hardware, Software und Dokumentationen werden Lizenzfrei zur Verfügung gestellt. Grundlagen der Robotik mit einem hohen Spaßfaktor vermitteln. Für jedes Alter interessant.
Historie
Historie
Historie
Aufbau 1 2 6 1 1 3 2 2 3 4 5 1 Mechanische Fixierung 2 Reset-Taste 3 USB-Anschluss 4 SD-Kartenslot 5 Hängerzug 6 Stifthalterung 1 5 sensitive Tasten 2 Temperatursensor 3 2 Abstandssensoren
Aufbau 1 1 2 6 1 3 3 8 4 2 2 3 4 5 4 5 6 4 7 4 Mikrofon 5 IR-Empfänger 6 5 Abstandssensoren 7 2 Bodensensoren 8 B-Messer (ACC) 1 Lautsprecher 2 Ladeanzeige Batterie 3 Räder 4 39 LEDs
Aufbau
Thymio aufladen
Thymio ein- und ausschalten
Verhaltensmuster
Aufgabe: Schalten Sie Thymio ein und probieren Sie verschiedene Betriebsmodi aus. Beobachten Sie Thymios Verhalten. Verbinden Sie die WENN-Sätze (Ereignisse) mit den passenden DANN-Sätzen (Aktionen).
Aufgabenblätter
Aufgabenblätter
Überblick über die Software ASEBA 1.6 Thymio VPL (Visual Programming Language) Thymio Web Bridge Thymio Blockly Aseba Studio für Thymio Aseba Playground
Scratch-Programmierung Adobe AIR Offline Editor Scratch 2.0 Scratch2-ThymioII
Scratch-Programmierung ASEBA downloaden Thymio einschalten und Thymio Web Bridge starten ScratchX-Erweiterung starten
Grafische-Programmierung
Grafische-Programmierung
Blockly-Programmierung
Blockly-Programmierung
Textbasierte-Programmierung
Textbasierte-Programmierung
Grafische-Programmierung (Experten-Modus)
Grafische-Programmierung (Experten-Modus) Thymio bekommt Zustände! Die blaue Kachel, setzt den Zustand des Thymios. Die grüne Kachel fragt den Zustand des Thymios ab. Erstelle folgendes Programm: Wenn die mittlere Taste berührt wird und der Zustand Null ist, dann werde rot und setze den Zustand auf Eins. Wenn die mittlere Taste berührt wird und der Zustand Eins ist, dann werde grün und setze den Zustand auf Null.
Grafische-Programmierung (Zustände)
Grafische-Programmierung (Ampel)
Blockly-Programmierung
Blockly-Programmierung
Blockly-Programmierung
Text-Programmierung Thymio als Regenbogen Erstelle folgendes Programm: Thymio soll im Intervall von 2 Sekunden in den Regenbogen-Farben leuchten.
onevent buttons # Programm starten if button.forward == 1 then counter = 1 end # Programm beenden if button.backward == 1 then counter = 0 call leds.top(0,0,0) end Text-Programmierung (Regenbogen) var counter = 0 timer.period[0] = 2000 #Zeit in ms call leds.top(0,0,0)
... Text-Programmierung (Regenbogen) onevent timer0 if counter >= 1 then if counter == 1 then call leds.top(32,0,0) end end if counter == 7 then call leds.top(10,0,10) counter = 0 end counter = counter +1
Text-Programmierung (Blume) var itera = 0 onevent temperature itera = itera + 1 if itera==1 then motor.left.target = 230 motor.right.target = -120 end if itera==4 then motor.left.target = 80 motor.right.target = 80 end if itera==7 then itera = 0 end
Text-Programmierung Lokale Kommunikation Thymio kann seine horizontalen Infrarot-Abstandssensoren dazu verwenden, um einen Zahlenwert zu anderen Robotern in einem Bereich von etwa 15 cm zu senden (Peer to Peer-Kommunikation). Um die Kommunikation zu verwenden, rufen Sie die Funktion prox.comm.enable auf der Wert der Variablen prox.comm.tx wird alle 100 ms gesendet. Wenn Thymio einen Wert empfängt, wird das Ereignis prox.comm ausgelöst und der Wert in der Variablen prox.comm.rx abgelegt.
Text-Programmierung (Kommunikation) Sender var state=1 call prox.comm.enable(state) onevent prox if prox.horizontal[2] > 2500 then prox.comm.tx = 1 else prox.comm.tx = 0 end Empfänger var state=1 call prox.comm.enable(state) onevent prox.comm if prox.comm.rx == 1 then call leds.top(0,32,0) else call leds.top(0,0,0) end
Text-Programmierung Variable als Graph darstellen Wenn wir die drei Achsen des Beschleunigungsmessers beobachten wollen, müssen wir ein Ereignis mit drei Argumenten erstellen.
Text-Programmierung (Variable als Graph)
Playground <!DOCTYPE aseba-playground> <aseba-playground> <!-- Farben definieren --> <color name="wall" r="0.9" g="0.9" b="0.9" /> <color name="red" r="0.77" g="0.2" b="0.15" /> <color name="green" r="0" g="0." b="0.17" /> <color name="blue" r="0" g="0.38" b="0.61" /> <!-- Größe der Spielfläche festlegen --> <world w="100" h="100" color="wall" /> <!-- Wände definieren --> <!-- x und y als Position, l1 als Länge in x Richtung, l2 als Länge in y Richtung, h ist die Höhe --> <!-- Längenangaben sind immer von der Mitte aus gerechnet --> <wall x="30" y="0" l1="1" l2="70" h="10" color="wall" /> <!-- Roboter positionieren --> <robot type="thymio2" x="15" y="30" port="33333" /> <process command=":asebamassloader --once thymio-default-behaviours.aesl tcp:localhost;33333" /> </aseba-playground>
Playground (mit Textur) <!DOCTYPE aseba-playground> <aseba-playground> <color name="white" r="1.0" g="1.0" b="1.0" /> <world w="104.1" h="79.4" color="white" groundtexture="oval.png" /> <robot type="thymio2" x="70" y="15" port="33333" name="thymio" /> <process command=":asebamassloader --once thymio-default-behaviours.aesl tcp:localhost;33333" /> </aseba-playground>