Beschreibung
Arduino ist eine Hard- und Software Open Source Plattform. Die Hardware besteht aus einem einfachen Board mit analogen und digitalen Ein- und Ausgängen. Als Rechnerkern dient ein Atmel AVR-Mikrocontroller. Beim hier verwendeten Arduino Uno ist es ein ATmega328. Arduino kommt mit einer eigenen Entwicklungsumgebung, die Editor und GCC-Einbindung bereit hält. Neben der avr-gcc-Library können weitere Arduino-Libraries eingebunden werden. Die Programmerstellung wird dadurch stark vereinfacht. Im Buch werden Programmbeispiele gezeigt, die ein recht breites Anwendungsspektrum abdecken und Anregung für eigene Erweiterungen geben sollen. Betrachtet werden AD/DA-Umsetzung und die Ansteuerung von RGB-LEDs, RTC und SD Card, RFID Reader, LCD und Motoren. Die Nutzung von Arduino im Netzwerk wird mit Webserver-, Twitter- und eMail-Anwendungen verdeutlicht. Ein umfangreiches Kapitel befasst sich mit den Interrupts des ATmega328 und deren Programmierung auf Registerebene. Es sind bereits zahlreiche Bücher zu den Arduino Grundlagen erschienen, die gleichsam elektrotechnische Grundlagen vermitteln. Hierauf wir an dieser Stelle nicht eingegangen. Angesprochen werden sollen Leser, die bereits erste Erfahrungen mit Mikrocontrollern gesammelt haben und nach einer effektiven Plattform für das Umsetzen eigener Ideen in Hard- und Software suchen. Grundkenntnisse zu den AVR-Mikrocontrollern und zur Programmiersprache C/C++ sind für das Nachvollziehen der Programmbeispiele von Vorteil.
Leseprobe
Vorwort Arduino bezeichnet eine aus Hard- und Software bestehende Plattform für das "Physical Computing". Mit Physical Computing wird die Reaktion von Systemen aus Hard- und Software auf Ereignisse der realen (analogen) Welt bzw. die Einwirkung auf diese beschrieben. Neben der Einflussnahme über Hard- und Software auf die Umgebung steht die Mensch-Maschine-Interaktion im Vordergrund. Sensoren erfassen die meist analogen Daten und stellen diese einem Mikrocontroller zur Verfügung. Die Software verknüpft diese Eingangsdaten und erzeugt Ausgangsdaten, die über Aktoren, wie Motoren, Tongeber, Displays u.a.m. auf den betreffenden Prozess bzw. die Umwelt zurückwirken. Die Arduino Hardware besteht aus einfachen Boards mit einem Atmel AVR Mikrocontroller, der analoge und digitale Ein- und Ausgänge zur Verfügung stellt. Es ist eine große Zahl von Arduino Clones am Markt verfügbar, deren Aufbau und Funktionalität aber weitgehend identisch sind. Die Programmierung des Arduino Boards erfolgt in Wiring, einer auf C/C++ aufbauenden Programmiersprache. So nimmt es auch nicht weiter Wunder, dass der GNU C/C++ Compiler zum Einsatz kommt. Die Arduino Entwicklungsumgebung beruht auf Processing (das ist ein Java-Dialekt), die insbesondere Künstlern, Designern, Hobbyisten und anderen Interessierten den Zugang zur Programmierung und zu Mikrocontrollern erleichtern soll. Das ArduinoProjekt wurde 2006 in der Kategorie Digital Communities mit dem Prix Ars Electronica ausgezeichnet. Dem ArduinoTeam Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino und David Mellis gilt der Dank für diese Initiative und der Community für die Erweiterungen, die als Libraries und Anwendungsbeispiele zur Verfügung gestellt werden. Die Idee zu dieser Veröffentlichung entstand nach Experimenten mit einem Arduino Duemilanove sowie einem Lilypad Arduino. An Hand von Programmbeispielen, die in einer Folge von Einzelbeiträgen im Sammelwerk "Messen-Steuern-Regeln mit IBM-kompatiblem PCs" des Interest-Verlags veröffentlicht wurden, war gezeigt worden, wie unter Verwendung eines großen Fundus an Libraries schnell und recht unkompliziert interessante Anwendungen erstellt werden können. Hier werden diese Einzelbeiträge zusammengefasst, so dass der Leser eine Übersicht über zahlreiche Anwendungen in der Hand hat, die durch eine Vielzahl von Applikationen aus dem Internet erweitert werden kann. Grundkenntnisse zu den AVR-Mikrocontrollern und zur Programmiersprache C/C++ sind für das Nachvollziehen der Programmbeispiele von Vorteil. Es sind bereits zahlreiche Bücher zu den Arduino Grundlagen erschienen, die gleichsam elektrotechnische Grundlagen vermitteln. Hierauf wir an dieser Stelle nicht eingegangen. Angesprochen werden sollen Leser, die bereits erste Erfahrungen mit Mikrocontrollern gesammelt haben und nach einer effektiven Plattform für das Umsetzen eigener Ideen in Hard- und Software suchen. Sowohl die Arduino Hardware als auch die Arduino Software sind im Sinne von Open Source quelloffen. Der Sourcecode für die Java Umgebung der Entwicklungsumgebung sowie der GNU C/C++ Compiler unterliegen der GNU General Public License (GPL), während die zur Programmierung des Mikrocontrollers eingesetzten C/C++ Bibliotheken der GNU Lesser General Public License (LGPL) unterliegen. Die Schaltpläne und CAD-Files für die Hardware unterliegen einer Creative Commons Attribution Share-Alike License (CC). Altendorf, im Juli 2011 Claus Kühnel