Arduino als Einstieg in die Mikrocontroller-Welt

Seite 5: Showtime

Inhaltsverzeichnis

Als kleines Spiel zum Ausprobieren des Controllers gibt es unseren LunarLander zum Download, ein kleines Processing-Spiel in Retro-Grafik, bei dem man eine Mondlandefähre sicher auf den Boden bringen muss. Zur Steuerung kippt man einfach das Steckbrett mit dem Beschleunigungssensor darauf nach links oder rechts und zündet mit dem Taster die Bremsrakete.

  • Man installiert zunächst Processing (Anleitung dazu auf der Processing-Projektseite von c't).
  • Dann lädt man sich den LunarLander sowie das Hilfsprogramm ADXLgraph herunter, packt beide ZIP-Archive aus und verschiebt den Inhalt in das Sketchbook-Verzeichnis von Processing.
  • Anschließend wird der wie oben beschrieben aufgebaute Controller an das USB-Kabel angeschlossen und zunächst ADXLgraph gestartet. Nach kurzer Zeit sollten auf dem Bildschirm drei Kurven erscheinen, die den Sensor-Output in X-, Y- und Z-Richtung nachzeichnen.
  • Man legt das Steckbrett mit dem Controller auf eine waagerechte Oberfläche und wartet, bis sich die als Zahlen angegebenen Durchschnittswerte stabilisiert haben. Dann notiert man sich diese Werte und beendet das Processing-Programm.
  • Nachdem man das Programm LunarLander.pde in Processing geöffnet hat, trägt man die drei notierten Zahlen als individuelle Werte des Sensors für X_AV, Y_AV und Z_AV ein.
  • Setzt man im Code serialAvailable auf true, schaltet das den Controller scharf.
  • Falls der Sensor auf einer anderen Platine als der von Segor steckt, korrigiert man den Drehwinkel des Sensors in der X-Y-Ebene, der im Code in der Konstante XY_ANG im Bogenmaß angegeben ist – beim Sparkfun-Modul beträgt der Winkel beispielsweise 0.
  • Anschließend startet man LunarLander und nimmt das Steckbrett in beide Hände, so dass das USB-Kabel nach links zeigt. Ziel ist die sichere Landung der Mondfähre auf einer der wenigen waagerechten Flächen der zerklüfteten Landschaft. Die Lage der Landefähre steuert man über den Beschleunigungssensor, indem das Steckbrett sanft nach rechts oder links gekippt wird. Der Taster zündet die Hauptrakete, die den Sinkflug bremst.
  • Falls es gar nicht so weit kommt, weil die Kommunikation zwischen Board und Processing-Programm nicht klappt, muss man die Zeile
    port = new Serial(this, Serial.list()[0], 9600);
    anpassen, denn diese wählt stets den ersten verfügbaren Port des Rechners für die Kommunikation.

Wir wünschen viel Spaß und Happy Landings! (pek)