Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den...

47
Erste Schrie in der Robotik mit dem Thymio-II Roboter und der Aseba/VPL Umgebung Moti Ben-Ari und andere Mitwirkende Details in authors.txt Version 1.3~pre1 für Aseba 1.3.1 © 2013–14 Moti Ben-Ari und andere Mitwirkende. Dieser Inhalt ist unter der Creative-Commons-Lizenz vom Typ Namensnennung - Wei- tergabe unter gleichen Bedingungen 3.0 Unported lizenziert. Um eine Kopie dieser Li- zenz einzusehen, besuchen Sie http://creativecommons.org/licenses/ by-sa/3.0/ oder schreiben Sie einen Brief an Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

Transcript of Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den...

Page 1: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Erste Schri�e in der Robotikmit dem

Thymio-II Roboterund der

Aseba/VPL Umgebung

Moti Ben-Ari und andere MitwirkendeDetails in authors.txt

Version 1.3~pre1 für Aseba 1.3.1

© 2013–14 Moti Ben-Ari und andere Mitwirkende.

Dieser Inhalt ist unter der Creative-Commons-Lizenz vom Typ Namensnennung - Wei-tergabe unter gleichen Bedingungen 3.0 Unported lizenziert. Um eine Kopie dieser Li-zenz einzusehen, besuchen Sie http://creativecommons.org/licenses/by-sa/3.0/ oder schreiben Sie einen Brief an Creative Commons, 444 CastroStreet, Suite 900, Mountain View, California, 94041, USA.

Page 2: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Inhaltsverzeichnis

1 Dein erstes Robotikprojekt 5

2 Sich ändernde Farben 12

3 Los, beweg dich 15

4 Ein Roboterhaustier 19

5 Der Roboter findet seinen Weg selbst 25

6 Glocken und Pfeifen 29

7 Angenehme Zeit 32

8 Zustand: Mach nicht immer dasselbe (fortgeschri�en) 34

9 Zählen (Fortgeschri�en) 41

10 Wie weiter? 46

Page 3: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

VorwortWas ist ein Roboter?

Du fährst dein Fahrrad und plötzlich siehst du, dass die Strasse vor dir aufwärts geht.Du tri�st krä�iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurchwirst du auch aufwärts nicht langsamer. Nachdem du oben angekommen bist, gehtes wieder runter. Du betätigst die Bremsen deines Fahrrads damit die Bremsblöckegegen die Räder gedrückt werden. Dadurch wird dein Fahrrad nicht zu schnell. Wenndu Fahrrad fährst, sind deine Augen Sensoren, die deine Umgebung wahrnehmen.Wenn diese Sensoren — deine Augen — ein Ereignis erfassen (zum Beispiel eine Kurveder Strasse), führst du eine Aktion aus (zum Beispiel indem du den Fahrradlenkernach links oder rechts steuerst).

In einem Auto sind Sensoren eingebaut, die messen was in der Umgebung passiert.Der Tachometer misst, wie schnell das Auto fährt. Wenn du siehst, dass das Autoschneller als die Tempolimite fährt, sagst du dem Fahrer, er fahre zu schnell. Daraufkann der Fahrer eine Aktion ausführen, nämlich die Bremse betätigen, damit das Autolangsamer wird. Die Tankanzeige misst, wie viel Benzin noch im Tank des Autos ist.Wenn du siehst, dass die Anzeige zu tief ist, kannst du der Fahrerin sagen, dass sie eineTankstelle suchen muss. Sie kann dann eine Aktion ausführen: Sie kann den Blinkereinschalten und das Steuerrad nach rechts drehen, um zur Tankstelle zu fahren.

Jeder Fahrradfahrer und Autofahrer erhält Informationen von den Sensoren, entschei-det dann welche Aktion nötig ist und verursacht diese Aktionen. Ein Roboter ist einSystem, in welchem dieser Prozess — Informationen erhalten, Entscheidungen tre�en,Aktionen ausführen — von einem Computer ausgeführt wird. Normalerweise machtder Roboter das ohne die Hilfe von Menschen.

Der Thymio Roboter und die Aseba VPL Umgebung

Der Thymio-II ist ein kleiner Roboter, der für Ausbildungszwecke vorgesehen ist(Bild 1.1). Die Sensoren des Roboters messen Licht, Töne und Distanzen und detektie-ren, ob Knöpfe gedrückt werden oder ob an den Roboter geklop� wird. Die wichtigstenAktionen, die durchgeführt werden können sind: Bewegung durch die zwei Räder, diemit je einem Motor angetrieben werden. Weitere Aktionen sind das Erklingenlassenvon Tönen und das An- und Abschalten von Lichtern.

In diesem Dokument wird Thymio II einfachheitshalber Thymio genannt, bezieht sichaber immer auf die Version II des Thymio Roboters.

Aseba ist eine Programmierumgebung für kleine Roboter, wie den Thymio. VPL istein Teil vom Aseba und dient der visuellen Programmierung (visual programming).

3

Page 4: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

VPL wurde Entwickelt, um Thymio auf einfache Art und Weise mit Ereignis- undAktionsblöcken programmieren zu können.

Dieses Tutorial setzt voraus, dass sie Aseba auf ihrem Computer installiert haben. Istdies nicht der Fall, gehen sie aufhttps://aseba.wikidot.com/en:downloadinstall,wählen sie ihr Betriebssystem aus, laden sie das Programm herunter und installierensie dieses auf ihrem Computer.

4

Page 5: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 1

Dein erstes Robotikprojekt

Lerne Thymio kennen

Das Bild 1.1 zeigt den Roboter von vorne. Oben sieht man einen runden Knopf in derMi�e (A) und die vier Richtungsknöpfe (B). Hinter den Knöpfen wird der Ba�eriestandin grün (C) angezeigt. Dahinter sieht man die zwei oberen Lichter (D), die auf roteingestellt sind. Der Roboter hat unten weitere solche Lichter, die auf grün eingestelltsind (Bild 3.2). Die schmalen schwarzen Rechtecke (E) vorne sind Sensoren, die du imKapitel 4 kennenlernen wirst. Beachte die kleinen roten Lichter fürs erste noch nicht.

Abbildung 1.1: Der Thymio Roboter von vorne

5

Page 6: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Abbildung 1.2: Thymio mit USB verbinden

Den Roboter verbinden und VPL starten

Verbinde deinen Thymio Roboter mit einem USB Kabel mit dem Computer. DerRoboter spielt eine kleine Tonabfolge ab und ein grünen Licht leuchtet auf demRoboter. Falls der Roboter ausgeschaltet ist, schalte ihn an, indem du fünf Sekundenden mi�leren Knopf berührst. Starte nun VPL; mache dazu einen Doppelklick auf dasVPL Symbol .

Wichtige InformationWenn ein kleines Icon im Text erscheint, wird ein grösseres Bild davon amSeitenrand angezeigt.

Eventuell startet VPL automatisch. Falls dies nicht der Fall sein sollte, wird das Fensterin Bild 1.2 angezeigt. Wähle die Box Serial, klicke auf Thymio Robot . . . darunter,wähle eine Sprache und klicke dann auf Connect. Abhängig von der Konfigurationdeines Computers und des Betriebssystems, das du verwendest, kann es sein, dass dieEinträge im Fenster und die folgenden Daten des Thymio etwas anders ausschauenals in der Abbildung angezeigt.

TrickEs ist auch möglich VPL aus dem Aseba Studio (text basierte Programmier-umgebeung) heraus zu ö�nen. Das VPL Plug-in befindet sich unten linksim Fenster unter Tool.

6

Page 7: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Die VPL Bedienungsoberfläche

Die Benutzeroberfläche von VPL (Bild ??) ist unten angezeigt. Dieser ist in sechsBereiche aufgeteilt:

1. Oben hat sie eine Symbolleiste mit Symbolen, um Programme zu ö�nen, zuspeichern, auszuführen, etc.

2. Unterhalb der Symbolleiste befindet sich der Bereich, in dem man Programmefür den Roboter konstruieren kann.

3. In einer Anzeige wird angegeben, ob das konstruierte Programm funktioniertoder nicht.

4. Links eine Spalte mit den verfügbaren Eriegnisblöcken.5. Rechts eine Spalte mit den verfügbaren Aktionsblöcken.6. Ganz rechts wird das konstruierte Programm in ein Textprogramm übersetzt.

Die Ereignis und Aktionsblöcke werden im Verlauf dieses Dokumentes genauer be-schrieben.

Abbildung 1.3: VPL Benutzeroberfläche

