Aus Das deutschsprachige Scratch-Wiki

Logo

Screenshot der Arduino-IDE (Version 1.6.0)
Basisdaten
Betriebssystem: Windows, Linux, macOS
LizenzWikipedia.jpg: LGPL/GPL (freie Software)
www.arduino.cc


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.

Das Arduino-Projekt wurde im Rahmen des Prix Ars Electronica 2006 mit einer Anerkennung in der Kategorie Digital Communities ausgezeichnet.[1]

Geschichte

Das erste Board wurde 2005 von Massimo Banzi und David Cuartielles entwickelt. 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).[2] David Mellis entwickelte die auf C/C++ basierende Diktion dazu. Das Schema wurde im Netz veröffentlicht und unter eine Creative-Commons-Lizenz gestellt. Die erste Auflage betrug 200 Stück, davon gingen 50 an eine Schule. Bis 2008 wurden etwa 50.000 Boards verkauft.[3]

Rechtsstreit

Vom Januar 2015 bis Ende August 2016[4] 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[5].

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,[6] 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.[7] 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[8].

Genuino

Offizielles Logo von 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“[9]. Dieser neue Markenname soll dort genutzt werden, wo die Markenrechte der eigentlichen Marke Arduino ungeklärt sind[10]. 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[9][10][11]. Die Gründerin von Adafruit Industries Limor Fried bestätigte die Zusammenarbeit[12]. 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[13].

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.[14]

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.[15] Anscheinend ist die Rechtslage um die Markenrechte von Arduino nur in den Vereinigten Staaten eindeutig.[16][17]

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.[18][19] 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.

Hardware

Arduino UNO R3 – Version in SMD-Bauweise mit USB-Schnittstelle und ATmega328-Mikrocontroller

Die Hardware eines typischen Arduino-Boards basiert auf einem Atmel-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 andere Mikrocontroller, etwa der ESP8266, über die Arduino-IDE programmiert werden.

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.

Siehe auch: Liste von Arduino-Boards

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:

Funktion Beschreibung
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 als Eingang oder Ausgang zu definieren.
loop() – wird durchgehend immer wieder durchlaufen, solange das Arduino-Board eingeschaltet ist.

Hier ein Beispiel für ein Programm (in der Arduino-Diktion: Sketch), das eine an das Arduino-Board angeschlossene LED blinken lässt:

int ledPin = 13;               // Die LED ist an Pin 13 angeschlossen, was in der Integer-Variable ledPin gespeichert ist.
                               // Bei vielen Boards ist auf der Platine eine LED integriert, welche 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.[20].

Weiterhin bietet Arduino mit Arduino Create eine webbasierte Lösung an, um im Browser zu programmieren. Geschriebene "Sketche" werden online in einer Cloud abgelegt.[21] Die Kommunikation zwischen Browser und Arduino-Board wird über Plugins 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.[22]

Weblinks

  1. Ars Electronica Archiv -
  2. David Kushner:The Making of Arduino - - 2011-10-26
  3. Clive Thompson: Build It. Share It. Profit. Can Open Source Hardware Work? Wired Magazine, 16.11, 20. Oktober 2008
  4. Alexander Merz:Namesstreit unter Bastlern friedlich beigelegt - in golem.de- 2015-10-01
  5. Alexander Merz:Rosenkrieg: Arduino verklagt Arduino - in golem.de- 2015-02-16
  6. Massimo Banzi:Fighting for Arduino - in makezine.com- 2015-03-19
  7. Alexander Merz:Arduino vs. Arduino: Kampf um die Arduino IDE - in golem.de- 2015-04-04
  8. Alexander Merz:Arduino IDE: Version 1.8 beendet Nutzerverwirrungen - in golem.de- 2016-12-24
  9. 9,0 9,1 Mike Senese:Arduino Announces New Brand, Genuino, Manufacturing Partnership with Adafruit - in makezine.com- 2015-05-16
  10. 10,0 10,1 Alexander Merz:Arduino heißt jetzt auch Genuino - in golem.de- 2015-05-17
  11. Adafruit is manufacturing Arduino for Arduino.cc in New York, New York, USA - - 2015-05-16
  12. Zoe Romano:MANUFACTURING PARTNERSHIP WITH ADAFRUIT ANNOUNCED - - 2015-05-16
  13. Zoe Romano:ARDUINO AND SEEEDSTUDIO ANNOUNCE PARTNERSHIP IN SHENZHEN - - 2015-06-20
  14. Alexander Merz:Offizielle Arduinos jetzt auch aus Deutschland und Italien - in golem.de- 2015-10-18
  15. GenuinoBrand -
  16. Alexander Merz:Erste Bastelrechner mit Genuino-Logo - in golem.de- 2015-06-21
  17. Alexander Merz:Offizielle Arduinos jetzt auch aus Deutschland und Italien - in golem.de- 2015-10-18
  18. Arduino Blog – Two Arduinos become one -
  19. Helga Hansen:Versöhnt: Arduino.org und Arduino.cc arbeiten wieder zusammen - in Make: in Heise online
  20. en:S4A
  21. Peter Eisner:Arduino-Web-Editor ausprobiert - in heise.de- 2016-07-04
  22. Jeff Bar:Arduino Web Editor and Cloud Platform – Powered by AWS | Amazon Web Services - - 2016-05-20
Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.