Cómo crear prototipos de dispositivos rápidamente y por qué es importante. Informe Yandex.Taxi

Cualquier proyecto de hardware técnicamente complejo es siempre una ecuación con muchas incógnitas: plataforma, componentes, tecnologías, producción, funcionalidad, factibilidad. Puede "sentir" lo que sucede cuando se completan las etapas costosas: I + D, selección de componentes, desarrollo de programas y búsqueda de una fábrica para la producción.



Ya conté en detalle en Habré cómo hicimos una cámara para determinar la fatiga del conductor. Hoy quiero centrarme en lo que aprendimos al crear un prototipo de este dispositivo, cómo probar rápidamente las hipótesis utilizando prototipos y qué plataformas y componentes se utilizan mejor para esto.

- Cuando fuimos al desarrollo de este producto, tuvimos que hacer muchos prototipos. Me gustaría compartir parcialmente nuestra experiencia, decir qué y cómo lo hicimos. Quizás alguien encuentre gran parte de la historia banal. La mayoría de ustedes, muy probablemente, pasaron por estas etapas y también tienen sus propios logros. No pretendo ser la última instancia de la verdad, pero será interesante.

Veamos cómo se fabrican los dispositivos antes de llegar a los prototipos, porque determina mucho. Este es un proyecto abstracto, no está vinculado a ninguna circunstancia específica, lo doy a modo de ejemplo.



Primero, prepara la entrada y aborda la I + D. Por lo general, esto lo hace una empresa de terceros, o tal vez usted mismo. Pero en cualquier caso, este es un proceso bastante largo, el período mínimo es de tres a ocho semanas. En esta etapa, hacen una placa, seleccionan componentes electrónicos y el dispositivo adquiere una realización material.

A continuación, se produce una muestra EVT, un dispositivo de prueba que ya está ubicado en el tablero que necesita sobre estas dimensiones, sobre dichos componentes. Su propósito es hacerte entender, parece lo que quieres recibir, o no, si algo necesita ser cambiado. Tienes la oportunidad de probarlo.

Luego se producen muestras de DVT. Esta es una prueba de verificación de diseño, cuando se eliminan todos los defectos encontrados en EVT o la mayoría de ellos. Después de eso, el dispositivo se coloca en el estuche final, en el diseño final, para que comprenda cómo se siente en sus manos, cómo continuará usándolo.

El siguiente paso es lanzar un lote de prueba de PVT. Pueden ser cien o mil piezas, dependiendo de cómo va todo contigo. Y luego comienza la producción en masa.

La conclusión principal de toda esta historia es que hasta que obtenga el primer prototipo, quiero decir EVT, pasará un mínimo de dos o tres meses. Esto es bastante tiempo y siempre surgen riesgos. Quizás no se implementarán todas las funciones. Quizás recoja los componentes sin éxito y tenga que volver a la etapa inicial de I + D. Tal vez no tuvo en cuenta algunas condiciones de funcionamiento de este dispositivo. Puede ser caliente, frío, vibración, suciedad, polvo, agua alrededor. Cualquier cosa



También podría sobreestimar sus capacidades. Querías hacer un dispositivo que se ajuste a un cierto rango de precios, pero falló, resultó ser más caro. Y puede suceder algo común: si bien lleva medio año desarrollando el dispositivo, los requisitos han cambiado y debe volver a hacerlo. Sucede



Basado en el esquema anterior, esto nos lleva al hecho de que ahora las personas usualmente usan algún tipo de enfoque ágil en el desarrollo de software. Todo va en círculos, en iteraciones cortas. En cada etapa hay un prototipo que funciona, y todo es normal, iterativo. En el desarrollo de hardware esto no es adecuado. Si cambia los requisitos, entonces esta no es la primera etapa, nuevamente tiene de siete a ocho semanas y produce un nuevo EVT. Es por eso que no puede hacer un producto mínimo disponible, y algún día más tarde refinarlo. No se puede hacer mal. Es posible que pueda mejorar algo mediante programación, pero si lo hizo mal, entonces su producto resultará malo.

Cada una de estas situaciones es una pérdida de tiempo, porque se pierde tiempo en la nueva investigación, mejoras y producción de una nueva muestra EVT que usted solicitó. Solo siéntate y espera el resultado.



Por lo tanto, agreguemos a este esquema, donde hablé sobre la producción del dispositivo, cómo se asigna al desarrollo de software.

¿Cómo suele ocurrir este desarrollo? Hay una versión de desarrollo. Como parte de I + D, está lanzando una versión alfa, debe tener beta lista para la primera muestra EVT, luego aparecerá la segunda beta y se preparará iterativamente para el lanzamiento. En un mundo ideal, todo sucede, como en este diagrama.

