O que torna uma plataforma específica adequada ou inadequada para uso na produção? [fechadas]

9

Vamos supor que o custo das mercadorias seja um fator insignificante. Se uma empresa não possui uma equipe para produzir uma placa personalizada para um produto em particular, mas obtém sucesso com uma plataforma de desenvolvimento pronta para uso, como Arduino / Netduino / mbed, que tipos de coisas devem ser consideradas antes de prosseguir?

Se não me engano, o Arduino estava originalmente destinado a estudantes universitários por causa de seu baixo preço e facilidade de uso. Naturalmente, tornou-se uma plataforma popular para artistas e criadores. Eu vejo o Netduino como uma extensão lógica do Arduino - ele permite que as pessoas usem um IDE robusto e rico (Visual Studio 2010) e façam as coisas rapidamente com o .NET Micro Framework. O mbed é outra plataforma hobby agradável por causa de sua facilidade de uso, ferramentas gratuitas (compilador on-line) e periféricos de hardware.

Então, minha pergunta é: por que as empresas não deveriam adotar essas plataformas de desenvolvimento para uso em produção? Em outras palavras, é uma má idéia apenas comprar várias placas da Sparkfun, programar cada uma delas com o código e implantar o produto nos clientes?

Estou especificamente interessado no Netduino, mas argumentos a favor / contra o Arduino e o mbed também são bem-vindos. Por outro lado, você faria ou já fez isso antes?

Pessoalmente, vejo o desenvolvimento do Netduino como um "módulo principal" que outros fabricantes de processadores vendem para integração de produtos, mas talvez esteja perdendo algo importante aqui.

Dave
fonte

Respostas:

5

Algumas das coisas que você pode observar ao adquirir um módulo controlador são questões como segurança do fornecimento ao longo do tempo, problemas de licenciamento, ineficiências no processo de carregamento de firmware para produção, problemas de segurança de código e preocupações com a qualidade de fabricação ou com a conformidade regulamentar. Algumas delas serão mais uma preocupação para um módulo proprietário do que para um módulo relativamente aberto, com o qual você poderia pedir que alguém fizesse o equivalente ou, eventualmente, se fundisse com outras funcionalidades do seu produto.

Chris Stratton
fonte
O fornecimento pode ser um problema, mas pelo menos os designs do * duino são de código aberto.
Dave
@ Dave - Você perdeu o ponto. Chris (eu acho) estava falando principalmente sobre problemas com o .NET, não com o hardware.
Kevin Vermeer
11
@reemrevnivek - hmm ... com certeza pareciam problemas de hardware para mim. Por que fornecer problemas, carregamento de firmware e mfg. qualidade tem algo a ver com o .NET?
Dave
11
Você pode ou não conseguir obter uma licença para carregar um tempo de execução específico em uma placa de origem alternativa. As várias questões que eu estava sugerindo são uma variedade não necessariamente relacionada entre si.
21711 Chris Stratton
12

Caramba! Ou você está completamente confuso ou sua ideia de produção é diferente da minha. Considero produção significa vender um produto ao público em geral em quantidades de milhares ou mais, e depois apoiar e atualizar o design. Os produtos que não vão para o público em geral são trabalhos internos ou contratados, e os produtos que vendem em quantidades menores são para fins especiais ou são diferentes. 'Várias placas da Sparkfun' não atenderiam a uma necessidade de produção.

Primeiro, o custo dos produtos é sempre um fator significativo. O quão significativo é pode diferir de produto para produto, e pode ser menos significativo se o item em particular for apenas um pequeno componente de um sistema maior que foi otimizado quanto ao custo. No entanto, em qualquer ambiente em que você esteja em concorrência com outros produtores (o que você deve fazer porque, se você estiver no governo ou tiver o monopólio, não estaria fazendo essa pergunta), o custo será um fator. Os US $ 35 para o Netduino (apenas no custo) geralmente podem ser reduzidos para US $ 10 ou menos para a maioria dos aplicativos com um design personalizado. Se você está convencido de que o custo não importa, existem outras razões para não comprar esse design.

