Qu'est-ce qui rend une plate-forme particulière appropriée ou inappropriée pour une utilisation en production? [fermé]

9

Supposons que le coût des marchandises soit un facteur insignifiant. Si une entreprise ne dispose pas d'une équipe pour produire une carte personnalisée pour un produit particulier, mais a du succès avec une plate-forme de développement standard comme Arduino / Netduino / mbed, quelles sortes de choses devraient être envisagées avant d'aller de l'avant?

Si je ne me trompe pas, Arduino ciblait à l'origine les étudiants universitaires en raison de son faible prix et de sa facilité d'utilisation. Il est naturellement devenu une plate-forme populaire pour les artistes et les fabricants. Je vois Netduino comme une extension logique d'Arduino - il permet aux gens d'utiliser un IDE robuste et riche (Visual Studio 2010) et de faire avancer les choses rapidement via le .NET Micro Framework. mbed est une autre belle plate-forme d'amateur en raison de sa facilité d'utilisation, des outils gratuits (compilateur en ligne) et des périphériques matériels.

Ma question est donc la suivante: pourquoi les entreprises ne devraient-elles pas adopter ces plateformes de développement à des fins de production? En d'autres termes, est-ce une mauvaise idée d'acheter simplement plusieurs cartes de Sparkfun, de programmer chacune d'elles avec le code, puis de déployer le produit auprès des clients?

Je suis particulièrement intéressé par Netduino, mais les arguments pour / contre Arduino et mbed sont également les bienvenus. D'un autre côté, le feriez-vous ou l'avez-vous déjà fait auparavant?

Personnellement, je considère le développement de Netduino comme un "module de base" que les autres fabricants de processeurs vendent pour les intégrations de produits, mais il me manque peut-être quelque chose d'important ici.

Dave
la source

Réponses:

5

Certaines des choses que vous pourriez examiner lors de l'approvisionnement d'un module de contrôleur sont des problèmes tels que la sécurité de l'approvisionnement au fil du temps, des problèmes de licence, des inefficacités dans le processus de chargement du micrologiciel pour la production, des problèmes de sécurité du code et des problèmes de qualité de fabrication ou de conformité réglementaire. Certains d'entre eux vont être plus préoccupants pour un module propriétaire qu'un module relativement ouvert, vous pourriez demander à quelqu'un d'autre de faire un équivalent ou éventuellement de fusionner avec d'autres fonctionnalités de votre produit.

Chris Stratton
la source
L'approvisionnement pourrait être un problème, mais au moins les conceptions de * duino sont open source.
Dave
@Dave - Vous avez raté le point. Chris (je pense) parlait principalement de problèmes avec .NET, pas avec le matériel.
Kevin Vermeer
1
@reemrevnivek - hmm ... ça sonnait comme des problèmes matériels pour moi. Pourquoi fournirait des problèmes, le chargement du firmware et le mfg. la qualité a-t-elle quelque chose à voir avec .NET?
Dave
1
Vous pouvez ou non être en mesure d'obtenir une licence pour charger un runtime particulier sur une carte source alternative. Les différents problèmes que je proposais sont un assortiment pas nécessairement liés les uns aux autres.
Chris Stratton
12

Oui! Soit vous êtes complètement confus, soit votre idée de la production est différente de la mienne. Je considère que la production signifie vendre un produit au grand public en quantités de milliers ou plus, puis soutenir et mettre à jour la conception. Les produits qui ne sont pas destinés au grand public sont des travaux internes ou contractuels, et les produits qui se vendent en plus petites quantités sont à usage spécial ou autrement différents. «Plusieurs planches de Sparkfun» ne répondraient pas à un besoin de production.

Premièrement, le coût des marchandises est toujours un facteur important. Son importance peut différer d'un produit à l'autre, et elle peut être moins importante si l'article particulier n'est qu'un petit composant d'un plus grand système qui a été optimisé pour son coût. Cependant, dans n'importe quel environnement où vous êtes en concurrence avec d'autres producteurs (ce que vous devez être parce que si vous êtes au gouvernement ou si vous avez un monopole, vous ne poseriez pas cette question), le coût sera un facteur. Les 35 $ pour le Netduino (en coût uniquement) pourraient généralement être réduits à 10 $ ou moins pour la plupart des applications avec une conception personnalisée. Si vous êtes convaincu que le coût n'a pas d'importance, il y a d'autres raisons de ne pas acheter un tel design.

