Resumen

Este codelab fue creado para explorar el mundo de las plataformas hardware existentes de manera que se puedan comparar algunas plataformas como posibles alternativas de implementación de sistemas del tipo "computación en el borde" y/o dispositivos de adquisición en el contexto IoT. Con este recurso se espera que usted al finalizar esté en capacidad de:

  • Reconocer diferentes plataformas comerciales que permiten la implementación de Sistemas Embebidos en el contexto del Internet de las Cosas (IoT) y la Inteligencia Artificial.
  • Comparar tanto de forma general como de forma más técnica las diferentes alternativas de plataformas hardware, en función de una aplicación específica.

Fecha de Creación:

2024/03/01

Última Actualización:

2024/03/01

Requisitos Previos:

Adaptado de:

Referencias:

Escrito por:

Fredy Segura-Quijano

Introducción.

Las plataformas hardware en Sistemas Embebidos, IoT e Inteligencia Artificial (IA) constituyen la columna vertebral tecnológica que posibilita el desarrollo y la implementación de soluciones innovadoras en una amplia gama de aplicaciones. Estas plataformas, compuestas por circuitos integrados, módulos sensoriales, actuadores y protocolos de comunicaciones, permiten la interacción con el mundo físico, recopilando datos, procesándolos y realizando acciones específicas basadas en análisis inteligentes. Su relevancia se extiende por sectores como la automoción, la medicina, la industria manufacturera y la domótica, entre otros, impulsando avances significativos hacia una sociedad más conectada y automatizada.

Importancia de las Plataformas Hardware en Sistemas Embebidos, IoT e IA. Las plataformas hardware no solo sirven como el núcleo funcional para Sistemas Embebidos e IoT, sino que también son fundamentales para habilitar capacidades de IA en el borde de la red. Al incorporar procesamiento de datos y capacidad de toma de decisiones en dispositivos de borde, se reduce la latencia, se optimiza el uso del ancho de banda y se mejora la privacidad de los datos. Además, estas plataformas facilitan la implementación de algoritmos de aprendizaje automático y procesamiento de señales, permitiendo que los dispositivos sean más inteligentes, adaptables y capaces de operar de manera autónoma en entornos complejos.

Visión general de la evolución de las plataformas hardware. La evolución de las plataformas hardware ha sido marcada por un gran avance en miniaturización, eficiencia energética y capacidades de procesamiento. Desde los primeros microcontroladores hasta los actuales SoCs (System on Chip) altamente integrados, estas plataformas han evolucionado para soportar complejas aplicaciones de IoT e IA con recursos limitados. La introducción de hardware especializado, como GPUs, TPUs y FPGAs, ha abierto nuevas posibilidades para el procesamiento en el borde, permitiendo implementar modelos de IA más sofisticados directamente en dispositivos embebidos.

La intersección de hardware, IoT e IA. La intersección entre hardware, IoT e inteligencia artificial está dando forma al futuro de la tecnología embebida, permitiendo la creación de sistemas más inteligentes y conectados. Esta sinergia potencia la capacidad de los dispositivos para aprender de su entorno, tomar decisiones informadas y actuar de manera autónoma, abriendo nuevas fronteras en la automatización y la inteligencia ambiental. A medida que avanzamos, el desafío radica en desarrollar plataformas hardware que sean aún más potentes, eficientes y accesibles, para continuar impulsando innovaciones que transformarán nuestra manera de vivir y trabajar.

Categorización de las Plataformas Hardware.

Las plataformas hardware en sistemas embebidos, IoT e inteligencia artificial pueden clasificarse según su arquitectura y funcionalidad específica. Esta categorización ayuda a los diseñadores e ingenieros a elegir la plataforma más adecuada para sus proyectos, considerando factores como el procesamiento necesario, la eficiencia energética, la conectividad y el costo.

Microcontroladores (MCUs) vs. Microprocesadores (MPUs). Los microcontroladores son circuitos integrados que contienen un procesador, pequeñas cantidades de memoria y periféricos de entrada/salida en un solo chip. Son ideales para tareas específicas de control en aplicaciones donde la eficiencia energética y el costo son críticos. Por otro lado, los microprocesadores ofrecen capacidades de computación más potentes y son utilizados en aplicaciones que requieren mayor procesamiento y complejidad, pero a menudo requieren componentes externos adicionales para operar.

