PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino - Ja oder Nein?



Sisor
26.08.2014, 11:17
Hallo Leute,

mich beschäftigt gerade die Frage, was wohl Vor- und Nachteile der Arduinos sind.

Meine Fragen an Euch sind daher:


Benutzt ihr Arduinos in irgendeiner Form? Warum und wozu, oder warum nicht?
Inwieweit sind sie für Anfänger geeignet?
Inwieweit sind sie für Fortgeschrittene geeignet?
Inwieweit sind sie für professionelle Anwendung geeignet?
Inwieweit lernt man mit Arduinos etwas über Microcontroller?


Dieser Thread soll keine Glaubenskriege zwischen verschiedenen Programmiersprachen oder -methoden, Boards etc anheizen.
Mir gehts nur um eure persönliche Meinung und Erfahrung.

Danke im Voraus für eure Beiträge!

Sisor

Hubert.G
26.08.2014, 13:28
Ich benutze die Arduino Hardware um diverse Software zu testen. Die Arduino-IDE benutze ich nicht, es sei denn ich versuche, mit meinen in dieser Richtung eingeschränkten Fähigkeiten, jemanden zu helfen.

Kommt darauf an was der Anfänger machen will, als Hardware sicher nicht schlecht. Anfangserfolge stellen sich rasch ein. Wenn man sich aus den vorhandenen Libs hinausbewegt oder mehrere Libs zusammenstoppeln will, ist man ohne weiteres Wissen sehr schnell am Ende.

Das gleiche gilt auch für Fortgeschrittene.

Ich könnte mit vorstellen das es auch professionelle Anwendungen in kleiner Stückzahl gibt.

Es kommt nicht auf den Arduino an ob und was man lernen will. Die Möglichkeit ist gegeben.

Man ist mit dem Arduino nicht an eine Programmiersprache gebunden, man kann die vorhandene IDE verwenden, es geht aber mindestens genau so gut C, Assembler, BASCOM und was es sonst noch alles gibt das den auf dem Board vorhandenen Kontroller unterstützt.

Mxt
26.08.2014, 15:40
Profesionelle Anwendung ist natürlich ein dehnbarer Begriff.

Wenn man darunter nur Mikrocontroller-Entwicklung versteht, dann sind die Profis eher nicht gut darauf zu sprechen. Aber das ist nur ein kleiner Ausschnitt der Entwicklerwelt.

Man muss sich nur mal irgendwelche Videos von Veranstaltungen für Webentwickler ansehen, wo in einem Vortrag gezeigt wird, wie man in Javascript eine LED einschaltet. Da ist das Publikum richtig begeistert. Auf einer Embedded Konferenz gäbe es Buhrufe.

Arduinos sind ein praktischer Weg, wenn man vom PC aus irgendwelche Elektronik steuern will. Sei es auch nur eine LED oder eine 7-Segment Anzeige. Es gibt die Dinger überall zu kaufen, teuer sind sie, verglichen z.B. mit PCI-Steckkarten auch nicht. Wenn man mal schnell ein rotes Licht braucht, wenn der Datenbankserver spinnt, ist es gut, wenn man sowas in der Schublade hat. Mit der IDE kann ich meist leben, oft sind meine Arduino Programme keine 20 Zeilen lang.

Um mal schnell irgendwelche Sensoren zu testen, oder nicht vorhandene serielle-, CAN-, USB- oder Ethernetgeräte zu simulieren bin ich aber mittlerweile zu anderen Boards abgewandert. Einmal, weil bei den Sensoren heute eh nur alles 3,3 V hat, da gibt es dann nur den Due, da ist man dann aber z.B. mit mbed besser dran: Richtiges C++, funktionierendes Multitasking, usw.

Peter(TOO)
26.08.2014, 16:59
Hallo Sisor,

Die Dinge unterscheiden sich in der Hardware nicht von anderen Prototyping-Boards.

Man hat einen vernünftigen Aufbau und das nötige drum rum, damit sich die CPU beweg und man ein Programm laden kann. Ein paar LEDs und Tasten sind für erste Versuche auch nicht schlecht. Zudem sind alle verfügbaren Anschlüsse am Board abgreifbar.
Und nicht zu vergessen, die Schaltung ist dokumentiert.

Softwaremässig bekommt man Assembler und Compiler auch gratis dazu. Wobei das seit z.B. dem GNU-Projekt für fast alle CPUs gilt.