De hecho, la realidad es que la versión alfa no tiene nada que probar, por lo que corre un gran riesgo. Un beta-first puede no comenzar en absoluto con lo que le han dicho. En este punto, has perdido el tiempo. Las fechas y los planes están rotos, y nada bueno saldrá de eso.

Sin embargo, hay un pequeño truco, todos ustedes lo saben. Puedes hacer un prototipo en las primeras etapas. No tiene que ser totalmente coherente con el dispositivo final, no tiene que tener sus dimensiones. Generalmente puede ser diferente, hecho de otra cosa. Pero lo ayudará a comprender exactamente lo que está haciendo, cómo lo está haciendo y a qué se enfrenta.



Puede determinar rápidamente qué tipo de hardware necesita. Puedes probar tu idea en condiciones reales, porque mientras está en tu cabeza, te parece que funciona. En el mundo real, otras necesidades.

Lo mismo vale para el diseño. El dispositivo puede parecerle bueno, pero cuando lo coloca en condiciones reales, en el cristal de un automóvil o en el volante de una bicicleta, no funcionará como lo necesita. Por lo tanto, la validación del diseño también es un aspecto muy importante.

También puede escribir software rápidamente, porque prueba todas sus acciones en una muestra en vivo o en una serie de muestras. Es bueno si todavía están en funcionamiento en este momento.

Además, todos sabemos que los especialistas en marketing y productos gobiernan el mundo. Vienen corriendo y te dicen: "Y todavía lo queremos así y así". Estos requisitos son difíciles de aclarar cuando no tienes nada en la mano. Cuando tienes algo, puedes aplicarlo, puedes intentar y decirles: estos son tus escenarios que funcionarán, pero estos no.

Cuando crea un dispositivo, con mayor frecuencia lo hace para algunas tareas comerciales. Si necesita atraer a un inversor, acuda a él con trozos de papel, proyectos, dibujos e historias: es genial y necesario. Pero cuando vienes y dices: "Mira, se nos ocurrió esto, pero este es un prototipo que funciona", entonces el inversor está inmediatamente más interesado.

Tienes muchos riesgos en los que quizás no pienses. Si usted, como nosotros, fabrica un dispositivo con una cámara, es posible que no se le ocurra que la alimentación del automóvil no es tan buena como, por ejemplo, en la toma de corriente de su hogar. Puede haber un millón de tales riesgos, y aparecerán solo cuando tome el dispositivo y lo coloque en un entorno real.

También le permitirá recopilar datos reales. Una cosa es poner la cámara frente a usted y grabarse. Otra es cuando la cámara está frente a un motociclista, un conductor de automóvil, un mecánico. Todo esto nos permite presentar nuevos requisitos técnicos y limitaciones al hardware, minimiza los riesgos.



Ahora veamos cuáles pueden ser los riesgos. Me gustaría agruparlos en tres partes. O no estás seguro de nada. No comprende qué tipo de hardware necesita, no comprende cómo escribir software. En este caso, todo es triste y, en mi opinión, es mejor hacer algún tipo de prueba de concepto y luego deslizar hacia abajo a uno de los métodos a la izquierda. O si está seguro del hardware y no del software, entonces todos sus esfuerzos se gastan en software, y le da hierro a un contratista externo, incluso si lo hace normalmente. O bien, está completamente seguro del software, pero no está seguro del hardware, entonces necesita urgentemente un prototipo. Probarás tu software con este prototipo. Es posible que deba adaptarlo, pero también tendrá éxito.

Y luego llegamos a qué prototipos hacer. Aquí mi opinión, tal vez no coincida con tu opinión, siempre debes elegir una plataforma que pueda ser más de lo que deseas. Si necesita una extensión pequeña, tome más en reserva. Si necesita un rendimiento limitado, tome algo que le brinde más. Si necesita un poco de memoria, tome el doble. Si necesita algo que funcione exclusivamente en el alcance de su tarea, tome algo aún más avanzado, con algún tipo de herramientas máximas, esto siempre lo ayudará. Por qué Porque cuando haces este prototipo, los mismos expertos en productos, vendedores, vendrán y dirán: "Bueno, mira, hay otra forma de hacerlo y conectarlo". Y que pasa



Acerquémonos un poco más a la realidad. ¿De qué puedes hacer esto? La plataforma obvia es Arduino. Hagámoslo en Arduino, todos aman a Arduino. En realidad, sí y no. En Arduino, puedes hacer, en mi opinión, cosas muy simples. Es decir, Arduino es más adecuado para algunos nodos. ¿Necesitas hacer un manipulador? Ok, agarra el Arduino y hazlo. ¿Necesitas hacer un termómetro? Genial, hay un millón de ellos. Otra cosa es si necesita hacer algo complejo que requiera potencia de procesamiento, visión por computadora, aprendizaje automático.