Sistemas en Chip (SoCs). Los SoCs integran todas las funcionalidades necesarias para un sistema electrónico en un solo chip, incluyendo la CPU, la memoria, la lógica de entrada/salida y, a menudo, otras funciones como gráficos o conectividad de red. Estos son especialmente populares en el diseño de dispositivos IoT e inteligencia artificial, donde la miniaturización y la integración de múltiples funciones en una sola plataforma son clave para lograr dispositivos compactos y eficientes.

Plataformas de Desarrollo y Evaluación. Estas plataformas están diseñadas para facilitar el desarrollo y el prototipado rápido de sistemas. Algunos ejemplos específicos incluyen tarjetas de desarrollo como Arduino, Raspberry Pi, STM32, entre otras, que proporcionan una manera accesible de experimentar con diferentes tecnologías y probar conceptos antes de pasar a la producción. Estas plataformas vienen con un entorno de desarrollo integrado (IDE) y bibliotecas de soporte, lo que las hace ideales para educación y desarrollo de prototipos.

Cada tipo de plataforma tiene sus ventajas y desventajas dependiendo de las necesidades específicas del proyecto. La elección entre MCUs, MPUs, SoCs y plataformas de desarrollo dependerá de la complejidad del proyecto, los requisitos de rendimiento y potencia, las necesidades de conectividad y los recursos disponibles para el desarrollo. La comprensión de estas categorías y sus aplicaciones específicas es esencial para el diseño exitoso de soluciones en Sistemas Embebidos, IoT e inteligencia artificial.

Plataformas Populares para Sistemas Embebidos.

En el ámbito de los sistemas embebidos, IoT e inteligencia artificial, varias plataformas hardware se destacan por su popularidad, cada una ofreciendo características únicas que las hacen adecuadas para distintos tipos de proyectos. Cabe destacar que para cada familia existen diferentes alternativas con hardware diferente.

Plataformas Especializadas en IoT.

Las plataformas especializadas en IoT deben cumplir con ciertas características esenciales para adaptarse a las necesidades únicas de estos sistemas. Estas características incluyen conectividad inalámbrica, bajo consumo de energía, capacidad de procesamiento adecuada, soporte para múltiples protocolos de comunicación y seguridad robusta. Estos requisitos garantizan que los dispositivos IoT puedan recopilar, procesar y transmitir datos de manera eficiente, operando muchas veces en entornos desafiantes y durante largos períodos sin intervención manual.

Entre las plataformas optimizadas para IoT, encontramos varias opciones que han sido diseñadas específicamente con estas aplicaciones en mente. ESP32 es un ejemplo destacado; este microcontrolador no solo ofrece Wi-Fi y Bluetooth integrados para una conectividad inalámbrica sencilla, sino que también proporciona un balance óptimo entre consumo de energía y rendimiento de procesamiento, lo que lo hace ideal para una amplia gama de aplicaciones IoT. Su bajo costo y la disponibilidad de herramientas de desarrollo hacen del ESP32 una elección popular para proyectos IoT de todos los niveles.

Otro ejemplo significativo es la serie nRF de Nordic Semiconductor, que ofrece soluciones de conectividad como nRF52 y nRF53, con soporte para Bluetooth 5, Bluetooth Mesh, LTE-M, y NB-IoT. Estos chips están diseñados para aplicaciones donde la eficiencia energética y la capacidad de comunicación inalámbrica son críticas, como en dispositivos wearables, soluciones de hogar inteligente y monitoreo de salud.

Además, plataformas como Particle ofrecen un ecosistema completo de hardware y software, incluyendo módulos IoT con conectividad celular, Wi-Fi y mesh integrada, junto con una plataforma de desarrollo en la nube. Esto simplifica el desarrollo de aplicaciones IoT permitiendo a los desarrolladores concentrarse en la creación de soluciones sin preocuparse por los detalles de la infraestructura subyacente. Estas plataformas no solo proporcionan el hardware necesario sino también un conjunto de herramientas de software y servicios en la nube para gestionar dispositivos, recopilar datos y realizar análisis, facilitando el despliegue de soluciones IoT a gran escala. Cada una de estas plataformas trae consigo características únicas que se adaptan a diferentes aspectos y requisitos de proyectos IoT, desde aplicaciones de bajo consumo hasta soluciones que requieren capacidades avanzadas de procesamiento y conectividad.

