Danger Shield

Das Gerät

Danger_ShieldBei dem Danger Shield handelt es sich um ein Shield für den Arduino, das auf kleinstem Raum unzählige Sensoren und Aktoren vereint.

Entwickelt wurde es von Zach Smith, auf seiner Seite findet man neben der ausführlichen (englischen) Aufbauanleitung auch Demoprogramme und Eagle-Files, um sich das Board selber zu ätzen.

Es wird mit sämtlichen benötigten Teilen geliefert, einzig der IC-Sockel fehlte in meinem Tütchen. Er ist auch nicht zwingend für den Aufbau oder den Betrieb notwendig, aber meine Spießigkeit hat mich dann doch in die Apotheke nach Conrad geführt, wo ich mir für sagenhafte 0,47€ einen entsprechenden Sockel besorgt habe.

Die Funktionen im Einzelnen

  • 3 Schiebepotentiometer mit integrierten LEDs (jede einzeln über PWM steuerbar)
  • 3 Drucktaster
  • 2 LEDs (jeweils mit PWM)
  • Mikropiepser (um Krach zu machen!)
  • Temperatursensor
  • Lichtsensor
  • Schallsensor
  • 7-Segment-Anzeige (angesteuert über ein Shift Register)
  • Power-LED und Resettaster

Die Aufbauanleitung

Im englischen Original mit hübschen Fotos.

Eigentlich funktionierte der Aufbau selbst für einen Löt-Noob wie mich völlig problemlos. Ein wenig irritierte mich zwar der Beipackzettel mit dem Hinweis, dass der Temperatursensor falsch herum auf die Platine gedruckt sei und dieser Fehler nach wie vor nicht in der Aufbauanleitung berücksichtigt ist, aber es hat ja geklappt.

Einzig meinen Widerstand-Biege-Skill benötigt noch einiges an Übung, jedenfalls wenn die winzigen Biester senkrecht eingelötet werden müssen und dementsprechend nur eines der beiden Drähtchen gebogen werden muss - dafür um 180° anstatt 90°. Das sieht nun bei mir eher unansehnlich aus - aber es funktioniert, und dass ist die Hauptsache.

Die ersten Progrämmchen

Das Danger Shield wird mit einer Fülle von Demo-Programmen "ausgeliefert", d.h. man kann sich diese auf der Seite von Zach Smith bzw. bei SourceForge herunterladen. Einen Schönheitsfehler haben sie jedoch: sie funktionieren leider nicht auf Anhieb, möglicherweise weil sie bereits ein Jahr alt sind (27.8.2008). Es gibt allerdings einen kleinen Workaround, so dass sie auch heute, mit der Version 0017 der Arduino-Software lauffähig sind:

Jedes Beispielprogramm des Danger Shields ruft eine "_init.h" auf. Dort werden einige Vorgaben gemacht, um das Leben mit dem Danger Shield zu vereinfachen. Man kann somit relativ problemlos aus dem eigenen Programm heraus die einzelnen Bauteile des Shields ansprechen.

Mittentext Please generate and paste your ad code here. If left empty, the ad location will be highlighted on your blog pages with a reminder to enter your code.

Um nun die Kompatibilität wieder herzustellen, fügt man einfach am Anfang der jeweiligen  "_init.h" (in jedem Unterverzeichnis der Demoprogramme ist eine eigene, auch wenn sie identisch sind) den folgenden Befehl ein:

// insert this to work with arduino software 0017
#include "WProgram.h"

Und schwupps - tauchen keine Kompilierungsfehler mehr auf. Jedenfalls nicht bei mir. (Und bitte: nicht fragen, wofür genau WProgram.h zuständig ist)

Alternativ kann man sich aber auch die aktuellste Version der Programme versteckt im Subversion herunterladen, leider nicht gesamt als Zip-Datei, aber wenigstens bereits mit dem o.g. include.

Funktioniert es?

Entgegen meinen Erwartungen habe ich keinen Lötfehler eingebaut und das Shield verrichtet seinen Dienst. Das einzige, was mich zunächst ziemlich erschreckt hatte, war der Mikropiepser. Wie heisst es doch oben so schön? "um Krach zu machen!" Und das war dann auch, neben einem wirren Blinken sämtlicher LEDs, das erste, was mein Danger Shield von sich gegeben hat: Krach. Allerdings war ich das selber schuld, denn ich hatte einfach nur nicht daran gedaht, dass im nichtflüchtigen Speicher des Arduino noch das letzte Programm war - und das hatte unter anderem zur Aufgabe, ein LCD anzusteuern. Dummerweise sprach das Programm nun halt nicht mehr das LCD, sondern die nun anderweitig "besetzten" Pins an, eben auch den Pieper. Nach dem Upload des ersten Demo-Programms hatte ich dieses Manko aber auch schon in den Griff bekommen.

Etwas nervig ist lediglich die Tatsache, dass dieser Piepser auch immer dann für eine gefühlte halbe Stunde halbe Sekunde rumpiepst, wenn ein Programm hochgeladen wird oder der Arduino mit einem Programm startet. Aber es gibt halt immer Dinge, mit denen man entweder leben oder deren Ursache man rauskriegen und beheben muss.

Sonstiges

Die von mir verwendeten Bilder wurden freundlicherweise von Zach Smith bei Flickr mit einer CC-Lizenz veröffentlicht veröffentlicht.

Bei freeduino.de findet man die Annoying Sliders, eine kleine Spielerei mit den Slidern und dem Piezosound.

Gib auch Du Deinen Senf dazu