Weiterführendes WissenWenn Du ein Programm mit VPL erstellst, wir d das Textprogramm, dasin den Roboter geladen wird auf der rechten Seite des Fensters ange-zeigt. Falls du neugierig bist, die Sprache zu verstehen, kannst du dastext mode tutorial lesen unter (http://aseba.wikidot.com/en:thymiotutoriel).

7

Page 8: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Erstelle ein neues Programm

Wenn du VPL ö�nest, ist der Programmierungsbereich leer. Um einen neues leeresProgramm zu starten klicke auf .

Ein VPL Programm besteht aus mehreren (oder auch nur einem) Paar von Ereignisund Aktionsblöcken. Ein Beispiel: Das Paar

verursacht, dass das obere Licht auf dem Roboter rot leuchtet, sobald der Vorwärts-Knopf des Roboters berührt wird.

Wichtige InformationDie Bedeutung eines Ereignis-Aktions Paars ist:Wenn das Ereignis eintri�, wird die Aktion durchgeführt.

Lass uns nun ein Ereignis-Aktions-Paar erstellen. Im Programmierbereich siehst dueine Vorlage, um ein Paar zu erstellen:

Das linke, hellblaue �adrat ist für das Ereignis und das rechte, hell-viole�e �adratfür die Aktion. Um ein Block von der Seite ( Flächen 4 und 5 aus der Abbildung 1.3)in die Programmierumgebung zu verschieben, klickst du mit der linken Maustasteauf das entsprechende Feld und ziehst den Block mit gehaltener Maustaste in dasgewünschte Feld. Durch das Loslassen der Maustaste wird der Block deponiert (dragand drop).

Starte nun mit dem Knopf-Ereignis , indem Du dieses von der linken Ereignis-Auswahl in das linke �adrat ziehst. Wähle nun den Aktionsblock für die oberenFarben aus der rechten Auswahl und ziehe ihn in das rechte �adrat. Du hast nundein erstes Ereignis-Aktions Paar erstellt.

Jetzt können wir das Ereignis und die Aktion so verändern, dass sie machen was wirwollen. Beim Ereignis kannst du zum Beispiel auf den Vorwärts-Knopf klicken; er wirddann rot:

Das bedeutet, dass ein Ereignis sta�findet, wenn der Vorwärts-Knopf auf demThymio Roboter gedrückt wird.

Der Farbaktionsblock hat drei Balken mit den Grundfarben Rot, Grün und Blau. Jederdieser Balken hat ganz links ein weisses �adrat. Die farbigen Balken mit dem weissen

8

Page 9: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

�adrat werden Schieberegler (slider) genannt. Verschiebe das �adrat von linksnach rechts und Du wirst sehen, wie sich die Hintergrundfarbe des Blocks verändert.Dieser zeigt die Farben so an, wie der Roboter leuchten wird. Alle Farben könnendurch Mischen der drei Grundfarben Rot, Grün und Blau erstellt werden. Schiebedas �adrat im roten Balken nun ganz nach rechts und die �adrate im grünen undblauen Balken ganz nach links. Die Farbe des Roboters leuchtet nun rot ohne blauund grün:

Speichere das Programm

Bevor du dein erstes Programm ausführen kannst, musst du es speichern. Klickeauf das Symbol in der Symbolleiste. Du musst dem Programm nun einen Namengeben; wähle einen Namen, der dir später hil�, dich zu erinnern was das Programmmacht (zum Beispiel: rot leuchten). Wähle einen Ort, wo du das Programm speichernmöchtest, z.B. auf dem Schreibtisch (desktop) und drücke Speichern (save)

Führe das Programm aus

Um das Programm auszuführen, musst du auf das Symbol klicken. Jetzt kannstdu den Vorwärts-Knopf auf den Roboter berühren und dann sollte der Roboter rotleuchten.

Gratulation!Du hast dein erstes Programm erstellt und ausgeführt! Das Verhalten desProgramms ist:Wenn der Vorwärtsknopf des Thymio gedrückt wird, wird dieser rot.

Schalte den Roboter aus

Wenn du nicht mehr mit dem Thymio-II Roboter spielen möchtest, kannst du ihnausschalten. Drücke dazu den mi�leren Knopf für fünf Sekunden bis du einige Tönehörst. Die Ba�erie des Roboters wird weiter aufgeladen, solange das Kabel an eineneingeschalteten Computer angeschlossen ist. Die Ba�erie lädt, wenn das kleine Lichtneben dem USB Stecker rot leuchtet. Wenn es blau leuchtet, ist die Ba�erie vollständigaufgeladen (Bild 1.4). Wenn du den Roboter nicht brauchst, kannst Du das USB Kabelausstecken.

9

Page 10: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Abbildung 1.4: Die Rückseite des Thymio Roboters mit dem USB Kabel und derLadeanzeige (blaues Licht)

TrickDu kannst den Roboter schneller aufladen, wenn Du ein Handy Aufladead-apter mit micro-USB Stecker verwendest.

Sollte die Verbindung des USB Kabel während dem Programmieren nicht funktio-nieren, blockiert VPL bis die Verbindung wieder hergestellt wird. Kontrolliere beideEnden des Kabels, stelle die Verbindung wieder her und schaue, ob VPL wieder funk-tioniert. Falls ein Problem au�aucht, kannst Du immer VPL schliessen, den Roboterneu anschliessen und VPL neu starten.

Verändere ein Programm

• Um ein Ereignis-Aktions-Paar zu löschen, klicke auf , das oben rechts nebenjedem Paar angezeigt wird.

• Um ein weiteres Ereignis-Aktions-Paar hinzuzufügen, klicke auf , das unterjedem Paaren angezeigt wird.

• Um ein Ereignis-Aktions-Paar zu verschieben, kannst du es einfach an die neuePosition ziehen.

Ö�ne ein Programm

Angenommen du hast dein Programm gespeichert und den Roboter ausgeschaltet,möchtest aber später wieder an deinem Programm weiter arbeiten. Verbinde denRoboter wie beschrieben und klicke dann auf ö�nen und wähle das Programm,das du ö�nen möchtest (zum Beispiel rot-leuchten). Das Programm wird jetzt imProgrammierbereich angezeigt und du kannst es verändern.

10

Page 11: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Weitere Funktionen der VPL Benutzeroberfläche

In der Symbolleiste (toolbar) findest du weitere Funktionen (features):

• Speichern unter : Klicke auf dieses Symbol, um ein bestehendes Programmunter einem neuen Namen zu speichern. Das ist nützlich, wenn du ein funktio-nierendes Programm hast und dies weiter verändern möchtest, gleichzeitig dasbestehende Programm aber behalten möchtest.

• Stopp : Dieses Symbol stoppt das Programm das gerade auf dem Roboterausgeführt wird und stellt die Geschwindigkeit der Motoren auf Null. Das kannstdu zum Beispiel brauchen, wenn der Roboter nicht mehr selbst stoppt, da demRoboter ein Ereignis- Aktionsblockpaar fehlt, um die Motoren zu stoppen.

• Farbpale�e ändern : Hier kannst du auswählen andere Farbpaare für denHintergrund der Ereignis- Aktionsblöcke auswählen.

• Fortgeschri�ener Modus : Im fortgeschri�enen Modus werden die Zu-standvariablen aktiviert. Diese lernst du im Kapitel 8 kennen.

• Hilfe : Zeigt die VPL Dokumentation in deinem Browser an (dazu wird eineInternet Verbindung benötigt). Die Dokumentation findest du hier: https://aseba.wikidot.com/de:thymiovpl.

11

Page 12: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 2

Sich ändernde Farben

Zeige Farben an

Erstelle ein VPL Programm, das zwei verschiedene Farben oben auf dem Roboteranzeigt, wenn der Vorwärts- oder der Rückwärts-Knopf gedrückt wird. Wenn dieLinks- und Rechts-Knöpfe gedrückt werden, sollen unten am Roboter zwei andereFarben angezeigt werden.

Beispielprogramm colors.aesl

Wir brauchen vier Ereignis-Aktions-Paare, da es vier verschiedene Ereignisse—dasDrücken der vier Knöpfe—gibt. Mit jedem Ereignis ist eine Farbaktion verbunden.Beachte den Unterschiede der Aktions-Blöcke für die obere Farben ( ) und die untereFarben ) des Roboters. Der erste Block ändert die Farben, die auf der Oberseite desRoboters liegen, während der zweite die Farben der Unterseite des Roboters ändert.Im Block für die unteren Lichter sind die Räder als schwarze Balken abgebildet.

Das fertige Programm ist im Abbildung 2.1 dargestellt.

Welche Farben werden angezeigt? In den ersten drei Ereignis-Aktions-Paaren istjeweils eine Grundfarbe alleine gewählt. Die weissen �adrate für die anderen beidenFarben sind jeweils ganz links. Diese drei Aktionen werden also reines Rot, Blau oderGrün anzeigen. Beim letzten Ereignis-Aktions-Paar werden aber zwei Farben gemischt:die weissen �adrate sind bei Rot und Grün ganz rechts. Es wird also Rot und Grüngemischt. Welche Farbe entsteht daraus?

Dieses Programm ist in der Abbildung Abbildung 2.1(a) gezeigt.

Welche Farben werden angezeigt? In den ersten drei Aktionen ist der Schiebereglerjeweils einer Farbe ganz nach rechts verschoben, während die Schieberegler deranderen Farben ganz links liegen. Deshalb werden diese Farben nicht dazugemischtund reines Rot, Blau oder Grün erscheint. Die Aktion, welche mit dem linken Knopfverbunden ist, mixt die Farben Rot und Grün, was Gelb ergiebt. Im Hintergrund siehstdu wie sich die Farben ändern je nach Position des Schiebereglers. Die Farbe desHintergrundes zeigt an, in welcher Farbe Thymio leuchten wird.

Lass das Programm (Icon ) laufen und überprüfe, ob sich durch das Drücken derKnöpfe die Farben des Roboters ändern. Abbildung 1.1 zeigt Thymio auf der Oberseiterot leuchtend und Abbildung 3.2 zeigt Thymio auf der Unterseite grün leuchtend.

12

Page 13: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Übung 2.1Spiele mit dem Farbbalken und finde heraus welche Farben du anzeigenkannst. Wie kannst du orange mischen?

Information

Rot Grün

Blau

Rot Grün

Blau

Durch Mischen rot, grün und blau, können Sie jede Farbe machen!

Schalte die Lichter aus

Lass uns nun das Programm so verändern, dass alle Lichter ausgehen, wenn dermi�lere Knopf berührt wird. Wir brauchen also zwei neue Ereignis-Aktions-Paare.Eines um die oberen und ein zweites, um die unteren Lichter aus zu schalten. Damitdie Lichter ausgehen, müssen wir alle drei Schieberegler nach ganz links verschiebenAbbildung 2.1(b). So wird keine Farbe angezeigt und die Lichter werden ausgeschaltet.

Das Ereignis ist jetzt für beide der neuen Ereignis-Aktions-Paare dasselbe— dasDrücken des mi�leren Knopfes—aber die Aktionen sind unterschiedlich.—das Aus-schalten der Oberlicher und das Ausschalten der Unterlichter.

Vergiss nicht das Icon zudrücken, damit das Programm geladen wird. In Zukun�werden wir diese Erinnerung nicht mehr bringen. Du brauchst jedoch jedesmal dieseFunktion, um ein Programm zum Laufen zu bringen.

13

Page 14: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

(a) Die Farben verändern sich, wenn einKnopf berührt wird.

(b) Lösche die Lichter mit dem mi�lerenKnopf.

