La robótica es una de esas áreas increíblemente interesantes que fusiona principios de diseño de múltiples disciplinas. Ejemplos incluyen aprendizaje automático/IA, computación en el borde, visión por computadora, control de motores, fusión de sensores, comunicación inalámbrica y mucho más. En el corazón de todas estas aplicaciones se encuentra un MCU, SoC, FPGA u otra unidad de procesamiento, así como el firmware que lo hace funcionar.
Si estás comenzando a diseñar sistemas robóticos y quieres optar por la ruta del MCU, probablemente hayas comenzado a buscar el mejor MCU para aplicaciones robóticas. No hay un único MCU que sea objetivamente el mejor para cada sistema robótico, pero ciertas especificaciones son más importantes en diferentes tipos de robots. Veamos algunos de los MCU comunes para robots más pequeños y qué especificaciones debes observar al seleccionar un MCU.
Aunque no hay un único mejor MCU para robótica, ciertos MCU serán mejores para diferentes tipos de robots. Todo depende de hacer coincidir las especificaciones del MCU con los requisitos del sistema o subsistema. Antes de seleccionar un MCU para tu aplicación, deberías hacerte algunas de las siguientes preguntas:
¿Sistema principal o subsistema? Si estás diseñando un robot simple con sensores y periféricos limitados, un solo MCU hará el trabajo. También podrías usar una computadora de placa única (SBC) (Raspberry Pi y BeagleBone son opciones populares). Si estás diseñando la parte principal de un sistema robótico, puede ser más fácil usar una SBC, y los subsistemas pueden usar MCU más pequeños.
Cantidad de E/S requeridas e interfaces. Dependiendo de cómo quieras que tu MCU se comunique con periféricos o controles de motores en tu robot, necesitarás verificar su cantidad de E/S y las interfaces de baja/alta velocidad disponibles.
Velocidad del reloj. Esto se vuelve más importante a medida que tu robot necesita procesar más datos en el dispositivo. Actualmente, los dispositivos embebidos solo ejecutan cálculos simples en el dispositivo; el resto se ejecutan en un entorno en la nube. Modelos simples de ML podrían ejecutarse con un MCU rápido, pero obtienes más recursos de cómputo si usas algo más potente (ver abajo).
SDK y soporte para desarrolladores. Necesitarás programar tu MCU, así que cualquier componente que elijas debería tener un SDK disponible del fabricante. Nunca está de más comprar una placa de desarrollo y probar tu aplicación durante el desarrollo.
Capacidades inalámbricas. Tu robot puede necesitar interactuar con una red más grande a través de WiFi, Bluetooth, LoRaWAN u otro protocolo. Algunos MCU incluyen transceptores integrados necesarios para operar en estos y otros protocolos.
Hay una gama de MCU que satisfacen algunas o todas las necesidades anteriores, muchos de los cuales ofrecen diferentes niveles de soporte para desarrolladores (tanto del fabricante como de la comunidad de código abierto). Arduino es posiblemente la línea más popular de placas MCU para robots más simples. Una placa Arduino o una placa de desarrollo para tu MCU en particular es un buen punto de partida para desarrollar tu aplicación mientras diseñas tu hardware personalizado.
El MCU ESP32 de Espressif es una excelente opción para sistemas de robótica más simples (placa de desarrollo mostrada aquí).
No muchos componentes se publicitan específicamente para su uso en robótica, principalmente porque la industria aún está creciendo. Sin embargo, los MCU y otros procesadores comercializados para uso automotriz o automatización industrial son ideales para su uso en robótica. Los componentes para estas aplicaciones se construyen según estándares de alta fiabilidad e incluyen características de seguridad ideales para sistemas de robótica.
A menos que estés diseñando un robot relativamente simple con un número limitado de sensores o subsistemas, no utilizarás un solo MCU para controlar tu sistema. Otros MCU estarán involucrados en proporcionar control y potencia de procesamiento para varios subsistemas. Si estás diseñando un sistema completo, en lugar de solo un subsistema, necesitarás elegir un MCU maestro para recibir datos de otros subsistemas y proporcionar funciones de comando y control. Para aplicaciones comercialmente viables, es posible que no uses un MCU en absoluto; simplemente no ofrecen la potencia de cómputo requerida.
Los FPGA basados en SRAM o Flash son una alternativa a los MCU ya que aún pueden ser reprogramados según sea necesario a través de un puerto de comunicaciones externo. Los FPGA también tienen un alto conteo de E/S y relojes rápidos, lo que los convierte en una buena elección para el procesamiento de alto nivel de datos recibidos de otros subsistemas. Como ejemplo, Xilinx ha desarrollado una línea de FPGA específicamente para robótica, aunque estos tienen un precio elevado y se utilizan mejor para procesamiento y control de alto nivel.
El Xilinx XC7Z030-1FBG676C fue diseñado específicamente para sistemas de robótica. Este componente incluye múltiples interfaces de alta velocidad (CSI, PCIe, DDR) y funciona hasta 1 GHz.
Otra gran alternativa a un FPGA o MCU para potencia de procesamiento de alto nivel es usar un MPU, como la línea de procesadores Sitara de Texas Instruments. La línea Sitara incluye una gama de opciones que proporcionan la potencia de procesamiento de alto nivel requerida para sistemas de robótica complejos. Los MPU en esta línea funcionan hasta 1.5 GHz e incluyen múltiples interfaces de alta velocidad que esperarías ver en una computadora de placa única. También tienen un precio más bajo que los FPGA comparables.
Computadora en módulo para el AM3352BZCZ080 de Texas Instruments.
Otra opción para la capacidad de procesamiento en subsistemas robóticos es una GPU, especialmente para integrar visión por computadora y aplicaciones de aprendizaje automático/IA. En mi opinión, la plataforma Jetson de NIVIDIA ocupa el primer lugar en esta área y ya es popular en la comunidad de makers para aplicaciones de IA que involucran visión por computadora (identificación de objetos, segmentación de imágenes, seguimiento de objetos, etc.). También hay mucho soporte de desarrolladores de la comunidad de código abierto para ayudar a los diseñadores a comenzar con la plataforma Jetson.
Cualquier robot requerirá una gama de subsistemas para habilitar todo, desde la regulación de energía hasta las comunicaciones inalámbricas. Aquí hay algunos otros componentes que probablemente necesitarás en subsistemas para robots grandes y pequeños:
A medida que la industria robótica madura y ciertas aplicaciones comienzan a destacarse, es probable que veas una gama de SoCs basados en no-FPGA lanzados por los principales fabricantes de componentes. A medida que se lancen nuevos SoCs para robótica, Octopart estará aquí para ayudarte a encontrar y comprar los componentes que necesitas.
Si estás buscando el mejor MCU para robótica o cualquier otro componente que necesites para sistemas robóticos, intenta usar las características avanzadas de búsqueda y filtrado en Octopart para encontrar los componentes que necesitas. El motor de búsqueda de partes electrónicas de Octopart te ofrece una solución completa de abastecimiento de electrónicos y gestión de la cadena de suministro, y puedes filtrar fácilmente los resultados de búsqueda por ciclo de vida, especificaciones y precio. Echa un vistazo a nuestra página de circuitos integrados para obtener la potencia de procesamiento que tus robots necesitan.
Mantente al día con nuestros últimos artículos suscribiéndote a nuestro boletín.