Wie man schnell Prototypen von Geräten erstellt und warum dies wichtig ist. Bericht Yandex.Taxi

Jedes technisch komplexe Hardwareprojekt ist immer eine Gleichung mit vielen Unbekannten: Plattform, Komponenten, Technologien, Produktion, Funktionalität, Machbarkeit. Sie können „fühlen“, was passiert, wenn die teuren Phasen abgeschlossen sind: Forschung und Entwicklung, Auswahl der Komponenten, Entwicklung von Programmen und Suche nach einer Fabrik für die Produktion.



Ich habe Habré bereits ausführlich erzählt, wie wir eine Kamera hergestellt haben, um die Ermüdung des Fahrers festzustellen. Heute möchte ich mich darauf konzentrieren, was wir beim Erstellen eines Prototyps dieses Geräts gelernt haben, wie Hypothesen mithilfe von Prototypen schnell getestet werden können und welche Plattformen und Komponenten dafür am besten geeignet sind.

- Als wir zur Entwicklung dieses Produkts gingen, mussten wir viele Prototypen herstellen. Ich möchte teilweise unsere Erfahrungen teilen, erzählen, was und wie wir gemacht haben. Vielleicht findet jemand einen Großteil der Geschichte banal. Die meisten von Ihnen haben höchstwahrscheinlich diese Phasen durchlaufen und auch ihre eigenen Erfolge erzielt. Ich gebe nicht vor, die letzte Instanz der Wahrheit zu sein, aber es wird interessant sein.

Lassen Sie uns sehen, wie die Geräte hergestellt werden, bevor wir zu den Prototypen kommen, da dies viel bestimmt. Dies ist ein abstraktes Projekt, es ist nicht an bestimmte Umstände gebunden, ich gebe es nur als Beispiel.



Zunächst bereiten Sie den Input vor und wenden sich an F & E. Normalerweise wird dies für Sie von einem Drittunternehmen oder vielleicht von Ihnen selbst erledigt. In jedem Fall ist dies ein ziemlich langwieriger Prozess, der Mindestzeitraum beträgt drei bis acht Wochen. In diesem Stadium stellen sie eine Platine her, wählen elektronische Komponenten aus und die Vorrichtung nimmt eine materielle Ausführungsform an.

Als nächstes wird eine EVT-Probe erstellt, ein Testgerät, das sich bereits auf der von Ihnen benötigten Platine zu diesen Abmessungen und zu solchen Komponenten befindet. Ihr Zweck ist es, Ihnen verständlich zu machen, es sieht so aus, als ob Sie etwas erhalten möchten oder nicht, ob etwas geändert werden muss. Sie haben die Möglichkeit, es zu testen.

Dann werden DVT-Proben erzeugt. Dies ist ein Entwurfsüberprüfungstest, bei dem alle in EVT oder den meisten von ihnen gefundenen Fehler beseitigt werden. Danach wird das Gerät im endgültigen Gehäuse, im endgültigen Design, platziert, damit Sie verstehen, wie es sich in Ihren Händen anfühlt und wie Sie es weiterhin verwenden.

Der nächste Schritt ist die Freigabe einer Testcharge PVT. Es können hundert oder tausend Stücke sein, je nachdem, wie alles mit Ihnen geht. Und dann beginnt die Massenproduktion.

Die wichtigste Schlussfolgerung aus dieser ganzen Geschichte ist, dass bis Sie den ersten Prototyp erhalten, ich meine EVT, mindestens zwei bis drei Monate vergehen werden. Dies ist eine ziemlich lange Zeit und es entstehen immer Risiken. Möglicherweise werden nicht alle Funktionen implementiert. Möglicherweise holen Sie die Komponenten erfolglos ab und müssen zur Anfangsphase der Forschung und Entwicklung zurückkehren. Möglicherweise haben Sie einige Betriebsbedingungen dieses Geräts nicht berücksichtigt. Es kann heiß, kalt, Vibration, Schmutz, Staub, Wasser sein. Alles.