Sim, todas as três placas foram projetadas para estudantes, designers e entusiastas. Eles foram projetados para serem confiáveis ​​o suficiente para um kit de desenvolvimento que fica sobre uma mesa. Esse aluno deve saber algumas coisas sobre procedimentos de manuseio seguro que a população em geral não conhece ou pratica. Questões como ESD, dissipação de energia a longo prazo e redução de componentes provavelmente foram rebaixadas abaixo de itens menos importantes para a produção, como soldabilidade e simplicidade.

Sua afinidade por IDEs e soluções pré-empacotadas é assustadora. Na minha opinião, você confia demais em seus fornecedores de ferramentas. Se as placas ficarem mais caras, se os termos da licença forem alterados, se o servidor ficar inoperante, o software for declarado obsoleto, o fabricante da placa for encerrado (etc. etc. etc ..), sua empresa será liberada. Além disso, você não compreende o que está acontecendo nos bastidores. Se algo não funcionar da maneira que a documentação diz, qual deve ser seu plano? Sua ideia de comprar alguns Arduinos, programá-los e implantar o produto, por exemplo, não possui nenhum plano de proteção de código. Outra pessoa pode copiar seu código do microcontrolador, duplicar as partes relevantes do design por um terço do preço e vender mais do que você.
Contar com um IDE e uma linguagem para as coisas que você não entende é uma receita para o desastre.

O uso de um kit de desenvolvimento em seu design tornará seu produto muito caro, frágil, volumoso, com muita energia e ineficiente. Também será difícil depurar, muito difícil de suportar, e você estará à mercê de seus fornecedores. Isso fará você parecer incompetente.

No entanto, nem tudo está perdido. Se você implementar seu design em uma placa de desenvolvimento, será fácil ter alguém (dentro ou fora de sua equipe) personalizá-lo para remover essas deficiências. Se você não possui uma equipe, deve contratar uma, contratar um contratado ou fazê-lo por uma empresa de design.

Kevin Vermeer
fonte
11
Produção não precisa significar milhares. Há muita engenharia em equipamentos altamente especializados que podem ser vendidos de algumas dezenas a centenas de peças - e, obviamente, são vendidos por preços bastante altos ou ninguém ganharia dinheiro com isso. Essas indústrias estão focadas em atender a necessidade rapidamente, e não em gastar meses tirando todo o último dólar da BOM.
Chris Stratton
2
@reemrevnivek - Acho que você e eu estamos trabalhando em mundos completamente diferentes. Quando me refiro a uma peça de produção, qualquer coisa é liberada para um cliente e pode ser em quantidades de 1 a 20, não dezenas de milhares, milhares ou até centenas. Eu me importaria menos se pudesse reduzir uma parte de US $ 50 para 5 dólares, se isso significa que terei que gastar mais 3 meses em desenvolvimento. Também não me importo se alguém copiar o código.
Dave
11
Você trouxe pontos realmente bons, no entanto, e eu valorizo ​​sua opinião. Eu acho que sua resposta foi um pouco extremada e você está claramente opinativo sobre esse assunto, mas posso destilar os pontos-chave dele.
Dave
2
@ Dave - Desculpe, eu conscientemente tentei fazê-lo não opinativo ou extremo. É assim que parece depois de algumas releituras e edições: P. No entanto, defendo minha afirmação de que a palavra 'produção' significa (em todos os contextos em que operei, que é principalmente como fornecedor de automóvel OEM) milhares de peças. Você pode imaginar abrir o capô e ver um Arduino invadido seu controlador de ventilador? Não, e por boas razões. Eu tentei dar alguns desses motivos.
Kevin Vermeer
11
@reemrevinek - haha! nenhuma ofensa tomada. Eu esperava obter muitos pontos de vista com essa pergunta. Meu ambiente é totalmente diferente. Como vendemos alguns produtos personalizados que são bastante caros, uma peça como uma placa incorporada fica bem se custar mais e compensa o tempo de desenvolvimento. No momento, estou usando o Netduino apenas para conceitos de prototipagem, mas me ocorreu que provavelmente poderíamos colocá-lo no produto, pois ele é usado apenas com um controlador de vídeo. Eu certamente concordo que é melhor / mais profissional ter um quadro personalizado, mas queria ouvir opiniões.
Dave
4

