Cosa rende una particolare piattaforma adatta o non adatta all'uso in produzione? [chiuso]


9

Supponiamo che il costo dei beni sia un fattore insignificante. Se un'azienda non ha un team per produrre una scheda personalizzata per un determinato prodotto, ma ha successo con una piattaforma di sviluppo standard come Arduino / Netduino / mbed, quali tipi di cose dovrebbero essere considerati prima di andare avanti?

Se non sbaglio, Arduino si rivolge in origine agli studenti universitari a causa del suo prezzo basso e della facilità d'uso. È diventata naturalmente una piattaforma popolare per artisti e produttori. Vedo Netduino come un'estensione logica di Arduino: consente alle persone di utilizzare un IDE robusto e ricco (Visual Studio 2010) e di eseguire rapidamente le operazioni tramite .NET Micro Framework. mbed è un'altra bella piattaforma per hobbisti per la sua facilità d'uso, strumenti gratuiti (compilatore online) e periferiche hardware.

Quindi la mia domanda è: perché le aziende non dovrebbero adottare queste piattaforme di sviluppo per l'utilizzo in produzione? In altre parole, è una cattiva idea acquistare diverse schede da Sparkfun, programmare ciascuna di esse con il codice e quindi distribuire il prodotto ai clienti?

Sono particolarmente interessato a Netduino, ma sono ben accetti anche argomenti a favore / contro Arduino e mbed. D'altro canto, lo faresti o lo hai già fatto prima?

Personalmente guardo allo sviluppo di Netduino come un "modulo principale" che altri produttori di processori vendono per integrazioni di prodotti, ma forse mi manca qualcosa di importante qui.

Risposte:


5

Alcune delle cose che potresti considerare durante l'approvvigionamento di un modulo controller sono problemi come la sicurezza dell'approvvigionamento nel tempo, eventuali problemi di licenza, eventuali inefficienze nel processo di caricamento del firmware per la produzione, eventuali problemi di sicurezza del codice e qualsiasi problema di qualità di produzione o conformità normativa. Alcuni di questi saranno più una preoccupazione per un modulo proprietario che uno relativamente aperto che potresti avere qualcun altro fare un equivalente o eventualmente fondersi con altre funzionalità nel tuo prodotto.


La fornitura potrebbe essere un problema, ma almeno i progetti per * duino sono open source.
Dave,

@Dave - Hai perso il punto. Chris (penso) parlava principalmente di problemi con .NET, non con l'hardware.
Kevin Vermeer,

1
@reemrevnivek - hmm ... sicuramente mi è sembrato un problema hardware. Perché fornire problemi, caricamento del firmware e mfg. la qualità ha a che fare con .NET?
Dave,

1
Potresti o non essere in grado di ottenere una licenza per caricare un determinato runtime su una scheda di provenienza alternativa. Le varie questioni che stavo suggerendo sono un assortimento non necessariamente correlato tra loro.
Chris Stratton,

12

Yikes! O sei completamente confuso, o la tua idea di produzione è diversa dalla mia. Considero la produzione come vendere un prodotto al pubblico in quantità di migliaia o più, quindi supportare e aggiornare il progetto. I prodotti che non vanno al pubblico sono lavori interni o per conto terzi, mentre i prodotti che vendono in quantità minori sono speciali o altrimenti diversi. "Diverse schede di Sparkfun" non soddisferebbero un'esigenza di produzione.

Innanzitutto, il costo delle merci è sempre un fattore significativo. Quanto sia significativo può differire da prodotto a prodotto e potrebbe essere meno significativo se l'articolo particolare è solo un piccolo componente di un sistema più grande che è stato ottimizzato per i costi. Tuttavia, in qualsiasi ambiente in cui sei in concorrenza con altri produttori (cosa che devi fare perché se sei al governo o hai il monopolio non porteresti questa domanda), il costo sarà un fattore. I $ 35 per Netduino (solo nel costo) potrebbero essere ridotti a $ 10 o meno per la maggior parte delle applicazioni con un design personalizzato. Se sei convinto che il costo non abbia importanza, ci sono ulteriori motivi per non acquistare un tale design.

Sì, tutte e tre le schede sono state progettate per studenti, designer e appassionati. Sono progettati per essere sufficientemente affidabili per un kit di sviluppo che si trova su una scrivania. Lo studente dovrebbe sapere alcune cose sulle procedure di manipolazione sicura che la popolazione generale non conosce o pratica. Questioni come ESD, dissipazione di potenza a lungo termine e derating dei componenti sono state probabilmente retrocesse al di sotto di cose che sono meno importanti per la produzione come la saldabilità e la semplicità.

La tua affinità per gli IDE e le soluzioni preconfezionate è spaventosa. A mio avviso, riponi troppa fiducia nei tuoi fornitori di strumenti. Se le schede diventano più costose, se le condizioni di licenza vengono modificate, se il server si arresta, il software viene dichiarato obsoleto, il produttore della scheda fallisce (ecc. Ecc. Ecc.), La tua attività viene compromessa. Inoltre, ti manca una comprensione di ciò che sta accadendo dietro le quinte. Se qualcosa non funziona come dice la documentazione, quale dovrebbe essere il tuo piano? La tua idea di acquistare alcuni Arduinos, programmarli e distribuire il prodotto, ad esempio, non ha alcun piano per la protezione del codice. Qualcun altro potrebbe copiare il tuo codice dal microcontrollore, duplicare le parti rilevanti del design per un terzo del prezzo e venderti.
Affidarsi a un IDE e al linguaggio per le cose che non capisci è una ricetta per il disastro.

L'uso di un kit di sviluppo nel tuo progetto renderà il tuo prodotto costoso, fragile, ingombrante, assetato di energia e inefficiente. Sarà anche difficile eseguire il debug, una seccatura da supportare e sarai in balia dei tuoi fornitori. Ti farà sembrare incompetente.

Tuttavia, non tutto è perduto. Se implementi il ​​tuo progetto su una scheda di sviluppo, sarà semplice avere qualcuno (dentro o fuori il tuo team) personalizzarlo per rimuovere queste carenze. Se ti manca un team, dovresti assumerne uno, portare un appaltatore o farlo fare da uno studio di progettazione.


1
La produzione non deve significare migliaia. C'è un sacco di ingegneria in attrezzature altamente specializzate che possono vendere in ordini da poche decine a qualche centinaio di pezzi - e ovviamente vende a prezzi piuttosto alti o nessuno farebbe soldi facendo questo. Tali industrie si concentrano sulla necessità di soddisfare rapidamente le esigenze, non sui mesi trascorsi per ottenere l'ultimo dollaro dalla distinta base.
Chris Stratton,

2
@reemrevnivek - Penso che tu e io stiamo lavorando in mondi completamente diversi. Quando mi riferisco a una parte di produzione, è tutto ciò che viene rilasciato a un cliente e può essere in quantità da 1 a 20, non decine di migliaia, migliaia o persino centinaia. Non me ne potrebbe fregare di meno se potessi ridurre una parte da $ 50 a 5 dollari, se ciò significa che dovrò dedicare altri 3 mesi allo sviluppo. Inoltre, non mi importa se qualcuno copia il codice.
Dave,

1
Hai sollevato punti davvero positivi, tuttavia, e apprezzo il tuo contributo. Penso che la tua risposta sia stata un po 'estrema e tu sia chiaramente supponente su questo argomento, ma posso distillarne i punti chiave.
Dave,

2
@Dave - Scusa, ho consapevolmente cercato di renderlo non supponente o estremo. Ecco come appare dopo alcune riletture e modifiche: P. Tuttavia, sostengo la mia affermazione che la parola "produzione" significa (in ogni contesto in cui ho operato, che è principalmente un fornitore OEM automobilistico) migliaia di parti. Riesci a immaginare di aprire il cofano e vedere un Arduino hackerato nel tuo controller della ventola? No, e per una buona ragione. Ho provato a dare alcune di quelle ragioni.
Kevin Vermeer,

1
@reemrevinek - haha! senza offesa. Speravo di ottenere molti punti di vista con questa domanda. Il mio ambiente è completamente diverso. Vendiamo alcuni prodotti personalizzati che sono piuttosto costosi, quindi una parte come una scheda integrata va bene se costa di più e compensa i tempi di sviluppo. Sto usando Netduino in questo momento solo per i concetti di prototipazione, ma poi mi è venuto in mente che potremmo probabilmente inserirlo nel prodotto, poiché è comunque usato con un controller di visualizzazione. Sono certamente d'accordo sul fatto che sia meglio / più professionale avere una tavola personalizzata, ma volevo sentire opinioni.
Dave,