Sie könnten auch Ihre Fähigkeiten überschätzen. Sie wollten ein Gerät herstellen, das in eine bestimmte Preisklasse passt, aber es schlug fehl, es stellte sich als teurer heraus. Und etwas Alltägliches kann passieren - während Sie das Gerät ein halbes Jahr lang entwickelt haben, haben sich die Anforderungen geändert, und Sie müssen es erneut tun. Es passiert.



Basierend auf dem vorherigen Schema führt uns dies zu der Tatsache, dass die Menschen heutzutage normalerweise einen agilen Ansatz in der Softwareentwicklung verwenden. Alles dreht sich im Kreis, in kurzen Iterationen. In jeder Phase gibt es einen funktionierenden Prototyp, und alles ist normal und iterativ. In der Hardwareentwicklung ist dies nicht geeignet. Wenn Sie die Anforderungen ändern, ist dies nicht die erste Phase. Sie haben wieder sieben bis acht Wochen Zeit und produzieren eine neue EVT. Aus diesem Grund können Sie kein Mindestprodukt zur Verfügung stellen und es eines Tages später verfeinern. Kann nicht schlecht gemacht werden. Möglicherweise können Sie programmgesteuert etwas verbessern, aber wenn Sie es schlecht gemacht haben, wird Ihr Produkt schlecht.

Jede solche Situation ist Zeitverschwendung, da Zeit für die neue Forschung, Verbesserung und Produktion einer neuen EVT-Probe verschwendet wird, die Sie bestellt haben. Sie sitzen einfach und warten auf das Ergebnis.



Fügen wir daher zu diesem Schema hinzu, in dem ich über die Herstellung des Geräts sprach und wie es auf die Entwicklung von Software abgebildet wird.

Wie läuft diese Entwicklung normalerweise ab? Es gibt eine Entwicklungsversion. Im Rahmen von F & E veröffentlichen Sie eine Alpha-Version. Sie sollten eine Beta für das erste EVT-Beispiel bereithalten. Dann wird eine zweite Beta angezeigt und Sie bereiten sich iterativ auf die Veröffentlichung vor. In einer idealen Welt passiert alles wie in diesem Diagramm.

In der Realität gibt es in der Alpha-Version nichts zu testen, sodass Sie einem hohen Risiko ausgesetzt sind. Eine Beta-Version startet möglicherweise überhaupt nicht mit dem, was Ihnen gesagt wurde. Zu diesem Zeitpunkt haben Sie Zeit verloren. Daten und Pläne sind gebrochen, und nichts Gutes wird daraus.

Es gibt jedoch einen kleinen Cheat, den Sie alle kennen. Sie können in einem frühen Stadium einen Prototyp erstellen. Es muss nicht vollständig mit dem Endgerät übereinstimmen, es muss nicht seine Abmessungen haben. Es kann im Allgemeinen anders sein, aus etwas anderem gemacht. Aber es wird Ihnen helfen, genau zu verstehen, was Sie tun, wie Sie es tun und was Sie vor sich haben.



Sie können schnell feststellen, welche Art von Hardware Sie benötigen. Sie können Ihre Idee unter realen Bedingungen testen, denn während sie in Ihrem Kopf ist, scheint es Ihnen, dass sie funktioniert. In der realen Welt andere Bedürfnisse.

Gleiches gilt für das Design. Das Gerät mag Ihnen gut erscheinen, aber wenn Sie es unter realen Bedingungen auf das Glas eines Autos oder auf das Lenkrad eines Fahrrads stellen, funktioniert es nicht so, wie Sie es benötigen. Daher ist auch die Designvalidierung ein sehr wichtiger Aspekt.

Sie können Software auch schnell schreiben, da Sie jede Aktion an einem Live-Sample oder einer Reihe von Samples testen. Es ist gut, wenn sie um diese Zeit noch in Betrieb sind.

