Inicio Artículos Cortocircuitar el ciclo de diseño de prototipos

Cortocircuitar el ciclo de diseño de prototipos

ciclo de desarrollo
Figura 1: Ciclo de desarrollo

Autor: Brad Rex, Director de sistemas y soluciones, Renesas Electronics

Llevar un producto electrónico al mercado es significativamente diferente de lo que era hace solo 10 años. Además de los avances normales en los componentes eléctricos del hardware, y las mejoras cada vez mayores en la densidad y el rendimiento de los microcontroladores y microprocesadores, el cambio exponencial en la dificultad se ha centrado directamente en el software. Los dos factores más importantes que llevaron a este rápido cambio en el desarrollo de software han sido la apertura de la tienda de aplicaciones para teléfonos móviles y la ubicuidad de la conectividad inalámbrica. Estas dos tecnologías han hecho que nuestros dispositivos sean mejores y más completos simultáneamente, pero también han aumentado la complejidad de los productos y el trabajo de ingeniería detrás de ellos. Veamos cómo un ciclo de diseño de productos comprimido y estos cambios en el desarrollo de software, han aumentado la carga de trabajo de los ingenieros y qué herramientas existen para ayudarles en su cometido.

Muchas empresas y desarrolladores se están moviendo hacia una filosofía de fracaso rápido, donde la generación de ideas, las pruebas y la validación del mercado se comprimen en un ciclo cerrado para lograr el resultado deseado. En este caso, el resultado sería la aceptación en el mercado de un determinado producto o servicio final. Esto difiere significativamente de un flujo de desarrollo en serie más tradicional en el que se dedica mucho tiempo a refinar la idea, desarrollar hardware, trabajar en software y finalmente producir un producto que se introduce en el mercado.

Compare esto con una filosofía de falla rápida, donde los equipos de ingeniería de skunkworks construyen, prueban y desarrollan continuamente pruebas de conceptos de productos, creación rápida de prototipos con kits de desarrollo, soluciones de código abierto y protoboard probados que permiten a los ingenieros de software probar rápidamente el nuevo firmware del dispositivo que mostrará fácilmente cómo se verá y se sentirá el producto final. Si tienen éxito, pueden pasar a desarrollar rápidamente un producto y llevarlo al mercado antes que la competencia. Este proceso luego se repite en el siguiente producto.

Como se mencionó anteriormente, el problema para los desarrolladores de software radica en la conexión con el mundo exterior. Si miramos hacia atrás, incluso hace una década, muchos dispositivos no estaban conectados al mundo exterior. Había menos aplicaciones móviles para controlarlos e interactuar con ellos. Las actualizaciones, si las hubo, se realizaron principalmente a través de USB y las aplicaciones basadas en PC para realizar estas actualizaciones fueron incompletas en el mejor de los casos con ventanas de advertencia que le avisaban para asegurarse de que su dispositivo no se desconectase o perdiera energía o de lo contrario terminaría con un dispositivo bloqueado. Dado esto, el software para estos productos era más robusto, sabiendo que es posible que no haya forma de actualizarlo en el futuro.

Hoy, la mayoría de los dispositivos en el mercado están conectados a través de Bluetooth o Wi-Fi a un teléfono móvil o red local. LTE Cat-M1 y NB-IoT de bajo costo y bajo consumo se están volviendo más populares para conexiones permanentes. El conocimiento del software de estas nuevas pilas y protocolos de comunicación significa que el esfuerzo de ingeniería ahora pasa de un código completo a utilizar un RTOS como Amazon FreeRTOS o Azure RTOS de Microsoft. Los ingenieros tienen que aumentar su base de conocimientos y su mentalidad de diseño para desarrollarse en un entorno de subprocesos.

Estas conexiones constantes con el mundo exterior ahora unen un dispositivo integrado con aplicaciones móviles, servicios en la nube, cadenas de herramientas y algoritmos de inteligencia artificial y aprendizaje automático, y actualizaciones inalámbricas OTA (over the air). Esto tiene algunos inconvenientes. Es necesario descargar e instalar nuevas herramientas y, a veces, encontrar estas herramientas puede ser difícil, especialmente en áreas de nuevas tecnologías donde normalmente hay muchas ofertas diferentes ya que el mercado aún no está establecido. Además de las instalaciones de herramientas voluminosas, el mayor obstáculo es aprender diferentes tecnologías. Muchas de estas tecnologías se ven y se sienten completamente diferentes a trabajar con C estándar, y el cambio de contexto introduce ineficiencias. El tiempo que lleva mostrar una demostración funcional o una prueba de concepto comienza a aumentar a medida que agregamos piezas adicionales.

Hay que aclarar una cosa en este punto. Todos los ingenieros que trabajan en un producto deben estar familiarizados con todos los componentes del diseño. Los ingenieros de software deben entender cómo comunicarse con los diferentes buses dentro del dispositivo. Tienen que saber crear hilos e interactuar con ellos. Pero la barrera que nuestra industria necesita superar es la carga que supone para el personal de ingeniería convertirse en expertos desde el principio del ciclo de diseño para utilizar un proyecto de demostración o ver un dispositivo en funcionamiento. Los ingenieros deben estar seguros de que los dispositivos pueden lograr su visión de su producto, y ver para creer. Una vez que esté seguro de que todos los componentes pueden satisfacer sus necesidades, el personal de ingeniería puede tomarse el tiempo adecuado para estudiar y aprender sobre todos los componentes para maximizar y extraer todo el rendimiento de los dispositivos.

pantalla quick connect studio

Figura 2: Pantalla Quick-Connect Studio

En la verdadera moda de la ingeniería, donde existe un problema, las soluciones tienden a surgir para resolverlo. Las herramientas de desarrollo de software acelerado, como Quick-Connect Studio (QCStudio) de Renesas, apuntan a bajar la barra de desarrollo durante la etapa de creación de prototipos. La herramienta en línea permite a los usuarios arrastrar y soltar componentes en el nivel de la solución. Una vez que esté satisfecho con los componentes que se han seleccionado, QCStudio puede configurar automáticamente los dispositivos y generar el primer proyecto de trabajo utilizando esos componentes. Los ingenieros de software no tienen que aprender sobre la compleja muxación de pines, las conexiones de puertos o las configuraciones de registro solo para probar un prototipo. La herramienta es un IDE completo y el código se puede modificar directamente en el navegador. Dado que QCStudio está basado en la nube, la compilación se realiza de forma remota en un servidor en la nube rico en recursos y potente, lo que reduce la necesidad de tener una PC de escritorio o portátil potente para compilar el código. Una vez compilado, el ingeniero configura su hardware exactamente como se muestra en QCStudio, descarga la imagen binaria y puede ver los resultados de inmediato.

Los ingenieros de sistemas embebidos se enfrentan a muchos desafíos para llevar un producto al mercado. A medida que el software y los sistemas se vuelvan más complejos, la necesidad de ciclos de diseño eficientes y más ajustados seguirá creciendo. Al adoptar metodologías ágiles, reutilizar marcos y arquitecturas comunes y usar herramientas de automatización, los ingenieros de software y sistemas pueden seguir el ritmo de la naturaleza dinámica de la industria y ofrecer productos de mayor calidad en menos tiempo.