Wenn heutzutage von Gadgets (englisch für „Apparat“) die Rede ist, sind damit meistens kleine, preiswerte Geräte gemeint, die mehr oder weniger sinnvolle Aufgaben übernehmen. In diese Kategorie fallen Smartphones genauso wie Digitalkameras oder Kaffeetassenwärmer, die per USB-Kabel an den Computer angeschlossen werden. Laut Duden ist ein Gadget „ein kleiner, raffinierter technischer Gegenstand“. Oder wie es ein Wikipedia-Autor treffend formuliert: Gadgets sind Grenzgänger zwischen sinnvoller Funktionalität und Verspieltheit.
Seit einiger Zeit kann man Gadgets nicht nur im Geek-Shop kaufen, sondern auch selbst basteln. Was mit einem eher exklusiven Hobby für Bastler und Nerds begann, hat sich in den letzten Jahren zu einem Hobby für sehr viele Menschen entwickelt, die Spaß daran haben, Geräte entstehen zu lassen, die Aufgaben im Alltag übernehmen (Beispiel: die Kameraüberwachung durch einen mobilen Roboter), für die Ausbildung von Jugendlichen geeignet sind oder einfach nur Spaß machen, wie zum Beispiel eine Lichtsteuerung im Disco-Stil für eine selbstgebaute Tanzfläche im Partykeller. Dank preiswerter Hardware sind der Phantasie keine Grenzen gesetzt. Passende Begriffe für diese Bewegung gibt es natürlich auch schon, sie lauten „Physical Computing“ oder einfach nur Hacking. Mitglieder der Bewegung sind nicht nur die Bastler, die früher ihren Radioempfänger selbst gebaut haben, sondern auch Künstler und Designer.
Ein Star der neuen Bewegung ist die Arduino-Plattform, die Spezifikationen für Hard- und Software unter einer Open Source-Lizenz definiert. Im Mittelpunkt steht eine 8-Bit-RISC-CPU mit dem Namen Amtel AVR, an die eine bunte Vielzahl von Geräten angeschlossen werden. Das Spektrum reicht von ausgefallenen Sensoren über GPS-Empfänger bis hinzu Relais, über die sich Starkstromgeräte anschließen lassen. Auf der Grundlage eines Stecksystems, das auch für die klassischen Elektronikkästen verwendet wird, lassen sich die einzelnen Komponenten verbinden und Gadgets testen. Programmiert werden Arduino-Gadgets in einer auf Java basierenden IDE mit C und C++, die für alle Plattformen von Windows über Mac OS X bis Linux zur Verfügung steht.
Wäre es nicht nett, wenn sich diese Gadgets auch mit C# programmieren ließen? Genau das ist mit Microsoft .NET Gadgeteer möglich. Microsoft .NET Gadgeteer umfasst auf der Softwareseite das .NET Micro Framework und Vorlagen für Visual C#. Die Hardware kommt nicht von Microsoft, sondern von Partnerfirmen wie GHI Electronics oder Sytech Nano, die neben der Hardware auch die benötigten Gerätetreiber und Erweiterungen für Visual C# in Gestalt eines SDKs (Software Development Kit) zur Verfügung stellen. Die erste Anlaufstelle für alle Fragen rund um Microsoft .NET Gadgeteer ist die englischsprachige .NET Gadgeteer Website. Hier erhält man unter anderem einen allgemeinen Überblick über die Möglichkeiten des Toolkits. Vor allem findet man auch Beispiele für die in Frage kommende .NET Gadgeteer Hardware. Einen sehr guten Einstieg bietet das FEZ Spider Kit von GHI Electronics, das neben dem Mainboard ein 3.5 Zoll Display und eine Vielzahl von Sensorenmodulen umfasst.
Eine „How to“-Anleitung auf der NET Gadgeteer-Website beschreibt, wie man Schritt für Schritt zu einem kleinen Gadget kommt, mit dem man per Knopfdruck die von einer winzigen Kamera aufgenommen Bilder auf dem Display anzeigen kann.
Das .NET Micro Framework als Betriebssystem für Gadgets
Das Herz der Software eines Gadgets ist das .NET Micro Framework, das Microsoft vor vielen Jahren speziell für die Steuerung sehr kleiner Geräte entwickelt hatte. Die aktuelle Version ist 4.2. Die Namensähnlichkeit zum .NET Framework ist natürlich kein Zufall, denn auch das MicroFramework umfasst eine virtuelle Maschine, die CLR (Common Language Runtime) und eine Klassenbibliothek, die aber nur aus einigen Hundert Klassen besteht. Programmiert werden .NET MicroFramework-Anwendungen in C# oder, seit der aktuellen Version 4.2 des .NET MicroFramework, auch in Visual Basic – wahlweise mit Visual Studio Professional oder den kostenlosen Visual C# bzw. Visual Basic Express Editionen.
Die Entwicklung eines .NET Gadgeteers-Gadgets besteht aus mehreren Schritten. Im ersten Schritt muss man sich für die Hardware entscheiden. Diese besteht im einfachsten Fall aus dem Mainboard und den für das Gadget benötigten Modulen. Das Minimalset umfasst ein Modul für die Eingabe (z.B. das Button-Modul), ein Modul für die Ausgabe (z.B. das LCD-Display-Modul oder das LED-Modul) und ein Modul für die Verbindung mit dem Computer (etwa das USB-Modul). Eine Übersicht über alle verfügbaren Module gibt es im Showcase auf der Gadgeteers Website.
Einen guten Einstieg bietet das bereits erwähnte FEZ Spider Kit von GHI Electronics. Hat man sich für die Hardware entschieden, werden nach einander die Entwicklungsumgebung, z.B. Visual Studio C# 2010 Express Edition, die neuste Version des .NET MicroFrameworks und, das ist ganz wichtig, die Gerätetreiber für die Gadget-Hardware installiert, denn ansonsten lässt sich das Gerät nicht vom PC aus steuern. Neben den Treibern bietet GHI Electronics eine Visual Studio-Erweiterung an, mit der sich ein Gadget in einem visuellen Designer zusammenstellen lässt. Die Idee ist, dass der Gadget-Entwickler Mainboard und Module (diese werden über die erweiterte Visual Studio-Toolbox angeboten) mit der Maus zusammenstellt und der Programmcode für das Ansteuern dieser Geräte aus dem Modell abgeleitet wird. Damit beschränkt sich die Ansteuerung der Module auf die Eingabe weniger Befehlszeilen.
Ist das Programm fertig, wird es per
-Taste zusammen mit dem .NET MicroFramework auf das Gadget übertragen und dort ausgeführt. Theoretisch kann damit die Verbindung zum Gadget beendet werden, das Programm läuft eigenständig auf dem Gerät. Da auch ein Gadget-Steuerungsprogramm getestet werden muss, wird man es unter der Kontrolle von Visual Studio ausführen, was unter anderem bedeutet, dass sich Haltepunkte im Programm setzen lassen, die immer dann aktiv werden, wenn auf dem Gerät ein entsprechendes Ereignis ausgelöst wird.
Wer sich in die faszinierende Welt von .NET Gadgeteers einarbeiten möchte, findet viele Informationen auf der .Net Gadgeteer Website und den dort angegebenen Links. Für den Einstieg empfehlenswert ist ein kostenloses, knapp 100 Seiten umfassendes eBook der Firma GHI Electronics, das aus dem Produkt-Wiki abgeleitet wurde. Wie sich mit dem FEZ Spider Kit von GHI Electronics ein Mini-Gadget umsetzen lässt, wird in einer Schritt-für-Schritt Anleitung beschrieben. Sollte die Beschreibung nicht sofort zum Erfolg führen, bitte nicht gleich aufgeben. Es sind oft nur Kleinigkeiten, wie ein fehlender Gadget-Treiber oder eine falsche Einstellung bei den vier Mini-Schaltern auf der Hauptplatine, die dazu führen können, dass es nicht gleich funktioniert (der Autor dieser Zeilen konnte das beschriebene Gadget nach einigen Fehlversuchen erfolgreich umsetzen, lediglich das Button-Event scheint nicht zuverlässig ausgelöst zu werden). Es gibt auch ein kostenloses eBook, das speziell die Hardware von GHI Electronics beschreibt.
Richtige Fachbücher sind ebenso erhältlich, allerdings nicht kostenlos. Eines davon ist Embedded Programming with the Microsoft .NET Micro Framework von Donald Thompson und Rob S. Miles, erschienen bei Microsoft Press.
Hilfreiche Links: