Da Arduino sehr verbreitet ist, gibt es sicher Serienprodukte auf Arduino Basis. Kennt jemand konkret welche?
3D Drucker? Wobei es nicht wirklich Sinn macht so einen einfachen alten Mikrocontroller per Huckepackplatine irgendwo draufzusetzen. Auf so einer Arduinoplatine ist ja quasi überhaupt nix drauf was man in einem Endprodukt braucht.
test schrieb: > 3D Drucker? > > Wobei es nicht wirklich Sinn macht so einen einfachen alten > Mikrocontroller per Huckepackplatine irgendwo draufzusetzen. Auf so > einer Arduinoplatine ist ja quasi überhaupt nix drauf was man in einem > Endprodukt braucht. Ebay: 252215309805 Nur ein Beispiel... Billiger/Einfacher wird man kein eigenes System bauen können. Nicht ohne erhebliche Stückzahlen.
test schrieb: > Wobei es nicht wirklich Sinn macht so einen einfachen alten > Mikrocontroller per Huckepackplatine irgendwo draufzusetzen. Auf so > einer Arduinoplatine ist ja quasi überhaupt nix drauf was man in einem > Endprodukt braucht. Ja das bereits erwähnte RAMPS-Shield ist quasi die Mutter der 3D-Drucker Boards. Inzwischen werden aber eher Boards verwendet die das RAMPS und den Arduino Mega auf einer Platine vereinen. Das Pinning ist i.d.R. 1:1 kompatibel (MKS GEN-L, MKS Gen 1.4 etc). Günstigere Drucker wie der CR-10, Ender2/3 haben noch ein Sanguino-Basierendes Board drauf. Ist aber am ende auch alles Arduino Basis.
Ich kann mir nicht vorstellen, dass echte Serienprodukte mit Arduino gibt. Wenn ich auf Stückzahlen gehe, komme ich im einer Eigenentwicklung sicher viel billiger als der Arduinoschrott. Bisher wurde ja auch nur DIY-Bastel-Zeug genannt...
Arduino Fanboy D. schrieb: > Billiger/Einfacher wird man kein eigenes System bauen können. > Nicht ohne erhebliche Stückzahlen. Irgendwas drumherum braucht man immer. Und selbst wenn alles zusammengesteckt ist - den EMV-Test kann man sich trotzdem nicht sparen. Ich sehe da keine großen Vorteile für die Arduinoboards. Lose gesteckte Kabel willst du auch nicht in einem Endprodukt haben.
Stampede schrieb: > als der Arduinoschrott. Dir ist schon klar was die ursprüngliche Absicht hinter diesem "Arduinoschrott" war? Und immerhin war dieser "Schrott" unheimlich erfolgreich, dieser "Schrott" hat etwas geschafft was niemand anders geschafft hat. Und jetzt komm nicht mit irgendwelchen besseren MCU Boards die es aktuell für billig aus China gibt. Es ist zu vermuten das es diese ohne Arduino nicht gäbe. Wobei es natürlich unmöglich ist abzuschätzen wo wir ohne Arduino jetzt wirklich wären.
test schrieb: > Dir ist schon klar was die ursprüngliche Absicht hinter diesem > "Arduinoschrott" war? > > Und immerhin war dieser "Schrott" unheimlich erfolgreich, dieser > "Schrott" hat etwas geschafft was niemand anders geschafft hat. > > Und jetzt komm nicht mit irgendwelchen besseren MCU Boards die es > aktuell für billig aus China gibt. Es ist zu vermuten das es diese ohne > Arduino nicht gäbe. Wobei es natürlich unmöglich ist abzuschätzen wo wir > ohne Arduino jetzt wirklich wären. Das ist mir schon klar, und der Erfolg als solcher ist auch gut und den Entwicklern zu gönnen. Für schnell mal ein paar Sachen testen und den Aufbau kleiner Projekte ist der Arduino auch völlig ok. Für eine Serienapplikation (und damit meine ich nicht 100 Stück DIY-Lötboards die auf Ebay vertrieben werden sondern 100k++ Devices), ist das Ding nicht zu gebrauchen, weil dort nach Requirement-Katalogen entwickelt wird. Und da sind die eben Bastelware und in diesem Kontext "Schrott" (auch wenn das jetzt vielleicht sehr hart ist :D ). Und genau danach hat ja der Threadstarter ja gefragt.
Stampede schrieb: > und in diesem Kontext "Schrott" Hatte ich nicht so gelesen. Na dann sind wir ja der selben Meinung. Und wie gesagt... Es macht ja auch (in diesem Kontext) überhaupt keinen Sinn ein Arduino Board auf die selbst entwickelte Platine zu stecken. Man gewinnt dadurch ja überhaupt nix.
Nun ist "Arduino" ja nicht auf die Verwendung von erkennbaren "Ardunio"-Platinen beschränkt. Ein µC, der mit Arduino-Mitteln programmiert werden kann, kann auch in einer hochprofessionell entwickelten Schaltung sitzen -- womit der programmiert wurde, sieht man ihm von außen nicht an, und es ist, solange er zuverlässig das tut, was er soll, auch komplett schnuppe, womit er programmiert wurde. Insofern ist die Verwendung von "Arduino" auch in professionellen Produkten durchaus möglich, nur ist das schwer nachweisbar. Man müsste die Firmware auslesen und analysieren ... das scheitert aber üblicherweise schon am Auslesen.
Und nicht jedes Serienprodukt ist gleichzusetzen mit "100k++ devices". Hier in der Nähe gibt es einen profitablen Autohersteller (Koenigsegg), der Serienproduktionen von unter 100 Einheiten betreibt...
Ab bereits einer Serienproduktion von 100+ oder 500+ sollte sich preislich Arduino nicht mehr lohnen, evtl. schon früher. Manchmal auch von anfang an. Letztendlich braucht man immr eine selber entwickelte Leiterplatte und der erfahrene Layouter klatscht da in unter einer Stunde den Kram vom Arduino mit drauf, samt passendem aktuellen Mikrocontroller. Wenn man keine individuelle Leiterplatte braucht, dann ist dies kein eigenes Produkt und keine eigene Serienfertigung. Arduino ist gut für Hobbybastler, für Einsteiger oder Prototypen.
S. R. schrieb: > Hier in der Nähe gibt es einen profitablen Autohersteller (Koenigsegg), > der Serienproduktionen von unter 100 Einheiten betreibt... Der auch mit Sicherheit keine Arduinos einsetzt
Rufus Τ. F. schrieb: > Insofern ist die Verwendung von "Arduino" auch in professionellen > Produkten durchaus möglich, nur ist das schwer nachweisbar. Man müsste > die Firmware auslesen und analysieren ... das scheitert aber > üblicherweise schon am Auslesen. Da Softwareentwickler Geld kosten und nicht immer verfügbar sind werden auch einmal Kompromisse gemacht - Ich habe 5 Jahre Erfahrung in Arduino und konnte 2x mein Wissen in einem Unternehmen einsetzen. (professionelle Entwickler sind erstaunt mit welcher naiven Herangehensweise ich zu Ergebnissen komme - ... die verwendbar sind) Beispiele: 1. Prototypenaufbau einer Ablaufsteuerung zur Ansteuerung mehrer Relais (Machbarkeitsstudie) 2. Einen Frequenz-Spannungswandler erstellt. 8-pin AtTiny85 -- Frequenz 30Hz bis 300Hz - Spannung 0,3V bis 3V 1% Genauigkeit (als Beispiel)
Rufus Τ. F. schrieb: > Ein µC, der mit Arduino-Mitteln > programmiert werden kann, kann auch in einer hochprofessionell > entwickelten Schaltung sitzen Die Arduino IDE läßt sich eben auch unabhängig von der Arduino-Hardware einsetzen. Mit und ohne Bootloader. > Man müsste die Firmware auslesen und analysieren ... das scheitert aber Könnte mir vorstellen, daß das auch dann mehr als schwierig wird. Der verwendete GCC ist z.B. bei Arduinio-IDE, AVR Studio und Atmeld Studio gleich. Daher dürften für gleiche Aufgaben auch gleiche Codes herauskommen?
svensson schrieb: > Daher dürften für gleiche Aufgaben auch gleiche Codes herauskommen? Wenn die Arduino-Laufzeitumgebung genutzt wird, ist das potentiell erkennbar, je nach Optimierungsgrad. Zwar gibt es keine Symbolnamen, aber die Struktur mit setup und loop sowie dem das Zeug jeweils aufrufenden Code sollte noch zu identifizieren sein.
:
Bearbeitet durch User
Rufus Τ. F. schrieb: > je nach Optimierungsgrad. -Os Ist Arduino Standard. setup() und loop() landen oft inline im Kompilat. Aber der Startupcode, mit Timer Initialisierung dürfte recht eindeutig sein. Auch die DigitalIO und Zeitfunktionen tauchen mit hoher Wahrscheinlichkeit im Kompilat auf. Ja, so ist ein Arduino Programm erkennbar. Unwahrscheinlich, dass ein anderer Programmierer zufällig den gleichen Code generiert. Da es aber auch Arduino Programme gibt, welche statt setup() und loop() die klassische main() verwenden, eben nicht immer. Dann gibt es keine Indizien mehr im Kompilat.
Gut bei loop kann ich mir das noch vorstellen. Allerdings werden auch viele andere Programme eine Hauptschleife enthalten. Ist setup nicht einfach die "normale" Ausführung von Code hintereinander weg, die auch in jedem anderen Programm zur Initialisierung von Variablen erforderlich ist? Evtl. lassen sich auch OO-Elemente identifizieren, die sich durch gleiche Muster im Code darstellen könnten, aber ich möchte den Assemblercode nicht nach so etwas durchsuchen müssen... Es mag also durchaus möglich sein, zu ermitteln mit welcher IDE ein Programm erzeugt wurde. Wird aber vermutlich eher selten gemacht?
Post war als Antwort auf den Beitrag Rufus gedacht. @Arduino Fanboy Wie nutze ich denn main() statt setup() und loop() in der Arduino-IDE?
svensson schrieb: > Wie nutze ich denn main() statt setup() und loop() in der Arduino-IDE? Einfach hinschreiben.
svensson schrieb: > Ist setup nicht einfach die "normale" Ausführung von Code hintereinander > weg, die auch in jedem anderen Programm zur Initialisierung von > Variablen erforderlich ist? Hier die originale Arduino main() https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp Wird genutzt, wenn loop() implementiert ist. Also: Der Arrduinobuilder sucht nach loop() und/oder setup() und wenn gefunden wird diese main() verwendet. Wenn nicht, Fehlermeldung, es sei denn, es wird eine eigene main() verwendet. > Evtl. lassen sich auch OO-Elemente identifizieren, Nicht unbedingt! Virtuelle Methodentabellen könnte man evtl. erkennen. svensson schrieb: > aber ich möchte den > Assemblercode nicht nach so etwas durchsuchen müssen... Ich auch nicht
svensson schrieb: > Wie nutze ich denn main() statt setup() und loop() in der Arduino-IDE? Kleinst mögliches Arduino Programm: minimal.ino
1 | int main() |
2 | {
|
3 | |
4 | while(1); |
5 | }
|
Dann sind setup() und loop() optional? Initialisiert dann setup() die Timer usw?
svensson schrieb: > Initialisiert dann setup() die Timer usw? Nein! Das macht initVariant(); Eben individuell für jeden AVR Type Danach kommt setup() dran. Siehe: https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp
Also wenn sich schon jeder zweite Hobbyler nach nem halben Jahr Arduino lieber eine eigene Arduino Platine ätzt/bestellt..da hat sich dann die Frage mit der Massenproduktion erledigt. Anders ist es vielleicht mit Esp8266/esp32 modulen die sich als Breakout in Fertigen Geräten verstecken..
Die Frage ob es Serienprodukte auf "Arduino"-Basis gibt kann ich für unseren Betrieb mit "ja" beantworten. Ich entwickle die Software für einen Großteil unserer Produkte mit der Arduino-Umgebung. In der Hardware stecken freilich keine Arduino Boards mit Shield... Es sind AVR Controller, meist Mega168, Mega644P oder jüngst Mega1284P die auf eigens für das Projekt entwickelten Leiterplatten sitzen. Die Produkte laufen gut und werden in (für uns) lohnenswerten Stückzahlen produziert und verkauft. EMV Tests usw. haben wir damit auch problemlos geschafft, warum auch nicht. Dem Kunde ist es egal wie die Firmware entsteht. Entscheidend ist das Endprodukt und ob es seinen Vorstellungen entspricht. Ach so, ich verzichte auf den Bootloader und flashe die Boards über die ISP Schnittstelle mittels ATMEL-ICE Programmer vom PC aus. Natürlich könnte ich auch den Weg über das ATMEL-Studio gehen und direkt in "C" programmieren. Ich gebe aber offen zu dass ich mit Arduino einfach besser klar komme. Ursprünglich kam ich aus der 8051 Welt und habe jahrelang in ASM programmiert und nie den Sprung nach "C" geschafft. Mir ist schon klar dass ich mir durch die Arduino Umgebung einiges an features im Controller blockiere. Das nervt manchmal.... Vielleicht schaffe ich vor meiner Rente doch noch den Absprung :-)
TV schrieb: > [...] Ich entwickle die Software für einen Großteil unserer Produkte mit der > Arduino-Umgebung. [...] Das geht natürlich. Aber das klingt für mich so, als ob keine großen Anforderungen an den Mikrocontroller und dessen Firmware gestellt werden. Ich stehe im professionellen Bereich oft vor der Frage, welchen Mikrocontroller ich nehmen muss, der meinen Anforderungen entspricht. Dann kann mal ein anderes Pinout besser sein, ich brauche einen Timer mehr oder auf ein mal eine Schnittstelle, die es nur bei einem bestimmten Hersteller so gibt. Die Liste kann man natürlich endlos lang machen. Und dieser Punkt ist oft schnell erreicht. Wenn man nur GPIOs, ADC, 4 zeilen Display etc. braucht ohne genauere Spezifikationen kann Arduino durchaus ausreichen.
TV schrieb: > Dem Kunde ist es egal wie die Firmware entsteht. > Entscheidend ist das Endprodukt und ob es seinen Vorstellungen > entspricht. > Besten Dank für den praxisnahen Hinweis. Arduino ist letzten Endes auch "nur" .. was andere Produzenten eine HAL (Hardware Abstraction Layer) nennen. Man erspart sich eine Menge Zeit weil man nicht mehr jedes Detail der Hardware kennen muss (das haben andere Zeitgenossen in gemeinsamer ehrenamtlicher Arbeit gemacht).
Arduino ist heutzutage nicht mehr nur AVR controller Man sollte unterscheiden: Arduino Boards/Shields Arduino IDE Arduino Library's Die Boards und shield sind sicher nichts für die serie Die IDE ist wirklich nicht gut, kann aber mit eclipse oder VSCode ersetzt werden. Die Library's sind das interessante. Hier lassen sich sehr schnell fertige Prototypen entwickeln. Und wenn die Performance nicht passt, oder Bibliotheken einschränkungen oder fehler haben....dann kann ich diese immernoch ändern. Niemand hält mich in Arduino davon ab in den Registern der Mikrocontroller selber zu schreiben. Und inzwischen lassen sich STM32, ESP32, NRF52 und warscheinlich noch viele mehr in Arduino programmieren. Der Vorteil ist: ich habe innerhalb von 5min das komplette projekt aufgesetzt mit "Hello World" Auch wenn ich den Controller zuvor noch nie verwendet habe. Und dazu kann ich sehr viel Code kopieren und er funktioniert trotzdem.
:
Bearbeitet durch User
John P. schrieb: > Und inzwischen lassen sich STM32, ESP32, NRF52 und warscheinlich noch > viele mehr in Arduino programmieren. das hat mir den Umstieg vom Arduino AVR zum ESP32 sehr erleichtert, ich konnte viel eigenen Code weiternutzen und alle LIBs nutzen.
TV schrieb: > Die Frage ob es Serienprodukte auf "Arduino"-Basis gibt kann ich für > unseren Betrieb mit "ja" beantworten. > Ich entwickle die Software für einen Großteil unserer Produkte mit der > Arduino-Umgebung. > In der Hardware stecken freilich keine Arduino Boards mit Shield... > Es sind AVR Controller, meist Mega168, Mega644P oder jüngst Mega1284P > die auf eigens für das Projekt entwickelten Leiterplatten sitzen. > > Die Produkte laufen gut und werden in (für uns) lohnenswerten > Stückzahlen produziert und verkauft. > EMV Tests usw. haben wir damit auch problemlos geschafft, warum auch > nicht. Wie ist eigentlich dir rechtliche Lage? bist du eigentlich nicht verpflichtet deine SW die auf Arduino basiert, offenzulegen ? Zumindest denke ich musst du ein Hexfile rausrücken was Uptodate zur Arduino Version gehalten werden muss! TV schrieb: > Dem Kunde ist es egal wie die Firmware entsteht. Das wäre mir als Kunde nicht egal! Man kann die SW ganz gut verstecken, speziell wenn man eine eigene HW baut. Auf der anderen Seite ist es aber unfair gegenüber den Leuten die da Zentnerweise LIBs schreiben um dir das SW-Leben zu erleichtern. Hat da jemand von Euch eine sinnvolle Antwort?
il Conte schrieb: > Wie ist eigentlich dir rechtliche Lage? bist du eigentlich nicht > verpflichtet deine SW die auf Arduino basiert, offenzulegen ? Zumindest > denke ich musst du ein Hexfile rausrücken was Uptodate zur Arduino > Version gehalten werden muss! Nein ist man nicht. Der Arduino core ist lgpl. Das heißt alles was du drum herum baust kann closed source bleiben, solange man nichts am core ändert. Du müsstest aber - zumindest auf Nachfrage - die object files bereitstellen, damit es ggf gegen einen neuen core gelinkt werden kann.
il Conte schrieb: > TV schrieb: >> Dem Kunde ist es egal wie die Firmware entsteht. > > Das wäre mir als Kunde nicht egal! Wirklich? Es interesiert dich doch auch nicht wie die Firmware deines Smartphones entsteht, oder doch? Nunja, mag sein. Aber ich, ich sag mal, 99,99% aller Kunden ist es völlig schnuppe ob die Firmware ausgewürfelt wird, mit dem Meisel aus feinsten Mamor gehauen wird oder durch selektive Elektronenauswahl heraus entsteht solange das Gesamtprodukt genau das macht, was der Kunde will. il Conte schrieb: > Zumindest denke ich musst du ein Hexfile rausrücken was Uptodate zur > Arduino Version gehalten werden muss! Wieso muss es Uptodate gehalten werden? Das ist AFAIK nicht erforderlich. il Conte schrieb: > Auf der anderen Seite ist es aber unfair gegenüber den Leuten die da > Zentnerweise LIBs schreiben um dir das SW-Leben zu erleichtern. Das Leben ist selten Fair. Erst recht im unternehmerischen Umfeld ;)
Libs werden doch auch im nicht arduino Umfeld verwendet Programmiere auf Arbeit unter Linux/Windows/Android cross Plattform c++ und da geht der Trend eindeutig zur Benutzung von librarys. Das ist im Idealfall getesteter Code, den man einbinden muss und es läuft. Ich war da früher ziemlich skeptisch, da ich davon ausgegangen bin, im Fehlerfall die lib komplett verstehen zu müssen. Der Zahn wurde mir gezogen und das klappt soweit ganz gut. Einen svg rasterizer, oder eine Layoutengine wie pango schreibt niemand selbst, und wenn, sollte man diesem niemand auf die Finger klopfen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.