Der Unterschied zu den Industriellen Prototyping-Boards liegt beim Arduino in der vielfältigen Literatur, Unterstützung im Internet und den passenden fertigen Interfaces (Shields) samt Bibliotheken.
Damit lässt sich schon fast alles verwirklichen, was man mit einem µC so anstellen kann.

Bei professionellen Anwendungen kommen aber noch ein paar andere Aspekte ins Spiel:
Grundsätzlich wählt man hier die CPU passend zum Projekt aus, da geht's dann meist um den Preis und spezielle Funktionen auf dem Chip. Nicht umsonst haben die Chiphersteller oft 100 Modelle, alle mit der selben CPU, aber unterschiedlichem Speicher, Peripherie und Gehäusen. Auch sind Steckverbindungen eher unzuverlässig und man versucht diese zu vermeiden, also die Konstriktion mit Piggi-Packs ist teuer und unzuverlässig, also packt man da möglichst alles auf eine Leiterplatte. Die Entwicklung auf eine Arduino und die anschliessende Anpasserei auf die gewünschte CPU macht auch keinen Sinn. Da gibt es immer wieder jede Menge Hürden, welche Zeit und Geld kosten du zudem oft unberechenbar sind :-(
Ein Ansatz war da mal mit ADA, da dache man, man könne die Software einmal entwickeln und dann auf jeder CPU, vom µC bis zum Mainfame ohne Änderung laufen lassen. Da ist aber nichts draus geworden.

Da man immer hardwarenahe Programme erstellt, lässt sich damit viel lernen. Ohne Learning bei Doing geht es nun mal nicht, Praxis ist wichtig!

Ich selbst habe auch beruflich in dieser Art angefangen, allerdings mit einem KIM-1. Nicht grundsätzlich etwas anderes als heute ein Arduino, aber halt Technik von vor 35 Jahren.
http://de.wikipedia.org/wiki/KIM-1

MfG Peter(TOO)

redround
26.08.2014, 22:50
ich habe meinen Einstieg in die Mikro-Controller Welt damals über das AVR Tutorial von mikrocontroller.net gemacht. Das gibt zwar eine gute Einführung in die Hardware-Grundlagen, dafür ist die Programmierung mit Assembler ein absoluter Graus :) Ich habe dann auch einige Projekte auf dieser Basis umgesetzt bevor ich mit den ersten Arduinos in Berührung gekommen bin ... und ich war sofort begeistert davon :)

Die Einarbeitung geht einfach und man kommt schnell zu ersten Erfolgen. Die Verwendung von vorgefertigten Shields und Bibliotheken hilft ungemein die doch enorme Komplexität des Themas zu vereinfachen. Bei der Programmierung ist man aber auch nicht auf die Verwendung der Libs beschränkt. Die Arduino-IDE verwendet als Programmiersprache auch nur C und man kann damit auch alles "hardwarenah" programmieren ohne die Bibliotheken zu verwenden.

Alerdings kommt man dann irgendwann immer mal an den Punkt, wo es mit den vorgefertigten Shields nicht mehr geht weil es die benötigte Funktionalität nicht gibt oder sich zwei Shields in die Quere kommen. Dann kommt man nicht mehr darum herum, sich auch mit der Hardware auseinander zu setzen und sich ggf. auch mal ein paar Platinen selbst zu designen. Das ist aber nicht gleich zu Beginn, so dass man sich erstmal auf das Erlernen der Programmierung konzentrieren kann. Wenn der Zeitpunkt dann irgendwann mal kommt, hat man zumindest die Software so weit im Griff, dass man auch den Kopf wieder frei hat um sich näher mit der Hardware zu befassen.

Zusammenfassend würde ich also sagen: der Arduino ist eine sehr gute Einstiegsplattform - wobei ich persönlich die Digistump-Produkte (http://digistump.com) bevorzuge ... aber das ist eine individuelle Vorliebe. Für Fortgeschrittene ist die Plattform auf alle Fälle auch geeignet, wenn man anfängt, die Zusammenhänge sowohl auf Softwareseite (Stichwort Libraries) als auch auf Hardwareseite (Sprichwort Shield-Design) zu hinterfragen. Ob man die Dinger auch profesionell einsetzen kann muss jeder für sich selbst entscheiden. Ich arbeite zur Zeit an einem zumindest semi-professionellen Projekt, in dem ich einen DigiX (http://digistump.com/products/50)einsetze ... allerdings nicht mit vorgefertigten Shields ;)