Hardware para Aplicaciones de Inteligencia Artificial.

La integración de inteligencia artificial (IA) en Sistemas Embebidos y el IoT exige requisitos de hardware específicos para facilitar el procesamiento complejo de datos y el aprendizaje automático en dispositivos de borde. Para aplicaciones de IA, es fundamental contar con plataformas hardware capaces de realizar cálculos intensivos, manejar grandes volúmenes de datos y ejecutar modelos de aprendizaje automático de manera eficiente. Esto incluye soporte para operaciones de punto flotante, capacidad para procesamiento paralelo y aceleración de tareas específicas de IA, como la inferencia de modelos de redes neuronales.

Entre las plataformas destacadas para aplicaciones de IA en Sistemas Embebidos se encuentran Google Coral y NVIDIA Jetson. Google Coral ofrece una solución integral con su módulo Edge TPU, diseñado para acelerar el procesamiento de modelos de IA en el borde de la red, optimizando la velocidad y la eficiencia energética. Por otro lado, la serie NVIDIA Jetson proporciona módulos de computación potentes y versátiles con capacidades gráficas avanzadas y soporte para aprendizaje profundo, ideal para proyectos más demandantes que requieren un alto rendimiento en visión por computadora, robótica y análisis de video en tiempo real.

Mientras Google Coral es muy adecuado para aplicaciones donde la eficiencia energética y la rapidez en la inferencia de modelos compactos son prioritarias, NVIDIA Jetson es preferible en escenarios que requieren un procesamiento más intensivo y capacidades avanzadas de aprendizaje automático. La evaluación detallada de las especificaciones técnicas, el ecosistema de desarrollo y el soporte comunitario son aspectos clave a considerar al seleccionar la plataforma más adecuada para un proyecto de IA.

Además de Google Coral y NVIDIA Jetson, existen otras alternativas en el mercado como Intel Movidius y Xilinx FPGAs, que ofrecen soluciones especializadas para aceleración de IA en el borde. Intel Movidius se centra en proporcionar eficiencia energética para aplicaciones de visión artificial, mientras que las FPGAs de Xilinx ofrecen flexibilidad en la configuración del hardware para adaptarse a necesidades específicas de procesamiento. Estas plataformas demuestran la diversidad y riqueza del ecosistema de hardware disponible para proyectos de IA, permitiendo a los desarrolladores encontrar soluciones que mejor se ajusten a los requisitos técnicos y operativos de sus aplicaciones. La selección cuidadosa de la plataforma hardware es un paso crucial para maximizar el potencial de los Sistemas Embebidos e IoT impulsados por IA, marcando el camino hacia innovaciones disruptivas en múltiples sectores.

Consideraciones de Diseño y Selección.

Al seleccionar una plataforma hardware para Sistemas Embebidos, IoT o aplicaciones de inteligencia artificial, varios factores cruciales deben ser considerados para asegurar el éxito del proyecto. Primero, es esencial evaluar el rendimiento y las capacidades de procesamiento requeridas, tomando en cuenta la naturaleza y complejidad de las tareas que el sistema necesita ejecutar. Por ejemplo, proyectos que involucran procesamiento de imágenes en tiempo real o algoritmos de aprendizaje profundo necesitarán hardware más potente en comparación con aplicaciones que realizan tareas de monitoreo básico.

El costo es otro factor determinante en la elección de la plataforma hardware. Mientras que algunas soluciones, como Raspberry Pi o ESP32, ofrecen un balance óptimo entre costo y rendimiento para una amplia gama de aplicaciones IoT, plataformas más especializadas como NVIDIA Jetson o Google Coral, aunque ofrecen capacidades superiores para aplicaciones de IA, vienen con un precio más elevado. La selección debe basarse en un análisis costo-beneficio que considere tanto el presupuesto inicial como los costos operativos a largo plazo, incluyendo el consumo de energía.