Abbildung 2.1: Spiele mit den Lichter von Thymio

Mehrere Ereignis-Aktions-Paare• Wenn ein Programm ausgeführt wird, werden alle Ereignis-Aktions-Paare

gleichzeitig ausgeführt.• Man kann mehrere Ereignis-Aktions-Paare mit dem gleichen Ereignis

konstruieren, solange sie verschiedene Aktionen haben.• Sind zwei Ereignis-Aktions-Paare gleich (gleiches Ereignis und gleiche

Aktion), zeigt VPL eine Fehlermeldung an. (Feld 3 in Abbildung 1.3). Esist nicht möglich ein Programm laufenzulassen solange Fehlermeldungenangezeigt werden.

14

Page 15: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 3

Los, beweg dich

Vorwärts- und rückwärtsfahren

Der Thymio Roboter hat zwei Motoren mit denen er seine zwei Räder unabhängigantreiben kann. Beide Motoren können vorwärts und rückwärts drehen. Dadurchkann der Roboter vorwärts und rückwärts fahren. Lass uns mit einem kleineen Projektstarten bei dem du mehr über die Motoren lernst.

Der Aktions-Block für die Motoren zeigt ein kleines Bild des Roboters in derMi�e mit zwei Schieberegler links und rechts. Mit den beiden Balken kannst du dieGeschwindigkeit der beiden Motoren einstellen, mit dem linken Balken die des linkenMotors und mit dem rechten Balken die des rechten Motors. Wenn das weisse �adratin der Mi�e ist, dreht der Motor nicht. Du kannst die Geschwindigkeit ändern indemdu das weisse �adrat verschiebst. Wenn du das �adrat nach oben schiebst, drehtder Motor immer schneller vorwärts. Schiebst du es nach unten, dreht der Motorrückwärts.

Erstelle ein Programm, um den Roboter vorwärts fahren zu lassen, wenn der Vorwärts-Kopf gedrückt und rückwärts, wenn der Rückwärts-Knopf gedrückt wird.

Beispielprogramm moving.aesl

Wir brauchen zwei Ereignis-Aktions-Paare (Abbildung 3.1). Ziehe die Ereignis- und Ak-tionsblöcke in die Programmierumgebung und stelle für beiden Motoren die Schiebe-regler auf halbe Geschwindigkeit ein. Dies indem du die �adrate für Vorwärtsfahrenhalb nach oben und für Rückwärtsfahren halb nach unten verschiebst.

Führe das Programm aus und drücke die Knöpfe, um den Roboter vorwärts- undrückwärts fahren zu lassen.

15

Page 16: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Abbildung 3.1: Vorwärts- und rückwärtsfahren

Stoppe den Roboter

Hilfe! Ich kann die Motoren des Roboters nicht mehr stoppen!

Klicke auf das Symbol , um den Roboter zu stoppen.

Lass uns diese Problem beheben, indem wir ein neues Ereignis-Aktions-Paar hinzufü-gen:

Dieses soll die Motoren stoppen, wenn der mi�lere Knopf gedrückt wird. Wenn duden Motoraktionsblock in die Programmierumgebung ziehst, sind die Schiebereglerin der Mi�e, was die Motoren abstellen lässt.

Falle nicht vom Tisch

Wenn der Roboter auf dem Boden fährt, kann er im schlimmsten Fall in eine Wandfahren oder sein USB Kabel herausziehen. Aber wenn der Roboter auf einem Tischfährt, kann er auf den Boden fallen und kapu� gehen! Lass uns den Roboter soprogrammieren, dass der Roboter stoppt sobald er an die Tischkante gelangt.

Achtung !Wenn der Roboter auf einem Tisch fährt, musst du bereit sein, um ihnaufzufangen, falls er herunterfällt.

Drehe deinen Thymio auf den Rücken. Nun siehst du, dass er unten zwei kleine,schwarze Rechtecke mit optischen Elementen hat (Bild 3.2). Das sind Bodensensoren.Diese senden Infrarotlichtimpulse aus und messen wieviel Licht relektiert wird. Aufeinem hellen Tisch wird viel Licht reflektiert. Fährt der Roboter über die Tischkantewird wenig Licht reflektiert. Tri� dies ein, möchten wir, dass der Roboter stoppt.

16

Page 17: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

TrickBenutze einen hellen Tisch aber keinen aus Glas, da von diesem kein Lichtreflektiert wird. Thymio kann dann nicht erkennen, ob er auf einem Tischist oder nicht.

Ziehe das Bodensensor-Ereignis in dein Programm. Oben hat dieser Block zweikleine �adrate. Wenn du sie anklickst, werden sie weiss, rot und dann wieder grau.Die Farben haben verschiedene Bedeutungen:

• Grau: Der Sensor wird nicht gebraucht.

• Rot: Ein Ereignis passiert, wenn viel Licht reflektiert wird.

• Weiss: Ein Ereignis passiert, wenn wenig Licht reflektiert wird.

InformationGrau, rot und weiss, die für diesen Aktionsblock verwendet werden, wurdenzufällig ausgewählt und könnten auch durch andere ersetzt werden.

Klicke auf die �adrate bis beide weiss sind, um den Roboter zu stoppen, wenn wenigLicht reflektiert wird. Erstelle das Ereignis-Aktions-Paar:

Stelle den Roboter mit der Vorderseite nahe an die Tischkante und drücke den Vor-wärtsknopf. Der Roboter sollte bis zur Tischkante fahren und dann stoppen.

Übung 3.1Probiere verschiedene Geschwindigkeiten mit dem Roboter aus. Kann derRoboter auch bei der schnellsten Geschwindigkeit noch rechtzeitig stoppen,um nicht vom Tisch zu fallen? Falls nicht, wie schnell kannst du ihn einstellen,damit er noch rechtzeitig stoppen kann? Kannst du ein Herunterfallenverhindern, indem du die Räder rückwärtsdrehen lässt, ansta� die Motorennur zu stoppen?

TrickAls ich das Programm laufen liess, fiel der Roboter vom Tisch. Der Grund war,dass mein Tisch runde Kanten ha�e; als der Roboter eine geringe Reflektiondetektierte, war es schon zu spät und der Roboter rutschte vom Tisch. MeineLösung war, dass ich ein schwarzes Klebeband an den Tischrand anbrachte.

17

Page 18: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Abbildung 3.2: Unterseite des Thymio Roboters mit zwei Bodensensoren in dervorderen Häl�e.

18

Page 19: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 4

Ein RoboterhaustierIn diesem Kapitel machen wir den Thymio zu einem autonomen Roboter. Wir pro-grammieren ihn so, dass er unabhängige Verhalten hat, wie dies normalerweise mitKatzen oder Hunde in Verbindung gebracht wird. Diese Verhalten können wir mi�elsRückkkoppelung erreichen: Der Roboter nimmt ein Ereignis in der Umwelt mit seinenSensoren wahr und verändert seine Aktionen entsprechend.

Der Roboter gehorcht dir

Zuerst lehren wir den Roboter, uns zu gehorchen. Und zwar so, dass er sich normaler-weise nicht bewegt; wenn er aber deine Hand vor sich wahrnimmt, soll er zu deinerHand fahren.

Der Roboter hat vorne fünf horizontale Distanzsensoren und zwei hinten. Diese sindähnlich aufgebaut, wie die Bodensensoren auf der Unterseite des Roboter, die wirin Kapitel 3 benutzt haben. Führe deine Hand langsam näher an die Sensoren desRoboters. Wenn deine Hand nahe genug ist, leuchtet ein kleines, rotes Licht nebendem Sensor auf und zeigt so an, dass die Hand erkannt wurde (Abbildung 4.1).

Der Block wird gebraucht, um zu erfahren, ob etwas nahe am Sensor ist oder nicht.Beide Fälle werden als Ereignis gewertet. Die schmalen, grauen �adrate (fünf vorneund zwei hinten) können wahrnehmen, wann ein Ereignis sta�findet. Indem auf ein�adrat gedrückt wird, ändert sich dieses von grau auf weiss, von weiss auf rot undzurück auf grau. Die Beduetung der Farben ist für diesen Block:

• Grau: Der Sensor beeinflusst das Programm nicht.

Abbildung 4.1: Die Vorderseite des Thymio. Zwei Distanzsensoren haben die Fingererkannt.

19

Page 20: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Abbildung 4.2: Bewegung zu der Handhin

Abbildung 4.3: Ein Bulldozer mit Rau-penantrieb

• Rot: Eine Aktion wird ausgelöst, falls ein Objekt im Bereich des Sensors ange-geben wird.

• Weiss: Eine Aktion wird gestartet, falls kein Objekt im Bereich des Sensorsangegeben wird.

Boden- und horizontale SensorenAchte darauf, das Verhalten der horizontalen Sensoren nicht mit dem Ver-halten der Bodensensoren zu verwechseln.• Bei den horizontalen Sensoren bedeutet ein weisses �adrat, dass ein

Ereignis sta�findet, wenn nichts in der Nähe ist. Während ein rotes �adratbedeutet, dass ein Ereignis sta�findet, wenn etwas in der Nähe ist.

• Bei den Bodensensoren bedeutet ein weisses �adrat, dass ein Ereig-nis sta�findet, wenn nur wenig Licht reflektiert wird. Während ein rotes�adrat bedeutet, dass ein Ereignis statfindet, wenn viel Licht reflektiertwird.

Das physikalische Prinzip dieser beiden Typen von Sensoren ist ähnlich.Wegen deren verschiedener Platzierung ist ihr Verhalten jedoch verschieden.

Damit ein bestimmtes Verhalten des Roboters ausgelöst wird, brauchen wir die beidenEreignis-Aktions Paare, wie in der Abbildung 4.2 gezeigt. Das erste Paar besteht ausdem zentralen vorderen Sensor mit der Einstellung weiss. Die dazugehörige Aktion ist,dass die Motoren ausgeschaltet werden. Somit wird der Roboter stehen bleiben, fallser schon still gestanden ist oder anhalten, falls er in Bewegung war. Das zweite Paarbesteht aus dem zentralen vorderen Sensor mit der Einstellung rot. Die dazugehörigeAktion ist, dass beide Motoren schnell laufen, indem die �adrate der Schiebereglerganz nach oben geschoben werden. Falls du nun deine Hand vor den Roboter hältst,wird eine Aktion ausgelöst, die bewirkt, dass beiden Motoren rasch vorwärtsdrehenund der Roboter sich vorwärts auf die Hand zubewegt.