Arduino es un nodo. Puedes hacer una rueda, un auto controlado por radio, y el Arduino servirá. Pero si necesita instalar una cámara en esta máquina suya, de alguna manera no es muy buena.



Esto plantea otra opción: Raspberry PI. Todos lo aman. Pequeño, bueno, popular, vendido por cientos de millones de piezas en el mundo. Y, de hecho, tal vez sí, tal vez no. Por un lado, es económico, productivo, tiene muchos módulos que se pueden conectar. Tiene un conector bastante estándar de cuarenta pines. Pero hay problemas.

En primer lugar, se calienta, especialmente el último modelo, el cuarto. Y si miras la imagen, el procesador está rodeado por un montón de periféricos, y es muy difícil encontrar un disipador de calor que lo tuerza normalmente, porque descansarás en el puerto HDMI, USB, la extensión de cuarenta pines, y tendrás un área de radiador, tal vez tal vez cuatro por cuatro centímetros como máximo.

Y sin embargo, no hay Android, solo hay Linux. Hay algunas variaciones en el tema, pero algunos proyectos, necesitan Android. Por ejemplo, está creando algún tipo de dispositivo que originalmente apuntó a la plataforma Android. Y aquí, de alguna manera, Raspberry PI no es una gran ayuda para usted.

Y el siguiente problema, en mi opinión, son los sistemas operativos de medios extraíbles. Utiliza una tarjeta SD, respectivamente, menos, todos los casos de uso automotriz y otros. Su automóvil está temblando, la tarjeta SD no es confiable, puede caerse y vibrar. Si tiene una helada, algo más, habrá condensación, en general, habrá problemas.

De hecho, hay muchas cosas de todo tipo, puedo mostrártelas, las probamos de manera diferente. Hay un plátano pai. Es casi lo mismo que la Raspberry Pi. Es normal, funciona, es compatible con él en los conectores. No es la peor plataforma de Allwinner. Hay una solución ligeramente mejor, por ejemplo, Khadas Vim en el procesador Amlogic. Después de mi historia, será posible venir a mí más tarde durante el descanso, estaré listo para contarlo y mostrarlo todo.

Todas estas cosas tienen sus inconvenientes. Yo, de hecho, no vine aquí para anunciar piezas de hierro, pero, sin embargo, me detendré. Hay un dispositivo que se adapta mucho mejor a nuestros propósitos.



Este es NanoPi, un fabricante chino, llamado FriendlyElec, FriendlyARM. Tienen varios nombres Y sucedió que está desprovisto de las desventajas de la Raspberry Pi, mientras que tiene muchas ventajas.

Tanto Linux como Android están allí, todos con códigos fuente, todo esto se puede recopilar sobre la marcha. Hay un módulo eMMC, es decir, separa el sistema operativo de un medio externo y funciona en buenas condiciones de temperatura. Intentamos congelar la Raspberry Pi y no funcionó muy bien, cuando lanzamos el tercer modelo, simplemente explotó, el procesador se vino abajo. No realizamos más experimentos. Pero tratamos de congelar esto y calentarlo en el horno. No hubo problemas

Al mismo tiempo, hay un bus PCI Express completo, con 2x, y en general, todo está bien. También se puede enfriar, su procesador está ubicado en el reverso, te mostraré ahora, también lo tengo. Así es como se ve, todo lo mismo que el tuyo. Procesador inferior. Se le pone un radiador grueso y este radiador disipa perfectamente todo este calor.



Un poquito más. Que hay De hecho, me gustó mucho esta plataforma. Durante los últimos seis meses he estado creando prototipos de todo lo que está con ella y, por lo tanto, lo estoy compartiendo contigo. Hay un procesador de seis núcleos. Él es muy poderoso, se está calentando. En el pico, puede consumir 15 vatios, a veces incluso más. Pero hay una tarjeta de video normal, compresión de video de hardware y, lo más importante, todo se extiende bien y cuesta aproximadamente como una Raspberry Pi. Cuesta $ 50, más un poco para eMMC y un radiador.



Él tiene un hermano menor. Exactamente del mismo tamaño, pequeño. La buena noticia: si toma este módulo eMMC de aquí y lo conecta a este, entonces no necesita reconstruir el firmware, cambie el software. Son totalmente compatibles con el hardware. Incluso este pequeño conector de cuarenta clavijas en la parte superior es compatible con clavijas con un dispositivo grande. Es decir, si está haciendo un dispositivo y de repente necesita cambiar a un factor de forma pequeño, entonces eléctricamente será aproximadamente compatible con usted. Sí, un poco menos de memoria. Sí, hay menos USB, no hay cuatro, sino dos, pero todo está bien.