Eu usei uma placa Arduino em um produto (produção não em grande escala) e não faria isso novamente. As placas do Arduino são voltadas para um ecossistema muito fechado (no significado de software que não é de código aberto). Por exemplo, se você sair do ecossistema do Arduino ao precisar usar um pino que não seja trazido para um cabeçalho na placa de desenvolvimento, você perderá imediatamente todos os benefícios do Arduino. Você precisa modificar o quadro para colocar o pino em um cabeçalho existente ou adicionar um novo cabeçalho de alguma forma. Isso provavelmente significa que você não poderá usar nenhum escudo existente ou possivelmente as bibliotecas de software do Arduino. Esse é o maior benefício do conselho. Eu tive que fazer isso com um Mega Arduino.

Além disso, as placas são enormes e não são fáceis de integrar com outras PCBs. Eu fiz a placa principal para a minha aplicação equivalente a uma blindagem para o Arduino Mega que tinha furos de montagem no gabinete que eu escolhi. Acabei de conectar o Arduino Mega aos cabeçalhos que coloquei na minha placa. No entanto, esse era um tamanho alto e baixo para acomodar, e havia muito espaço desperdiçado devido ao tamanho da placa de desenvolvimento. Eu não precisava da metade do que estava lá e só ocupava espaço. Isso exigiu que eu tivesse um PCB e gabinete maiores do que eu precisaria. Isso é dinheiro desperdiçado.

AngryEE
fonte
11
Os projetos do arduino (e até com alimentação por braço) são simples o suficiente para que, se você estiver fabricando uma PCB adequada à lógica digital para acessá-los, você também pode incluir apenas o processador. Eles seriam mais tentadores se você não estivesse fabricando um PCB, ou se estivesse fazendo o mesmo lado ou em uma tecnologia analógica ou de RF especial, onde você não queria partes digitais nessa placa e teria que fazer um A placa controladora também seria mais dispendiosa do que comprá-los (e até reformá-los).
Chris Stratton
11
Chris-definitivamente. Todos devem saber que, se você está montando um PCB, não faz sentido adicionar uma placa Arduino, em vez de apenas recriá-la.
precisa saber é o seguinte
Se Arduino ambiente torna-se um fator limitante, você sempre pode usar qualquer outro compilador AVR como GCC, BASCOM, AvrCo e firmware de produtos que vai viver na mesma placa Arduino ...
Avra
4

Arduinos & Co são plataformas de prototipagem e avaliação . Como tal, eles simplesmente não são economicamente viáveis ​​como base para execuções de produção relativamente pequenas. Eles são ótimos para educação e zombando de idéias, mas um produto afundaria muito rapidamente se tivesse que suportar o custo de uma submontagem pronta que não era ótima em seu uso final.

Seria muito melhor criar uma nova placa incluindo os elementos necessários do 'duino e qualquer circuito auxiliar do que ter o custo de duas placas e o risco de falhas nas conexões.

Com relação ao Visual Studio e qualquer coisa .net, eu não os tocaria com os de outra pessoa. Escolha algo que a plataforma e o fabricante sejam agnósticos - de acordo com o espírito do próprio projeto Arduino.

Leo
fonte
11
Ainda acredito que tudo depende do custo do seu produto. Digamos que seja possível criar algo realmente atraente com o * duino, e é uma pequena parte de um projeto de 1 milhão de dólares, e você só venderá 3 deles. Por que isso não seria economicamente viável? Você prefere gastar milhares em desenvolvimento para algo que será usado duas vezes?
Dave
2
Em relação ao comentário do .NET, frequentemente encontro pessoas que não gostam de usar o Visual Studio e / ou o .NET apenas porque. Eu pessoalmente não entendo. O Visual Studio é de longe um dos melhores IDEs que já usei. É certo que sou tendencioso em relação às ferramentas da Microsoft porque elas me permitem fazer meu trabalho rapidamente e, 99% das vezes, elas apenas funcionam. Embora eu realmente deva aprender a usar placas de desenvolvimento com um ICE, eu definitivamente aprecio a facilidade de usar um ambiente familiar que permita definir pontos de interrupção durante a depuração. AFAIK, você não pode fazer isso com o Arduino.
Dave
WRT seu primeiro comentário, eu disse que execuções relativamente pequenas. Eu veria uma série de três grandes desenvolvimentos orçamentários como protótipos em andamento. Eu imagino que o cliente também. Nessa situação, eu usaria felizmente um Arduino.
Leo
11
A coisa MS / .net é baseada na experiência pessoal. Nos últimos vinte anos, usei quase todas as plataformas existentes. As maiores dores de cabeça vêm invariavelmente dos produtos da EM. Os EM parecem supor que seu caminho é o único caminho adequado. Atualmente, estou usando o OS X, Ubuntu e Windows 7, tudo em um ambiente de desenvolvimento. Adivinha qual eu tenho que reiniciar?
Leo
4
O ATMegas usado no Arduino suporta a depuração por meio de depuração - não tenho certeza se o hardware do pino de redefinição do Arduino é compatível, mas se não for preciso muito para hackear, pois é apenas um pino. Outro potencialmente importante questão sobre o uso de placas de outras pessoas é se você se preocupa com EMC coisas mentira, FCC cretification etc.
mikeselectricstuff
3

De um modo geral, não há nada de errado em usar produtos prontos para uso. Todos nós fazemos isso em algum nível, acho que os inimigos do Arduino não projetam seus próprios chips, mesmo difíceis em um nível de volume mais alto que faria sentido economicamente.

Sempre se resume a custo, cronograma e qualidade (e talvez também disponibilidade a longo prazo). Se um Arduino atende a esses critérios melhor do que um quadro personalizado, a escolha é fácil.

A parte difícil é obter os números certos, especialmente para o seu volume. Mas usar as figuras corretas e pouca matemática dará a você o volume de equilíbrio para a escolha entre usar o sistema, digamos o Arduino versus um quadro personalizado. Se isso está muito além do que você espera, ou muito abaixo, a escolha é fácil. Portanto, esqueça todos os conselhos que dizem "sempre use um Arduino" ou "sempre use um quadro personalizado"; ambos estão presos a uma mentalidade que pertence a um nível de volume específico. Faça seus próprios cálculos.

Observe que eu não tenho conhecimento específico do Arduino. Você terá que decidir por si mesmo se ele atende, por exemplo, aos seus requisitos de qualidade.

Wouter van Ooijen
fonte
2

Placas personalizadas são ótimas se você tiver um orçamento para isso e uma produção grande o suficiente para justificar o trabalho. Caso contrário, você ficará com os produtos da prateleira, como placas Arduino, Netduino, Fez Domino e SBC (como no PC104 e em vários formatos ITX). A criação de placas AVR / Arduino personalizadas não é muito complexa, mas modificações pesadas no Netduino ou até o design (e suporte posterior) de algumas placas linux (como Gumstix) precisam de um especialista e custam dezenas de milhares de dólares ou mais. Se você deseja realizar a maior parte do trabalho árduo de outra pessoa e deseja personalizar apenas algumas partes, então módulo é a palavra mágica para você.

avra
fonte
Eu definitivamente concordo com você, mas em algum momento você ainda precisa de um PCB. Eu tenho habilidade suficiente para criar um para o * duino e outros para criar um PCB simples para interromper sinais e energia, então pelo menos isso ainda é muito barato.
10117 Dave
É barato se você não precisar de milhares e, se precisar de mais energia, módulos como o link acima também são bons. Lembre-se de que você provavelmente terá que lidar com a detecção de escurecimento, distúrbios de energia se estiver escrevendo para eeprom, fonte de alimentação confiável e muitas outras coisas que dependem de sua aplicação específica.
avra