Nehmen wir an, dass die Warenkosten ein unbedeutender Faktor sind. Wenn ein Unternehmen kein Team hat, um ein kundenspezifisches Board für ein bestimmtes Produkt zu produzieren, aber mit einer handelsüblichen Entwicklungsplattform wie Arduino / Netduino / mbed erfolgreich ist, welche Dinge sollten berücksichtigt werden, bevor es weitergeht?
Wenn ich mich nicht irre, richtete sich Arduino wegen seines niedrigen Preises und seiner Benutzerfreundlichkeit ursprünglich an Universitätsstudenten. Es wurde natürlich zu einer beliebten Plattform für Künstler und Macher. Ich sehe Netduino als eine logische Erweiterung von Arduino – es ermöglicht den Menschen, eine robuste und reichhaltige IDE (Visual Studio 2010) zu verwenden und Dinge schnell über das .NET Micro Framework zu erledigen. mbed ist aufgrund seiner Benutzerfreundlichkeit, kostenlosen Tools (Online-Compiler) und Hardware-Peripheriegeräten eine weitere nette Bastlerplattform.
Meine Frage lautet also: Warum sollten Unternehmen diese Entwicklungsplattformen nicht für den produktiven Einsatz übernehmen? Mit anderen Worten, ist es eine schlechte Idee, einfach mehrere Boards von Sparkfun zu kaufen, jedes mit dem Code zu programmieren und das Produkt dann den Kunden bereitzustellen?
Ich interessiere mich speziell für Netduino, aber Argumente für / gegen Arduino und mbed sind auch willkommen. Auf der anderen Seite, würden Sie oder haben Sie dies schon einmal getan?
Ich persönlich betrachte die Netduino-Entwicklung als „Kernmodul“, das andere Prozessorhersteller für Produktintegrationen verkaufen, aber vielleicht übersehe ich hier etwas Wichtiges.
Einige der Dinge, auf die Sie bei der Beschaffung eines Controller-Moduls achten könnten, sind Probleme wie Liefersicherheit im Laufe der Zeit, Lizenzprobleme, Ineffizienzen beim Firmware-Ladeprozess für die Produktion, Code-Sicherheitsprobleme und Bedenken hinsichtlich der Herstellungsqualität oder der Einhaltung gesetzlicher Vorschriften. Einige davon werden eher ein Problem für ein proprietäres Modul sein als für ein relativ offenes Modul, für das jemand anderes ein Äquivalent zu anderen Funktionen in Ihrem Produkt erstellen oder schließlich mit ihnen zusammenführen könnte.
Huch! Entweder sind Sie völlig verwirrt, oder Sie haben eine andere Vorstellung von Produktion als ich. Ich betrachte Produktion als den Verkauf eines Produkts an die breite Öffentlichkeit in Mengen von Tausenden oder mehr und dann die Unterstützung und Aktualisierung des Designs. Produkte, die nicht an die breite Öffentlichkeit gehen, sind entweder interne oder Auftragsarbeiten, und Produkte, die in kleineren Mengen verkauft werden, sind Spezialzwecke oder anderweitig anders. „Mehrere Boards von Sparkfun“ würden einen Produktionsbedarf nicht decken.
Erstens sind die Warenkosten immer ein wesentlicher Faktor. Wie wichtig es ist, kann von Produkt zu Produkt unterschiedlich sein, und es kann weniger bedeutend sein, wenn das bestimmte Element nur eine kleine Komponente eines größeren Systems ist, das auf Kosten optimiert wurde. In jedem Umfeld, in dem Sie jedoch im Wettbewerb mit anderen Produzenten stehen (was Sie sein müssen, denn wenn Sie in der Regierung sind oder ein Monopol haben, würden Sie diese Frage nicht stellen), werden die Kosten ein Faktor sein. Die 35 US-Dollar für das Netduino (allein an Kosten) könnten für die meisten Anwendungen mit einem benutzerdefinierten Design normalerweise auf 10 US-Dollar oder weniger reduziert werden. Wenn Sie davon überzeugt sind, dass die Kosten keine Rolle spielen, sprechen weitere Gründe gegen den Kauf eines solchen Designs.
Ja, alle drei Boards wurden für Studenten, Designer und Bastler entwickelt. Sie sind so konzipiert, dass sie zuverlässig genug für ein Entwicklungskit sind, das auf einem Schreibtisch steht. Dieser Schüler sollte einige Dinge über sichere Handhabungsverfahren wissen, die die allgemeine Bevölkerung nicht kennt oder praktiziert. Probleme wie ESD, langfristige Verlustleistung und Komponenten-Derating wurden wahrscheinlich unter Dinge herabgestuft, die für die Produktion weniger wichtig sind, wie Lötbarkeit und Einfachheit.
Ihre Affinität zu IDEs und vorgefertigten Lösungen ist erschreckend. Meiner Meinung nach schenken Sie Ihren Tool-Anbietern viel zu viel Vertrauen. Wenn die Boards teurer werden, wenn die Lizenzbedingungen geändert werden, wenn der Server ausfällt, die Software für obsolet erklärt wird, der Boardhersteller sein Geschäft aufgibt (usw. etc. etc...), wird Ihr Geschäft abgespritzt. Außerdem fehlt es Ihnen an Verständnis dafür, was hinter den Kulissen vor sich geht. Wenn etwas nicht so funktioniert, wie es die Dokumentation vorschreibt, was ist Ihr Plan? Ihrer Idee, ein paar Arduinos zu kaufen, sie zu programmieren und das Produkt einzusetzen, fehlt zum Beispiel jeder Plan für Codeschutz. Jemand anderes könnte Ihren Code aus dem Mikrocontroller kopieren, die relevanten Teile des Designs für ein Drittel des Preises duplizieren und Sie besser verkaufen.
Sich für Dinge, die man nicht versteht, auf eine IDE und eine Sprache zu verlassen, ist ein Rezept für eine Katastrophe.
Die Verwendung eines Entwicklungskits in Ihrem Design macht Ihr Produkt überteuert, zerbrechlich, sperrig, stromhungrig und ineffizient. Es wird auch schwer zu debuggen, mühsam zu unterstützen, und Sie werden Ihren Lieferanten ausgeliefert sein. Es wird Sie inkompetent aussehen lassen.
Es ist jedoch nicht alles verloren. Wenn Sie Ihr Design auf einem Entwicklungsboard implementieren, ist es einfach, es von jemandem (entweder innerhalb oder außerhalb Ihres Teams) anpassen zu lassen, um diese Mängel zu beseitigen. Wenn Ihnen ein Team fehlt, sollten Sie eines einstellen, einen Auftragnehmer hinzuziehen oder es von einer Designfirma erledigen lassen.
Ich habe ein Arduino-Board in einem Produkt verwendet (keine Massenproduktion) und ich würde es nicht noch einmal tun. Die Arduino-Boards sind auf ein sehr geschlossenes Ökosystem ausgerichtet (im Sinne des Wortes Nicht-Open-Source-Software). Wenn Sie beispielsweise aus dem Arduino-Ökosystem „aussteigen“, indem Sie einen Pin verwenden müssen, der nicht zu einem Header auf der Entwicklungsplatine geführt wird, verlieren Sie sofort alle Vorteile des Arduino. Sie müssen das Board modifizieren, um den Pin zu einem vorhandenen Header zu bringen, oder irgendwie einen neuen Header hinzufügen. Dies bedeutet wahrscheinlich, dass Sie keine vorhandenen Schilde oder möglicherweise sogar die Softwarebibliotheken für den Arduino verwenden können. Das ist der größte Vorteil des Boards. Ich musste dies mit einem Arduino Mega tun.
Außerdem sind die Platinen riesig und nicht einfach in andere Leiterplatten zu integrieren. Ich habe die Hauptplatine für meine Anwendung so gestaltet, dass sie einem Schild für den Arduino Mega entspricht, der Befestigungslöcher für das von mir gewählte Gehäuse hatte. Also habe ich einfach den Arduino Mega in die Header gesteckt, die ich auf meinem Board platziert habe. Dies war jedoch eine Menge Platz nach oben und unten, und aufgrund der Größe der Entwicklungsplatine wurde viel Platz verschwendet. Ich brauchte nicht die Hälfte von dem, was da drauf war, und es nahm nur Platz weg. Dies erforderte, dass ich eine größere Leiterplatte und ein größeres Gehäuse hatte, als ich sonst benötigt hätte. Das ist verschwendetes Geld.
Arduinos & Co sind Prototyping- und Evaluierungsplattformen . Als solche sind sie als Grundlage selbst für relativ kleine Produktionsserien einfach nicht wirtschaftlich. Sie eignen sich hervorragend für die Ausbildung und das Verspotten von Ideen, aber ein Produkt würde sehr schnell sinken, wenn es die Kosten einer vorgefertigten Unterbaugruppe tragen müsste, die in ihrer endgültigen Verwendung nicht optimal ist.
Es wäre weitaus besser, eine neue Platine zu erstellen, die die erforderlichen Elemente des 'Duino und alle zusätzlichen Schaltkreise enthält, als die Kosten für zwei Platinen und das Risiko fehlerhafter Verbindungen zu tragen.
In Bezug auf Visual Studio und irgendetwas .net würde ich sie nicht mit jemand anderem berühren. Entscheiden Sie sich für etwas, das plattform- und herstellerunabhängig ist - im Sinne des Arduino-Projekts selbst.
Grundsätzlich spricht nichts dagegen, Produkte von der Stange zu verwenden. Wir alle tun dies auf einer bestimmten Ebene, ich denke, die Arduino-Hasser entwickeln keine eigenen Chips, selbst wenn dies bei einem höheren Volumen der wirtschaftlich sinnvoll wäre.
Es läuft immer auf Kosten, Zeitplan und Qualität (und vielleicht auch auf die langfristige Verfügbarkeit) hinaus. Wenn ein Arduino diese Kriterien besser erfüllt als ein benutzerdefiniertes Board, ist die Wahl ein Kinderspiel.
Der schwierige Teil besteht darin, die richtigen Zahlen zu erhalten, insbesondere für Ihr Volumen. Aber wenn Sie die richtigen Zahlen und ein wenig Mathematik verwenden, erhalten Sie das Break-Even-Volumen für die Wahl zwischen der Verwendung von, sagen wir, dem Arduino oder einem benutzerdefinierten Board. Wenn das weit über Ihren Erwartungen liegt oder weit darunter liegt, ist die Wahl einfach. Vergessen Sie also alle Ratschläge, die entweder "auf jeden Fall ein Arduino verwenden" oder "immer ein benutzerdefiniertes Board verwenden" sagen. Beide sind an eine Denkweise gebunden, die zu einer bestimmten Lautstärke gehört. Führen Sie Ihre eigenen Berechnungen durch.
Beachten Sie, dass ich keine spezifischen Kenntnisse des Arduino habe. Ob es beispielsweise Ihren Qualitätsanforderungen entspricht, müssen Sie selbst entscheiden.
Maßgeschneiderte Boards sind schön, wenn Sie ein Budget dafür haben und die Produktion groß genug ist, um die Arbeit zu rechtfertigen. Ansonsten bleiben Sie bei Produkten aus dem Regal wie Arduino, Netduino, Fez Domino und SBC - Boards (wie in PC104 und verschiedenen ITX-Formaten). Das Erstellen eines benutzerdefinierten AVR / Arduino-Boards ist nicht zu komplex, aber umfangreiche Änderungen an Netduino oder sogar das Entwerfen (und spätere Unterstützen) eines Linux-Boards (wie Gumstix) erfordern einen oder mehrere Spezialisten und kosten Zehntausende von Dollar und mehr. Wenn Sie den Großteil der harten Arbeit von jemand anderem erledigen lassen und nur einige Teile davon anpassen möchten, dann ist Modul das Zauberwort für Sie.
David
Kevin Vermeer
David
Chris Stratton