Thymio im Fokus

Wir haben in der letzten Zeit mit dem Thymio programmiert.
Hier können wir euch mal ein paar Projekte vorstellen. Viel Spass ;-)



Abschnitt 1

Wir werden euch 4 Aufgaben vorstellen. Obwohl wir euch den Prgorammcode zur Verfügung stellen, könnt ihr die Aufgabe ja zuerst selbst probieren.
Viel Spass!

Level 1

Need for Speed

Der Thymio fährt ein Rennen, man kann ihn steuern auf der Strecke



Und so sieht der Programmcode aus. Du kannst ihn kopieren.

onevent button.forward     # Befehlt wenn der vordere Knopf gedrückt wird, Beide Motoren geradeaus Gas geben.
motor.left.target =500
motor.right.target =500
onevent button.backward    # Befehlt wenn der hintere Knopf gedrückt wird, Beide Motoren Rückwärts Gas geben.
motor.left.target =-500
motor.right.target =--500
onevent button.center      # Befehlt wenn der mittlere Knopf gedrückt wird, Beide Motoren still stehen.
motor.left.target =0
motor.right.target =0
onevent button.left        # Befehlt wenn der linke Knopf gedrückt wird, Beide Motoren unterschiedlich Gas geben, und schräg fahren.
motor.left.target =350
motor.right.target =500
onevent button.right       # Befehlt wenn der rechte Knopf gedrückt wird, Beide Motoren unterschiedlich Gas geben, und schräg fahren.
motor.left.target =500
motor.right.target =350
           




Die Notbremse

Der Thymio fährt auf eine Klippe zu... Und stürzt nicht ab! Dank einer Notbremse!



Und so sieht der Programmcode aus. Du kannst ihn kopieren.

onevent button.forward                                          # Wenn der vordere Knopf gedrückt wird, dann schalte die Motoren auf 300.
motor.left.target =300
motor.right.target =300
 
onevent prox
if prox.ground.delta[0] <100 or prox.ground.delta[1] <100 then  # Wenn die unteren Sensoren mehr als 100 wahrnehmen, dann schalte die Motoren auf 0.
motor.left.target =0                                                 
motor.right.target =0
end
                


Der Rasenmäherroboter

Er fährt langsam umher, er weicht einem Hindernis aus.



Und so sieht der Programmcode aus. Du kannst ihn kopieren.

var Switch =1		                                          #Erstellt eine Variable "Switch", um den Roboter mit einem Knopf zu steuern.

onevent buttons												
if button.center ==1 and Switch ==1 then
        while button.center ==1 do
                Switch =0
        end
while button.center ==0 do                                        #Schaut, wann der Roboter auf ein Hindernis trifft, und kehrt um.
        motor.left.target =1000
        motor.right.target =1000
        if prox.horizontal [1] >3000 then
                while prox.horizontal [6] <1000 do
                        motor.left.target =0
                        motor.right.target =-500
                end
        end	
        if prox.horizontal [3] >3000 then
                while prox.horizontal [5] <1000 do
                        motor.left.target =-500
                        motor.right.target =0
                end
        end
end       
while button.center ==1 do
        Switch =0
end
        if button.center ==1 and Switch ==0 then		#Schaltet den Roboter wieder aus.
                motor.left.target =0
                motor.right.target =0
        while button.center ==1 do
                Switch =1
        end
end
                




Level 2

Das autonome Fahrzeug

Der Thymio folgt der Linie bis zum Ziel.



Und so sieht der Programmcode aus. Du kannst ihn kopieren.

var a =0										                        #Erstellt eine Variable "a"

onevent buttons												        #Schaltet die Motoren des Roboters ein, nachdem der Knopf
if button.forward ==1 then											#vorwärts gedrückt wurde, und ändert das Tempo der
        while button.center ==1 do										#einzelnen Motoren abhängig vom Untergrund.
                a=1
        end
        while button.center ==0 do
                motor.left.target =(prox.ground.delta [0]+10)/2
                motor.right.target =(prox.ground.delta [1]+10)/2
        end
end
if button.center ==1 then											#Schaltet alle Motoren aus, nachdem die Taste in der
        while button.center ==1 do										#in der Mitte gedrückt wurde.
                a=0
        end
        motor.left.target =0
        motor.right.target =0	
end
                





Die Ampel

Der Thymio kann mit einem Knopfdruck als Ampel steuern.



Und so sieht der Programmcode aus. Du kannst ihn kopieren.

var a =0								#Erstellt eine Variable "a"
var Colour =0								#Erstellt eine Variable "Colour"
onevent buttons
if button.center ==1 and Colour ==0 then			        #Setzt jedes zweite Mal die LED-Farbe auf rot
        call leds.top (32, 0, 0)
	Colour =1
	if button.center ==1 then
        while button.center ==1 do
			a=a+1
                end
        end
