Arduino-Spiele mit Gameduino 2

Das Arduino-Shield Gameduino 2 kommt mit Touchscreen und umfangreicher Dokumentation und eignet sich fĂĽr Spiele und interaktive Steuerungen. Wie man das 50-Euro-Modul programmiert, erfahren Sie auf den folgenden Seiten.

vorlesen Druckansicht
Lesezeit: 11 Min.
Von
  • Maik Schmidt
Inhaltsverzeichnis

2011 erschien das Shield Gameduino 1.

Einer der größten Pluspunkte des Arduino sind die vielen Shields, die das Mikrocontroller-Board um die unterschiedlichsten Funktionen erweitern. Shields sind in der Regel kleine Platinen, die exakt in die Buchsen auf der Oberseite des Arduino passen. Sie ermöglichen beispielsweise die Umwandlung von Text in Sprache oder die Verbindung zum Internet per WLAN oder Ethernet. Mittlerweile gibt es Hunderte von Shields und es werden stetig mehr.

Eine prominente Erweiterungskarte fĂĽr den Arduino ist der Gameduino, dessen Entwicklung James Bowman 2011 mit Hilfe einer Kickstarter-Kampagne finanzierte. Das kleine Board erweitert den Arduino um einen VGA-Ausgang und bringt obendrein noch Stereo-Sound mit.

Die Leistungsdaten sind nicht üppig, können sich aber durchaus sehen lassen. Die maximale Auflösung beträgt 400×300 Pixel mit bis zu 512 Farben. Es gibt jede Menge Sprites (unabhängige Grafikobjekte) und nützliche Funktionen zur Kollisionserkennung und zur Manipulation von Grafiken.

Mit einem Joystick-Shield kann man Spiele steuern, bequem ist es aber nicht.

Ferner gibt es einen Co-Prozessor, der die Augen von Amiga-Fans zum Leuchten bringen dürfte: Ganz wie in alten Copper-Zeiten lässt sich damit nämlich der Rasterstrahl auf vielfältige Weise manipulieren. Programmiert wird der kleine Helfer in Forth.

Das größte Manko des ersten Gameduino ist der Mangel an Eingabemöglichkeiten. Zwar lässt sich der Arduino leicht mit Controllern wie dem Wii Nunchuk verbinden und es gibt auch praktische Joystick-Shields, das Gelbe vom Ei sind solche Lösungen aber nicht. Vor allen Dingen machen sie die Programmierung von Spielen komplizierter als sie sein müsste.

Der neue Gameduino 2 bringt den Touch-Bildschirm gleich mit. Display und Platine sind allerdings offenbar miteinander verklebt.

Vor kurzem hat Bowman den Gameduino 2 entwickelt und fährt damit ganz andere Geschütze auf. Herzstück des Shields ist der FT800-Controller von FTDI. Dieser kleine Kraftprotz generiert nicht nur ordentliche Grafik, sondern verfügt auch über eine passable Sound-Einheit. Darüber hinaus unterstützt der Chip auch noch Touch-Displays. Bowman hat dem Gameduino 2 daher auch gleich einen entsprechenden Bildschirm mit einer Diagonale von 4,3 Zoll und einer Auflösung von 480×272 Pixel bei 60 Hertz spendiert.

Die Bildschirmauflösung ist nicht signifikant höher als beim Vorgänger, dafür hat sich aber in anderen Bereichen viel getan. So beträgt die Farbtiefe jetzt 24 Bit und die GPU verfügt über 256 KB Speicher. Darin lassen sich Bitmaps von bis zu 512×512 Pixel ablegen.

Kleines Manko: Der Audioausgang ist recht störanfällig und bringt nur wenig Leistung.

Echte Sprites gibt es nicht mehr. Früher wurde die Positionierung komplett von der Hardware erledigt und ein Sprite tauchte deshalb nicht im Grafikspeicher auf. Daher auch der Name "Sprite" für Geistwesen. Dem Gameduino 2 dienen bis zu 2000 Bitmaps als "unechte" Sprites, die auf vielfältige Art und Weise manipulierbar sind. Auch mit den Farben lässt sich allerlei anstellen. Das bevorzugte Grafik-Format ist JPEG, das die Hardware direkt dekodieren kann.

Zudem sind 16 Zeichensätze fest eingebaut und bei Bedarf kann man weitere definieren und nachladen. Als externes Speichermedium für Grafiken, Sounds usw. dient eine Micro-SD-Karte. Schließlich bringt der Gameduino 2 auch noch einen 3-Achsen-Beschleunigungssensor mit, der zusätzlich zum Touch-Display als Eingabemedium verwendet werden kann.

Der Gameduino ist zu allen Arduinos kompatibel, die dieselbe Pin-Belegung haben wie das aktuelle Arduino-UNO-Board. Das Shield lässt sich aber leicht auf andere Boards adaptieren. Gameduino 2 arbeitet aber nicht ausschließlich mit dem Arduino zusammen: Wie der Vorgänger wird das Geräte per SPI eingebunden, man kann es daher auch mit anderen Mikrocontroller-Boards verwenden.

Um den Gameduino 2 per Software anzusteuern, benötigt man nur eine Implementierung der SPI-Kommandos des Shields. Eine entsprechende Bibliothek liefert Bowman für den Arduino gleich mit. Ein Blick in den Quelltext zeigt sofort, dass der Code auch auf dem Raspberry Pi funktioniert. Es ist nur eine Frage der Zeit, bis Gameduino-Bibliotheken für weitere Mikrocontroller-Boards entstehen.

Das Programmier-Modell ähnelt dem von OpenGL und ist vornehmlich zustandsbasiert. Die GPU verwendet ausschließlich Double-Buffering, hält also den aktuellen Bildschirminhalt zweimal vor. Während der eine Bildschirm angezeigt wird, kann der andere (unsichtbare) verändert werden. Anschließend werden die Bildschirme vertauscht. Dies verhindert störende Flacker-Effekte.

Zur Vereinfachung der Eingabe per Touch-Display gibt es einen Tag-Buffer. Jedem Objekt auf dem Bildschirm lässt sich ein Tag zuweisen und die Hardware ermittelt bei Berührung das Tag des angetippten Objekts.