4

Ho usato una scheda Arduino in un prodotto (non produzione su larga scala) e non lo farei più. Le schede Arduino sono orientate verso un ecosistema molto chiuso (nel significato di software non open source della parola). Ad esempio, se si esce dall'ecosistema Arduino, è necessario utilizzare un pin che non viene portato a un'intestazione sulla scheda di sviluppo, perdendo immediatamente tutti i vantaggi di Arduino. Devi modificare la scheda per portare il pin a un'intestazione esistente o aggiungere una nuova intestazione in qualche modo. Questo probabilmente significa che non sarai in grado di utilizzare alcuno scudo esistente o eventualmente anche le librerie software per Arduino. Questo è il maggior vantaggio della scheda. Ho dovuto farlo con un Arduino Mega.

Inoltre, le schede sono enormi e non facili da integrare con altri PCB. Ho reso la scheda madre per la mia applicazione equivalente a uno schermo per Arduino Mega che aveva i fori di montaggio per l'involucro che ho scelto. Quindi ho appena inserito l'Arduino Mega nelle intestazioni che ho inserito sulla mia scheda. Tuttavia, questo era un sacco di dimensioni su e giù per adattarsi e c'era molto spazio sprecato a causa delle dimensioni della scheda di sviluppo. Non avevo bisogno della metà di quello che c'era lì e occupava solo spazio. Ciò mi ha richiesto di avere un PCB e un involucro più grandi di quanto altrimenti avrei avuto bisogno. Sono soldi sprecati.


1
I design di Arduino (e persino a braccio) sono abbastanza semplici che se stai per creare un PCB adatto alla logica digitale per accessoriarli, potresti anche includere anche il processore. Sarebbero più allettanti se non avessi intenzione di creare un PCB, o lo facessi su un solo lato o in una speciale tecnologia analogica o RF in cui non volevi parti digitali su quella scheda e dovessi fare un anche la scheda controller sarebbe più costosa dell'acquisto (e persino della rielaborazione).
Chris Stratton,

1
Chris-sicuramente. Tutti dovrebbero sapere che se stai costruendo un PCB da solo, non ha senso aggiungere una scheda Arduino invece di ricrearne una sul tuo PCB.
AngryEE,

Se l'ambiente Arduino diventa un fattore limitante, puoi sempre utilizzare qualsiasi altro compilatore AVR come GCC, BASCOM, AvrCo e produrre firmware che vivrà sulla stessa scheda Arduino ...
avra

4

Arduinos & co sono piattaforme di prototipazione e valutazione . Pertanto, non sono semplicemente economicamente validi come base per cicli di produzione anche relativamente piccoli. Sono ottimi per l'educazione e le idee beffardo, ma un prodotto affonderebbe molto rapidamente se dovesse sostenere il costo di un sottogruppo già pronto che non era ottimale nel suo uso finale.

Sarebbe molto meglio creare una nuova scheda includendo gli elementi richiesti del 'duino e qualsiasi circuito ausiliario piuttosto che avere il costo di due schede e il rischio di interruzioni delle connessioni.

Per quanto riguarda Visual Studio e qualsiasi cosa .net, non li toccherei con quelli di qualcun altro. Scegli qualcosa di indipendente dalla piattaforma e dal produttore, un po 'nello spirito del progetto Arduino stesso.


1
Credo ancora che tutto dipenda dal costo del tuo prodotto. Diciamo che è possibile creare qualcosa di veramente interessante con il * duino, ed è una piccola parte di un progetto da 1 milione di dollari, e ne venderai solo 3. Perché non sarebbe economicamente sostenibile? Preferiresti spendere migliaia per lo sviluppo di qualcosa che verrà utilizzato due volte?
Dave,

