Arduino

Achtung: Dies ist eine sehr persönliche und wertende Darstellung (deSilva ) Grundlagen findet man natürlich auch in der Wikipedia []

Das **Konzept** "Arduino" besteht aus den Komponenten:
 * Einfachste IDE (für Linux, Windows, MacOS; Java basiert)
 * Verbreitete Programmiersprache C (auf Basis des Gnu C++)
 * Bibliotheken zur Benutzung/Abschirmung der Prozessorhardware ("Wiring", ein HAL)
 * Sehr verbreitete Low Cost/Low Performance Prozessorfamile (ATmega 168, 328, auch 1280 und 2560, eingeschränkt wird auch ATtiny 44 und 84 (14 Beine) und 45 und 85 (8 Beine) unterstützt)
 * Board mit Spannungsversorgung (aus 8-12V oder USB), Stecksockel DIP-28 für den Controller, Programmiermöglichkeit über USB (anfangs noch über die serielle Schnittstelle), standardisierte Buchsen für Aufsteckergänzungen ("Shields")
 * OpenSource, insbesondere auch Anregung von Selbsbau-Hardware auf Einlagenplatinen!

Das Konzept war 1995 grundvernünftig! Damals gab es mehrere Hürden für einen Neueinsteiger (über die wir heute vielleicht lachen):
 * IDEs waren oft nicht kostenlos (von Atmel allerdings schon), aber auch dann und gerade dann an Hardware des Herstellers adaptiert, und insbesondere abschreckend "komplex-professionell"
 * Die Hardware des AVR begann zwar mal als durchsichtiges RISC System, erfordert aber schon bei der "ATmega" Architektur einige Vorkenntnisse und Studium des Datanblatts.
 * Es war nicht elementar, 5V zu bekommen, Steckernetzteile hatten 4,5V - 6V - 7,5V - 9 V :-)
 * "Programmieren" über ISP ist zwar elementar, mit einem Parallelport, aber die wurden gerade abgeschafft, und es herrschte da - wie soll man sagen? - ein gewisses Durcheinander. Gut funktionierende "Programmer" lagen zwischen 30 und 80 Euro (oder waren es DM?). Arduino verwendete das "Bootloader" Konzept, bei dem ohne "Programmer" über die serielle Schnittstelle geladen wird (* s.u.)
 * Entwicklungsboards (und Selbstbauvorschläge) gab es viele; die Community (AVR-Freaks,....) ist sehr groß, auch in Deutschland. Aber sie waren abgeschlossen, mit viel Schnickschnack drauf, unklar erweiterbar, zum "Spielen" und dann in die Ecke stellen...
 * Die Kommunikation mit dem PC über USB war zwar grundsätzlich mit einem 20 - 30 € USB/Seriell Adapter möglich. Diese Adapter enthielten fast alle einen FTDI232 Chip, den es nur in SMT gab; ihn auf der Arduino Platine gelöten zu bekommen war genial!

Heute sieht die Welt etwas anders aus, und Arduino ist - jedenfalls aus meiner Seite - etwa in dieser Art kritisierbar: > (*) Dies ist u.a. eine Konsequenz der "Bootloader" Strategie. > (*) Dies ist u.a. eine Konsequenz der "Bootloader" Strategie.
 * Die Preisstruktur hat sich stark verändert, ausreichend leistungsfähige "Programmer" für USB kosten 5 €, 5V Netzteile bekommt man praktsich gratis zu jedem Gerät, das man heute kauft, dazu.Es ist heute eher schwieriger, ein 9V Netzteil zu bekommen :-)
 * Die Grundplatine Arduino enthält praktisch "nichts", und ist - abhängig von der Variante (UNO, Seeduino, "Mini",...) - mit einem Normalpreis von etwa 25 € viel zu teuer (->"RaspberryPi")
 * Das Stecksystem ist wegen der SIL Buchsen mechanisch nicht sehr stabil und ärgerlich wegen des nicht-2,54mm Abstands auf der Digitalseite.
 * "Shields" sind nicht besonders billig, und sie sind nur in Ausnahmefällen mehrfach stapelbar. Arduino + 1 Shield ist dann plötzlich gar nicht mehr so preiswert.
 * Das System ist nicht besonders Steckboard geeignet.
 * Es wird ein 16 MHz Quarz verwendet (optional auch 8 MHz bei 3,3V). Eines der genialen AVR-Features ist aber der Betrieb mit internem 8 MHz Taktgeber, ev. noch ergänzt durch einen 32kHz Uhrenquarz für einen recht genauen Zeitgeber im PowerDown Modus. Das wird der Vereinfachung zuliebe jedoch nicht unterstützt.
 * Es wird optimal nur der ATmega168 und der 328 unterstützt, aber gerade die besonders preiswerten ATtinys sind für Elektronikbastler interessant.
 * DIe IDE ist zu simplizistisch, es fehlen einfachste Source-Code Management Funktionen. Auf der anderen Seite ist die Konfiguration bei Benutzung mehrerer verschiedener Boards etwas umständlich.
 * Die Arduino Bibliothek ("Wiring") ist zwar gut gemeint, allerdings kommt es gelegentlich zu Ressourcenkonflikten (Timer), und schlecht dokumentierten Einschränkungen. Schwerwiegender sind lange Zugriffszeiten auf die Hardware (Digitale I/O ca 50us)

So, die gute Nachricht ist, dass man fast alle Probleme umgehen kann :-)
 * Es gibt China-Nachbauten für etwa 15€ incl. Versand!
 * Die "Nano"-Variante ist genial und preisgünstig (allerdings mit einem SMD-Chip - den macht man schon mal kaputt, wenn man 12 V nicht ins Vin-Beinchen tut, sondern eins daneben :-) ) []
 * I/O Ports können sehr einfach direkt in C angesprochen werden.
 * Auch der interne Taktgeber und ATtiny (84 und 85) werden inzwischen begrenzt unterstützt (Programmierung über ISP, es gibt sehr günstige USBasp Programmer - für 64Bit Windows Treiber -> [] )
 * Die "Community" ist riesig und weiterhin sehr aktiv.

Und Selbstbauprojekte gibt es noch und noch.. [|http://www.youtube.com/watch?v=yMzRi4AAvV4]

Der aktuelle "Normvorschlag" heißt LEONARDO. Die Platinen enthalten einen relativ teuren ATmega 32U4 Chip als SMD, der ein USB OTG enthält, also auch als USB Host fungieren kann. Das erweitert - jedenfalls hypothetisch! - die Anwendungsmöglichkeiten kollossal!

Es ist aber trotzdem sinnvoll, sich etwas auf dem 32-Bit ARM Markt unzusehen. Link: Elektor, Embedded Linux ("Gnublin") Link: Olimex ("Olinuxino")

Einkaufsquelle für Arduino ist in erster Linie Hongkong [|www.ebay.com] In Deutschland hat [] sehr viel, insbesondere die "SparkFun" Produkte

Es gibt UNENDLICH viel über Atmel AVR Basteleien im Internet: [] (Obwohl Maschinensprachen orientiert gibt es hier viel Hintergrundinformation und Bastelanregungen)

Ich habe heute Abend mal so ganz auf die Schnelle (Na, 2 Stunden waren es schon...) ein Arduino-Steckboard aufgebaut. Nachbauen kann man es in 20 Minuten. Details hier . Lötarbeit für Kabeladapter = 10p Wannenstecker (aus [])