El ecosistema y la comunidad de desarrolladores alrededor de una plataforma son factores igualmente importantes a considerar. Una plataforma con un ecosistema sólido y activo puede facilitar significativamente el desarrollo del proyecto al proporcionar una amplia gama de librerías, herramientas, tutoriales y soporte de la comunidad. Esto puede acelerar el proceso de desarrollo, solución de problemas y prototipado. Plataformas como Arduino y Raspberry Pi destacan en este aspecto, ofreciendo una vasta cantidad de recursos y una comunidad grande y activa.

Por último, la facilidad de uso y la compatibilidad con sensores, actuadores y otros componentes son cruciales para la integración del sistema. La disponibilidad de interfaces de entrada/salida, la compatibilidad con diversos protocolos de comunicación y la facilidad con la que se pueden conectar y configurar los sensores y actuadores pueden influir considerablemente en la elección de la plataforma. En este sentido, es importante evaluar las necesidades específicas del proyecto y cómo la plataforma seleccionada se adapta a estas, asegurando así una implementación eficaz y eficiente del sistema embebido, IoT o de inteligencia artificial.

Casos de Estudio y Aplicaciones Reales.

Diversos casos de estudio y aplicaciones reales han demostrado cómo la elección correcta de plataformas hardware puede conducir a implementaciones exitosas. Un ejemplo destacado es el uso de Raspberry Pi en proyectos de domótica, donde su capacidad de procesamiento y facilidad de conexión con una variedad de sensores y actuadores permiten la creación de sistemas automatizados para el hogar inteligente. Por otro lado, la plataforma ESP32 se ha utilizado ampliamente en proyectos de IoT para el monitoreo ambiental y agrícola, gracias a su bajo costo, eficiencia energética y capacidades de conectividad inalámbrica.

En el campo de la IA, la plataforma NVIDIA Jetson ha sido fundamental en el desarrollo de sistemas de visión artificial para vehículos autónomos, aprovechando su alta capacidad de procesamiento de gráficos y algoritmos de aprendizaje profundo en tiempo real. Google Coral, con su TPU (Unidad de Procesamiento Tensorial) especializada, ha permitido la implementación eficiente de modelos de IA en el borde, optimizando aplicaciones de reconocimiento de imágenes y procesamiento de lenguaje natural en dispositivos IoT con limitaciones de ancho de banda y latencia.

Los desafíos enfrentados en estos proyectos varían desde la optimización del consumo energético hasta la necesidad de procesamiento en tiempo real y la gestión de la seguridad de los datos. En el caso de los sistemas de monitoreo ambiental, una solución innovadora ha sido el desarrollo de algoritmos de sueño profundo para el ESP32, que minimizan el consumo de energía al mantener el dispositivo en un estado de baja energía hasta que es necesario realizar mediciones o enviar datos. Para aplicaciones de IA en el borde, como en vehículos autónomos, se han implementado técnicas de compresión de modelos y cuantificación para reducir la demanda de recursos computacionales sin comprometer significativamente la precisión del modelo.

Estos casos de estudio resaltan la importancia de una selección adecuada de la plataforma hardware en función de los requisitos específicos del proyecto. La innovación continua en el diseño de Sistemas Embebidos, el desarrollo de nuevas soluciones para desafíos técnicos y la colaboración entre la comunidad de desarrolladores son fundamentales para superar las limitaciones actuales y aprovechar al máximo el potencial de las plataformas hardware en sistemas embebidos, IoT e IA. La adaptación y personalización de las plataformas según las necesidades del proyecto permiten una implementación más eficiente y efectiva, abriendo el camino hacia el desarrollo de aplicaciones inteligentes más avanzadas y diversificadas.

Tendencias Futuras y Desarrollos Emergentes.

Las tendencias futuras y los desarrollos emergentes en el campo de las plataformas hardware están profundamente influenciados por los avances en la tecnología de semiconductores. La reducción continua del tamaño de los transistores, como se prevé en la Ley de Moore, ha permitido la creación de microcontroladores y microprocesadores más potentes, eficientes y compactos. Esto, a su vez, ha abierto nuevas posibilidades para integrar capacidades computacionales avanzadas en dispositivos cada vez más pequeños, una tendencia crucial para el desarrollo de sensores inteligentes y dispositivos IoT que requieren procesamiento de datos en el borde.

El futuro de las plataformas hardware en la era del IoT y la IA promete una integración aún más estrecha entre hardware y software, con un enfoque particular en la optimización del rendimiento para algoritmos específicos de IA. Por ejemplo, las Unidades de Procesamiento Tensorial (TPU) y las Field-Programmable Gate Arrays (FPGA) están ganando popularidad para tareas de IA específicas debido a su capacidad para realizar cálculos paralelos y su flexibilidad para ser reprogramados según sea necesario. Esto señala un cambio desde las soluciones de hardware general hacia plataformas especializadas que pueden ser personalizadas para aplicaciones específicas de IA, mejorando así la eficiencia y la velocidad de procesamiento.

Además, las nacientes tecnologías de comunicación de nueva generación, como 5G y más allá, ampliará las capacidades de los sistemas IoT al proporcionar una conectividad más rápida, más confiable y de baja latencia. Esto es especialmente relevante para aplicaciones críticas en tiempo real, como los vehículos autónomos y los sistemas de gestión de tráfico inteligente, donde la capacidad de procesar y transmitir grandes volúmenes de datos rápidamente es esencial. La adopción de estas tecnologías de comunicación también facilitará el desarrollo de la Internet de las Cosas a gran escala, permitiendo una interconexión aún más amplia entre dispositivos y sistemas.

Finalmente, se espera que la sostenibilidad y la eficiencia energética jueguen un papel más importante en el diseño de futuras plataformas hardware. Con el aumento del número de dispositivos IoT y la demanda de procesamiento de datos de IA, encontrar formas de reducir el consumo de energía sin sacrificar el rendimiento se ha vuelto crítico. Los avances en tecnologías de baterías, la optimización de algoritmos y el diseño de circuitos de bajo consumo son áreas clave de investigación y desarrollo que contribuirán a hacer realidad el potencial completo de los sistemas embebidos, IoT e IA, marcando el camino hacia una era de innovaciones tecnológicas más ecológicas y eficientes.

PREGUNTA DE COMPRENSIÓN. ¿Qué diferencia principal distingue a los microcontroladores (MCUs) de los microprocesadores (MPUs)?

Los MCUs son menos eficientes en el consumo de energía que los MPUs. Los MCUs contienen un procesador, memoria y periféricos de I/O en un solo chip, haciéndolos ideales para tareas específicas de control donde la eficiencia energética es crítica. Los MPUs son utilizados exclusivamente en aplicaciones de baja potencia. Los MCUs no son capaces de ejecutar sistemas operativos, a diferencia de los MPUs.

PREGUNTA DE COMPRENSIÓN. ¿Cuál es una característica esencial que deben tener las plataformas especializadas en IoT para adaptarse a las necesidades únicas de estos sistemas?

Alta capacidad de almacenamiento interno. Capacidad de ejecutar aplicaciones de alta complejidad gráfica. Conectividad inalámbrica, bajo consumo de energía, y capacidad de procesamiento adecuada. Exclusivamente compatibilidad con sistemas operativos de escritorio.

Una comparativa general de placas como ESP32, STM32, Raspberry Pi, NVIDIA Jetson, y Coral de Google, se enfoca en factores clave como capacidad de procesamiento, memoria, conectividad, facilidad de uso, y aplicabilidad en proyectos específicos de IoT y sistemas embebidos. Aquí se presenta una comparación general:

1. ESP32

El ESP32 es una serie de microcontroladores de bajo costo y bajo consumo energético con Wi-Fi y Bluetooth integrados, fabricados por Espressif Systems. Destaca por su capacidad para soportar una amplia gama de aplicaciones de Internet de las cosas (IoT), desde dispositivos domésticos inteligentes hasta soluciones industriales complejas. Con su procesador de doble núcleo que puede funcionar hasta 240 MHz y una gran variedad de periféricos, el ESP32 es una opción robusta y versátil para proyectos que requieren conectividad inalámbrica y tareas computacionales moderadas. Su comunidad activa y el amplio soporte de desarrollo, incluido el soporte para el entorno de desarrollo Arduino, facilitan enormemente la prototipación y el desarrollo de proyectos.