¿Qué más necesitas? En mi opinión, la creación de prototipos se realiza mejor en una distribución de Linux grande y gruesa. Está claro que en el dispositivo final lo más probable es que tenga un sistema operativo propietario, o un Linux Embebido muy pequeño, algún tipo de Linaro, o algo menos. Y sí, allí funcionará bien.

Pero mientras escribe un prototipo, necesita un kit de herramientas flexible, por lo que Linux grande es su elección. Algo en Debian, o algo más, con paquetes donde puede poner todo lo que necesita en dos comandos y ejecutar grandes, grandes cosas.

En la etapa de creación de prototipos, el tamaño de la distribución realmente no importa. Sí, tendrás cuatro gigabytes. Pues bien. Aquí está el módulo eMMC de 16 gigabytes. Subí este Linux aquí, todo está bien conmigo. También necesita una buena fuente de alimentación y, lo más importante, un buen cable.

Ahora estamos hablando de un dispositivo como este, o un tipo de Raspberry Pi, que funciona con Type-C. Dio la casualidad de que hay pocos buenos cables tipo C, y aún menos buenas fuentes de alimentación. Y si ni siquiera toma una fuente de alimentación en serie, sino algo, por ejemplo, para tiras de LED y alimenta el dispositivo directamente, será mucho mejor. También será difícil tomar un cable, no lo ignore.

Al comienzo de nuestros experimentos, la poca energía y un cable defectuoso hicieron que el dispositivo se congelara repentinamente. Buscamos problemas en el software y en la periferia, y consistió en el hecho de que el poder decayó repentinamente.

Obviamente, si tiene sensores, entonces usará una placa como esta con un montón de cables pequeños, porque soldar un montón de cosas en la rodilla y enchufarlo en una mezcla de cables no es muy conveniente. Cuando se trata de un prototipo en serie más o menos, siempre puede solicitar una PCB, y sus componentes ya estarán soldados a ella. Pero mientras experimentas, es más conveniente.



Lo siguiente que necesita es USB-UART. Lo más probable es que, en la placa en la que realiza el prototipo, haya una salida para el monitor. Pero si como adulto, es mejor ir directamente a la solución en la que trabajas con esto en la consola, porque cuando recolectas muestras EVT, nadie te dará salidas de video, HDMI o cualquier otra cosa. Debe aprender de inmediato a vivir una vida normal.



Hay una cosa más útil, se la mostraré. Esta es una pantalla LCD, por extraño que parezca, con una interfaz USB. De hecho, creo que el USB en la industria no es muy bueno, incluso malo. Pero en la creación de prototipos y el desarrollo, genial. Hay toneladas de periféricos en USB, esta pantalla es un caso especial. Esta es la habitual pantalla familiar estándar de dos líneas con un convertidor USB y dos botones más. Se puede conectar a cualquier dispositivo, mostrar información de depuración en él. Eso es suficiente En la mayoría de los casos, no necesita nada más.

Necesitará una cosa más: una impresora 3D. Por supuesto, puede cortar con un cuchillo de espuma de poliestireno, esculpirlo con arcilla, plastilina y otra cosa. Pero al final, siempre llegarás a una situación en la que aquí está mi electrónica, así que entiendo lo que quiero de ella. Pero es imposible imaginar cómo funcionará esto en condiciones reales. Por lo tanto, en algún momento, compramos varias impresoras e imprimimos todas las ideas que teníamos.

Se nos ocurrió un nuevo titular, imprimimos. Se nos ocurrió un nuevo edificio, imprimimos. Tenemos una galería completa de dos o tres docenas de diferentes titulares, botones, posavasos. Es más fácil entender la realidad.



Ahora habrá un pequeño holivar sobre qué desarrollar. No soy partidario de nada, creo que todos estos son excelentes lenguajes de programación. Pero sucedió que todo el hardware, como regla, está mejor escrito en C. Porque el núcleo de Linux, porque todos los módulos, porque todo es simple, claro y más difícil de disparar en el pie. En C ++, es un poco más fácil dispararse en el pie, en Python no tiene que preocuparse por la memoria ni nada.

Por lo tanto, en mi opinión, la regla aquí es esta: si está dirigido de inmediato a la solución final de producción en masa, escriba en C. Se transfiere fácilmente donde lo necesite y todo funcionará. Si necesita todo aquí y ahora, si necesita visión por computadora, manipulación de imágenes, redes neuronales y esta es toda la historia, entonces es más fácil comenzar con Python. , , , , - , . . C, - . : C production, Python .



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

, . , , , . , .

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

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

, hardware software , , , , - .

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



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

BOM, , , : , .

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

, , , NanoPi. . Funciona . ? . , .

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

, , . .



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



, , , , NanoPi. , , .



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

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

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

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

. , ? , - . Pero no , - , . , , — , .

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

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



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



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



. . , . , . , - .

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

, mass production, . , . , . , , . Gracias

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


All Articles