Darüber hinaus wissen wir alle, dass Vermarkter und Produktexperten die Welt regieren. Sie kommen gerannt und sagen dir: "Und wir wollen es immer noch so und so." Diese Anforderungen sind schwer zu klären, wenn Sie nichts zur Hand haben. Wenn Sie etwas haben, können Sie es anwenden, Sie können versuchen, es ihnen zu sagen: Dies sind Ihre Szenarien, die funktionieren werden, aber diese werden nicht funktionieren.

Wenn Sie ein Gerät erstellen, erstellen Sie es meistens für einige Geschäftsaufgaben. Wenn Sie einen Investor gewinnen möchten, kommen Sie mit Zetteln, Projekten, Zeichnungen und Geschichten zu ihm - es ist cool und notwendig. Aber wenn Sie kommen und sagen: „Sehen Sie, wir haben uns das ausgedacht, aber das ist ein funktionierender Prototyp“, dann ist der Investor sofort mehr interessiert.

Sie haben viele Risiken, an die Sie möglicherweise nicht denken. Wenn Sie wie wir ein Gerät mit einer Kamera herstellen, fällt Ihnen möglicherweise nicht ein, dass die Leistung im Auto nicht so gut ist wie beispielsweise in Ihrer Haushaltssteckdose. Es kann eine Million solcher Risiken geben, die nur dann auftreten, wenn Sie das Gerät nehmen und in einer realen Umgebung platzieren.

Sie können damit auch echte Daten erfassen. Es ist eine Sache, wenn Sie die Kamera vor sich stellen und sich selbst aufnehmen. Eine andere ist, wenn die Kamera einem Motorradfahrer, einem Autofahrer oder einem Mechaniker gegenübersteht. All dies ermöglicht es uns, neue technische Anforderungen und Einschränkungen für die Hardware darzustellen und Risiken zu minimieren.



Nun wollen wir sehen, welche Risiken bestehen können. Ich möchte sie in drei Teile gruppieren. Oder Sie sind sich über nichts sicher. Sie wissen nicht, welche Art von Hardware Sie benötigen, und Sie wissen nicht, wie Sie Software schreiben. In diesem Fall ist alles traurig, und meiner Meinung nach ist es am besten, eine Art Proof of Concept durchzuführen und dann zu einer der Methoden auf der linken Seite zu gelangen. Oder Sie sind sich der Hardware und nicht der Software sicher, dann wird der gesamte Aufwand für Software aufgewendet, und Sie geben die Hardware an einen Drittanbieter weiter, auch wenn dieser dies normalerweise tut. Oder Sie sind sich der Software völlig sicher, aber der Hardware nicht sicher. Dann benötigen Sie dringend einen Prototyp. Sie werden Ihre Software auf diesem Prototyp anprobieren. Möglicherweise müssen Sie es anpassen, aber Sie werden auch erfolgreich sein.

Und dann kommen wir zu den Prototypen. Hier meine Meinung, vielleicht stimmt es nicht mit Ihrer Meinung überein, Sie sollten immer eine Plattform wählen, die mehr sein kann, als Sie wollen. Wenn Sie eine kleine Erweiterung benötigen, nehmen Sie mehr in Reserve. Wenn Sie eine eingeschränkte Leistung benötigen, nehmen Sie etwas, das Ihnen mehr bietet. Wenn Sie ein wenig Speicher benötigen, nehmen Sie doppelt so viel. Wenn Sie etwas benötigen, das ausschließlich in Ihrem Aufgabenbereich funktioniert, nehmen Sie etwas noch Fortgeschritteneres mit einer Art maximaler Tools, dies wird Ihnen immer helfen. Warum? Denn wenn Sie dieses Prototyping durchführen, werden dieselben Produktexperten, Vermarkter, kommen und sagen: "Nun, schauen Sie, es gibt noch einen anderen Weg, dies zu tun und es zu verbinden." Und was passiert?



Kommen wir der Realität etwas näher. Wovon kannst du das machen? Die offensichtliche Plattform ist Arduino. Lass es uns auf Arduino machen, jeder liebt Arduino. Eigentlich ja und nein. In Arduino können Sie meiner Meinung nach sehr einfache Dinge tun. Das heißt, Arduino ist für einige Knoten besser geeignet. Müssen Sie einen Manipulator machen? Ok, schnapp dir das Arduino und mach es. Müssen Sie ein Thermometer machen? Großartig, es gibt eine Million von ihnen. Eine andere Sache ist, wenn Sie etwas Komplexes tun müssen, das Rechenleistung, Computer Vision und maschinelles Lernen erfordert.