2. STM32

La familia STM32 de STMicroelectronics abarca una amplia gama de microcontroladores basados en la arquitectura ARM Cortex-M, que se adapta desde aplicaciones de baja potencia hasta soluciones de alto rendimiento. Estos microcontroladores se caracterizan por su eficiencia energética, capacidades de procesamiento avanzadas y una amplia selección de periféricos integrados, lo que los hace adecuados para una vasta gama de aplicaciones, incluida la automatización industrial, la electrónica de consumo, y los sistemas de control médico. La serie STM32 se beneficia de herramientas de desarrollo completas y un ecosistema de software rico, incluyendo el entorno STM32CubeIDE y la plataforma de desarrollo STM32CubeMX para configuración y generación de código.

3. Raspberry Pi (Raspberry Pi 4 Model B)

La Raspberry Pi es una serie de ordenadores de placa reducida desarrollados en el Reino Unido por la Raspberry Pi Foundation con el objetivo de promover la enseñanza de informática básica en países en desarrollo y entornos educativos. Con su procesador ARM, opciones de memoria RAM que varían según el modelo, y capacidad para ejecutar varios sistemas operativos como Raspberry Pi OS, Ubuntu, y otros, la Raspberry Pi se ha convertido en una herramienta valiosa para el aprendizaje de programación, proyectos de electrónica, y prototipos de IoT. Además, su conjunto de puertos de entrada/salida y la capacidad de conectar módulos y sensores adicionales amplían aún más su aplicabilidad a una gran variedad de proyectos prácticos y educativos.

4. NVIDIA Jetson (Jetson Nano)

La serie NVIDIA Jetson es una plataforma de computación de IA y ML en el borde que proporciona capacidad de procesamiento de GPU para la inferencia de IA y el aprendizaje profundo. Los dispositivos Jetson, que van desde el Jetson Nano hasta el Jetson AGX Xavier, están diseñados para facilitar el desarrollo y la implementación de aplicaciones de IA avanzadas en robótica, drones, dispositivos de visión por computadora y más. Con el soporte del rico ecosistema de NVIDIA, incluido el JetPack SDK, los desarrolladores tienen acceso a herramientas de software líderes en la industria para acelerar el desarrollo de aplicaciones de IA.

5. Coral de Google (Coral Dev Board)

El Coral de Google es una plataforma de hardware y software que facilita el desarrollo y la implementación de modelos de machine learning (ML) localmente en dispositivos de borde. Utilizando la unidad de procesamiento de tensores (TPU) Edge TPU para acelerar las inferencias de ML, Coral está diseñado para aplicaciones que requieren procesamiento de IA en tiempo real sin la latencia de enviar datos a la nube. La gama de productos incluye la Coral Dev Board, módulos y cámaras USB aceleradoras, todo ello soportado por TensorFlow Lite, lo que permite a los desarrolladores integrar capacidades de IA en dispositivos IoT con eficiencia energética y capacidad de procesamiento en el borde.

Puede ser difícil al inicio tomar una decisión sobre qué plataforma utilizar, sobre todo porque las plataformas más conocidas tienen buen soporte técnico y una comunidad que permite dar alternativas a la solución de problemas.

Sin embargo, una comparación más técnica es posible teniendo en cuenta respuestas a ciertas pruebas que se pueden realizar con el hardware. En el siguiente video: ESP32 vs STM32: Which one is better (Bluepill)?; es interesante identificar algunas pruebas a las cuales fueron sometidas las tarjetas de desarrollo STM32 (STM32F103) vs ESP32 las cuales son plataformas comunes. A continuación se presentan algunos resultados presentados en el video.

En general se puede encontrar que ambas se pueden usar con el IDE Arduino y el del Visual Studio Code con el uso de ciertos plugins, aunque la STM32 también tiene un IDE propio. Ambas tienen repositorios (librerías) para el IDE Arduino. El costo de las tarjetas es bajo, usando ambas procesadores de 32 bits. De entrada se puede decir que si el proyecto requiere comunicación por Wi-Fi o Bluetooth, es mejor alternativa la ESP32.

En el caso de la programación de las tarjetas o carga del programa, la STM32 tiene varias alternativas. Se puede usar un adaptador FTDI, pero toca cablear varios pines teniendo la ventaja de poder hacer depuración en tiempo real. También se puede usar el ST-Link, lo cual es la opción más cómoda porque no se requiere de cables adicionales y se logra una velocidad de programación mayor. Finalmente se puede usar un bootloader o gestor de arranque en el microcontrolador el cual se puede descargar desde la página de STM (FLASH bootloader). De esta manera cuando la tarjeta se conecta al computador de trabajo, la misma aparece como un dispositivo USB al cual se le puede copiar el programa.

Ya en temas más técnicos, realizando ciertas pruebas se puede ver como por ejemplo en el caso del ADC, la STM32 necesita 1us para una lectura. La ESP32 es seis veces más rápida. Sin embargo la ESP32 tiene una peor estabilidad en la conversión, dado que si se conecta el pin analogico 0 a referencia de 2.5 V, en ambas tarjetas se ven valores atípicos, pero menos incorrectos en el STM32. Así, el STM32 es aproximadamente diez veces más estable. De la misma manera, cuando se conecta el pin analógico a tierra, se logra un valor de conversión de cero. Cuando se conecta a 1 V en el STM32 y un multímetro los valores están cercanos. En el caso del ESP32 con 1 V el multímetro muestra 0.91V. Eso representa un gran error de desplazamiento del valor de conversión en el ADC.

Otra parámetro técnico a tener en cuenta es que un ADC tiene problemas en Arduino si se cambia la alimentación (VCC). Para mejorar esto el STM32 tiene una referencia interna, por lo que un cambio en VCC de 5V no perjudica el ADC. Esto pasa de igual manera en el ESP32.

De esta manera se puede concluir que STM32 tiene mejores conversores ADC. Un conversor ADC externo puede ser la mejor opción pero lo que tiene el ESP32 puede ser suficiente para ver el estado de una batería y leer un sensor analógico.

Otra prueba realizada sobre las tarjetas fue sobre las interrupciones, o señales externas que dan prioridad a la ejecución de alguna tarea de los microcontroladores. En el caso de la ESP32 la interrupciones fueron lentas tomando más de 3 us para reaccionar. La STM32 no tiene dos núcleos y sin RTOS se obtuvo 1.3 us de latencia, lo cual fue 3 veces más rápido que en el ESP32.

En la resolución de operaciones aritméticas, siempre existe la opción de usar optimizaciones del compilador para mejorar los resultados.. Sin embargo, el ESP32 parece ser más rápido al igual que en cálculos flotantes, dado que tiene procesador de punto flotante y tiene otro núcleo.

Otras comparaciones dependiendo de los proyectos permitirían revisar temas como cantidad de CPUs, frecuencia de operación, cantidad de memoria RAM, FLASH y tiempos de respuesta de acceso a memoria. Cantidad de pines de entrada y salida al igual que pines dedicados a protocolos como I2C, SPI, UART entre otros y todas las características que pueda tener el ADC o conversor análogo digital.

PREGUNTA DE COMPRENSIÓN. En el contexto de conversión Analógica a Digital (ADC), ¿Cómo se compara la plataforma STM32 con la ESP32 según el documento?

La STM32 y la ESP32 tienen la misma velocidad de conversión ADC. La ESP32 tiene una estabilidad de conversión ADC superior a la STM32. La STM32 es aproximadamente diez veces más estable en su conversión ADC que la ESP32. La STM32 tiene menor cantidad de opciones de programación comparada con la ESP32.

A continuación tienes realimentación a las preguntas de comprensión. Tus respuestas no quedan almacenadas, solo se busca hacer una reflexión sobre la lectura.

PREGUNTA DE COMPRENSIÓN. ¿Qué diferencia principal distingue a los microcontroladores (MCUs) de los microprocesadores (MPUs)?

PREGUNTA DE COMPRENSIÓN. ¿Cuál es una característica esencial que deben tener las plataformas especializadas en IoT para adaptarse a las necesidades únicas de estos sistemas?

PREGUNTA DE COMPRENSIÓN. En el contexto de conversión Analógica a Digital (ADC), ¿Cómo se compara la plataforma STM32 con la ESP32 según el documento?