Anzeige
Anzeige
Hardware & Gadgets
Artikel merken

Interaktive Hardware Marke Eigenbau: „Physical Computing“ mit der Open-Source-Plattform Arduino

Arduino ist eine Hard- und Software-Plattform, die es auch Unerfahrenen sehr leicht macht, interaktive Installationen zu kreieren. Besonders unter Künstlern, Designern und Hobby-Bastlern erfreut sich die im Jahr 2005 gestartete Open-Source-Plattform wachsender Beliebtheit. Dieser Artikel stellt das Konzept hinter Arduino vor und zeigt auf, wie der Einstieg reibungslos klappt.

7 Min. Lesezeit
Anzeige
Anzeige

2005 riefen Lehrende und Studenten am „Interaction Design Institute Ivrea“ das Projekt ins Leben. Die Motivation hierzu ergab sich aus der Suche nach einer Alternative zu teuren und
leistungsschwachen Mikrocontrollern, um die dort entwickelten „interaktiven Objekte“ zu steuern. Auch die bis dahin zumeist für die Programmierung verwendeten Varianten von BASIC waren reif für eine Ablösung durch einen moderneren Ansatz. Durch das Engagement der Mitwirkenden und die clevere Kombination aus technischen, lizenzrechtlichen und philosophischen Ansätzen entstanden die ersten Prototypen inklusive Dokumentation und Entwicklungsumgebung. Binnen kurzer Zeit stellte das Team eine Reihe von beeindruckenden Projekten und Ausstellungen auf die Beine [1]. Namhafte Künstler begannen, Arduino für Ihre Zwecke zu nutzen und sorgten so für eine wachsende Popularität. Mittlerweile werden Arduinos in unterschiedlichsten Bereichen, etwa im Modellbau, als Musikinstrument oder zum Rösten von Kaffee [2] verwendet.

Herz und Nieren eines Arduino

Anzeige
Anzeige

Ein Arduino besteht aus einer kleinen Platine, auf der ein Mikrocontroller aus der Atmel-AVR-Serie sowie weitere elektronische Bauteile zur Unterstützung der Schaltung und zur Bereitstellung von Ein- und Ausgängen aufgelötet oder gesteckt sind. Die Vorlagen zum Bau eines Arduino sind Open Source nach der Creative Commons License und ermöglichen, abgesehen vom Einkauf der nötigen Bauteile und Werkzeuge, eine eigene Herstellung.

Diverse Anbieter vertreiben sowohl Bausätze als auch betriebsbereite Exemplare. Für Interessierte ohne Vorkenntnisse im Bereich der Elektronik bietet sich ein Einsteiger-Set an, das alles nötige für ein erstes Projekt enthält und für rund 50 Euro erhältlich ist. Diese Sets enthalten auch ein so genanntes „Breadboard“, das mittels einfacher Steckverbinder Experimente ganz ohne einen Lötkolben ermöglicht. Ein weiterer Vorteil des „Breadboard“: Die einzelnen Bauteile lassen sich wiederverwenden.

Anzeige
Anzeige

Klone und Varianten

Neben vielen Varianten [3] des Arduino gibt es zahlreiche weitere Projekte, die ähnliche Ansätze verfolgen oder sich spezialisiert haben. Dabei kommen auch andere
Mikrocontroller-Architekturen und sogar RISC-Prozessoren aus der ARM-Familie zum Einsatz. Im Prinzip macht es keinen Unterschied, ob man einen Freeduino, Seeeduino, FIO oder Arduino Mega einsetzt, die Praxis gestaltet sich stets identisch oder zumindest sehr ähnlich.

Anzeige
Anzeige

Neben der Geschwindigkeit der Mikrocontroller und Größe der Speicher unterscheiden sich die jeweiligen Varianten vor allem in der Anzahl und Ausführung der analogen und digitalen Ein- und Ausgänge, den so genannten „Pins“.

Durch das Aufstecken von Shields können Arduinos beliebig erweitert werden. Hier zum Beispiel eine progammierbare BlinkM-RGB-LED auf einem Ethernet-Shield auf einem Arduino.

Durch das Aufstecken von Shields können Arduinos beliebig erweitert werden. Hier zum Beispiel eine progammierbare BlinkM-RGB-LED auf einem Ethernet-Shield auf einem Arduino.

Schilde hoch! Arduino erweitern

Alle zum Arduino kompatiblen Varianten kann man durch das Aufstecken von „Shields“ erweitern – über eine standardisierte Reihe von Steckverbindungen nimmt ein Arduino eine weitere Platine quasi huckepack. Shields sind kaskadierbar – man kann mehrere übereinander stecken und miteinander kombinieren. Das Angebot an Shields ist groß, selbst OLED Touchscreen-, Bluetooth- und WLAN-Shields stehen zur Verfügung.

Anzeige
Anzeige