20

Page 21: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Steuere den Thymio Roboter

Der Thymio Roboter hat kein Steuerrad wie ein Auto oder einen Lenker wie einFahrrad. Wie kann der Roboter nun gelenkt werden? Der Roboter benutzt ein Di�e-rentialgetriebe, welches ähnlich funktioniert wie bei Raupenfahrzeugen, z.B. einemBulldozer (Abbildung 4.3). Die gewünschte Richtung wird anstelle eines Steuerradsmit unterschiedlichen Geschwindigkeiten des linken und des rechten Rades erreicht.Dreht das rechte Rad schneller als das linke, biegt das Fahrzeug nach links ab unddreht das linke Rad schneller als das rechte, biegt das Fahrzeug rechts ab.

In VPL kannst du das Di�erentialgetriebe anwenden, indem du den linken und rechtenSchieberegler des Motoraktionsblock einzeln einstellst und dadurch die Geschwein-digkeit der Räder verschieden einstellen kannst. Je grösser der Unterschied der Ge-schwindigkeiten, desto enger wird die Kurve. Indem die Räder in unterschiedlicheRichtungen drehen, wird ein möglichst grosser Unterschied der Geschwindigkeitenerreicht. Tatsächlich dreht sich das Fahrzeug auf der Stelle, falls sich die Räder mitder genau gleichen Geschwindigkeit in entgegengesetzter Richtung bewegen.

Zum Beispiel wird im Aktionsblock der linke Regler auf schnelle Geschwindigkeitrückwärts und der rechte Regler auf schnelle Geschwindigkeit vorwärts eingestellt.Als Resultat wird der Roboter eine enge Linkskurve vollführen, wie dies auf demkleinen Bild des Roboter bzw. des Motoraktionsblocks dargestellt ist.

Experimentiere mit dem Ereignis-Aktions Paar:

Stelle den linken und den rechten Regler ein. Lass das Programm laufen und drückeden zentralen Schalter. Um den Roboter zu stoppen, klicke auf . Nun kannst Du dieRegler ändern und es erneut ausprobieren.

TrickDas Icon des Thymio in der Mi�e des Motoraktionsblock zeigt eine Anima-tion der Bewegung des Roboters, wenn du die Regler einstellst.

Der Roboter mag dich

Ein echtes Haustier folgt dir manchmal. Damit der Roboter deiner Hand folgt, musstdu zwei weitere Ereignis-Aktions Paare hinzufügen. Falls der Roboter ein Objekt vorseinem ganz links platzierten Distanzsensor wahrnimmt, soll er nach links und fallser ein Objekt vor seinem ganz rechts platzierten Distanzsensor wahrnimmt, soll ernach rechts abbiegen.

Program file likes.aesl

21

Page 22: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

(a) Der Roboter mag dich (b) Der Roboter mag dich nicht

Abbildung 4.4: Programm für das Roboterhaustier

Das Programm für “der Roboter mag dich” besteht aus zwei Ereignis-Aktions Paaren(Abbildung 4.4(a)). Probiere die Regler an jedem Motoraktionsblock aus!

Übung 4.1Modifiziere den Haustierroboter so, dass er vorwärts fährt, falls das Pro-gramm am laufen ist und dass er stoppt, falls er das Ende des Tisches (oderein Klebeband) wahrnimmt.

Wie in Kapitel 3 erklärt, wird von einer weissen Oberfläche viel Licht reflektiert,währen von einer schwarzen Oberfläche wenig Licht reflektiert wird. Je nach Bodenoder Tisch musst du entscheiden, wann du auf das weisse oder das rote �adratdrückst, abhängig vom Boden oder Tisch auf den du den Roboter setztst.

Übung 4.2Was passiert, falls Du die Reihenfolge des Ereignis-Aktions Paares änderst,welches Du in der vorangegangenen Übung verwendet hast?

Der Roboter mag dich nicht

Manchmal mag dein Roboterhaustier in schlechter Laune sein und von deiner Handzurückweichen. Erstelle ein Programm, welches dieses Verhalten auslöst.

Program file does-not-like.aesl

Ö�ne das Programm für den Haustierroboter, der Dich mag und ändere die Zusam-menhänge für die Ereignisse mit den Aktionen. Das Erkennen eines Hindernisses beimlinken Sensor bewirkt, dass der Roboter nach rechts abbiegt, während das Erkenneneines Hindernisses beim rechten Sensor bewirkt, dass der Roboter nach links abbiegt(Abbildung 4.4(b)).

22

Page 23: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

1 onevent prox2 if prox.horizontal[2] < 400 then3 motor.left.target = 04 motor.right.target = 05 end6 if prox.horizontal[2] > 500 then7 motor.left.target = 3008 motor.right.target = 3009 end

10 if prox.horizontal[0] > 500 then11 motor.left.target = -30012 motor.right.target = 30013 end14 if prox.horizontal[4] > 500 then15 motor.left.target = 30016 motor.right.target = -30017 end

Abbildung 4.5: Ein VPL-Programm und die entsprechenden Textprogramm.

Übung 4.3Experimentiere mit der Auswahl der Sensoren. Die horizontalen Sensorenwerden vorne von links nach rechts wie folgt nummeriert 0,1, 2, 3, 4. Diehinteren Sensoren sind Sensor Nummer 5 auf der linken und Sensor Nummer6 auf der rechten Seite. Verwende andere Sensoren anstelle von den Sensoren0 und 4.• Benutze Sensor 1 bzw. Sensor 3, um den Roboter nach links bzw. nach

rechts abbiegen zu lassen.• Benutze die Sensoren 0 und 1 bzw. 3 und 4, um den Roboter nach links

bzw. nach rechts abbiegen zu lassen.• Füge Ereignis-Aktions Paare für die hinteren Sensoren 5 und 6 hinzu.

Stelle die Regler genau ein (fortgeschri�en)

Es ist schwierig die Regler so präzise einzustellen, dass die Motoren z.B. mit exaktderselben Geschwindigkeit laufen. Indem die Übersetzung der Ereignis-Aktions Paareim Texteditor betrachtet werden, kann die Genauigkeit erhöht werden. Abbildung 4.5zeigt das Programm, welches bewirkt, dass der Haustierroboter dich mag und dirfolgt mit der Übersetzung als Text auf der rechten Seite des VPL Fensters. Der Textwird automatisch angepasst, wenn du Ereignis-Aktionspaare veränderst.

Die Zeile onevent prox bedeutet: Immer wenn das Ereignis “Messen der hori-zontalen Distanz” des Distanzsensors (Näherungssensor: englisch proximity sensor,abgekürzt prox) sta�findet (dies findet 10 mal pro Sekunde sta�), wird die folgenden

23

Page 24: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Zeilen des Programms ausgeführt:

Wenn das Ereignis sta�findet, vergleicht Thymio die Sensorenwerte mit der Bedingungif . . . then . . . end. Er startet mit dem Testen von Sensor 2 (vorne in der Mi�e), wiewir in prox.horizontal[2] erkennen können. Falls dieser Wert geringer als 400ist, stellt Thymio die Geschwindigkeit des linken und rechten Motors auf 0, sieheZeile motor.left.target = 0 und motor.right.target = 0.

Jede Zeile if . . . then . . . end testet einen spezifischen Sensor und führt die verbun-dene Aktion aus oder nicht aus, je nach Resultat des Testes. Daher ist es mit einemEreignis-Aktionspaar verbunden:

0. Test, ob nichts in der Mi�e ist. Ist das wahr, stoppt Thymio.1. Test, ob etwas in der Mi�e ist. Ist das wahr, fährt Thymio vorwärts.2. Test, ob etwas links von der Mi�e ist. Ist das wahr, fährt Thymio nach links.3. Test, ob etwas rechts von der Mi�e ist. Ist das wahr, fährt Thymio nach rechts.

Hat Thymio schlussendlich alle diese Sensoren ausgewertet, wartet er auf das nächsteEreignis prox und startet diese Tests von neuem undendlich o�.

Benütze die AsebaStudio (Kapitel 10), um Programme im Textmodus zu schreiben.

TrickWenn du die Regler der Motorenaktionsblöcke bewegst, siehst du, dassdu die Endgeschwindigkeit der Motoren (moter.X.target) in 50igerSchri�en von−500 bis 500 verändert kannst. Indem du die Regler vorsichtigbewegst, kannst Du die Geschwindigkeit auf jeden dieser Werte einstellen.

24

Page 25: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 5

Der Roboter findet seinen Weg selbstEine Wanderung in den Bergen ist ein einfaches Vorhaben: Nimm dir ein Paar Wander-schuhe und folge dem Pfad. Für einen Roboter, kann das Folgen einer Linie ebenfallssehr nützlich sein. Stell Dir ein Lagerhaus mit Roboterwagen vor, welche Gegenständevon einer zentralen Verteilstelle herbringen. Dazu werden Linien auf den Boden desLagerhauses gezeichnet und die Roboter erhalten die Anweisung bestimmten Linienzu folgen, bis diese den Lagerplatz für den gewünschten Gegenstand erreichen. Umdies tun, muss der Roboter diese Linien erkennen können. Schreibe ein Programm,welches den Roboter einer Linie auf dem Boden folgen lässt.

Program file follow-line.aesl

Die Aufgabe "Der Roboter folgt der Linießeigt alle Unsicherheiten bei der Konstruktionvon Robotern in der echten Welt auf. So kann es sein, dass die Linie zum Beispiel nichtperfekt ist, Staub kann auf der Linie liegen und diese abdecken, Dreck führt eventuelldazu, dass ein Rad weniger schnell ist wie das andere. Damit der Roboter der Liniefolgt, benötigt der Roboter eine Steuereinheit, die entscheidet, wieviel Leistung jederMotor benötigt, abhängig von den Daten, die von den Sensoren geliefert werden.

Die Linie und der Roboter

Um der Linie zu folgen, benutzen wir die Bodensensoren (Kapitel 3). Erinnere dichdaran, dass diese Sensoren durch das Aussenden von Infrarotlicht (unsichtbar fürdas menschliche Auge) und dem Messen des reflektierten Lichts funktionieren. Fallsder Boden von heller Farbe ist, wird der Sensor viel reflektiertes Licht wahrnehmenund das Ereignis wird ausgelöst. Somit brauchen wir eine Linie, die eine Ereignisauslöst, falls wenig Licht reflektiert wird . Das lässt sich einfach mit dem Aufmaleneiner schwarzen Linie oder mit dem Anbringen eines schwarzen Isolierklebebandesauf den Boden bewerkstelligen (Abbildung 5.1(a)). Das Klebeband muss breit genugsein, damit beide Bodensensoren die schwarze Fläche erkennen können, solangeder Roboter erfolgreich dem Klebeband folgt. Ein Klebeband mit der Breite von 5Zentimetern genügt dem Roboter, um dem Klebeband folgen zu können. Die Breitekann auch ein wenig variieren.

Zuerst bringen wir den Roboter dazu, sich vorwärts zu bewegen, falls beide Sensoreneine dunkle Oberfläche (das schwarze Klebeband) erkennen und stoppen, falls beideSensoren eine helle Oberfläche (nicht das Klebeband, sondern den Boden) erkennen.Die Ereignis-Aktions Paare sind in der folgenden Abbildung 5.2(a) gezeigt.

25

Page 26: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

(a) Thymio folgt einer Klebebandlinie (b) Der linke Sensor ist neben und der rechteSensor auf dem Klebeband

Abbildung 5.1: Thymio auf einem schwarzen Klebeband

(a) Starte und stoppe den Roboter (b) Korrektur der Richtungsabweichung

Abbildung 5.2: Ein Programm, um der Linie zu folgen

TrickVersichere dich, dass das USB Kabel lange genug ist (ca. 2m), damit derThymio auch in Bewegung mit dem Computer verbunden bleibt. Verlänge-rungskabel findest du in jedem Computershop.

Deine erste Steuerungseinheit

Der nächste Schri� besteht im Programmieren der Steuerungseinheit, die den Roboterder Linie folgen lässt.

• Falls der Roboter nach der linken Seite vom Klebeband abkommt, wird derlinke Sensor den Boden erkennen, während der rechte Sensor immer noch

26

Page 27: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

das Klebeband erkennt. In diesem Fall soll der Roboter ein wenig nach rechtsabbiegen

• Falls der Roboter nach der rechten Seite vom Klebeband abkommt, wird derrechte Sensor den Boden erkennen, während der linke Sensor immer nochdas Klebeband erkennt. In diesem Fall soll der Roboter ein wenig nach linksabbiegen.

Zwei Ereignis-Aktions Paare werden gebraucht (Abbildung 5.2(b)).

Setzen der Parameter

Es ist einfach zu erkennen, dass der Roboter, falls er von der linken Seite des Klebe-bands abkommt, wie in Abbildung Abbildung 5.2(b) nach rechts drehen muss, aber wieweit nach rechts? Falls die Drehung zu gering ausfällt, wird der rechte Sensor eventuellauch vom Klebeband abkommen, bevor der Roboter auf die Spur zurückgelangt. Fallsder Roboter jedoch zu stark nach rechts dreht, riskiert der Roboter die Klebeband Spurauf der anderen Seite zu verlieren. In jedem Fall sind starke Drehungen gefährlich fürden Roboter und jegliches Gut, welches er transportiert.

In diesem Programm können die Geschwindigkeiten des linken und des rechten Mo-tors auf jedem Aktionsblock der Motoren verändert werden. Experimentiere solangemit diesen Werten, bis der Roboter zuverlässig läu�. Zuverlässig heisst hier, dass derRoboter mit denselben Programmeinstellungen mehrmals erfolgreich der Linie folgt.Platziere bei jedem Versuch den Roboter ein wenig anders in Bezug auf die Richtungund Position zum Klebeband. Das Programm muss mehrmals getestet werden, umdie Zuverlässigkeit zu überprüfen.

Es gibt viele Arten, wie die Motorenaktionsblöcke eingestellt werden können, umdie Drehung zu kontrollieren, damit der Roboter auf der Linie bleibt. Die vorwärts-gerichtete Geschwindigkeit entlang des Klebebands ist eine wichtige Einflussgrösse(Parameter). Ist der Roboter zu schnell, ist dieser schon vom Klebeband weggefahren,bevor die Drehbewegung die Richtung des Roboters verändern konnte. Ist der Roboterjedoch zu langsam, wird dir natürlich niemand deinen Roboter abkaufen und in einemLagerhaus einsetzen.

Was soll Thymio tun, falls er von der Linie fährt? Falls er eine enge Kurfe fährt (dazukannst du einen Motor vorwärts und den Anderen rückwärts laufen lassen), findetder Roboter rasch zur Linie zurück, die Bewegung des Roboters wird jedoch ruckartig.Andererseits, wenn der Roboter nur eine leichte Drehung vollführt (dazu kannst duden einen Motor etwas schneller als den Anderen laufen lassen), wird der Robotersich zwar flüssig bewegen, eventuell jedoch die Linie verlieren. Experimentiere, bis dueinen guten Kompromiss gefunden hast.

27

Page 28: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Übung 5.1Der Roboter stoppt, falls beide Sensoren erkennen, dass sie vom Klebe-band abgekommen sind. Verändere das Programm so, dass der Robotereine geringe Drehung nach links vollführt mit der Absicht das Klebebandwiederzufinden. Versuche es auf einem Klebeband mit einer Linkskurve, wiein der Abbildung 5.1(a) angezeigt. Versuche die Vorwärtsgeschwindigkeitdes Roboters zu erhöhen. Was passiert, wenn der Roboter das Ende desKlebebandes erreicht hat?

Übung 5.2Verändere das Programm aus der vorangehenden Übung so, dass der Roboternach rechts dreht, falls er vom Klebeband abkommt. Was passiert? Es wärewünschenswert, wenn der Roboter sich erinnern könnte, welchen Sensorals letzter den Kontakt zum Klebeband verloren hat, um den Roboter indie korrekte Richtung zu führen, um das Klebeband wieder zufinden. InKapitel 8 werden wir lernen, wie Informationen gespeichert werden können.

Übung 5.3Experimentiere mit unterschiedlichen Anordnungen des Klebebandes:• weiten Kurven• engen Kurven• zickzack Linien• breiteren Linien (benutze dazu die doppelte Klebebandbreite)• schmaleren Linien (schneide dazu das Klebeband in zwei Häl�en)Veranstalte mit deinen Freunden Roboterrennen: Welcher Roboter folgterfolgreich den meisten Linien? Welcher Roboter fährt am schnellsten eineLinie ab?

Übung 5.4Bespreche den E�ekt der folgenden Veränderungen auf den Thymio Roboterund dessen Fähigkeit der Linie zu folgen.• Die Messereignisse der Bodensensoren erfolgen ö�ers bzw. weniger o�

als 10 Mal pro Sekunde.• Die Sensoren sind weiter auseinander bzw. näher beisammen.• Es gibt mehr als zwei Bodensensoren am Boden des Roboters.

28

Page 29: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 6

Glocken und PfeifenLass uns eine Pause von den schwierigen Aufgaben, wie dem folgen einer Linie machenund etwas Spass mit dem Roboter haben. Wir zeigen dir, wie der Roboter Musik spielenkann, auf Töne antwortet oder auf Berührung reagiert.

Spiele Musik

Der Thymio Roboter enthält ein Synthesizer und Du kannst diesen programmieren,um einfache Melodien zu spielen, indem du den Aktionsblock Musik benutzst:

Program file bells.aesl

Du wirst kein neuer Beethoven werden—da nur sechs Noten, in fünf Tonlagen undzwei Tonlängen zur Verfügung stehen—aber du kannst eine Melodie komponieren,die dein Roboter einzigartig macht. Die Abbildung 6.1 zeigt zwei Ereignis-AktionsPaare, welche mit einer Melodie antworten, falls der vordere oder der hintere Knopfgedrückt wird. Jedem Ereignis ist eine andere Melodie zugeordnet.

Die kleinen Kreise sind die sechs Noten. Die weissen Noten sind lange Tonlängenund schwarze Noten sind kurze Tonlängen. Klicke auf den Kreis, um die Tonlänge zuändern. Die fünf farbigen, horizontalen Balken stehen für die Tonhöhe. Klicke auf

Abbildung 6.1: Spiele eine Melodie

29

Page 30: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

den Balken über oder unter dem Kreis, um den Kreis zu bewegen. (Versuche nicht dieKreise zu verschieben (drag and drop), es wird nicht funktionieren).

Übung 6.1Schreibe ein Programm, das dir erlaubt eine Morsebotscha� zu verschicken.Eine Morsebotscha� wird mit langen und kurzen Tönen kodiert. (Striche fürlange Töne und Punkte für kurze Töne). Zum Beispiel wird der Buchstabe Vmit drei Punkten und einem Strich kodiert.

Kontrolliere deinen Roboter durch Töne

Der Thymio hat ein Mikrofon. Das Ereignis findet sta�, wenn ein lautes Geräuschaufgenommen wird, wie z.B. Händeklatschen. Das Ereignis-Aktions Paar:

wird die Bodenlichter einschalten, wenn du in die Hände klatschst.

InformationIn einer lauten Umgebung kann ein Geräusch eventuell nicht als Ereignisverwendet werden, da durch den hohen Geräuschepegel dauernd Ereignisseausgelöst werden.

Übung 6.2Schreibe ein Programm, dass den Roboter losfahren lässt, wenn du in dieHände klatschst und den Roboter stoppt, wenn du auf den Schalter drückst.