2
Per quanto riguarda il commento .NET, incontro spesso persone a cui non piace usare Visual Studio e / o .NET solo perché. Personalmente non capisco. Visual Studio è di gran lunga uno dei migliori IDE che io abbia mai usato. Sono sinceramente influenzato dagli strumenti di Microsoft perché mi consentono di svolgere rapidamente il mio lavoro e, il 99% delle volte, funzionano e basta. Anche se dovrei davvero imparare ad usare le schede di sviluppo con un ICE, apprezzo sicuramente la facilità di utilizzo di un ambiente familiare che mi consente di impostare i punti di interruzione durante il debug. AFAIK, non puoi farlo con Arduino.
Dave,

WRT il tuo primo commento, ho detto corse relativamente piccole. Vorrei vedere una serie di tre grandi sviluppi di bilancio come prototipi in corso. Immagino che lo farebbe anche il cliente. In quella situazione, userei felicemente un Arduino.
Leone,

1
La cosa MS / .net si basa sull'esperienza personale. Negli ultimi venti anni ho usato quasi tutte le piattaforme là fuori. I maggiori mal di testa provengono invariabilmente dai prodotti MS. La SM sembra presumere che la loro strada sia l'unico modo corretto. Attualmente sto usando OS X, Ubuntu e Windows 7, il tutto in un ambiente di sviluppo. Indovina quale devo riavviare (affatto)?
Leone,

4
Gli ATMegas utilizzati su Arduino supportano il debug tramite debugwire - non sono sicuro che l'hardware del pin di reset di Arduino sia compatibile, ma se non fosse che non richiederebbe molto per hackerare in quanto è solo un pin. Un altro problema potenzialmente importante sull'uso delle schede di altre persone è se ti interessano cose che riguardano bugie, cretificazione FCC ecc.
mikeselectricstuff,

3

In generale, non c'è nulla di sbagliato nell'utilizzo di prodotti pronti all'uso. Lo facciamo tutti ad un certo livello, immagino che gli odiatori di Arduino non progettino i propri chip, anche se duri un livello di volume più alto che avrebbe senso economico.

Si riduce sempre a costi, pianificazione e qualità (e forse anche disponibilità a lungo termine). Se un Arduino soddisfa questi criteri meglio di una tavola personalizzata, la scelta è semplice.

La parte difficile è ottenere le cifre giuste, soprattutto per il tuo volume. Ma usare le cifre giuste e la matematica un po 'ti darà il volume di pareggio per la scelta tra uising diciamo Arduino contro una scheda personalizzata. Se questo è molto al di là di quello che ti aspetti, o molto più in basso, la scelta è semplice. Quindi dimentica tutti i consigli che dicono "usa sempre un Arduino" o "scegli sempre una scheda personalizzata", entrambi sono bloccati in una mentalità che appartiene a un livello di volume specifico. Fai i tuoi calcoli.

Nota che non ho una conoscenza specifica dell'Arduino. Dovrai decidere tu stesso se ad esempio soddisfa i tuoi requisiti di qualità.


2

Le schede personalizzate sono belle se hai un budget per questo e una produzione abbastanza grande da giustificare il lavoro. Altrimenti rimani con i prodotti dello scaffale, come schede Arduino, Netduino, Fez Domino e SBC (come in PC104 e vari formati ITX). Realizzare una scheda AVR / Arduino personalizzata non è troppo complesso, ma pesanti modifiche a Netduino o persino progettare (e successivamente supportare) alcune schede Linux (come Gumstix) hanno bisogno di uno specialista e costano decine di migliaia di dollari e altro. Se vuoi che la maggior parte del duro lavoro sia svolto da qualcun altro e desideri personalizzarne solo alcune parti, allora modulo è la parola magica per te.


Sono assolutamente d'accordo con te, ma a un certo punto hai ancora bisogno di un PCB. Ho abbastanza abilità per crearne uno per * duino e altri per creare un semplice PCB per interrompere segnali e potenza, quindi almeno è ancora abbastanza economico.
Dave,

È economico se non hai bisogno di migliaia, e se hai bisogno di più potenza, anche i moduli come quello dal link sopra sono belli. Fai attenzione che probabilmente dovrai occuparti del rilevamento del brown out, del disturbo dell'alimentazione se scrivi su eeprom, dell'alimentazione affidabile e di molte altre cose che dipendono dalla tua specifica applicazione.
avra
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.