elseif button.center ==1 and Colour ==1 then		                #Setzt jedes zweite Mal die LED-Farbe auf grün
        call leds.top (0, 32, 0)
	Colour =0
	if button.center ==1 then
                while button.center ==1 do
			a=a+1
                end
        end
end
                





Roboterkunst

Der Thymio kann man so einstellen, dass er verschiedene Grössen und Geschwindigkeit von Kreisen zeichnet.



Und so sieht der Programmcode aus. Du kannst ihn kopieren.

var Kreisgrösse =8										        #Erstellt eine Variable 'Kreisgrösse'
var Speed =1												#Erstellt eine Variable 'Speed'
var Beschäftigung											#Erstellt eine Variable, die den Roboter beschäftigt
call leds.temperature(0, 0)
call leds.rc(0)


if button.center ==1 then
        while button.center ==1 do
                Beschäftigung=Beschäftigung+1
        end
end

onevent buttons												#Prüft, welcher Knopf gedrückt wird
if button.left ==1 and Kreisgrösse != 9 then
        Kreisgrösse=Kreisgrösse+1
end
if button.left ==1 and Kreisgrösse ==9 then
        Kreisgrösse =1
end
if button.right ==1 and Kreisgrösse !=0 then
        Kreisgrösse=Kreisgrösse-1
end
if  button.right ==1 and Kreisgrösse ==0 then
        Kreisgrösse =8
end


if Kreisgrösse ==8 then											#Passt den LED-Kreis an.
        call leds.circle(10, 0, 0, 0, 0, 0, 0, 0)
end
if Kreisgrösse ==7 then
        call leds.circle(10, 10, 0, 0, 0, 0, 0, 0)
end
if Kreisgrösse ==6 then
        call leds.circle(10, 10, 10, 0, 0, 0, 0, 0)
end
if Kreisgrösse ==5 then
        call leds.circle(10, 10, 10, 10, 0, 0, 0, 0)
end
if Kreisgrösse ==4 then
        call leds.circle(10, 10, 10, 10, 10, 0, 0, 0)
end
if Kreisgrösse ==3 then
        call leds.circle(10, 10, 10, 10, 10, 10, 0, 0)
end        
if Kreisgrösse ==2 then
        call leds.circle(10, 10, 10, 10, 10, 10, 10, 0)
end
if Kreisgrösse ==1 then
        call leds.circle(10, 10, 10, 10, 10, 10, 10, 10)
end


if button.left ==1 or button.right ==1 then				  	                        #Wartet, bis der Knopf losgelassen wurde.
        while button.left ==1 or button.right ==1 do
                Beschäftigung=Beschäftigung+1
        end
end


if button.forward ==1 and Speed !=9 then						                #Prüft welcher Knopf gedrückt wird
        Speed=Speed+1
end
if button.forward ==1 and Speed ==9 then
        Speed=1
end
if button.backward ==1 and Speed !=0 then
        Speed=Speed-1
end
if button.backward ==1 and Speed ==9 then
        Speed=8
end


call leds.buttons(Speed, Speed, Speed, Speed)					                        #Passt die Helligkeit der Lichter an


if button.forward ==1 or button.backward ==1 then				                        #Wartet, bis der Knopf losgelassen wurde.
        while button.forward ==1 or button.backward ==1 do
                Beschäftigung=Beschäftigung+1
        end
end


if button.center ==1 then										#Lässt den Roboter fahren.
        while button.center ==1 do
                Beschäftigung=Beschäftigung+1
        end
        while button.center ==0 do
                motor.left.target =Speed*50
                motor.right.target =Speed*50/(Kreisgrösse*2)
        if
        motor.left.target =0
        motor.right.target =0
        while button.center ==1 do
                Beschäftigung=Beschäftigung+1
        end
end
                






Abschnitt 2

So programmiert man Aseba:

Den Thymio kann man mit 3 verschiedenen Programmiersprachen programmieren: Thymio VPL, Blockly und Aseba Studio. Da man bei Thymio VPL und Blockly mit Blöcken programmiert, gehen wir eher weniger darauf ein. In Aseba Studio kann man den Thymio mit der Programmiersprache Aseba programmieren. Das ist ähnlich wie Java, allerdings ist sie nicht objektbasiert und enthält nicht so viele Klammern. Mit dem Thymio kann man die komischsten Sachen machen. Man kann ihm befehlen, dass er wie ein Staubsauger herumfährt, er kann Musik machen. Man kann ihn sogar zeichnen lassen. Der Thymio besitzt 9 Näherungssensoren, einen Temperatursensoren, ein Gyrosensor, ein Mikrophon, zwei Drehsensoren und 5 Drucksensoren. Alle kann man programmieren. Mit dem Thymio kann man wirklich sehr tolle Sachen machen.




Quelle

Nachschlagen:https://www.thymio.org


Bis bald! Valentin & Marc