LED einschalten und mit den Tasten spielen

In diesem Teil werden wir den Thymio so programmieren, dass er die Farbe ändert, wenn die Tasten gedrückt werden.

Die LED-Lämpchen

Ein LED-Lämpchen ist der Teil in Deinem Roboter, der das Licht erzeugt. Jedes LED hat eine feste Farbe (rot, grün oder blau). Zum Beispiel gibt es vorne rote LED-Lämpchen, oben grüne usw. Wie Du schon weisst, kann man die Farbe des Roboters verändern. Dies ist möglich, weil jeweils drei einzelne LED-Lämpchen (rot, grün, blau) in einer Gruppe montiert wurden. Diese Basisfarben kannst Du zu neuen Farben zusammenfügen. Wenn zum Beispiel das rote und das blaue LED-Lämpchen leuchten, entsteht daraus die Farbe violett. Eine Gruppe bestehend aus drei LED-Primärfarben heisst RGB LED. (RGB steht für rot, grün, blau).

rvb.png

LED-Lämpchen einschalten

Um ein LED-Lämpchen einzuschalten, musst Du dem Roboter mit einem Befehl d.h. Code, sagen, was er machen soll.

Falls Du die LED-Lämpchen steuern möchtest, klicke in vordefinierte Funktionen auf leds. Jetzt solltest du eine Liste von verschiedenen Funktionen sehen. (Funktionen ist der Name eines Befehls, welcher der Roboter versteht.) Diese Funktionen, die du in der Liste siehst, schalten die LED-Lämpchen ein und aus. Zum Beispiel schaltet die Funktion leds.top die oberen, kreisförmig angeordneten LED-Lämpchen ein.

functionsDE.png

In der Mitte von Aseba Studio kannst Du Deine Befehle, Deinen Code eingeben. Damit die gleichen Codes auf der ganzen Welt benutzt werden können, sind die Codes in Englisch geschrieben. Schreibe jetzt auf Englisch deinen ersten Kode für den Roboter Thymio:

call leds.top(0,0,32)

Das Stichwort call heisst "aufrufen" und wird verwendet, um eine Funktion auszuführen. Wie Du nun schon weisst, kontrolliert leds.top die obersten RGB LED-Lämpchen. In die Klammern werden Argumente geschrieben; sie geben genauere Angaben zur Funktion (meist Zahlen). Übrigens: wenn Du nicht genau weisst, was eine Funktion machen wird, kannst Du lange mit der Maustaste auf dem Funktionsnamen bleiben und eine kurze Informationsbox über die Funktion wird angezeigt.

definitionDE.png

Für leds.top gibt es drei Parameter, welche jeweils die Helligkeit der einzelnen RGB LED-Lämpchen, also rot, grün und blau, anzeigen. Lämpchen mit dem Wert 0 sind ausgeschaltet, das Maximum der Helligkeit der Lämpchen ist 32. Alle Werte zwischen 0 und 32 verändern die Helligkeit des Lämpchens. Wenn du also den Wert 16 eingibst, scheint das Lämpchen nur halb so stark wie beim Wert 32.

Klicke nun auf Laden, und dann Ausführen. Der Roboter Thymio sollte nun dein Programm ausführen und die blauen LED-Lämpchen leuchten lassen.

Ändere den Kode nun zu:

call leds.top(32,0,0)

Jetzt hast du programmiert, dass die roten LED-Lämpchen leuchten. Probiere nun diesen Kode aus:

call leds.top(0,32,32)

Jetzt sollten deine LED-Lämpchen Cyanblau leuchten. Wenn du ein wenig mit den Werten herumspielst, kannst du neue Farben aufleuchten lassen.

Bedingungen

Wenn du auf Ausführen in Aseba Studio klickst, startet der Roboter das in Aseba Studio eingegebene Programm. Zum Beispiel beginnen die LED-Lämpchen beim oben erwähnten Kode zu leuchten. Es ist auch möglich, einen Knopf auf dem Roboter zu bestimmen, der genau das Gleiche wie Ausführen macht. Um herauszufinden, welcher Knopf gerade gedrückt wird, kannst du die Variablen in button.name im Speicher überprüfen.

Screen%20Shot%202012-05-03%20at%204.21.30%20PM.png

= Hier siehst du, dass der Knopf, der nach vorne zeigt (Nummer 3), gedrückt wird.

In diesem Fall wird die Bedingung, dass ein Knopf gedrückt wird, um das Programm zu starten folgendermassen geschrieben: Benutze die Bedingung if … then … else … end (wenn…dann…sonst…Ende). Dies sagt dem Roboter zum Beispiell WENN der Knopf (Nummer 3) gedrückt ist, DANN schalte das LED-Lämpchen ein. In Aseba Studio wird dies folgendermassen geschrieben:

if button.forward==1 then        #wenn der Knopf nach vorne gedrückt (1) ist, 
    call leds.top(0,0,32)        #dann schalte das blaue LED-Lämpchen ein
else
    call leds.top(0,0,0)         #sonst schalte alle LED-Lämpchen aus
end

Dieser Kode sagt dem Roboter, dass er das blaue LED-Lämpchen einschalten soll, wenn die Bedingung erfüllt ist, dass der Knopf nach vorne (button.forward) gedrückt ist. Falls die Bedingung nicht erfüllt wurde, soll das LED-Lämpchen nicht leuchten.

Wenn du nur diesen Kode eingibst, wirst du bemerken, dass der Kode nur am Anfang des Programms einmal funktioniert. Wenn du aber möchtest, dass das LED-Lämpchen jedes Mal aufleuchtet, wenn du den Knopf drückst, dann muss regelmässig überprüft werden, ob der Knopf gedrückt ist oder nicht. Dafür brauchst du ein Ereignis.

Ereignisse

Wann immer das Ereignis Buttons (also jemand der Sensor des Eingabeblocks eine Berührung erfährt) eintritt, soll der Roboter prüfen, ob Button (1) gedrückt wird (ob die jeweiligen Bedingungen erfüllt sind) damit die entsprechenden Kodes ausgeführt werden. Im linken Fenster in Aseba Studio siehst du eine Liste der möglichen lokalen Ereignisse.

evenementsv3.png

Das buttons Ereignis entspricht dem Moment, in dem überprüft wird, welche Knöpfe gerade gedrückt sind. Deshalb genügt es, eine einzige Zeile Kode zum bereits geschriebenen Kode hinzuzufügen.

#Jedes Mal, wenn die Knöpfe gedrückt sind
onevent buttons
if button.forward==1 then    #wenn der Knopf nach vorne gedrückt (1) ist, 
    call leds.top(0,0,32)        #dann schalte das blaue LED-Lämpchen ein
else
    call leds.top(0,0,0)         #sonst schalte alle LED-Lämpchen aus
end

Nun kannst du den Kode testen mit Laden und Ausführen. Die LED-Lämpchen des Roboters sollten nun immer blau werden, wenn der Knopf nach vorne gedrückt wird und sonst sollte das blaue LED-Lämpchen nicht leuchten.
Es gibt noch viele andere Ereignisse: Motor für die Motoren, acc für den Beschleuniger usw.

vorherige Seite | nächste Seite

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License