Arduino ist ein Knoten. Sie können ein Rad bauen, ein ferngesteuertes Auto, und der Arduino wird es tun. Wenn Sie jedoch eine Kamera in Ihrem Computer installieren müssen, ist dies irgendwie nicht sehr gut.



Dies erfordert eine weitere Option - Raspberry PI. Jeder liebt ihn. Klein, gut, beliebt, von Hunderten Millionen Stück weltweit verkauft. Und in der Tat vielleicht ja, vielleicht auch nicht. Einerseits ist es kostengünstig, es ist produktiv, es verfügt über viele Module, die daran angeschlossen werden können. Es hat einen ziemlich normalen vierzigpoligen Stecker. Aber es gibt Probleme.

Erstens wird es beheizt, vor allem das letzte Modell, das vierte. Wenn Sie sich das Bild ansehen, ist der Prozessor von einer Reihe von Peripheriegeräten umgeben, und es ist sehr schwierig, einen Kühlkörper zu finden, der ihn normal verdreht, da Sie auf dem HDMI-Anschluss, USB, der 40-poligen Erweiterung ruhen und möglicherweise einen Kühlerbereich haben vielleicht maximal vier mal vier Zentimeter.

Und doch gibt es kein Android, es gibt nur Linux. Es gibt einige Variationen des Themas, aber einige Projekte benötigen Android. Sie stellen beispielsweise eine Art Gerät her, das Sie ursprünglich für die Android-Plattform entwickelt haben. Und hier ist Raspberry PI irgendwie kein großartiger Helfer für Sie.

Und das nächste Problem sind meiner Meinung nach Betriebssysteme für Wechselmedien. Sie verwenden eine SD-Karte minus aller Kfz- und anderen Anwendungsfälle. Ihr Auto zittert, die SD-Karte ist unzuverlässig, sie kann herausfallen und vibrieren. Wenn Sie einen Frost haben, etwas anderes, wird es Kondensation geben, im Allgemeinen wird es Probleme geben.

Tatsächlich gibt es viele Dinge aller Art, ich kann sie Ihnen zeigen, wir haben sie anders ausprobiert. Es gibt ein Bananen-Pai. Es ist ungefähr das gleiche wie beim Raspberry Pi. Es ist normal, es funktioniert, es ist damit an den Anschlüssen kompatibel. Nicht die schlechteste Allwinner-Plattform. Es gibt eine etwas bessere Lösung, zum Beispiel Khadas Vim auf dem Amlogic-Prozessor. Nach meiner Geschichte wird es möglich sein, später in der Pause zu mir zu kommen. Ich werde bereit sein, alles zu erzählen und zu zeigen.

All diese Dinge haben ihre Nachteile. Ich bin zwar nicht hergekommen, um für Eisenstücke zu werben, aber ich werde trotzdem aufhören. Es gibt ein Gerät, das für unsere Zwecke viel besser zu uns passt.



Dies ist NanoPi, ein chinesischer Hersteller namens FriendlyElec, FriendlyARM. Sie haben mehrere Namen. Und so kam es, dass er keine Nachteile des Raspberry Pi hat, während er viele Vorteile hat.

Es gibt sowohl Linux als auch Android, alle mit Quellcodes. All dies kann unterwegs gesammelt werden. Es gibt ein eMMC-Modul, dh Sie trennen das Betriebssystem von einem externen Medium und es funktioniert unter guten Temperaturbedingungen. Wir haben versucht, den Raspberry Pi einzufrieren, und es hat nicht sehr gut geklappt. Beim Start des dritten Modells platzte es nur, der Prozessor fiel auseinander. Wir haben keine weiteren Experimente durchgeführt. Aber wir haben versucht, dieses Ding einzufrieren und im Ofen zu erhitzen. Es gab keine Probleme.

