In diesem Teil werden wir Thymio so programmieren, dass er auf Erschütterungen reagiert und ein Geräusch macht.
Der Beschleunigungsmesser
Wie kann ein Stoß erkannt werden? Welcher Sensor kann dafür verwendet werden?
Das Erkennen von Stößen ist sehr verbreitet und nützlich. Hier sind einige Beispiele:
- In einem Auto, kann der Stoß der durch eine Kollision verursacht wird detektiert und verwendet werden, um den Airbag aufzublasen.
- In einer Vielzahl von Mobiltelefonen, wenn der Benutzer einmal mit dem Finger oder mehrmals tippt, wird dies erkannt.
- In einem tragbaren Computer, das Erfassen eines Schocks kann verwendet werden, um die Festplatte vor Beschädigung zu schützen.
Diese Art von Ereignis wird mit dem Beschleunigungsmesser festgestellt. Wie aus seinem Namen hervorgeht, misst der Beschleunigungsmesser Beschleunigungen, wie die Schwerkraft. Man kann auch einen freien Fall und Erschütterungen messen.
Beobachten der Aktivitäten des Beschleunigungsmessers
Aseba Studio kann Graphen von Variablenwerten zu machen. Dafür haben wir unser eigenes Ereignis erstellt. Wenn wir die drei Achsen des Beschleunigungsmessers (Beschleunigung in drei Dimensionen gemessen) beobachten wollen, müssen wir ein Ereignis mit drei Argumenten erstellen. Um das zu tun, klicken Sie auf der + um das Ereignis hinzuzufügen, dann geben Sie ihm einen Namen (e.g. my_accelerations) und geben Sie die Anzahl der Argumente (3) an.
Mit den Code können wir jetzt den Beschleunigungswert weitergeben ( (acc Variable in dem Variablen variables Fenster, welche 3 Elemente hat), vom Ereignis acc zu unserem neuen Ereignis my_accelerations welches 3 Argumente übertragen kann:
onevent acc
emit my_accelerations acc
Als nächstes können wir im Ereignisfenster Events, my_accelerations wählen und auf die Grafik-Schaltfläche drücken.
Es öffnet sich ein neues Fenster mit einem Diagramm der 3 Beschleunigungen. Dort können wir sehen, was passiert, wenn der Roboter eingeschaltet ist oder wenn er gestoßen wird.
Hier sehen wir die drei Achsen in drei verschiedenen Farben. Wenn der Roboter auf den Rädern steht, wird die Schwerkraft auf der Z-Achse ( blau) detektiert. Wenn es auf die Seite gelegt wird , wird die Beschleunigung auf einer anderen Achse (der rote) detektiert. Stöße verursachen die Spitzen in den Kurven.
Den Beschleunigungsmesser verwenden
Der Beschleunigungsmesser kann auf verschiedene Arten verwendet werden. Wie wir gesehen haben, die acc Variable gibt die Werte der Beschleunigungen entlang der drei Achsen, und das acc Ereignis findet jedes Mal wenn die Beschleunigungen gemessen werden, statt.
Darüber hinaus gibt es ein tap Ereignis, wenn der Roboter angetippt wird oder einen Stoß bekommt. Dieses Ereignis kann verwendet werden, um ein Geräusch zu machen, wenn der Roboter angetippt wird.
onevent tap
call sound.system(4) # this function allows a system sound to be played