Schreibe ein Programm, das umgekehrt funktioniert: Der Roboter soll losfah-ren, wenn du auf den Schalter drückst und stoppen, wenn du in die Händeklatschst.

Gute Arbeit Roboter!

Haustiere machen nicht immer das, was wir von ihnen verlangen. Manchmal brauchensie einen freundscha�lichen Klaps um sie zu ermutigen. Genau gleich funktioniert dasmit deinem Roboter. Der Thymio enthält ein Berührungssensor, welcher ein Ereignisauslöst , falls dem Roboter kurz auf seine Oberseite geklop� wird. So bewirkt zumBeispiel das Ereignis-Aktions Paar

30

Page 31: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

dass die Lichter angehen, falls auf die Oberseite des Roboters geklop� wird.

Erstelle ein Programm für dieses Ereignis-Aktions Paar und eines für das folgendePaar

welches die Bodenlichter angehen lässt, wenn Du in die Hände klatschst.

Program file whistles.aesl

Kannst du nur die Oberlichter anstellen? Dies ist schwierig, da ein Klaps immer auchein Geräusch erzeugt, welches laut genug sein kann, um ebenfalls die Bodenlichteranzustellen. Mit ein bisschen Übung wird es dir jedoch möglich sein, dem Roboterein so gefühlsvollen Klaps zu geben, dass das Geräusch kein Ereignis auslöst.

Übung 6.3Schreibe ein Programm, dass den Roboter vorwärts fahren lässt bis er dieWand berührt.

Versichere dich, dass der Roboter langsam fährt und sich dadurch nichtselbst beschädigt.

31

Page 32: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 7

Angenehme ZeitIm Kapitel 4 haben wir ein Roboterhaustier programmiert, das uns entweder magoder nicht mag. Nun stellen wir uns ein etwas komplizierteres Verhalten vor: einschüchternes Haustier, welches sich nicht entscheiden kann, ob es uns mag oder nicht.Anfänglich wird das Haustier sich unserer Hand zuwenden, dann aber zurückweichenund schlussendlich sich wieder zu unserer Hand hinbewegen.

Program file shy.aesl

Das Verhalten des Roboters ist wie folgt: Falls der Rechte Schalter berührt wird,bewegt sich der Roboter nach rechts, falls er deine Hand wahrnimmt, bewegt ersich nach links, aber nach einer Weile bereut er die Entscheidung und bewegt sichwieder zurück. Wir wissen, wie wir die Ereignis-Aktions Paare für die erste Bewegungerstellen

und wie für das Zurückbewegen, falls deine Hand erkannt wird

Das Verhalten des Zurückweichens nach einer Weile kann in zwei Ereignis-AktionsPaare zerlegt werden.

• Falls der Roboter sich wegbewegt→ starte eine Timer für zwei Sekunden.

• Falls der Timer null erreicht→ drehe nach rechts ab.

Wir brauchen eine neue Aktion für das erste Verhalten und ein neues Ereignis für daszweite Verhalten.

Die Aktion ist ein Timer einzustellen, welcher wie ein Wecker funktioniert . Nor-malerweise stellen wir den Wecker auf eine bestimmte Zeit ein, aber falls ich denWecker auf meinem Smartphone auf eine bestimmte Zeit einstelle, wird mir diese alsZeitdauer angegeben: “Wecker läutet in 11 Stunden und 23 Minuten”. Der Timerblockarbeitet auf die selbe Art und Weise. Der Timer wird auf eine bestimmte Anzahl Se-kunden eingestellt, sobald das Ereignis sta�findet und die Aktion ausgelöst wird. DerTimer kann auf bis zu vier Sekunden eingestellt werden. Klicke irgendwo innerhalb

32

Page 33: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

des schwarzen Kreises, wo die Oberfläche der Uhr gezeigt wird (aber nicht auf denschwarzen Kreis selber). Nach einer kleinen Animation wir die Zeitdauer des Timers(bis der Alarm ausgelöst wird) in blauer Farbe angezeigt.

Das Ereignis-Aktions Paar für das erste, oben beschriebene Verhalten ist:

Der Timer ist auf zwei Sekunden eingestellt. Falls das Ereignis Handerkennung sta�-findet, werden zwei Aktionen ausgelöst: Drehung des Roboters nach links und Startendes Timers.

Der zweite Teil dieses Verhaltens benötigt ein Ereignis, das sta�findet, falls der Alarmausgelöst wird. Dieses tri� ein, falls die eingestellte Zeit auf Null abgelaufen ist. DerEreignisblock zeigt dann einen klingelnden Wecker.

Das Ereignis-Aktions Paar ist

dass der Roboter zurück nach rechts drehen lässt, wenn der Timer abgelaufen ist.

Übung 7.1Schreibe ein Programm, welches den Roboter bei Höchstgeschwindigkeit fürdrei Sekunden vorwärts fahren und danach wieder zurückkehren lässt, fallsder Vorwärtsschalter gedrückt wird. Füge ein Ereignis-Aktions Paar hinzu,dass die Fahrt des Roboters stoppt, falls der zentrale Schalter gedrückt wird.

33

Page 34: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 8

Zustand: Mach nicht immer dasselbe(fortgeschri�en)Das Programm in VPL ist eine Liste von Ereignis-Aktions Paaren. Alle Ereignisse werdeeins nach dem anderen überprü�, ob sie sta�finden und falls ja, wird die dazugehörigeAktion ausgelöst. Danach beginnt die Überprüfung von vorne. Wir möchten nun, dasseinige Ereignis-Aktions Paare zu einer bestimmten Zeit aktiv sind und andere nicht.Zum Beispiel in Kapitel 5, falls der Roboter vom Klebeband abkommt, möchten wir,dass er nach links oder nach rechts dreht, um das Klebeband zu suchen, je nach derSeite auf welcher er das Klebeband verloren hat.

Zustände werden im fortgeschri�enen VPL Modus ausgeführt. Klick auf , bevor dumit den folgenden Projekten arbeitest.

Klopf, klopf

In vielen Programmen haben wir ein Schalter benutzt, um ein Verhalten des Robotersauszulösen und einen anderen, um dieses wieder zu stoppen. Stell Dir nun den Start-schalter deines Computer vor. Hier wird derselbe Schalter benutzt, um diesen ein-oder auszuschalten. Der Schalter weiss in welchem Zustand er sich gerade befindet:eingeschaltet oder ausgeschaltet. Der Schalter wird durch ein kleines grünes Lichtbeleuchtet, um anzuzeigen in welchem Zustand er sich gerade befindet.

Schreibe ein Programm, dass die Lichter des Roboters anstellt, falls er berührt wirdund wieder abstellt, wenn er ein zweites Mal berührt wird.

Program file tap-on-o�.aesl

Das benötigte Verhalten wird in einem Zustandsdiagramm dargestellt:

&%'$

aus &%'$

ein-klopfen→ einschalten

� klopfen→ ausschalten

Im Diagramm sind zwei Zustände durch Kreise angezeigt, die mit den Namen desZustandes eingeschaltet und ausgeschaltet angeschrieben sind. Der Roboter kannvon dem Zustand eingeschaltet zum Zustand ausgeschaltet und zurück wechseln,aber nur durch das Befolgen der Instruktionen die auf den Pfeilen angegeben sind.Diese Ereignis-Aktions Paare bedeuten:

34

Page 35: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

• Falls im Zustand ausgeschaltet ein Klopfen sa�findet,→ schalten die Lichterein und wechselt der Zustand auf eingeschaltet.

• Falls im Zustand eingeschaltet ein Klopfen sa�findet,→ schalten die Lichteraus und wechselt der Zustand auf ausgeschaltet.

Das fe� hervorgehobene Wort “und” vor dem Pfeil → bedeutet, dass es zwei Be-dingungen gibt, die wahr sein müssen, damit der Umschaltvorgang ausgeführt wird.(a) Der Roboter muss in einem bestimmten Zustand sein und (b) das Ereignis musssta�finden. Wenn beide Bedingungen wahr sind, wird das Umschalten durchgeführt,dies führt dazu, dass der Status geändert und die Aktion ausgelöst wird, die nachdem Pfeil→ geschrieben steht.

Es ist wichtig zu verstehen, dass die zwei Teile der Bedingung unabhängig sind. Indem oben aufgeführten Diagramm (hier wiederholt):

&%'$

aus &%'$

ein-klopfen→ einschalten

� klopfen→ ausschalten

erscheint das Ereignis Klopfen zweimal, aber die Aktion, ausgelöst durch das Sta�-finden eines Ereignisses hängt von dem Zustand des Roboters ab, indem sich diesergerade befindet.

Ähnlich, wie in einem Einzelzustand, können verschiedene Ereignisse verschiedeneAktionen auslösen und Umschaltungen in verschiedene neue Zustände bewirken, wieim folgenden Diagramm:

����

aus

����

ein2

-����

ein1

-

linker Knopf→ leuchte grün

rechter Knopf→ leuchte rot

Das Drücken des linken Knopfs während dem Zusand aus führt dazu, dass ein grünesLicht eingeschaltet wird und der Zustand wechselt zu Zustand ein1, während dasDrücken des rechten Knopfes im selben Zustand dazu führt, dass eine andere Aktionausgelöst wird, nähmlich dass ein rotes Licht eingeschaltet wird und der Zustand ineinen anderen Zustand, nähmlich Zustand ein2 wechselt.

Die Umsetzung Zustandsdiagramme mit Ereignis-Aktions-Paare

Abbildung 8.1 zeigt die Durchführung des beschriebenen Verhaltens in der Zustands-maschine als Ereignis-Aktions-Paaren.

35

Page 36: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

(a) Klopfe, um ein - und auszuschalten (b) Klopfe, um den Zustand zu wechseln

Abbildung 8.1: Klopfen führt zu verschieden Resultaten abhängig vom Zustand

Im ersten Ereignis-Aktions Paar, ist das Ereignis zusammengesetzt aus dem Berüh-rungsblock und der Anzeige des Zustandes :

