Scratch für Arduino

download unter http://s4a.cat/

Zuerst muss die Firmware auf den Arduino geladen werden, dann startet man s4a. Die Firmware ist nichts anderen als ein kleines Arduinoprogramm.
Achtung, da sowohl die Arduinoprogrammierumgebung, als auch die S4A-Software über den seriellen Port (COM-Schnittstelle) mit dem Arduino kommunizieren, darf immer nur eines der zwei Programme gestart sein, da sich diese sonst die COM-Schnittstelle gegenseitig blockieren.

Es ist auch möglich den Entfernungssensor über Scratch anzusprechen. Dies ist allerdings nicht mit der Standardfirmware möglich, sondern mit einer Abwandlung. Hier downloaden.

Ein kleines Beispielprogramm zum Auslesen der Sensorwerte und ein kleines Spiel kann man hier downloaden.

Snap4Arduino

Ein ähnlicher Ansatz hat Snap4Arduino.

Bevor man mit Snap4Arduino arbeiten kann, nuss man über die Arduino Software die Firmata -Software auf den Arduino laden. Diese ist bei der Arduino - IDE dabei und unter Datei > Beispiele > Firmata > StandardFirmata zu finden.

https://snap.berkeley.edu/

https://www.cs.uni-potsdam.de/~mprz/uploads/Anleitung_Snap4Arduino_MyIG_und_Grove.pdf

Tutorial für Scratch

Programmiere das einfache Spiel (Scratch in 5 Minuten) mit eigenen Figuren und eigenem Hintergrund (Bühne) nach. 

Aufgabe: Entwicklung eines sensorgesteuerten Spiels

Entwickle ein Spiel, in welchem die Steuerung eines Objektes mit dem Beschleunigungssensor und zusätzlich mit Hilfe eines Schalters geschieht.

Damit sich das Objekt auf der gesammten Bühne bewegen kann, muss man die Sensorwerte in die Koordinaten umrechnen.

Umrechnen der Sensorwerte

Umrechnen der Sensormesswerte

Oftmals möchte mein Objekt in Scratch in Abhängigkeit von Messwerten eines Sensors steuern. Hierzu müssen die Messwerte, die aus einem bestimmten Intervall kommen in Werte eines anderen Intervalls umgerechnet werden.

Zuerst bestimmt man das Intervall der möglichen Messwerte. Das Intervall geht von $a=A_{min}$ bis $b= A_{max}$. Diese erhält man mit Hilfe eines kleinen s4a - Srcipts bzw. durch Beobachten der angezeigten Werte. Das Zielintervall ist im Falle der y-Koordinate: [-180 ; + 180] = [c; d] oder im Falle der x-Koordinate: [-240; + 240] = [c; d]. Möchte man andere Dinge steuern, wie z.B. einen Winkel, so muss man das Zielintervall entsprechend anpassen.

Zur Umrechnung muss man eine Gerade aufstellen, die durch die Punkte $P(a|c)$ und $Q(b|d)$ geht.

Beispiel: Bekommt man man Bewegen des Sensors in x-Richtung Werte $A$ zwischen 450 und 650, so hat die gesuchte Gerade die Steigung $m= {480 \over 200}$, die x-Koordinate berechnet sich dann mit $x(A) = {480 \over 200} \cdot (x-450) -240$.  

Beispieldateien:

Beispiele.zip (89,1 KiB)
Datenlogger

Datenlogger

Auf der Bühne werden die Sensorwerte der analogen Eingänge A3, A4 und A5 angezeigt. Prinzipiel wäre es möglich alle 6 analogen Eingangswerte anzuzeigen.
Das Arduinoobjekt speichert fortlaufend die Eingangswerte in den 3 globalen Variablen A3, A4 und A5.   Für jeden analogen Sensorwert gibt es ein Objekt, welches fortlaufend die x-Koordinate ändert und die y- Koordinate entsprechend des Sensorwertes ändert. Dazu werden die Sensorwerte, die theoretisch Werte zwischen 0 und 1023 annehmen können, auf das Koordinatensystem der Scratchbühne umgerechnet.

 

Einfaches Spiel / Bestimmen der Maximal- und Minimalwerte

Einfaches Spiel / Bestimmen der Maximal- und Minimalwerte

Im Spiel bewegen sich grüne und blaue Rechtecke von links nach rechts. Der rote Ball soll den grünen Objekten ausweichen und die blauen möglichst berühren. Eine Auswertung nach Punkte gibt es (noch) nicht. Die y-Koordinate in der sich die grünen und blauen Objekte befinden, wird zufällig bestimmt.

Der rote Ball wird über einen Bewegungssensor (ADXL335) gesteuert.

Das Einlesen der Sensorwerte und Bestimmen der Maximal- bzw. Minimalwerte.

Bewertungskriterien

Entwicklung eines Spiels mit s4a, wobei die Steuerung des Spiels mit Hilfe von Sensoren geschieht.

  1. Spiel
    1. Das Spiel ist kreativ und einzigartig.
    2. Das Spiel hat einen Unterhaltungswert.
    3. Grafik ist ansprechend.
    4. Es werden Spielstände abgespeichert.
  2. Programmierung
    1. Das Spiel läuft problemlos.
    2. Das Programm ist logisch und übersichtlich aufgebaut.
    3. Variablen werden sinnvoll bezeichnet und eingesetzt.
    4. Die Programmierung lässt Erweiterungen zu.
  3. Sensoren
    1. Das Spiel wird mit Hilfe von Sensoren gesteuert.
    2. Die Sensorsteuerung ist komplex.
    3. Es werden mehrere Sensoren benutzt. (Beschleunigungssensor und Taster)
  4. Präsentation
    1. Das Spiel (Durchführung, Sinn und Programmierung) wird übersichtlich dokumentiert bzw. präsentiert.

Tutorials

Ideen und Tutorials zu Scratch gibt es unendlich viele. In jedes Scratchskript kann man hineinschauen und sehen, wie's gemacht wurde.

Beispiele:

Snake: https://scratch.mit.edu/projects/92932045/#editor

Progammier dein eigenes Spiel