Arduino (Plattform)
Arduino ist eine aus Soft- und Hardware bestehende Physical-Computing-Plattform. Beide Komponenten sind quelloffen. Die Hardware besteht aus einem einfachen E/A-Board mit einem Mikrocontroller und analogen und digitalen Ein- und Ausgängen. Die Entwicklungsumgebung basiert auf Processing und soll auch technisch weniger Versierten den Zugang zur Programmierung und zu Mikrocontrollern erleichtern. Die Programmierung selbst erfolgt in einer C- bzw. C++-ähnlichen Programmiersprache, wobei technische Details wie Header-Dateien vor den Anwendern weitgehend verborgen werden und umfangreiche Bibliotheken und Beispiele die Programmierung vereinfachen. Arduino kann verwendet werden, um eigenständige interaktive Objekte zu steuern oder um mit Softwareanwendungen auf Computern zu interagieren (z. B. Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider, diversen Skriptsprachen, Terminal, vvvv etc.). Arduino wird beispielsweise auch an Kunsthochschulen genutzt, um interaktive Installationen aufzubauen.
Arduino | |
---|---|
Screenshot der Arduino-IDE (Version 1.6.0) | |
Basisdaten | |
Entwickler | Arduino |
Betriebssystem | Windows, Linux, macOS |
Programmiersprache | C und C++ und AVR-Assembler (IDE: Java) |
Kategorie | Freie Hardware |
Lizenz | LGPL/GPL (freie Software) |
www.arduino.cc |
Das Arduino-Projekt wurde im Rahmen des Prix Ars Electronica 2006 mit einer Anerkennung in der Kategorie Digital Communities ausgezeichnet.[1]
Geschichte
Basierend auf einem von Hernando Barragán entwickelten Board, Wiring, das auf einem ATmega168 basierte, wurde 2005 von Massimo Banzi und David Cuartielles der erste Arduino, der auf dem günstigeren ATmega8 basierte, entwickelt.[2][3] Der Name „Arduino“ wurde von einer Bar in Ivrea übernommen, in der sich einige der Projektgründer gewöhnlich trafen (Die Bar selbst wurde nach Arduin von Ivrea benannt, der von 1002 bis 1014 auch König von Italien war).[4] David Mellis erweiterte die ebenfalls auf Barragáns Arbeit basierte C/C++-basierende Diktion dazu. Der Schaltplan wurde im Netz veröffentlicht und unter eine Creative-Commons-Lizenz gestellt. Die erste Auflage des Boards betrug 200 Stück, davon gingen 50 an eine Schule. Bis 2008 wurden etwa 50.000 Boards verkauft.[5]
Rechtsstreit um die Marke Arduino
Vom Januar 2015 bis Ende August 2016[6] befanden sich die Gründergruppe der Arduinoplattform (Arduino LLC) und die Produzenten der offiziellen Arduinoboards (Arduino S.r.l.) in einem Rechtsstreit um die Inhaberschaft des Markenrechtes von Arduino. Demnach habe die Arduino S.r.l. die Marke Arduino für die Nizza-Klassen 9 und 42 registriert, während die Arduino LLC die Marke zeitgleich in den USA nur für die Nizza-Klasse 9 registrierte. Nun war unklar, ob diese parallelen Markenrechtseintragungen legitim waren bzw. wem nun die Marke Arduino gehörte.[7]
Im März 2015 gab der Arduino-Gründer Massimo Banzi bekannt, dass der Hersteller der Arduino-Boards Arduino S.r.l. seit einem Jahr keine Lizenzgebühren mehr an die Arduino LLC zahle,[8] mit denen jedoch zuvor die relativ hohen Preise der Arduinoboards begründet wurden.
Zeitweise existierten zwei Webpräsenzen von Arduino: arduino.org, die von der Arduino S.r.l. betreut wird, sowie arduino.cc, die von der Arduino LLC aufgebaut wurde. Auf diesen Websites wurden seit dem Rechtsstreit unterschiedliche Varianten der Arduino IDE mit unterschiedlichen Versionsangaben angeboten.[9] Diese waren nicht vollständig mit der Hardware des jeweils anderen Unternehmens kompatibel. Mit Version 1.8 wurden beide Varianten wieder zusammengefügt. Seitdem gibt es wieder eine offizielle Version, die die Boards beider Unternehmen unterstützt.[10]
Entstehung der Marke Genuino
Bei einer Veranstaltung des US-amerikanischen Magazins Make im kalifornischen San Mateo am 16. Mai 2015 stellte Massimo Banzi einen neuen Markennamen für das Arduino-Projekt vor: „Genuino“.[11] Dieser neue Markenname soll dort genutzt werden, wo die Markenrechte der eigentlichen Marke Arduino ungeklärt sind.[12] Außerdem kündigte er an, zukünftig Boards von mehreren Herstellern herstellen zu lassen anstatt wie bisher von einem einzigen. Banzi nannte die Firma Adafruit Industries als ersten offiziellen Hersteller.[11][12][13] Die Gründerin von Adafruit Industries Limor Fried bestätigte die Zusammenarbeit.[14] Damit macht sich die Arduino LLC unabhängig vom eigentlichen Hersteller der Arduino-Boards Arduino S.r.l.
Im Juni 2015 gab Banzi in Shenzhen die Zusammenarbeit mit dem Hersteller Seeedstudio bekannt, der die Microcontroller-Boards mit der neu erschaffenen Marke „Genuino“ herstellen soll. Mit den von Seeedstudio hergestellten Boards soll der asiatische Markt, insbesondere der chinesische Markt, bedient werden.[15]
Auf der Maker Faire Rom im Oktober 2015 wurden erstmals Genuino-Boards aus europäischer Produktion verkauft. Diese wurden von Watterott electronic aus Deutschland und AXEL Elettronica aus Italien gefertigt.[16]
Die Marke Genuino soll nun für jene Microcontroller-Boards verwendet werden, die außerhalb der Vereinigten Staaten verkauft werden. Außer der neuen Marke sollen die verkauften Boards sich nicht von den ehemaligen Arduino-Boards unterscheiden.[17] Anscheinend ist die Rechtslage um die Markenrechte von Arduino nur in den Vereinigten Staaten eindeutig.[18][19]
Bei der World Maker Faire 2016 in New York haben sich die Arduino S.r.l. und die Arduino LLC darauf geeinigt, die Streitigkeiten beizulegen, dafür sollen alle Produkte einzig über eine neu gegründete kommerzielle Arduino Holding vertrieben werden. Außerdem soll die gemeinnützige Arduino Foundation gegründet werden, die als Non-Profit-Organisation die weitere Entwicklung der Open-Source-Software Arduino Desktop IDE vorantreibt.[20][21] Deswegen sind Arduino S.r.l. und Arduino LLC Ende 2016 in der Arduino AG aufgegangen. Allerdings wurde selbige nach Betrugsvorwürfen gegen den Geschäftsführer und Hauptanteilseigner Federico Musto von der von Gründern des Arduino-Projekts gegründeten BCMI aufgekauft.[22]
Hardware
Die Hardware eines typischen Arduino-Boards basiert auf einem Microchip-AVR-Mikrocontroller aus der megaAVR-Serie, wie etwa dem ATmega328. Abweichungen davon gibt es unter anderem bei den Arduino-Boards Arduino Due (Arm Cortex-M3 32-Bit-Prozessor vom Typ Atmel SAM3X8E), Yún, Tre, Gemma und Zero, wo andere Mikrocontroller von Atmel eingesetzt werden. Eine Besonderheit stellen zudem die Arduino-Boards Yún und Tre dar, die zusätzlich zum Mikrocontroller einen stärkeren Mikroprozessor besitzen. Alle Boards werden entweder über USB (5 V) oder eine externe Spannungsquelle (7–12 V) versorgt und verfügen über einen 16-MHz-Schwingquarz. Es gibt auch Varianten mit 3,3-V-Versorgungsspannung und Varianten mit abweichendem Takt. Über Erweiterungen können auch etliche andere Mikrocontroller, etwa der ESP8266, ESP32, STM32 oder MSP430 über die Arduino-IDE programmiert werden.
Mittlerweile gibt es auch Arduino-kompatible Hardware von Drittherstellern in Industrievarianten mit Hutschienenmontage und einer Spannung von 24 V. Diese können einige Aufgaben von einer SPS übernehmen.
Konzeptionell werden alle Boards über eine serielle Schnittstelle programmiert, wenn Reset aktiviert ist. Der Mikrocontroller ist mit einem Bootloader vorprogrammiert, wodurch die Programmierung direkt über die serielle Schnittstelle ohne externes Programmiergerät erfolgen kann. Bei älteren Boards wurde dafür die RS-232-Schnittstelle genutzt, und bei späteren Versionen geschieht die Umsetzung von USB nach seriell über einen eigens entwickelten USB-Seriell-Konverter, basierend auf dem ATmega8u2. Zuvor wurde das mit dem populären Baustein FT232RL von FTDI realisiert. Die Version Arduino Leonardo verwendet als Prozessor den ATmega32u4, der die USB-Unterstützung nativ bereitstellt und sich damit auch als Tastatur oder Maus gegenüber einem PC ausgeben kann.
Alle Arduino-Boards, bis auf den Arduino Esplora, stellen digitale Input- und Output-Pins (kurz: I/O-Pins) des Mikrocontrollers zur Nutzung für elektronische Schaltungen zur Verfügung. Üblich ist auch, dass einige davon PWM-Signale ausgeben können. Zusätzlich stehen dem Benutzer mehrere analoge Eingänge zur Verfügung. Für die Erweiterung werden vorbestückte oder teilweise unbestückte Platinen – sogenannte „Shields“ – angeboten, die auf das Arduino-Board aufsteckbar sind. Es können aber auch z. B. Steckplatinen für den Aufbau von Schaltungen verwendet werden.
Software
Arduino bringt eine eigene integrierte Entwicklungsumgebung (IDE) mit, die auf Wiring IDE basiert. Dabei handelt es sich um eine Java-Anwendung, die für die gängigen Plattformen Windows, Linux und macOS kostenlos verfügbar ist. Sie basiert auf der IDE von Processing, einer auf die Einsatzbereiche Grafik, Simulation und Animation spezialisierten Entwicklungsumgebung. Die Arduino-IDE bringt einen Code-Editor mit und bindet gcc als Compiler ein. Zusätzlich werden die avr-gcc-Library und weitere Arduino-Bibliotheken („libraries“) eingebunden, die die Programmierung in C und C++ stark vereinfachen.
Für ein funktionstüchtiges Programm genügt es, zwei Funktionen zu definieren:
setup()
– wird beim Start des Programms (entweder nach dem Übertragen auf das Board oder nach Drücken des Reset-Tasters) einmalig aufgerufen, um z. B. Pins entweder als Eingang oder als Ausgang zu definieren.loop()
– wird danach als Endlosschleife durchgehend immer wieder durchlaufen, solange das Arduino-Board eingeschaltet ist.
Nachstehend ein Beispiel für ein C-Programm (in der Arduino-Diktion: Sketch), das einen Rechteckgenerator implementiert und somit eine Rechteckschwingung (hier mit einer Frequenz von 0,5 Hz und einem Tastgrad von 50 %) generiert und dadurch eine (über einen Vorwiderstand) an das Arduino-Board angeschlossene Leuchtdiode (LED) entsprechend blinken lässt:
int ledPin = 13; // Die LED ist an Pin 13 angeschlossen, was in der Integer-Variable ledPin gespeichert wird.
// Bei vielen Boards ist auf der Platine eine LED integriert, die sich über diesen Pin 13 ansteuern lässt.
void setup() {
pinMode(ledPin, OUTPUT); // legt den LED-Pin als Ausgang fest
}
void loop() {
digitalWrite(ledPin, HIGH); // LED anschalten
delay(1000); // 1000 Millisekunden warten
digitalWrite(ledPin, LOW); // LED ausschalten
delay(1000); // weitere 1000 Millisekunden warten
}
Mit S4A (Scratch for Arduino) und mblock (basierend auf scratch) gibt es Scratch-Modifikationen, die eine freie visuelle Programmiersprache mit Programmierumgebung für den Arduino-Mikrocontroller zur Verfügung stellen.[23]
Weiterhin bietet Arduino mit Arduino Create eine webbasierte Lösung an, um im Browser zu programmieren. Geschriebene Sketche werden online in einer Cloud abgelegt.[24] Die Kommunikation zwischen Browser und Arduino-Board wird über Plug-ins für das jeweilige Betriebssystem ermöglicht. Arduino-Boards können über USB und Netzwerkverbindung angesprochen werden. Die Nutzung von Arduino Create erfordert eine kostenlose Registrierung bei diesem Dienst. Betrieben wird die Plattform durch Amazon Web Services.[25]
Galerie
- Arduino Diecimila
- Arduino Duemilanove (rev 2009b)
- Arduino UNO
- Genuino UNO
- Arduino Leonardo
- Arduino MEGA 2560 R3 (Vorderseite)
- Arduino MEGA 2560 R3 (Rückseite)
- Arduino Nano
- Arduino Nano mit RP2040
- Arduino Due
- LilyPad Arduino (rev 2007)
- Arduino Robot
- Arduino Esplora
- Arduino Ýun
- Arduino Ethernet
Ähnliche Geräte
- MSP430 Launchpad
- Tinkerforge
- Intel Galileo
- myAVR
- Parallax Propeller
- Nucleo
- BBC micro:bit
- Calliope mini
- NodeMCU
Siehe auch
Literatur
- Erik Bartmann: Mit Arduino die elektronische Welt entdecken. 3., komplett überarbeitete Neuauflage. Bombini-Verlag, Bonn 2017, ISBN 978-3-946496-00-7
- Erik Bartmann: Die elektronische Welt mit Arduino entdecken. Mit dem Arduino messen, steuern und spielen, Elektronik leicht verstehen, kreativ programmieren lernen. O’Reilly, Köln 2011, ISBN 978-3-89721-319-7 (behandelt Arduino 1.0). Nicht mehr lieferbar.
- Thomas Brühlmann: Arduino: Praxiseinstieg. mitp, Heidelberg 2012, ISBN 978-3-8266-9116-4.
- Kimmo Karvinen, Tero Karvinen, Ville Valtokari: Sensoren – messen und experimentieren mit Arduino und Raspberry Pi. dpunkt, Heidelberg 2014, ISBN 978-3-86490-160-7.
- Claus Kühnel: Arduino – Das umfassende Handbuch. Rheinwerk Computing, Bonn 2020, ISBN 978-3-8362-7345-9
- Michael Margolis: Arduino Kochbuch. O’Reilly, Köln 2012, ISBN 978-3-86899-353-0.
- Simon Monk: 30 Arduino Selbstbau-Projekte, Franzis, Haar 2012, ISBN 978-3-645-65136-3.
- Manuel Odendahl, Julian Finn, Alex Wenger: Arduino – Physical Computing für Bastler, Designer und Geeks. O’Reilly, Köln 2009, ISBN 978-3-89721-893-2.
- Mike Riley: O’Reillys basics: Das intelligente Haus – Heimautomation mit Arduino, Android und PC. O’Reilly, Köln 2012, ISBN 978-3-86899-363-9.
- Maik Schmidt: Arduino Ein schneller Einstieg in die Microcontroller-Entwicklung. 2. Auflage. dpunkt, Heidelberg 2015, ISBN 978-3-86490-126-3.
- Danny Schreiter: Arduino Kompendium: Elektronik, Programmierung und Projekte. BMU Verlag, Landshut 2019, ISBN 978-3-96645-038-6.
- Ulli Sommer: Arduino: Mikrocontroller-Programmierung mit Arduino, Freeduino. Franzis, Poing 2010, ISBN 978-3-645-65034-2.
- Günter Spanner: Arduino: Schaltungsprojekte für Profis. Elektor, Aachen 2012, ISBN 978-3-89576-257-4.
- Harold Timmis: Arduino in der Praxis. Franzis, Haar 2012, ISBN 978-3-645-65132-5.
- Dale Wheat: Arduino Internals. Apress, New York NY 2011, ISBN 978-1-4302-3882-9 (englisch).
Weblinks
- Offizielle Webpräsenz arduino.cc (englisch, teilweise deutsch, mit deutschem Forum)
- Online-Simulator für Arduino-Boards (englisch)
Einzelnachweise
- Ars Electronica Archiv. Abgerufen am 27. März 2015.
- David Kushner: The Making of Arduino. In: IEEE Spectrum. Abgerufen am 5. Januar 2021 (englisch).
- Hernando Barragán: Die wirklich wahre Geschichte von Arduino. 2016, abgerufen am 5. Januar 2021 (Eigendarstellung von Hernando Barragán).
- David Kushner: The Making of Arduino. 26. Oktober 2011, abgerufen am 29. April 2019 (englisch).
- Clive Thompson: Build It. Share It. Profit. Can Open Source Hardware Work? Wired Magazine, 16.11, 20. Oktober 2008
- Alexander Merz: Namesstreit unter Bastlern friedlich beigelegt. In: golem.de. Klaß & Ihlenfeld Verlag, 1. Oktober 2015, abgerufen am 24. Dezember 2016.
- Alexander Merz: Rosenkrieg: Arduino verklagt Arduino. In: golem.de. Klaß & Ihlenfeld Verlag, 16. Februar 2015, abgerufen am 5. April 2015.
- Massimo Banzi: Fighting for Arduino. In: makezine.com. Maker Media, 19. März 2015, abgerufen am 13. Januar 2017 (englisch).
- Alexander Merz: Arduino vs. Arduino: Kampf um die Arduino IDE. In: golem.de. Klaß & Ihlenfeld Verlag, 4. April 2015, abgerufen am 5. April 2015.
- Alexander Merz: Arduino IDE: Version 1.8 beendet Nutzerverwirrunge. In: golem.de. Klaß & Ihlenfeld Verlag, 24. Dezember 2016, abgerufen am 11. März 2017.
- Mike Senese: Arduino Announces New Brand, Genuino, Manufacturing Partnership with Adafruit. In: makezine.com. Maker Media, 16. Mai 2015, abgerufen am 13. Januar 2017 (englisch).
- Alexander Merz: Arduino heißt jetzt auch Genuino. In: golem.de. Klaß & Ihlenfeld Verlag, 17. Mai 2015, abgerufen am 18. Mai 2015.
- Adafruit is manufacturing Arduino for Arduino.cc in New York, New York, USA. Adafruit Industries, 16. Mai 2015, abgerufen am 18. Mai 2015 (englisch).
- Zoe Romano: MANUFACTURING PARTNERSHIP WITH ADAFRUIT ANNOUNCED. Arduino LLC, 16. Mai 2015, abgerufen am 13. Januar 2017 (englisch).
- Zoe Romano: ARDUINO AND SEEEDSTUDIO ANNOUNCE PARTNERSHIP IN SHENZHEN. Arduino LLC, 20. Juni 2015, abgerufen am 27. Juni 2015 (englisch).
- Alexander Merz: Offizielle Arduinos jetzt auch aus Deutschland und Italien. In: golem.de. Klaß & Ihlenfeld Verlag, 18. Oktober 2015, abgerufen am 31. Oktober 2015.
- GenuinoBrand. Arduino LLC, abgerufen am 27. Juni 2015 (englisch).
- Alexander Merz: Erste Bastelrechner mit Genuino-Logo. In: golem.de. Klaß & Ihlenfeld Verlag, 21. Juni 2015, abgerufen am 27. Juni 2015.
- Alexander Merz: Offizielle Arduinos jetzt auch aus Deutschland und Italien. In: golem.de. Klaß & Ihlenfeld Verlag, 18. Oktober 2015, abgerufen am 10. April 2016.
- Arduino Blog – Two Arduinos become one. Abgerufen am 4. Oktober 2016.
- Helga Hansen: Versöhnt: Arduino.org und Arduino.cc arbeiten wieder zusammen. In: Make: in heise online. Abgerufen am 4. Oktober 2016.
- Helga Hansen: Rolle zurück: Arduino gehört jetzt BCMI. In: Make: in heise online. Abgerufen am 23. August 2017.
- S4A – Scratch for Arduino (Memento vom 8. Januar 2015 im Internet Archive) – (Scratch-Dach). Abgerufen am 30. Juli 2015.
- Peter Eisner: Arduino-Web-Editor ausprobiert. In: heise.de. 4. Juli 2016, abgerufen am 11. April 2018.
- Jeff Bar: Arduino Web Editor and Cloud Platform – Powered by AWS | Amazon Web Services. 20. Mai 2016, abgerufen am 11. April 2018 (englisch).