Gleichzeitig gibt es einen vollwertigen PCI Express-Bus mit 2x, und im Allgemeinen ist alles in Ordnung. Es kann auch gekühlt werden, sein Prozessor befindet sich auf der Rückseite, ich werde es Ihnen jetzt zeigen, ich habe es auch. So sieht es aus, egal wie bei Ihnen. Prozessor unten. Ein dicker Heizkörper wird darauf gelegt, und dieser Heizkörper leitet all diese Wärme perfekt ab.



Ein bisschen mehr. Was ist da Tatsächlich hat mir diese Plattform sehr gut gefallen. In den letzten sechs Monaten habe ich alles, was mit ihr zu tun hat, als Prototyp erstellt und teile es daher mit Ihnen. Es gibt einen Sechs-Kern-Prozessor. Er ist sehr mächtig, er wärmt sich. In der Spitze kann es 15 Watt verbrauchen, manchmal sogar mehr. Aber es gibt eine normale Grafikkarte, Hardware-Videokomprimierung und vor allem alles funktioniert gut und kostet ungefähr wie ein Raspberry Pi. Es kostet 50 US-Dollar plus ein wenig für eMMC und einen Heizkörper.



Er hat einen jüngeren Bruder. Genau die gleiche Größe, winzig. Die gute Nachricht: Wenn Sie dieses eMMC-Modul von hier nehmen und an dieses anschließen, müssen Sie die Firmware nicht neu erstellen und die Software ändern. Sie sind vollständig hardwarekompatibel. Selbst dieser kleine vierzigpolige Stecker oben ist mit einem großen Gerät stiftkompatibel. Das heißt, wenn Sie ein Gerät herstellen und plötzlich auf einen kleinen Formfaktor umsteigen müssen, ist es elektrisch ungefähr mit Ihnen kompatibel. Ja, etwas weniger Speicher. Ja, es gibt weniger USB, es gibt nicht vier, sondern zwei, aber alles ist in Ordnung.



Was brauchst du noch? Meiner Meinung nach wird Prototyping am besten auf einer großen, dicken Linux-Distribution durchgeführt. Es ist klar, dass Sie auf dem Endgerät höchstwahrscheinlich entweder ein proprietäres Betriebssystem oder ein sehr kleines Embedded Linux, eine Art Linaro oder etwas anderes haben werden. Und ja, dort wird es gut funktionieren.

Aber während Sie einen Prototyp schreiben, benötigen Sie ein flexibles Toolkit, sodass Sie sich für großes Linux entscheiden können. Etwas auf Debian oder etwas anderes mit Paketen, in denen Sie alles, was Sie brauchen, in zwei Befehle einfügen und große, große Dinge ausführen können.

In der Prototyping-Phase spielt die Größe der Distribution keine Rolle. Ja, Sie haben vier Gigabyte. Gut gut. Hier ist das 16-Gigabyte-eMMC-Modul. Ich habe dieses Linux hier hochgeladen, bei mir ist alles in Ordnung. Sie benötigen außerdem eine gute Stromversorgung und vor allem ein gutes Kabel.

Wir sprechen jetzt über ein Gerät wie dieses oder eine Art Raspberry Pi, der mit Typ C betrieben wird. So kam es, dass es nur wenige gute Typ-C-Kabel und noch weniger gute Netzteile gibt. Und wenn Sie nicht einmal ein serielles Netzteil verwenden, sondern beispielsweise LED-Streifen und das Gerät direkt mit Strom versorgen, sind Sie viel besser. Es wird auch schwierig sein, ein Kabel aufzunehmen. Ignorieren Sie es nicht.

Zu Beginn unserer Experimente führten schlechte Stromversorgung und ein schlechtes Kabel dazu, dass das Gerät plötzlich einfrierte. Wir haben nach Problemen in der Software und in der Peripherie gesucht, und es bestand darin, dass die Leistung plötzlich nachließ.

