Comment prototyper rapidement des appareils et pourquoi c'est important. Signaler Yandex.Taxi

Tout projet de matériel techniquement complexe est toujours une équation avec de nombreuses inconnues: plate-forme, composants, technologies, production, fonctionnalité, faisabilité. Vous pouvez «ressentir» ce qui se passe lorsque les étapes coûteuses sont terminées: R&D, sélection des composants, développement de programmes et recherche d'une usine pour la production.



J'ai déjà expliqué en détail sur Habré comment nous avons fabriqué une caméra pour déterminer la fatigue du conducteur. Aujourd'hui, je veux me concentrer sur ce que nous avons appris lors de la création d'un prototype de cet appareil, comment tester rapidement des hypothèses à l'aide de prototypes et quelles plates-formes et composants sont les mieux utilisés pour cela.

- Lorsque nous sommes allés au développement de ce produit, nous avons dû faire beaucoup de prototypes. Je voudrais partager partiellement notre expérience, dire quoi et comment nous l'avons fait. Peut-être que quelqu'un trouvera une grande partie de l'histoire banale. La plupart d'entre vous, très probablement, sont passés par ces étapes et ont également leurs propres réalisations. Je ne prétends pas être le dernier exemple de vérité, mais ce sera intéressant.

Voyons comment les appareils sont fabriqués avant d'arriver aux prototypes, car cela détermine beaucoup. Il s'agit d'un projet abstrait, il n'est lié à aucune circonstance spécifique, je le donne juste à titre d'exemple.



Tout d'abord, vous préparez l'apport et approchez la R&D. Habituellement, cela est fait pour vous par une société tierce, ou peut-être vous-même. Mais en tout cas, c'est un processus assez long, le délai minimum est de trois à huit semaines. À ce stade, ils fabriquent une carte, sélectionnent des composants électroniques et l'appareil prend un mode de réalisation matériel.

Ensuite, un échantillon EVT est produit, un appareil de test qui est déjà situé sur la carte dont vous avez besoin sur ces dimensions, sur ces composants. Son but est de vous faire comprendre, cela ressemble à ce que vous voulez recevoir ou non, si quelque chose doit être changé. Vous avez la possibilité de le tester.

Des échantillons DVT sont ensuite produits. Il s'agit d'un test de vérification de conception, lorsque tous les défauts trouvés dans EVT ou la plupart d'entre eux sont éliminés. Après cela, l'appareil est placé dans le boîtier final, dans la conception finale, afin que vous compreniez comment il se sent entre vos mains, comment vous allez continuer à l'utiliser.

L'étape suivante consiste à libérer un lot d'essai de PVT. Cela peut être cent ou mille pièces, selon la façon dont tout va avec vous. Et puis la production de masse commence.

La principale conclusion de toute cette histoire est que jusqu'à ce que vous obteniez le premier prototype, je veux dire EVT, un minimum de deux à trois mois passera. C'est assez long et des risques surviennent toujours. Peut-être que toutes les fonctions ne seront pas implémentées. Peut-être que vous récupérerez les composants sans succès et que vous devrez revenir à la phase initiale de R&D. Vous n'avez peut-être pas pris en compte certaines conditions de fonctionnement de cet appareil. Il peut être chaud, froid, vibration, saleté, poussière, eau autour. N'importe quoi.



Vous pouvez également surestimer vos capacités. Vous vouliez fabriquer un appareil qui rentre dans une certaine fourchette de prix, mais en vain, il s'est avéré plus cher. Et quelque chose de banal peut se produire - alors que vous développez l'appareil depuis six mois, les exigences ont changé et vous devez recommencer. Ça arrive.



Sur la base du schéma précédent, cela nous amène au fait que maintenant les gens utilisent généralement une sorte d'approche agile dans le développement de logiciels. Tout tourne en rond, en courtes itérations. À chaque étape, il y a un prototype fonctionnel, et tout est normal, itératif. Dans le développement matériel, cela ne convient pas. Si vous modifiez les exigences, ce n'est pas la première étape, vous disposez à nouveau de sept à huit semaines et vous produisez un nouvel EVT. C'est pourquoi vous ne pouvez pas proposer un minimum de produit disponible, et un jour plus tard, l'affiner. Ne peut pas être mal fait. Vous pourrez peut-être améliorer quelque chose par programme, mais si vous avez mal fait, votre produit se révélera mauvais.

Chacune de ces situations est une perte de temps, car du temps est perdu pour les nouvelles recherches, les améliorations et la production d'un nouvel échantillon EVT que vous avez commandé. Vous vous asseyez et attendez le résultat.



Par conséquent, ajoutons à ce schéma, où j'ai parlé de la production de l'appareil, de la façon dont il correspond au développement de logiciels.

Comment ce développement se produit-il habituellement? Il existe une version de développement. Dans le cadre de la R&D, vous publiez une version alpha, vous devez avoir la bêta prête pour le premier échantillon EVT, puis la deuxième bêta apparaîtra et vous vous préparerez de manière itérative pour la sortie. Dans un monde idéal, tout se passe, comme dans ce schéma.

En fait, la réalité est que la version alpha n'a rien à tester, vous courez donc un grand risque. Une beta-first peut ne pas démarrer du tout sur ce qu'on vous a dit. À ce stade, vous avez perdu du temps. Les dates et les plans sont brisés, et rien de bon n'en sortira.

Cependant, il y a une petite triche, vous le savez tous. Vous pouvez créer un prototype au début. Il ne doit pas nécessairement être parfaitement cohérent avec le dispositif final, il n'a pas besoin d'avoir ses dimensions. Il peut généralement être différent, fabriqué à partir d'autre chose. Mais cela vous aidera à comprendre exactement ce que vous faites, comment vous le faites et à quoi vous êtes confronté.



Vous pouvez déterminer rapidement le type de matériel dont vous avez besoin. Vous pouvez tester votre idée en conditions réelles, car tant qu'elle est dans votre tête, il vous semble qu'elle fonctionne. Dans le monde réel, d'autres besoins.

Il en va de même pour le design. L'appareil peut vous sembler bon, mais lorsque vous le mettez dans des conditions réelles - sur le verre d'une voiture ou sur le volant d'un vélo - il ne fonctionnera pas comme vous en avez besoin. La validation de la conception est donc également un aspect très important.

Vous pouvez également écrire des logiciels rapidement, car vous testez chacune de vos actions sur un échantillon en direct ou sur une série d'échantillons. C’est bien s’ils fonctionnent encore à cette époque.

En outre, nous savons tous que les spécialistes du marketing et les experts en produits dominent le monde. Ils viennent en courant et vous disent: "Et nous le voulons toujours comme ça et comme ça." Ces exigences sont difficiles à clarifier lorsque vous n'avez rien en main. Lorsque vous avez quelque chose, vous pouvez les appliquer, vous pouvez essayer de leur dire: ce sont vos scénarios qui fonctionneront, mais pas.

Lorsque vous fabriquez un appareil, vous le faites le plus souvent pour certaines tâches professionnelles. Si vous avez besoin d'attirer un investisseur, venez le voir avec des morceaux de papier, des projets, des dessins et des histoires - c'est cool et nécessaire. Mais quand vous venez et dites: «Regardez, nous avons trouvé ça, mais c'est un prototype qui fonctionne», alors l'investisseur est immédiatement plus intéressé.

Vous avez de nombreux risques auxquels vous pourriez ne pas penser. Si, comme nous, vous fabriquez un appareil avec un appareil photo, il peut ne pas vous venir à l'esprit que l'alimentation dans la voiture n'est pas aussi bonne que, par exemple, dans la prise de courant de votre domicile. Il peut y avoir un million de ces risques, et ils n'apparaîtront que lorsque vous prendrez l'appareil et le placerez dans un environnement réel.

Il vous permettra également de collecter des données réelles. C'est une chose lorsque vous placez la caméra devant vous et que vous vous enregistrez. Un autre est lorsque la caméra fait face à un motocycliste, un conducteur de voiture, un mécanicien. Tout cela nous permet de présenter de nouvelles exigences techniques et limitations au matériel, minimise les risques.



Voyons maintenant quels sont les risques. Je voudrais les regrouper en trois parties. Ou vous n'êtes absolument pas sûr de quoi que ce soit. Vous ne savez pas de quel type de matériel vous avez besoin, vous ne savez pas comment écrire un logiciel. Dans ce cas, tout est triste et, à mon avis, il est préférable de faire une sorte de preuve de concept, puis de glisser vers l'une des méthodes à gauche. Ou vous êtes sûr du matériel et pas sûr du logiciel, alors tout l'effort est dépensé sur le logiciel, et vous donnez le matériel à un entrepreneur tiers, même s'il le fait normalement. Ou vous êtes complètement sûr du logiciel, mais pas sûr du matériel, alors vous avez un besoin urgent d'un prototype. Vous allez essayer votre logiciel sur ce prototype. Vous devrez peut-être l'adapter, mais vous réussirez aussi.

Et puis nous arrivons à quels prototypes faire. Ici mon avis, peut-être que cela ne coïncide pas avec votre avis, vous devriez toujours choisir une plateforme qui peut être plus que vous ne le souhaitez. Si vous avez besoin d'une petite extension, prenez-en plus en réserve. Si vous avez besoin de performances limitées, prenez quelque chose qui vous en donne plus. Si vous avez besoin d'un peu de mémoire, prenez-en deux fois plus. Si vous avez besoin de quelque chose qui fonctionne exclusivement dans votre portée de tâche, prenez quelque chose d'encore plus avancé, avec une sorte d'outils maximum, cela vous aidera toujours. Pourquoi? Parce que lorsque vous réaliserez ce prototypage, les mêmes experts en produits, spécialistes du marketing, viendront et diront: "Eh bien, regardez, il y a une autre façon de le faire et de le connecter." Et que se passe-t-il?



Rapprochez-vous un peu de la réalité. De quoi pouvez-vous faire cela? La plate-forme évidente est Arduino. Faisons-le sur Arduino, tout le monde aime Arduino. En fait, oui et non. En Arduino, vous pouvez faire, à mon avis, des choses très simples. Autrement dit, Arduino est plus adapté à certains nœuds. Avez-vous besoin de faire un manipulateur? Ok, attrape l'Arduino et fais-le. Avez-vous besoin de fabriquer un thermomètre? Génial, il y en a un million. Une autre chose est si vous devez faire quelque chose de complexe qui nécessite de la puissance de traitement, de la vision par ordinateur, de l'apprentissage automatique.

Arduino est un nœud. Vous pouvez faire une roue, une voiture radiocommandée, et l'Arduino fera l'affaire. Mais si vous avez besoin d'installer une caméra dans votre machine, ce n'est pas très bien.



Cela demande une autre option - Raspberry PI. Tout le monde l'aime. Petit, bon, populaire, vendu par centaines de millions de pièces dans le monde. Et, en fait, peut-être oui, peut-être pas. D'une part, il est peu coûteux, il est productif, il dispose de nombreux modules qui peuvent y être attachés. Il a un connecteur à quarante broches assez standard. Mais il y a des problèmes.

Premièrement, il est chauffé, en particulier le dernier modèle, le quatrième. Et si vous regardez l'image, le processeur est entouré d'un tas de périphériques, et il est très difficile de trouver un dissipateur thermique qui le tordre normalement, car vous vous reposerez sur le port HDMI, USB, l'extension à quarante broches, et vous aurez une zone de radiateur, peut-être peut-être quatre par quatre centimètres maximum.

Et pourtant il n'y a pas d'Android, il n'y a que Linux. Il existe quelques variantes sur le thème, mais certains projets nécessitent Android. Par exemple, vous fabriquez une sorte d'appareil que vous visiez à l'origine sur la plate-forme Android. Et ici, en quelque sorte, Raspberry PI n'est pas une grande aide pour vous.

Et le problème suivant, à mon avis, est les systèmes d'exploitation à supports amovibles. Vous utilisez une carte SD, respectivement, moins, tous les cas d'utilisation automobile et autres. Votre voiture tremble, la carte SD n'est pas fiable, elle peut tomber, elle va vibrer. Si vous avez un gel, autre chose, il y aura de la condensation, en général, il y aura des problèmes.

En fait, il y a beaucoup de toutes sortes de choses, je peux vous les montrer, nous les avons essayées différemment. Il y a une banane pai. C'est à peu près la même chose que le Raspberry Pi. C'est normal, ça marche, c'est compatible avec ça sur les connecteurs. Pas la pire plateforme Allwinner. Il existe une solution légèrement meilleure, par exemple, Khadas Vim sur le processeur Amlogic. Après mon histoire, il sera possible de venir me voir plus tard pendant la pause, je serai prêt à tout raconter et tout montrer.

Toutes ces choses ont leurs inconvénients. En fait, je ne suis pas venu ici pour faire de la publicité pour des morceaux de fer, mais, néanmoins, je m'arrêterai. Il existe un appareil qui nous convient beaucoup mieux à nos fins.