Oui, les trois planches ont été conçues pour les étudiants, les concepteurs et les amateurs. Ils sont conçus pour être suffisamment fiables pour un kit de développement installé sur un bureau. Cet élève devrait connaître certaines choses sur les procédures de manipulation sécuritaires que la population générale ne connaît pas ou ne pratique pas. Des problèmes tels que l'ESD, la dissipation de puissance à long terme et le déclassement des composants ont probablement été rétrogradés sous des éléments moins importants pour la production, tels que la soudabilité et la simplicité.

Votre affinité pour les IDE et les solutions préemballées est effrayante. À mon avis, vous faites beaucoup trop confiance à vos fournisseurs d'outils. Si les cartes deviennent plus chères, si les conditions de licence sont modifiées, si le serveur tombe en panne, le logiciel est déclaré obsolète, le fabricant de la carte cesse ses activités (etc. etc etc ...), votre entreprise est arrosée. De plus, vous ne comprenez pas ce qui se passe dans les coulisses. Si quelque chose ne fonctionne pas comme le dit la documentation, quel est votre plan? Votre idée d'acheter quelques Arduinos, de les programmer et de déployer le produit, par exemple, n'a aucun plan de protection du code. Quelqu'un d'autre pourrait copier votre code hors du microcontrôleur, dupliquer les parties pertinentes de la conception pour un tiers du prix et vous vendre davantage.
S'appuyer sur un IDE et un langage pour les choses que vous ne comprenez pas est une recette pour un désastre.

L'utilisation d'un kit de développement dans votre conception rendra votre produit trop cher, fragile, encombrant, gourmand en énergie et inefficace. Il sera également difficile à déboguer, une douleur à supporter, et vous serez à la merci de vos fournisseurs. Cela vous fera paraître incompétent.

Cependant, tout n'est pas perdu. Si vous implémentez votre conception sur une carte de développement, il sera simple de demander à quelqu'un (membre de votre équipe ou non) de la personnaliser pour supprimer ces lacunes. Si vous manquez d'une équipe, vous devez en embaucher une, faire appel à un entrepreneur ou la faire réaliser par une firme de design.

Kevin Vermeer
la source
1
La production ne doit pas nécessairement signifier des milliers. Il y a beaucoup d'ingénierie dans un équipement hautement spécialisé qui peut se vendre par commandes de quelques dizaines à quelques centaines de pièces - et évidemment, il se vend à des prix assez élevés ou personne ne gagnerait de l'argent en le faisant. Ces industries se concentrent sur la satisfaction rapide des besoins, et non sur le fait de passer des mois à retirer chaque dollar de la nomenclature.
Chris Stratton
2
@reemrevnivek - Je pense que vous et moi travaillons dans des mondes complètement différents. Quand je fais référence à une partie de la production, c'est tout ce qui est communiqué à un client, et cela peut être en quantités de 1 à 20, pas des dizaines de milliers, des milliers, voire des centaines. Je m'en soucierais moins si je pouvais réduire une partie de 50 $ à 5 dollars, si cela signifie que je devrai passer 3 mois supplémentaires sur le développement. Cela ne me dérange pas non plus si quelqu'un copie le code.
Dave
1
Vous avez soulevé de très bons points, cependant, et j'apprécie votre contribution. Je pense que votre réponse a été un peu extrême et vous êtes clairement d'opinion à ce sujet, mais je peux en distiller les points clés.
Dave
2
@Dave - Désolé, j'ai consciemment essayé de ne pas faire d'opinion ni d'extrême. Voici à quoi cela ressemble après quelques relectures et modifications: P. Cependant, je maintiens ma déclaration selon laquelle le mot «production» signifie (dans tous les contextes dans lesquels j'ai opéré, principalement en tant que fournisseur OEM automobile) des milliers de pièces. Pouvez-vous imaginer ouvrir votre hotte et voir un Arduino piraté dans votre contrôleur de ventilateur? Non, et pour cause. J'ai essayé de donner quelques-unes de ces raisons.
Kevin Vermeer
1
@reemrevinek - haha! aucune infraction prise. J'espérais avoir beaucoup de points de vue avec cette question. Mon environnement est totalement différent. Nous vendons quelques produits personnalisés qui sont assez chers, donc une pièce comme une carte intégrée est correcte si elle coûte plus cher et compense le temps de développement. J'utilise Netduino en ce moment uniquement pour des concepts de prototypage, mais j'ai alors pensé que nous pourrions probablement l'intégrer dans le produit, car il est de toute façon utilisé avec un contrôleur d'affichage. Je suis certainement d'accord qu'il est préférable / plus professionnel d'avoir une planche personnalisée, mais je voulais entendre des opinions.
Dave
4

J'ai utilisé une carte Arduino dans un produit (pas une production à grande échelle) et je ne le referais pas. Les cartes Arduino sont orientées vers un écosystème très fermé (dans le sens logiciel non open-source du mot). Par exemple, si vous «sortez» de l'écosystème Arduino en ayant besoin d'utiliser une broche qui n'est pas mise en évidence dans un en-tête sur la carte de développement, vous perdez immédiatement tous les avantages de l'Arduino. Vous devez modifier la carte pour amener la broche dans un en-tête existant ou ajouter un nouvel en-tête d'une manière ou d'une autre. Cela signifie probablement que vous ne pourrez pas utiliser de boucliers existants ou même les bibliothèques de logiciels pour l'Arduino. C'est l'essentiel des avantages du conseil d'administration disparu. J'ai dû le faire avec un Arduino Mega.

De plus, les cartes sont énormes et pas faciles à intégrer avec d'autres PCB.J'ai fait la carte principale pour mon application équivalente à un blindage pour l'Arduino Mega qui avait des trous de montage pour le boîtier que j'ai choisi. Je viens donc de brancher l'Arduino Mega dans les en-têtes que j'ai mis sur ma carte. Cependant, il y avait beaucoup de taille de haut en bas pour s'adapter, et il y avait beaucoup d'espace perdu en raison de la taille de la carte de développement. Je n'avais pas besoin de la moitié de ce qui se trouvait là-bas et cela prenait seulement de la place. Cela m'a obligé à avoir un PCB et un boîtier plus grands que ce que j'aurais dû autrement. C'est de l'argent gaspillé.

AngryEE
la source
1
Les conceptions Arduino (et même alimentées par des bras) sont assez simples pour que si vous voulez fabriquer un PCB adapté à la logique numérique pour les accessoiriser, vous pourriez tout aussi bien inclure le processeur. Ils seraient plus tentants si vous n'alliez pas du tout faire un PCB, ou si vous le faisiez sur une seule face ou dans une technologie analogique ou RF spéciale où vous ne vouliez pas de pièces numériques sur cette carte, et avoir à faire un la carte contrôleur serait également plus coûteuse que de les acheter (et même de les retravailler).
Chris Stratton
1
Chris, définitivement. Tout le monde devrait savoir que si vous créez vous-même un PCB, il est inutile d'ajouter une carte Arduino au lieu de simplement en recréer une sur votre PCB.
AngryEE
Si l'environnement Arduino devient un facteur limitant, vous pouvez toujours utiliser n'importe quel autre compilateur AVR comme GCC, BASCOM, AvrCo et produire un firmware qui vivra sur la même carte Arduino ...
avra
4

Arduinos & co sont des plateformes de prototypage et d'évaluation . En tant que tels, ils ne sont tout simplement pas économiquement viables comme base pour des cycles de production même relativement petits. Ils sont parfaits pour l'éducation et les idées de maquette, mais un produit coulerait très rapidement s'il devait supporter le coût d'un sous-ensemble prêt à l'emploi qui n'était pas optimal dans son utilisation finale.

Il serait bien préférable de créer une nouvelle carte comprenant les éléments requis du 'duino et de tout circuit auxiliaire que d'avoir le coût de deux cartes et le risque d'échouer les connexions.

En ce qui concerne Visual Studio et quoi que ce soit .net, je ne les toucherais pas avec quelqu'un d'autre. Optez pour quelque chose d'agnostique de la plate-forme et du fabricant - un peu dans l'esprit du projet Arduino lui-même.

Leo
la source
1
Je crois toujours que tout dépend du coût de votre produit. Disons qu'il est possible de créer quelque chose de vraiment convaincant avec le * duino, et c'est une petite partie d'un projet de 1M USD, et vous ne vendrez que 3 d'entre eux. Pourquoi cela ne serait-il pas économiquement viable? Préférez-vous dépenser des milliers de dollars en développement pour quelque chose qui sera utilisé deux fois?
Dave
2
En ce qui concerne le commentaire .NET, je rencontre fréquemment des personnes qui n'aiment pas utiliser Visual Studio et / ou .NET simplement parce que. Personnellement, je ne comprends pas. Visual Studio est de loin l'un des meilleurs IDE que j'ai jamais utilisés. Je suis certes partisan des outils Microsoft, car ils me permettent de faire mon travail rapidement, et 99% du temps, ils ne font que travailler. Bien que je devrais vraiment apprendre à utiliser des cartes de développement avec un ICE, j'apprécie vraiment la facilité d'utilisation d'un environnement familier qui me permet de définir des points d'arrêt pendant le débogage. AFAIK vous ne pouvez pas faire ça avec Arduino.
Dave
WRT votre premier commentaire, j'ai dit des pistes relativement petites. Je verrais une série de trois grands développements budgétaires comme des prototypes en cours. J'imagine que le client le ferait aussi. Dans cette situation, j'utiliserais volontiers un Arduino.
Leo
1
La chose MS / .net est basée sur une expérience personnelle. Au cours des vingt dernières années, j'ai utilisé presque toutes les plates-formes. Les plus gros maux de tête proviennent invariablement des produits MS. Les États membres semblent supposer que leur chemin est le seul moyen approprié. Actuellement, j'utilise OS X, Ubuntu et Windows 7, le tout dans un environnement de développement. Devinez lequel je dois redémarrer (pas du tout)?
Leo
4
Les ATMegas utilisés sur Arduino prennent en charge le débogage via debugwire - vous ne savez pas si le matériel de la broche de réinitialisation Arduino est compatible, mais sinon cela ne prendrait pas beaucoup de temps à pirater car ce n'est qu'une seule broche. Un autre problème potentiellement majeur à propos de l'utilisation des cartes d'autres personnes est que si vous vous souciez des trucs CEM, FCC, etc.
mikeselectricstuff
3

De manière générale, il n'y a rien de mal à utiliser des produits hors du rayon. Nous le faisons tous à un certain niveau, je suppose que les haineux Arduino ne conçoivent pas leurs propres puces, même difficiles à un niveau de volume plus élevé qui aurait un sens économique.

Cela se résume toujours au coût, au calendrier et à la qualité (et peut-être aussi à la disponibilité à long terme). Si un Arduino répond mieux à ces critères qu'une carte personnalisée, le choix est une évidence.

La partie difficile est d'obtenir les bons chiffres, notamment pour votre volume. Mais en utilisant les chiffres corrects et peu de mathématiques, vous obtiendrez le seuil de rentabilité pour le choix entre uising, disons l'Arduino par rapport à une carte personnalisée. Si c'est bien au-delà de ce que vous attendez, ou bien en dessous, le choix est facile. Oubliez donc tous les conseils qui disent "utilisez absolument un Arduino" ou "optez toujours pour une carte personnalisée", ils sont tous les deux enfermés dans un état d'esprit qui appartient à un niveau de volume spécifique. Faites vos propres calculs.

Notez que je n'ai aucune connaissance spécifique de l'Arduino. Vous devrez décider vous-même si elle répond par exemple à vos exigences de qualité.

Wouter van Ooijen
la source
2

Les planches sur mesure sont agréables si vous avez un budget pour cela et une production suffisamment grande pour justifier le travail. Sinon, vous vous en tenez aux produits de l'étagère, comme les cartes Arduino, Netduino, Fez Domino et SBC (comme dans PC104 et divers formats ITX). La fabrication d'une carte AVR / Arduino personnalisée n'est pas trop complexe, mais de lourdes modifications de Netduino ou même la conception (et la prise en charge ultérieure) de certaines cartes Linux (comme Gumstix) nécessitent un spécialiste et coûtent des dizaines de milliers de dollars et plus. Si vous voulez que la plupart du travail acharné soit effectué par quelqu'un d'autre et que vous ne souhaitiez en personnaliser que certaines parties, le module est le mot magique pour vous.

avra
la source
Je suis définitivement d'accord avec vous, mais à un moment donné, vous avez toujours besoin d'un PCB. J'ai suffisamment de compétences pour en créer un pour * duino et d'autres pour créer un PCB simple pour couper les signaux et la puissance, donc au moins c'est toujours assez bon marché.
Dave
C'est bon marché si vous n'avez pas besoin de milliers, et si vous avez besoin de plus de puissance, des modules comme celui du lien ci-dessus sont également très bien. Méfiez-vous que vous devrez probablement vous débrouiller avec la détection de panne, la perturbation de l'alimentation si vous écrivez sur eeprom, une alimentation électrique fiable et bien d'autres choses qui dépendent de votre application spécifique.
avra