Wenn Sie Sensoren haben, werden Sie natürlich eine Platine wie diese mit einer Reihe kleiner Drähte verwenden, da es nicht sehr praktisch ist, eine ganze Reihe von Dingen auf Ihr Knie zu löten und sie in eine solche Mischung von Drähten zu stecken. Wenn Sie zu einem mehr oder weniger seriellen Prototyp kommen, können Sie jederzeit eine Leiterplatte bestellen, auf die Ihre Komponenten bereits gelötet sind. Aber während Sie experimentieren, ist es bequemer.



Das nächste, was Sie brauchen, ist USB-UART. Höchstwahrscheinlich wird auf der Platine, auf der Sie den Prototyp erstellen, eine Ausgabe für den Monitor angezeigt. Aber als Erwachsener ist es besser, direkt zu der Lösung zu gehen, mit der Sie in der Konsole arbeiten, denn wenn Sie die EVT-Samples sammeln, gibt Ihnen niemand Videoausgänge, HDMI oder etwas anderes. Sie müssen sofort lernen, ein normales Leben zu führen.



Es gibt noch eine nützliche Sache, ich werde es Ihnen zeigen. Dies ist seltsamerweise ein LCD-Bildschirm mit einer USB-Schnittstelle. Ich glaube in der Tat, dass USB in der Industrie nicht sehr gut oder gar schlecht ist. Aber beim Prototyping und bei der Entwicklung - großartig. Es gibt Unmengen von Peripheriegeräten auf USB, dieser Bildschirm ist ein Sonderfall. Dies ist der übliche zweizeilige Standardbildschirm mit einem USB-Konverter und zwei weiteren Tasten. Es kann an jedes Gerät angeschlossen werden und Debug-Informationen anzeigen. Das ist genug. In den meisten Fällen benötigen Sie nichts anderes.

Sie benötigen noch eine Sache - einen 3D-Drucker. Sie können natürlich mit einem Messer aus Styroporschaum ausschneiden, aus Ton, Plastilin und etwas anderem formen. Aber am Ende werden Sie immer zu einer Situation kommen, in der hier meine Elektronik ist, also verstehe ich, was ich davon will. Es ist jedoch nicht vorstellbar, wie dies unter realen Bedingungen funktionieren wird. Deshalb haben wir irgendwann mehrere Drucker gekauft und alle Ideen gedruckt, die wir hatten.

Wir haben uns einen neuen Halter ausgedacht - wir drucken. Wir haben uns ein neues Gebäude ausgedacht - wir drucken. Wir haben eine ganze Galerie mit zwei oder drei Dutzend verschiedenen Haltern, Knöpfen und Untersetzern. Es ist einfacher, die Realität zu verstehen.



Jetzt wird es einen kleinen Holivar geben, was zu entwickeln ist. Ich bin kein Unterstützer von irgendetwas, ich glaube, dass all dies ausgezeichnete Programmiersprachen sind. Aber so kam es, dass die gesamte Hardware in der Regel am besten in C geschrieben ist. Weil der Linux-Kernel, weil alle Module, weil alles einfach, klar und schwieriger ist, sich in den Fuß zu schießen. In C ++ ist es etwas einfacher, sich in den Fuß zu schießen, in Python müssen Sie sich nicht um Speicher oder ähnliches kümmern.

Daher lautet die Regel meiner Meinung nach hier: Wenn Sie sofort auf die endgültige Massenproduktionslösung abzielen, schreiben Sie in C. Sie überträgt sie problemlos, wo immer Sie sie benötigen, und alles wird funktionieren. Wenn Sie hier und jetzt alles brauchen, wenn Sie Computer Vision, Bildmanipulation, neuronale Netze brauchen und dies die ganze Geschichte ist, dann ist es einfacher, mit Python zu beginnen. , , , , - , . . C, - . : C production, Python .



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

, . , , , . , .

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

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

, hardware software , , , , - .

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



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

BOM, , , : , .

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

, , , NanoPi. . Funktioniert es . ? . , .

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

, , . .



— 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, . , . , . , , . Vielen Dank.

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


All Articles