Il s'agit de NanoPi, un fabricant chinois appelé FriendlyElec, FriendlyARM. Ils ont plusieurs noms. Et il se trouve qu'il est dépourvu des inconvénients du Raspberry Pi, alors qu'il présente de nombreux avantages.

Linux et Android sont là, tous avec des codes sources, tout cela peut être collecté en déplacement. Il existe un module eMMC, c'est-à-dire que vous séparez le système d'exploitation d'un support externe et qu'il fonctionne dans de bonnes conditions de température. Nous avons essayé de geler le Raspberry Pi et cela n'a pas très bien fonctionné, lors du lancement du troisième modèle, il a juste éclaté, le processeur s'est effondré. Nous n'avons pas mené plus d'expériences. Mais nous avons essayé de congeler cette chose et de la chauffer au four. Il n'y a eu aucun problème.

Dans le même temps, il y a un bus PCI Express à part entière, avec 2x, et en général tout va bien. Il peut également être refroidi, son processeur est situé à l'envers, je vais vous le montrer maintenant, je l'ai aussi. Voilà à quoi ça ressemble, tout comme le vôtre. Fond de processeur. Un radiateur épais est posé dessus, et ce radiateur dissipe parfaitement toute cette chaleur.



Un peu plus. Qu'y a-t-il? En fait, j'ai vraiment aimé cette plateforme. Depuis six mois, je prototype tout ce qui est avec elle, et donc je partage avec vous. Il y a un processeur à six cœurs. Il est très puissant, il se réchauffe. Au pic, il peut consommer 15 watts, parfois même plus. Mais il existe une carte vidéo normale, une compression vidéo matérielle et, plus important encore, tout se déroule bien et coûte à peu près comme un Raspberry Pi. C'est 50 $, plus un peu pour eMMC et un radiateur.



Il a un frère cadet. Exactement la même taille, minuscule. La bonne nouvelle: si vous prenez ce module eMMC d'ici et le branchez dans celui-ci, vous n'avez pas besoin de reconstruire le firmware, changez le logiciel. Ils sont entièrement compatibles avec le matériel. Même ce petit connecteur à quarante broches sur le dessus est compatible avec un gros appareil. Autrement dit, si vous fabriquez un appareil et que vous devez soudainement passer à un petit facteur de forme, il sera électriquement compatible avec vous. Oui, un peu moins de mémoire. Oui, il y a moins d'USB, il n'y en a pas quatre, mais deux, mais tout va bien.



De quoi d'autre avez-vous besoin? À mon avis, le prototypage se fait mieux sur une grande distribution Linux épaisse. Il est clair que dans l'appareil final, vous aurez très probablement soit un système d'exploitation propriétaire, soit un très petit Linux embarqué, une sorte de Linaro, ou quelque chose de moins. Et oui, là ça marchera bien.

Mais pendant que vous écrivez un prototype, vous avez besoin d'une boîte à outils flexible, donc le gros Linux est votre choix. Quelque chose sur Debian, ou quelque chose d'autre, avec des paquets où vous pouvez mettre tout ce dont vous avez besoin en deux commandes et exécuter de grandes choses.

Au stade du prototypage, la taille de la distribution n'a pas vraiment d'importance. Oui, vous aurez quatre gigaoctets. Et bien. Voici le module eMMC de 16 gigaoctets. J'ai téléchargé ce Linux ici, tout va bien pour moi. Vous avez également besoin d'une bonne alimentation et, surtout, d'un bon câble.

Nous parlons maintenant d'un appareil comme celui-ci, ou d'un type de Raspberry Pi, qui est alimenté par Type-C. Il se trouve qu'il y a peu de bons câbles de type C et encore moins de bonnes alimentations. Et si vous ne prenez même pas une alimentation série, mais quelque chose, par exemple, pour les bandes LED et alimentez directement l'appareil, vous serez beaucoup mieux. Il sera également difficile de prendre un câble, ne l'ignorez pas.

Au début de nos expériences, une mauvaise alimentation et un mauvais câble ont soudainement gelé l'appareil. Nous avons recherché des problèmes de logiciel et de périphérie, et cela a consisté dans le fait que la puissance s'est soudainement affaissée.

Évidemment, si vous avez des capteurs, vous utiliserez une carte comme celle-ci avec un tas de petits fils, parce que souder tout un tas de choses sur votre genou et le brancher sur un tel méli-mélo de fils n'est pas très pratique. Lorsque vous arrivez à un prototype plus ou moins série, vous pouvez toujours commander un PCB, et vos composants y seront déjà soudés. Mais pendant que vous expérimentez, c'est plus pratique.