Während bei älteren Arduino-Varianten noch eine RS232-Schnittstelle zur Kommunikation zum Einsatz kommt, verwenden nahezu alle aktuellen Varianten eine USB-Schnittstelle. Die Schnittstelle vereint verschiedene Möglichkeiten. Zum einen erlaubt sie die Programmierung mit eigenem Code, zum anderen die Steuerung im Betrieb. Je nach Schaltung kann man beispielsweise Leuchtdioden schalten, Motoren bewegen oder Temperaturen erfassen. Darüber hinaus kann man die Schnittstelle zur Verbindung von zwei Arduinos verwenden.

Software

Ein wichtiger Bestandteil eines Arduino ist der Bootloader. Dieser einheitliche Code ist auf betriebsbereit erworbenen Arduinos bereits programmiert. Beim Eigenbau ist ein ISP-Programmiergerät nötig, um den Bootloader einmalig auf den Mikrocontroller laden zu können. Sollte man bereits im Besitz eines Programmiergeräts sein, kann man auf den Bootloader verzichten und hat so mehr Speicherplatz für eigenen Code zur Verfügung, verzichtet aber auch auf dessen Komfort.

Das t3n Scanning Moodlight besteht aus einem Seeeduino, Breakboard, Brückenkabeln und einer programmierbaren BlinkM Leuchtdiode.

Das t3n Scanning Moodlight besteht aus einem Seeeduino, Breakboard, Brückenkabeln und einer programmierbaren BlinkM Leuchtdiode.

In der Praxis ist die Programmierung eines Arduinos leicht, wie ein Blick auf die Arduino Entwicklungsumgebung (IDE) zeigt. Statt das Rad neu zu erfinden, setzte man von Beginn an auf vorhandene Entwicklungen und entwickelte diese für das Arduino-Projekt weiter. Processing ist die Grundlage der GPL-lizensierten Arduino-IDE. Dabei handelt es sich um eine an Java angelehnte Open-Source-Programmiersprache und -Entwicklungsumgebung, die bereits von Künstlern, Designern und Forschern rund um die Welt zur schnellen Erstellung von Software-Prototypen eingesetzt wurde.

Anzeige
Anzeige

Im Gegensatz zu Processing ist die Arduino-Programmiersprache „Wiring“ [4] nicht an Java angelehnt. Traditionell kommen im Bereich des Embedded Computing zumeist Assembler oder C zum Einsatz – auch Wiring basiert auf C. Es erleichtert die Verwendung von C und bietet mit seinen Bibliotheken eine Vielzahl nützlicher Funktionen. Hinter den Kulissen kompiliert eine für die Atmel-AVR-Mikroprozessoren spezialisierte Variante der GNU Compiler Suite (avr-libc) den Sketch in Bytecode. Mit Hilfe des Bootloaders und dem etablierten Projekt avrdude [5] wird der Mikrocontroller schließlich mit dem Kompilat des eigenen Programms, dem so genannten Sketch, programmiert. Nach einem Reset des Mikrocontrollers wird der Sketch ausgeführt: die Arduino IDE dient nun als Terminal an der seriellen Schnittstelle.

Dieser komplex anmutende Prozess verbirgt sich benutzerfreundlich gekapselt hinter der Arduino IDE. Nach dem Erstellen des Sketch reicht der Klick auf eine Schaltfläche, um die Programmierung
auszuführen. Die IDE ist bewusst kompakt gehalten und nicht mit Funktionen überladen, um Einsteigern freundlich zu begenen. Bereits erfahrene Embedded- und C-Entwickler können aufgrund der Kompatibilität der Arduino-Hardware und des Bootloaders (STK500-kompatibel [6] ) auch eine Vielzahl anderer Werkzeuge einsetzen. Vom kommerziellen Atmel AVR Studio [7] über ein Plugin für Eclipse [8] bis hin zur Verwendung der genannten Komponenten der Arduino IDE auf der Kommandozeile eines der vielen unterstützen Beriebssysteme.

Alternative aus Potsdam

Eine besonders hervorzuhebende Alternative zu der Arduino IDE ist Fritzing [9]. Entwickelt am Interaction Design Lab der Fachhochschule Potsdam ist in Anlehnung an Processing eine ebenfalls umfassende Entwicklungsumgebung entstanden. Fritzing hilft nicht nur beim Programmieren, sondern ermöglicht es, das jeweilige Design eines Arduino-Projekts mitsamt Schaltplan und Bestückung der Platine mit graphischen Werkzeugen zu dokumentieren und auf die Website der Fritzing-Community hochzuladen. Doch damit nicht genug: Hat sich ein Prototyp bewährt und soll möglicherweise sogar in Serie produziert werden, bietet Fritzing alle nötigen Funktionen, um beispielsweise durch Auto-Routing auch Menschen ohne Igenieurswissen die Erstellung von Vorlagen für die Herstellung von Leiterplatten zu ermöglichen.

Anzeige
Anzeige

Konnektivität leicht gemacht