Die Zustände werden durch die Viertel eines Kreises angezeigt. Jedes Viertel kannentweder eingeschaltet (orange) oder ausgeschaltet (weiss) sein. Wir benützen daslinke obere Viertel, um anzuzeigen, ob die Lichter eingeschaltet oder ausgeschaltetsind. Bei diesem Paar ist das linke obere Viertel weiss. Das bedeutet, dass der Zustandauf ausgeschaltet steht. Die Bedeutung von dieser Paar ist, dass falls der Roboterberührt wird und die Lichter ausgeschaltet sind, diese eingeschaltet werden.

Ähnlich bedeutet das zweite Ereignis-Aktions Paar, dass falls der Roboter berührtwird und die Lichter an sind, diese abgeschaltet werden:

Wenn du das Zusstandsdiagramm des Roboters betrachtest, wirst du bemerken,dass erst die Häl�e der Arbeit erledigt ist. Beim Ein- und Ausschalten der Lichtermüssen ebenfalls die Zustände des Roboters geändert werden von eingeschaltetauf ausgeschaltet. Dazu schreiben wir zwei zusätzliche Ereignis-Aktions Paare undbenutzen dazu den Aktionsblock Zustand (Abbildung 8.1(b)).

Die Bedeutung von der folgende Paar ist: Falls der Roboter berührt wird im Zustandausgeschaltet, ändere den Zustand auf eingeschaltet:

Die Bedeutung von der folgende Paar ist: Falls der Roboter berührt wird im Zustandeingeschaltet, ändere den Zustand auf ausgeschaltet:

36

Page 37: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Bezogen auf das ganze Programm, welches aus den vier Paaren aus der Abbildung 8.1zusammengesetzt ist, sehen wir, dass jedes Ereignis zwei Aktionen auslöst: Einschaltendes Lichts und Änderung des Zustands des Roboters. Beides, die Aktion und dieÄnderung des Zustandes hängt vom Zustand des Roboters ab, in welchem er sichgerade befindet. Dieser Zustand wird IST-Zustand genannt.

In wie vielen verschiedenen Zuständen kann sich derRoboter befinden?

Die Zustände werden durch die Viertel eines Kreises angezeigt. Sowohl als Ereignis,als auch im Zustands Aktionsblock kann jedes Viertel folgende Bedeutung haben.

• Weiss: Das Viertel befindet sich im Zustand ausgeschaltet ;

• Orange: Das Viertel befindet sich im Zustand eingeschaltet ;

• Grau: das Viertel wird nicht berücksichtigt;

Bei sind das linke obere und das rechte untere Viertel im Zustand eingeschaltet.Das Viertel rechts oben ist auf dem Zustand ausgeschaltet und das Viertel linksunten wird nicht berücksichtigt. Das bedeutet, dass falls mit dem Ereignisblockverbunden ist, ein Ereignis sta�findet, falls die Zustände auch wie folgt gesetzt sind:

or

Da jedes der vier Viertel entweder ein- oder ausgeschaltet sein kann, sind 2 × 2 × 2× 2 = 16 verschiedene Zustände möglich.

(aus, aus, aus, aus)(aus, aus, aus, ein)(aus, aus, ein, aus)

. . .(ein, ein, ein, aus)(ein, ein, ein, ein).

Abbildung 8.2(a) zählt all die Zustände graphisch auf.

37

Page 38: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

(a) Alle möglichen Züstande von Tyhmio (b) Der LED Kreis zeigt, die unterschiedli-chen Zustände auf

Abbildung 8.2: Die Zustände von Tymio und deren Repräsentation

Wichtige InformationDer Ist-Zustand des Roboters wird im Kreis der LED Lampen auf der Ober-seite des Computers angezeit. Abbildung 8.2(b) zeigt den Roboter mit denZuständen (ein, ein, ein, ein)

InformationWird ein Programm gestartet, sind die ursprünglichen Zustände (aus, aus,

aus, aus): .

TrickFalls du nicht alle 16 verschiedene Zustände benötigst, sondern z.B. nur 2oder 4, bist du frei zu entscheiden, welche Viertel du benütztst, um deineZustände wiederzugeben. Zusätzlich, wenn du zwei verschiedene Dingeprogrammierts und jeder hat davon zwei mögliche Werte, kannst du zweiViertel unabhänig voneinander benutzen. Deshalb ist die Wahlmöglichkeitnicht berücksichtigen so nützlich!

Erwische die Maus

Schreibe ein Programm, dass den Roboter nach links und rechts drehen lässt, um eineMaus zu suchen. Wird eine Maus mit dem äussersten linken Sensor entdeckt, wird

38

Page 39: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

(a) Die Katze hat die Maus gefunden (b) Suchen mit dem äußersten rechtenSensor

Abbildung 8.3: Der Roboter Katze ist für die Maus suchen

die Suche fortgesetzt, bis die Maus von dem äussersten rechten Sensor entdeckt wird.Nun ist die Position des Roboters genau gegenüber der Maus (Abbildung 8.3(a)).

Program file mouse.aeslDas Ereignis-Aktions Paar

führt dazu, dass der Roboter nach links abdreht. Dies findet nur sta�, falls das lin-ke obere Viertel im Zustand ausgeschaltet ist. Am Anfang sind alle Zustände aufausgeschaltet.

Das erste Ereignis-Aktions Paar in Abbildung 8.3(b) wartet bis die Maus mit demäussersten linken Sensor entdeckt wird. Beachte, dass das schmale �adrat danebenweiss ist, sodass das Ereignis nur sta�findet, falls nur der äusserste rechte Sensoreine Maus erkennt. Das Zweite Ereignis-Aktions Paar in der Abbildung ändert denZustand Abbildung 8.3(b).

Das letzte Ereignis-Aktions Paar im Programm ist

Dieses bewirkt, dass der Roboter stoppt, falls die Maus direkt vor dem mi�leren Sensorzu liegen kommt.

Warum muss das Ereignis dieses Paares von einem Zustand abhängig sein? Der Grundist, dass der mi�lere Sensor die Maus auch beim Scan von links nach rechts erkennenwird. Wir wollen, dass der Roboter jedoch einen vollen Scan vollbringt, bevor er zur

39

Page 40: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Position der Maus zurückkehrt. Deshalb ist es notwendig, dass diese erste Entdeckungder Maus ignoriert wird. Dies wird erreicht, indem der Scan erst gestoppt wird, fallsder Zustand auf eingeschaltet und dieser erst beim Abschluss des vollständigenScans auf eingeschaltet geändert wird.

TrickExperimentiere mit der Position der Maus. Ist diese zu nahe am Roboter,werden die Sensoren zu beiden Seiten die Maus ebenfalls erkennen. DasEreignis findet jedoch nur sta�, wenn die äusseren Sensoren die Maus nichterkennen

Übung 8.1Schreibe ein Programm, das den Roboter tanzen lässt: Der Roboter soll fürzwei Sekunden nach links und dann für drei Sekunden nach rechts drehen.Diese Bewegung soll unendlich o� wiederholt werden.

Übung 8.2 (schwierig)Verändere das Folge der Linie Program aus dem Kapitel 5 so, dass der Roboternach links dreht, falls dieser die Linie auf die rechte Seite verlässt und nachrechts dreht, falls dieser die Linie auf die linke Seite verlässt.

40

Page 41: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 9

Zählen (Fortgeschri�en)In diesem Kapitel zeigen wir, wie die Zustände des Thymio Roboters benutzt werdenkönnen, um zu zählen und einfache Aritmetik zu betreiben. Das Design und dieEinführung des Projektes wird nicht im Detail präsentiert. Wir nehmen an, dass dunun genügend Übung hast, um diese selbständig zu entwickeln. Der �ellcode einesfunktionierenden Programms ist im Archiv abgelegt, aber schaue nicht nach, ausser dukommst wirklich nicht weiter, um ein Problem lösen zu können. Dieses Projekt benutztdas Klatschereignis, um den Zustand zu ändern und das voreingestellte Verhalten derLED Lichter, um die Zustände im Kreis anzuzeigen.

Wichtige InformationDer Ist-Zustand des Roboter wird im LED Kreis auf der Oberseite des Ro-boters angezeigt. Abbildung 8.2(b) zeigt den Roboter in den Zuständen(ein,ein,ein,ein).

Fühle dich frei, eines dieser Verhalten zu ändern.

Grad und ungrade Zahlen

ProgrammWähle einen Viertel der Zustände. Es wird aus (weiss) anzeigen, wenn dueine gerade Anzahl Mal in die Hände klatschst und ein (orange) anzeigen,wenn du eine ungerade Anzahl Mal in die Hände klatschst. Wenn du denmi�leren Knopf drückst, wird der Zustand auf gerade zurückgestellt (0ist ebenfalls eine gerade Zahl).

Programm file count-to-two.aesl

Unsere Methode zu zählen, zeigt das Konzept modulo 2 Arithmetik auf.

Wir starten zu zählen von 0 bis 1 und wieder zurück zu 0.

Der Ausdruck modulo entspricht dem Ausdruck Rest : Falls 7 Mal in die Hände ge-klatscht wurde, wird die 7 durch 2 geteilt, dies ergibt 3 Rest 1. Nun merken wir unsnur den Rest.

In modulo 2 Arithmetik, werden 0 und 1 o� gerade und ungerade genannt.

41

Page 42: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Ein anderer Ausdruck für das selbe Konzept ist die zyklische Arithmetik. Gezählt wirdanstelle von 0 zu 1 und dann von 1 zu 2, wird im Kreis wieder zurück zum Anfanggezählt: 0, 1, 0, 1, . . . .

Diese Konzepte sind uns sehr vertraut, da sie auch in Uhren verwendet werden.Minuten und Sekunden werden modulo 60 gezählt und Stunden modulo 12 odermodulo 24. Deshalb ist die Sekunde nach der 59 Sekunde nicht die 60igste Sekundesonder die 0te. Wir zählen im Kreis und beginnen wieder bei 0. Ähnlich die Stunden:Nach 23 kommt nicht 24, sondern 0. Wenn es 23:00 Uhr ist und wir abmachen uns in3 Stunden zu tre�en, dann ist die abgemachte Zeit für das Trefen 26 modulo 24, was02:00 Uhr in der Nacht ist.

Unäres Zählen

Ändere das Programm, um mit modulo 4 zu zählen. Es gibt vier möglicheReste: 0, 1, 2, 3. Wähle drei Viertel, jeder repräsentiert davon einen Wertvon 1, 2 oder 3, der Wert 0 wird durch den Zustand alle Viertel auf ausrepräsentiert.

Diese Methode die Zahlen zu repräsentieren wird unäre Repräsentation genannt, diesdurch die verschiedenen Elemente, die die Zustände der verschiedenen Nummernrepräsentieren. Wir benützen o� unäre Repräsentation, um beim Zählen verschiedenerObjekte mithalten zu können. Zum Beispiel:

��� repräsentiert 6.

Program file count-to-four.aesl

Übung 9.1Wie hoch können wir mit Thymio zählen, wenn wir unäre Repräsentationverwenden?

Binäres Zählen

Wir sind sehr vertraut mit Stellenwertsystemen oder Zahlensystemen, speziell mit demDezimalsystem mit der Basis 10. Die Symbole 256 im Dezimalsystem repräsentierennicht drei verschiedene Objekte. Sta�dessen repräsentiert die 6 die Einer, die 5 dieZehner 10×1=10’s und 2 die Hunderter 10×10×1=100’. Erst durch das Hinzufügendieser Faktoren erhalten wir die Zahl Zweihundertsechsunfüngzig. Indem wir dieBasis 10 verwenden, können wir sehr grosse Nummern in einer kompakten Darstellungzusammenfassen. Zudem ist die Arithmetik mit grossen Zahlen relativ einfach, benutztman die Methoden, die man in der Schule gelernt hat.

Wir benutzen die 10er Repräsentation, weil wir 10 Finger haben. So ist es einfachdiese Repräsentation zu lernen. Computer dagegen haben nur zwei “Finger” (aus und

42

Page 43: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

ein). Deshalb wird die Basis 2 Arithmetik beim Programmieren verwendet. Die Basis2 oder Binäre Arithmetik ist uns am Anfang fremd, weil ähnliche Symbole 0 und 1wie im Dezimalsystem zur Basis 10 benutzt werden. Die Kreiszählung beginnt nunaber schon bei 2 und nicht erst bei 10.

0, 1, 10, 11, 100, 101, 110, 111, 1000, . . .

Gibt man uns eine Binärnummer wie 1101, lesen wir sie von links nach rechts wie beiden Dezimalzahlen. Die rechteste Zahl repräsentiert die Zahl der 1er, die nächste Zahldie 1×2=2er, danach die 1×2×2=4er und die Zahl am meisten links die 1×2×2×2=8er.1101 repräsentiert deshalb die Zahl 1+0+4+8, was Dreizehn ergibt oder zur 10 Basisausgedrückt 13.

ProgrammVerändere das Prgramm mit dem du in modulo 4 gezählt hast in einbinäres Repräsentationssystem.

Program Order count-to-four-binary.aesl

Wir benötigen nur zwei Viertel der Zustände, um die Nummern 0–3 mit der Basis2 auszudrücken. Lass das Viertel rechts oben die 1er repräsentieren, aus (weiss) fürNull und ein (orange) für Eins und das Viertel links oben repräsentiert die 2er. Sorepräsentiert zum Beispiel der Zustand die Nummern 1 und der Zustand dieNummer 2. Falls beide Viertel weiss sind, repräsentiert der Zustand die Zahl 0 undwenn beide Viertel orange sind, repräsentieren die Zustände die Zahl 3.

Es gibt vier Umschaltungen 0 → 1, 1 → 2, 2 → 3, 3 → 0, so werden vier Ereignis-Aktions Paare benötigt und zusätzlich noch ein Paar, um das Programm in den An-fangszustand zurückzuversetzen, wenn der mi�lere Knopf gedrückt wird.

TrickDie zwei unteren Viertel werden nicht benutzt, deshalb bleiben sie grau undwerden durch das Programm ignoriert.

Übung 9.2Erweitere das Programm, dass es in modulo 8 zählt. Das untere linke Viertelrepräsentiert die 4er.

Übung 9.3Wie hoch können wir mit dem Thymio zählen, wenn wir binäre Repräsenta-tion verwenden?

43

Page 44: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Addition und Subtraktion

Ein Programm zu schreiben, um bis 8 zählen zu können ist ziemlich mühsam, dadu 8 Ereignis-Aktions Paare programmieren musst, eines für jede Umschaltung vonn to n + 1 (modulo 8). Natürlich zählen wir nicht so in einem Basiszahlensystem,sta�dessen haben wir Methoden um Additionen auszuführen, indem Zi�ern zu jedemPlatz zugefügt werden und von da zum nächsten Platz mitgenommen werden können.Im Zahlensystem mit der Basis 10 wird dies so dargestellt:

387

+426

813

und ganz ähnlich im Zahlensystem mit der Basis 2:

0011

+1011

1110

Indem wir 1 zu 1 addieren, ergibt das nicht 2 sondern 10. Die 0 wird in der selbenSpalte geschrieben und die 1 wird in die Spalte nach links verschoben. Das Beispieloben zeigt die Addition von 3 =(0011) und 11(=1011) was 14 ergibt (=1110).

ProgrammSchreibe ein Programm, das mit der Repräsentation von 0 beginnt. JedesMal in die Hände klatschen, fügt 1 zu der Nummer hinzu. Die Additionist modulo 16, deshalb folgt auf 15 addiert mit 1 gleich 0.

Anleitung:

• Das untere linke Viertel wird gebraucht, um die 8er zu repräsentieren.

• Wenn das rechte obere Viertel die 1er repräsentiert und 0 (weiss) anzeigt, änderedies einfach auf 1 (orange). Mach dies egal was die anderen Viertel anzeigen.

• Wenn das obere rechte Viertel die 1er repräsentiert und 1 (orange) anzeigt,ändere dies auf 0 (weiss) und behalte dann 1. Das gibt drei Ereignis-AktionsPaare, abhängig von der Anordnung des nächsten Viertels, das 0 (weiss) anzeigt.

• Wenn alle Viertel 1 anzeigen (orange) wird 15 repräsentiert, wird 1 zu 15 modulo16 addiert, ergibt dies 0, repräsentiert indem alle Viertel 0 (weiss) anzeigen.

Programm Ordner addition.aesl

44

Page 45: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Übung 9.4Ändere das Programm so, dass es mit 15 beginnt und mit jedem Mal Klat-schen 1 substrahiert bis 0 und dann wieder bei 15 beginnt.

Übung 9.5Platziere eine Sequenz mehrerer kurzer schwarzer Klebebänder auf eine helleOberfläche (oder helles Klebeband auf eine dunkle Oberfläche). Schreibeein Programm, dass den Thymio vorwärts bewegen lässt und stoppt sobalder das vierte Klebeband detektiert hat.

Diese Aufgabe ist nicht einfach: Die Klebebandstreifen müssen genügend weit ausein-ander plaziert werden, damit der Roboter sie entdeckt, aber nicht so weit, dass nichtmehr als ein Ereignis pro Streifen sta�findet. Du musst ebenfalls mit der Geschwin-digkeit des Roboters experimentieren.

45

Page 46: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Kapitel 10

Wie weiter?Dieses Tutorial hat den den Thymio Roboter und die Aseba/VPL Umgebung eingeführt.Die VPL Umgebung mit ihrer simplen visuellen Programmierung ist für Anfängergedacht. Du wirst jedoch die Aseba Studio Umgebung kennenlernen wollen, umfortgeschri�ene Programme für deinen Roboter entwickeln zu können. (Figure 10.1).

Abbildung 10.1: Aseba Studio Umgebung

Programmieren im Aseba Studio ist auch auf dem Konzept der Ereignis-Aktions Paareaufgebaut, aber dir stehen viele weitere Möglichkeiten zur Verfügung:

• Du kannst genau bestimmen, wann ein Ereignis sta�findet, z.B. abhängig vomLicht, welches vom Boden zu einem Bodensensor reflektiert wird, oder dieDistanz zu einem horizontalen Sensor.

• Du kannst einzelne Aktionen aus mehreren verschiedenen Aufgaben zusam-mensetzen, wie Kontrolle der Motoren, Änderung der Einstellungen, setzen vonGrenzwerten, Ein- und Ausschalten der Lichter.

• Du hast die Flexibilität einer vollwertigen Programmiersprache mit Variablen,Befehlen und Kontrollfunktionen.

46

Page 47: Thymio-II Roboter - Home - Thymio & Asebathymiovpl/...Du tri˛st krä˝iger in die Pedale, um den Rädern mehr Energie zuzuführen. Dadurch wirst du auch aufwärts nicht langsamer.

Aseba Studio gibt dir Zugang zu den folgenden Eigenscha�en des Thymio, welchenicht in VPL zugänglich sind:

• Du kannst alle Lichter kontrollieren, wie den Lichtkreis, der die Schalter umgibt.

• Du bist flexibler bei der Komposition von Melodien.

• Es gibt einen Temperatursensor.

• Anstelle des Erkennens eines Schlages, können die Beschleunigungsmesserdie Gravitation und Geschwindigkeitsänderungen in allen drei Dimensionenerkennen.

• Eine Fernsteuerung kann mit dem Roboter benützt werden.

Falls Du mit Aseba Studio arbeitest, kannst Du VPL ö�nen, indem Du das Feld LaunchVPL unten links drückst. Du kannst VPL ins Aseba Studio importieren, einfach durchö�nen des Files.

Um Aseba Studio zu benutzen, starte von der Thymio Programmierseite auf :https://aseba.wikidot.com/en:thymioprogramund folge dem Link Text Programming Environment.

Du findest viele interessante Projekte unter der folgenden Seite:https://aseba.wikidot.com/en:thymioexamples.

Viel Spass und lerne viel!Danke, dass du das Tutorial gelesen hast!

47