La prochaine chose dont vous avez besoin est USB-UART. Très probablement, dans la carte sur laquelle vous prototypez, il y aura une sortie pour le moniteur. Mais si en tant qu'adulte, il vaut mieux aller directement à la solution dans laquelle vous travaillez avec cela dans la console, car lorsque vous collectez les échantillons EVT, personne ne vous donnera de sorties vidéo, HDMI ou autre chose. Vous devez immédiatement apprendre à vivre une vie normale.



Il y a encore une chose utile, je vais vous la montrer. Il s'agit d'un écran LCD, curieusement, avec une interface USB. En fait, je pense que l'USB dans l'industrie n'est pas très bon, voire mauvais. Mais en prototypage et développement - super. Il y a des tonnes de périphériques sur USB, cet écran est un cas particulier. Il s'agit de l'écran habituel standard à deux lignes avec un convertisseur USB et deux autres boutons. Il peut être connecté à n'importe quel appareil, afficher des informations de débogage dessus. Ça suffit. Dans la plupart des cas, vous n'avez besoin de rien d'autre.

Vous aurez besoin d'une chose de plus - une imprimante 3D. Vous pouvez, bien sûr, découper avec un couteau en mousse de polystyrène, le sculpter à partir d'argile, de pâte à modeler et d'autre chose. Mais à la fin, vous arriverez toujours à une situation où voici mon électronique, donc je comprends ce que j'en veux. Mais il est impossible d'imaginer comment cela fonctionnera dans des conditions réelles. Par conséquent, à un moment donné, nous avons acheté plusieurs imprimantes et nous avons imprimé toutes les idées que nous avions.

Nous avons trouvé un nouveau support - nous imprimons. Nous avons inventé un nouveau bâtiment - nous imprimons. Nous avons toute une galerie de deux ou trois douzaines de supports, boutons, sous-verres différents. Il est plus facile de comprendre la réalité.



Maintenant, il y aura un petit holivar sur ce qu'il faut développer. Je ne suis pas partisan de quoi que ce soit, je crois que tous ces excellents langages de programmation. Mais il se trouve que tout le matériel, en règle générale, est mieux écrit en C. Parce que le noyau Linux, parce que tous les modules, parce que tout est simple, clair et plus difficile de se tirer une balle dans le pied. En C ++, il est un peu plus facile de se tirer une balle dans le pied, en Python, vous n'avez pas à vous soucier de la mémoire ou de quoi que ce soit.

Par conséquent, à mon avis, la règle ici est la suivante: si vous êtes immédiatement destiné à la solution de production de masse finale, écrivez en C. Elle se transfère facilement où vous en avez besoin et tout fonctionnera. Si vous avez besoin de tout ici et maintenant, si vous avez besoin de vision par ordinateur, de manipulation d'image, de réseaux de neurones et c'est toute l'histoire, alors il est plus facile de commencer avec Python. , , , , - , . . C, - . : C production, Python .



. , . , , — . , . : , , , .

, . , , , . , .

, . , - . , . , , , , . , .

- , , , design-house , - . , , , . . , , -. , , . , .

, hardware software , , , , - .

, . , . , : «, , , ». . , , .



, hard soft. - - , , . proof of concept, . , , GPS, . proof of concept, , .

BOM, , , : , .

, --, , , . . . , , , , , , - . - . . — , , .

, , , NanoPi. . Ça marche? Ça marche. ? . , .

, , , , , , , , , : «, », . , , .

, , . .



— Signal Q1, . , , , -. , GPS — . :



, , , , NanoPi. , , .



, , , , . . , , ? . , . . 70 , 45 — .

, , , . , . machine learning, , , , . , , . , , . . . .

, . — . . , . . , , , . — , . , , , , . .

, , — 70 . , . . , . , , , .

. , ? , - . . , - , . , , — , .

. , USB- production, . , USB — . , , GPS, Wi-Fi.

, . Raspberry? , , . , AliExpress, , 50 , , PCV. USB, . , — . , Sony, OmniVision, - , - . USB — , .



-, — , . , , . — . , . , - . , .



, , 3D- — . , , , , , . — . — .



. . , . , . , - .

, - hardware, - . computer vision . - . , , , , , . — .

, mass production, . , . , . , , . Je vous remercie

Source: https://habr.com/ru/post/fr472660/


All Articles