Die Anbindung eines Arduino an einen Computer ist einfach. Über eine serielle Schnittstelle wie USB lässt sich ein entsprechend programmierter Arduino steuern. Dabei kann eine Vielzahl von Programmiersprachen zum Einsatz kommen: fertige Bibilotheken sind unter anderem für Processing, MAX/MSP, VVVV und Pure Data verfügbar. Im Prinzip eignet sich jede Programmiersprache, die über eine serielle Schnittstelle kommunizieren kann. Um die Anzahl redundanter Implementation zu verringern und bei größeren Projekten einen höheren Grad an Abstraktion zu erreichen, bietet sich aber die Verwendung eines
generischen Protokolls wie zum Beispiel das von Firmata [10] an.

Arduinos werden auch gerne für ferngesteuerte Fahrzeuge eingesetzt.

Arduinos werden auch gerne für ferngesteuerte Fahrzeuge eingesetzt.

Der Einsatz von Firmata bringt Vorteile, vor allem kann bei vielen Anwendungen auf eigenen Code verzichtet werden – besonders für in C unerfahrene Entwickler eine enorme Erleichterung. Um den Komfort weiter zu steigern, bietet sich die Verwendung von Funnel [11] an. Funnel besteht aus einer plattformunabhänigen Java-Komponente, dem Funnel Server, der auf dem angeschlossenem Computer ausgeführt wird, und Bibliotheken für die Skriptsprachen von Processing, ActionScript und Ruby.

Aus Gründen der Sicherheit („Security Sandbox“) erlaubt Flash keinen direkten Zugriff auf die Hardware, daher ist die Kommunikation mit dem Arduino nicht möglich. Um auf die visuellen Möglichkeiten von Flash nicht verzichten zu müssen, lässt sich die Funnel-Library für ActionScript verwenden: Anstelle eines direkten Zugriffs sendet und empfängt Flash herkömmliche TCP-Pakete – das lässt das
Sicherheitsmodell zu. Diese werden vom Funnel-Server übersetzt und an den Arduino weitergeleitet. Die Verwendung von TCP ermöglicht auch eine räumliche Trennung von Arduino-Hardware und angeschlossenen Computern.

Anzeige
Anzeige

Arduino mit Funnel und Flash

Nach dieser vielen Theorie soll ein Beispiel zeigen, wie einfach ein eigenes Projekt mit Arduino, Funnel und Flash realisiert werden kann. Als Grundlage für das Beispielprojekt „t3n Scanning Moodlight“ dienen ein Breadboard und einige Brückenkabel sowie eine programmierbare BlinkM [12] RGB-Leuchtdiode. Zwar würde auch eine einfache RGB-Leuchtdiode ausreichen, da Funnel jedoch direkt mit einem BlinkM sprechen kann, ist diese etwas kostspieligere Wahl von Vorteil. Zunächst verbindet man die BlinkM auf dem Breadboard mit dem Arduino – dazu genügen vier Verbindungen. Über die USB- Schnittstelle wird die Stromversorgung hergestellt und die Programmierung ermöglicht.

Da Firmata bereits Bestandteil der Arduino IDE ist, muss man lediglich das Sketch auswählen und programmieren. Entsprechend der Dokumentation von Funnel sind einige Zeilen in der Konfigurationsdatei des Funnel-Servers anzupassen, bevor dieser gestartet wird. Nun liegt der Fokus auf Flash. Mit Adobes Flex Builder und der Funnel-Library für ActionScript geht die Entwicklung des Funnel-spezifischen
Teils einer kleinen Adobe AIR-Applikation schnell von der Hand. Etwas aufwändiger, doch durch vorhandene Bibilotheken kein Hexenwerk, ist die eigentliche Funktion: Eine an den Rechner angeschlossene Webcam erfasst die Umgebung und erzeugt Standbilder. Diese werden durch mathematische Verfahren auf die enthaltenen Farbwerte untersucht – die am häufigsten vorkommenden werden zu einer Farbpalette zusammengestellt. In einem Intervall von zwei Sekunden übermittelt die AIR-Applikation diese Farbwerte der Reihe nach mittels des Funnel-Servers an den Arduino – der BlinkM wechselt daraufhin seinen Farbton entsprechend in einem optisch ansprechenden weichen Übergang. Der Quellcode für das „t3n Scanning Moodlight“ steht für Interessierte über den Softlink zum Download bereit.

Fazit

Selbst gestandene Programmierer müssen sich einarbeiten, wenn es darum geht, Hardware anzusteuern. Dass es auch ohne Assembler und lange Einarbeitung geht, beweist Arduino. Die entsprechende Hardware ist nicht nur kostengünstig, sondern glänzt auch mit verhältnismäßig unkomplizierten Entwicklungswerkzeugen. Die wachsende Gemeinschaft rund um Arduino und die vielen Projekte, die in diesem Bereich entstanden sind, werfen ein positives Licht auf die zukünftige Entwicklung. Weiterführende Links stehen über den Softlink am Ende des Artikels bereit.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige