¿Qué hace que una plataforma en particular sea adecuada o inadecuada para su uso en producción? [cerrado]

9

Supongamos que el costo de los bienes es un factor insignificante. Si una empresa carece de un equipo para producir una placa personalizada para un producto en particular, pero tiene éxito con una plataforma de desarrollo comercial como Arduino / Netduino / mbed, ¿qué tipo de cosas deben considerarse antes de seguir adelante?

Si no me equivoco, Arduino originalmente estaba apuntando a estudiantes universitarios debido a su bajo precio y facilidad de uso. Naturalmente se convirtió en una plataforma popular para artistas y creadores. Veo el Netduino como una extensión lógica de Arduino: permite a las personas usar un IDE robusto y rico (Visual Studio 2010) y hacer las cosas rápidamente a través de .NET Micro Framework. mbed es otra buena plataforma para aficionados debido a su facilidad de uso, herramientas gratuitas (compilador en línea) y periféricos de hardware.

Entonces mi pregunta es, ¿por qué las empresas no deberían adoptar estas plataformas de desarrollo para el uso de producción? En otras palabras, ¿es una mala idea comprar varias tarjetas de Sparkfun, programar cada una de ellas con el código y luego implementar el producto en los clientes?

Estoy específicamente interesado en Netduino, pero los argumentos a favor / en contra de Arduino y mbed también son bienvenidos. Por otro lado, ¿lo harías o has hecho esto antes?

Personalmente, considero el desarrollo de Netduino como un "módulo central" que otros fabricantes de procesadores venden para integraciones de productos, pero tal vez me estoy perdiendo algo importante aquí.

Dave
fuente

Respuestas:

5

Algunas de las cosas que podría tener en cuenta al obtener un módulo de controlador son cuestiones como la seguridad del suministro a lo largo del tiempo, cualquier problema de licencia, cualquier ineficiencia en el proceso de carga de firmware para la producción, cualquier problema de seguridad del código y cualquier problema de calidad de fabricación o de cumplimiento normativo. Algunos de ellos van a ser más preocupantes para un módulo patentado que uno relativamente abierto que podría hacer que otra persona haga un equivalente o eventualmente se fusione con otra funcionalidad en su producto.

Chris Stratton
fuente
El suministro podría ser un problema, pero al menos los diseños para * duino son de código abierto.
Dave
@Dave - Te perdiste el punto. Chris (creo) estaba hablando principalmente de problemas con .NET, no con el hardware.
Kevin Vermeer
1
@reemrevnivek - hmm ... seguro que me parecieron problemas de hardware. ¿Por qué proporcionaría problemas, carga de firmware y mfg? Qué calidad tiene algo que ver con .NET?
Dave
1
Es posible que pueda o no obtener una licencia para cargar un tiempo de ejecución particular en una placa de origen alternativa. Los diversos problemas que sugería son una variedad no necesariamente relacionada entre sí.
Chris Stratton
12

¡Ay! O estás completamente confundido, o tu idea de producción es diferente a la mía. Considero que la producción significa vender un producto al público en general en cantidades de miles o más, luego apoyar y actualizar el diseño. Los productos que no van al público en general son trabajos internos o por contrato, y los productos que se venden en cantidades más pequeñas tienen un propósito especial o son diferentes. 'Varios tableros de Sparkfun' no satisfarían una necesidad de producción.

Primero, el costo de los bienes es siempre un factor significativo. Cuán significativo es puede diferir de un producto a otro, y puede ser menos significativo si el artículo en particular es solo un pequeño componente de un sistema más grande que ha sido optimizado para el costo. Sin embargo, en cualquier entorno en el que compita con otros productores (lo que debe ser porque si está en el gobierno o tiene el monopolio no haría esta pregunta), el costo será un factor. Los $ 35 para Netduino (solo en costo) generalmente podrían reducirse a $ 10 o menos para la mayoría de las aplicaciones con un diseño personalizado. Si está convencido de que el costo no importa, existen otras razones para no comprar dicho diseño.

Sí, los tres tableros fueron diseñados para estudiantes, diseñadores y aficionados. Están diseñados para ser lo suficientemente confiables para un kit de desarrollo que se encuentra en un escritorio. Ese estudiante debe saber algunas cosas sobre los procedimientos de manejo seguro que la población en general no conoce ni practica. Cuestiones como la ESD, la disipación de energía a largo plazo y la reducción de componentes probablemente se degradaron debajo de las cosas que son menos importantes para la producción, como la capacidad de soldadura y la simplicidad.

Su afinidad por los IDE y las soluciones preempaquetadas es aterradora. En mi opinión, confías demasiado en tus proveedores de herramientas. Si las placas se vuelven más caras, si se cambian los términos de la licencia, si el servidor deja de funcionar, el software se declara obsoleto, el fabricante de la placa se cierra (etc., etc., etc.), su negocio se manguera. Además, carece de una comprensión de lo que sucede detrás de escena. Si algo no funciona como dice la documentación, ¿cuál es su plan? Su idea de comprar algunos Arduinos, programarlos e implementar el producto, por ejemplo, carece de cualquier plan para la protección del código. Alguien más podría copiar su código del microcontrolador, duplicar las partes relevantes del diseño por un tercio del precio y venderle más.
Confiar en un IDE e idioma para las cosas que no entiendes es una receta para el desastre.

El uso de un kit de desarrollo en su diseño hará que su producto sea demasiado caro, frágil, voluminoso, hambriento de energía e ineficiente. También será difícil de depurar, un dolor de soporte, y estará a merced de sus proveedores. Te hará parecer incompetente.

Sin embargo, no todo está perdido. Si implementa su diseño en una placa de desarrollo, será sencillo que alguien (ya sea dentro o fuera de su equipo) lo personalice para eliminar estas deficiencias. Si carece de un equipo, debe contratar uno, contratar a un contratista o hacer que lo haga una empresa de diseño.

Kevin Vermeer
fuente
1
La producción no tiene que significar miles. Hay mucha ingeniería en equipos altamente especializados que pueden venderse en pedidos de unas pocas docenas a unos cientos de piezas, y obviamente se venden a precios bastante altos o nadie ganaría dinero haciéndolo. Dichas industrias se centran en satisfacer la necesidad rápidamente, no en pasar meses sacando hasta el último dólar de la lista de materiales.
Chris Stratton
2
@reemrevnivek - Creo que tú y yo estamos trabajando en mundos completamente diferentes. Cuando me refiero a una parte de producción, es cualquier cosa que se libera a un cliente, y puede ser en cantidades de 1 a 20, no decenas de miles, miles o incluso cientos. Me importaría menos si pudiera reducir una parte de $ 50 a 5 dólares, si eso significa que tendré que gastar 3 meses adicionales en el desarrollo. Tampoco me importa si alguien copia el código.
Dave
1
Sin embargo, ha sacado muy buenos puntos y valoro su aporte. Creo que su respuesta fue un poco extrema y usted es claramente obstinado sobre este tema, pero puedo extraerle los puntos clave.
Dave
2
@Dave - Perdón, conscientemente intenté que no fuera obstinado o extremo. Esto es lo que parece después de algunas relecturas y ediciones: P. Sin embargo, mantengo mi afirmación de que la palabra 'producción' significa (en cada contexto en el que he operado, que es principalmente como un proveedor OEM de automóviles) miles de piezas. ¿Te imaginas abrir tu capó y ver un Arduino pirateado en tu controlador de ventilador? No, y por una buena razón. Traté de dar algunas de esas razones.
Kevin Vermeer
1
@reemrevinek - jaja! sin ofender. Esperaba obtener muchos puntos de vista con esta pregunta. Mi entorno es totalmente diferente. Vendemos algunos productos personalizados que son bastante caros, por lo que una parte como una placa incrustada está bien si cuesta más y compensa el tiempo de desarrollo. Estoy usando el Netduino en este momento solo para conceptos de creación de prototipos, pero luego se me ocurrió que probablemente podríamos ponerlo en el producto, ya que de todos modos solo se usa con un controlador de pantalla. Ciertamente estoy de acuerdo en que es mejor / más profesional tener un tablero personalizado, pero quería escuchar opiniones.
Dave
4

He usado una placa Arduino en un producto (no producción a gran escala) y no lo volvería a hacer. Las placas Arduino están orientadas hacia un ecosistema muy cerrado (en el sentido del software de código abierto de la palabra). Por ejemplo, si 'sales' del ecosistema de Arduino al necesitar usar un pin que no está en un encabezado en la placa de desarrollo, inmediatamente pierdes todos los beneficios del Arduino. Debe modificar el tablero para llevar el pin a un encabezado existente o agregar un nuevo encabezado de alguna manera. Esto probablemente significa que no podrá usar ningún escudo existente o posiblemente incluso las bibliotecas de software para Arduino. Esa es la mayor parte del beneficio de la junta desaparecida. He tenido que hacer esto con un Arduino Mega.

Además, las placas son enormes y no son fáciles de integrar con otras PCB. Hice la placa principal para mi aplicación equivalente a un escudo para el Arduino Mega que tenía agujeros de montaje para el gabinete que elegí. Así que simplemente conecté el Arduino Mega en los encabezados que puse en mi placa. Sin embargo, se trataba de un gran tamaño de arriba y abajo para acomodar, y había mucho espacio desperdiciado debido al tamaño de la placa de desarrollo. No necesitaba la mitad de lo que había allí y solo ocupaba espacio. Esto me obligó a tener una PCB y un gabinete más grandes de lo que hubiera necesitado. Eso es dinero desperdiciado.

AngryEE
fuente
1
Los diseños arduino (e incluso con brazo) son lo suficientemente simples como para que si va a hacer una PCB adecuada para la lógica digital para personalizarlos, también podría incluir el procesador. Serían más tentadores si no fuera a hacer una PCB en absoluto, o si lo hiciera a una sola cara o en una tecnología especial analógica o de RF donde no quisiera piezas digitales en esa placa, y tener que hacer un la placa controladora también sería más costosa que comprarlos (e incluso reelaborarlos)
Chris Stratton
1
Chris, definitivamente. Todos deberían saber que si está haciendo una PCB usted mismo, no tiene mucho sentido agregar una placa Arduino en lugar de recrear una en su PCB.
AngryEE
Si el entorno Arduino se convierte en un factor limitante, siempre puede usar cualquier otro compilador AVR como GCC, BASCOM, AvrCo y producir firmware que vivirá en la misma placa Arduino ...
avra
4

Arduinos & co son plataformas de prototipos y evaluación . Como tales, simplemente no son económicamente viables como base incluso para series de producción relativamente pequeñas. Son excelentes para la educación y la burla de ideas, pero un producto se hundiría muy rápidamente si tuviera que soportar el costo de un subconjunto listo que no fue óptimo en su uso final.

Sería mucho mejor crear una nueva placa que incluya los elementos necesarios del 'duino y cualquier circuito auxiliar que tener el costo de dos placas y el riesgo de fallas en las conexiones.

Con respecto a Visual Studio y cualquier cosa .net, no los tocaría con los de otra persona. Opte por algo agnóstico de plataforma y fabricante, algo así como el espíritu del proyecto Arduino.

León
fuente
1
Todavía creo que todo depende del costo de su producto. Digamos que es posible crear algo realmente convincente con el * duino, y es una pequeña parte de un proyecto de 1 millón de dólares, y solo venderás 3 de ellos. ¿Por qué no sería eso económicamente viable? ¿Preferiría gastar miles en desarrollo para algo que se usará dos veces?
Dave
2
Con respecto al comentario de .NET, con frecuencia me encuentro con personas a las que no les gusta usar Visual Studio y / o .NET solo porque sí. Yo personalmente no lo entiendo. Visual Studio es, con mucho, uno de los mejores IDE que he usado. Es cierto que estoy predispuesto hacia las herramientas de Microsoft porque me permiten hacer mi trabajo rápidamente, y el 99% del tiempo, simplemente funcionan. Aunque realmente debería aprender a usar placas de desarrollo con un ICE, definitivamente aprecio la facilidad de usar un entorno familiar que me permite establecer puntos de interrupción durante la depuración. AFAIK no puedes hacer eso con Arduino.
Dave
Escribe tu primer comentario, dije carreras relativamente pequeñas. Vería una serie de tres desarrollos de gran presupuesto como prototipos en curso. Me imagino que el cliente también lo haría. En esa situación, felizmente usaría un Arduino.
Leo
1
Lo de MS / .net se basa en la experiencia personal. Durante los últimos veinte años más o menos, he usado casi todas las plataformas. Los mayores dolores de cabeza siempre han venido de los productos de MS. La EM parece asumir que su camino es el único camino correcto. Actualmente estoy usando OS X, Ubuntu y Windows 7, todo en un entorno de desarrollo. ¿Adivina cuál tengo que reiniciar (en absoluto)?
Leo
44
El ATMegas utilizado en Arduino admite la depuración a través de debugwire; no estoy seguro de si el hardware del pin de reinicio de Arduino es compatible, pero de lo contrario no tomaría mucho en piratear, ya que es solo un pin. Otra cuestión potencialmente importante sobre el uso de tableros de otras personas es si se preocupan por EMC cosas mentira, etc. cretification FCC
mikeselectricstuff
3

En general, no hay nada de malo en usar productos fuera de la estantería. Todos hacemos esto en algún nivel, supongo que los que odian a Arduino no diseñan sus propios chips, incluso a un nivel de volumen más alto que tendría sentido económico.

Siempre se reduce al costo, el horario y la calidad (y quizás también a la disponibilidad a largo plazo). Si un Arduino cumple con estos criterios mejor que una placa personalizada, la elección es obvia.

La parte difícil es obtener las cifras correctas, especialmente para su volumen. Pero el uso de las cifras correctas y las pequeñas matemáticas le dará el volumen de equilibrio para la elección entre uising, digamos el Arduino versus un tablero personalizado. Si eso va más allá de lo que espera, o más abajo, la elección es fácil. Así que olvídate de todos los consejos que dicen "usa todos los medios un Arduino" o "elige una placa personalizada", ambos están encerrados en una mentalidad que pertenece a un nivel de volumen específico. Haz tus propios cálculos.

Tenga en cuenta que no tengo un conocimiento específico del Arduino. Tendrá que decidir por sí mismo si cumple, por ejemplo, con sus requisitos de calidad.

Wouter van Ooijen
fuente
2

Los tableros personalizados son buenos si tiene un presupuesto para esto y una producción lo suficientemente grande como para justificar el trabajo. De lo contrario, se queda con los productos de la plataforma, como las placas Arduino, Netduino, Fez Domino y SBC (como en PC104 y varios formatos ITX). Hacer una placa AVR / Arduino personalizada no es demasiado complejo, pero las grandes modificaciones a Netduino o incluso diseñar (y más tarde admitir) alguna placa de Linux (como Gumstix) necesitan un especialista (s) y cuestan decenas de miles de dólares y más. Si desea que otra persona realice la mayor parte del trabajo duro y desea personalizar solo algunas partes, entonces módulo es la palabra mágica para usted.

avra
fuente
Definitivamente estoy de acuerdo con usted, pero en algún momento aún necesita una PCB. Tengo suficiente habilidad para hacer uno para * duino y otros para crear un PCB simple para romper las señales y la potencia, por lo que al menos eso sigue siendo bastante barato.
Dave
Es barato si no necesita miles, y si necesita más potencia, entonces los módulos como el del enlace anterior también son buenos. Tenga en cuenta que probablemente tendrá que ocuparse de la detección de oscurecimiento, perturbaciones de energía si escribe en eeprom, una fuente de alimentación confiable y muchas otras cosas que dependen de su aplicación específica.
avra