¿Qué lenguaje de programación debería usar para sus proyectos de microcontroladores? Exploremos las cuatro mejores opciones.
Las placas de desarrollo de microcontroladores se han convertido en un elemento básico entre la comunidad de fabricantes. Estos dispositivos programables están diseñados específicamente para procesar señales de entrada y salida como una forma de controlar varios módulos y componentes como sensores, motores, LED y dispositivos de entrada humana (HID).
Pero antes de eso, deberá aprender un lenguaje de secuencias de comandos que el microcontrolador pueda interpretar para programar estos dispositivos. Los lenguajes de microcontroladores más populares de la actualidad incluyen MicroPython, CircuitPython, Arduino (C++ simplificado) y C. Cada uno de estos lenguajes tiene sus pros y sus contras.
micropitón
MicroPython es una implementación ligera del lenguaje de programación Python 3 diseñado especialmente para microcontroladores. Fue lanzado en 2013 por el Dr. Damien George para una creación de prototipos más rápida y para permitir que las personas que ya estaban familiarizadas con Python programaran microcontroladores con un lenguaje similar.
Características
MicroPython es un excelente lenguaje de secuencias de comandos para principiantes que desean programar microcontroladores. Los novatos sin experiencia en codificación encontrarán que es fácil de leer y comprender porque utiliza comandos legibles por humanos en estructuras simples. Además, utiliza un entorno de tiempo de ejecución de lectura-evaluación-impresión-bucle (REPL), lo que permite una experiencia de codificación interactiva.
Actuación
Para programar un microcontrolador usando MicroPython, el firmware que contiene el intérprete, las bibliotecas y varias otras dependencias se instala en el microcontrolador. Esto permite que el código MicroPython sea interpretado y ejecutado localmente por el microcontrolador, lo que permite la creación rápida de prototipos ya que se puede proporcionar retroalimentación en vivo durante la codificación.
Sin embargo, debido a cómo los procesadores ejecutan el código, los lenguajes interpretados como MicroPython serán significativamente más lentos en comparación con los lenguajes compilados como C++. Entonces, de forma predeterminada, aunque la creación de prototipos puede ser mucho más rápida, la ejecución del código en sí es más lenta.
Compatibilidad
Dado que MicroPython utiliza recursos locales para interpretar y ejecutar programas, un microcontrolador debe tener un mínimo de 256 kB de memoria flash y 16 kB de RAM. Desafortunadamente, algunas placas de desarrollo populares como Arduino Uno no cumplen con las especificaciones requeridas. Sin embargo, todavía hay muchas placas que son compatibles con MicroPython.
Actualmente, MicroPython admite oficialmente Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Placas de desarrollo STM32 y algunas placas Arduino como Nano 33 BLE, Nano RP2040, Giga R1 y Portenta H7.
Comunidad y soporte
Desde su lanzamiento en 2013, MicroPython ha obtenido una gran cantidad de seguidores. Los principiantes deberían tener un tiempo fácil para aprender MicroPython con su documentación bien escrita. Si necesita más ayuda, MicroPython también tiene un foro comunitario donde los usuarios comparten tutoriales, ideas y responden todo tipo de problemas que pueda tener con respecto a MicroPython.
arduino
Arduino es una popular plataforma de código abierto dirigida principalmente a los entusiastas de la electrónica y el bricolaje. El lenguaje de programación Arduino se basa en los lenguajes de programación C y C++. El lenguaje Arduino fue lanzado en 2005 por un grupo de ingenieros, artistas y diseñadores de Italia.
Características
El lenguaje de programación Arduino utiliza una versión simplificada de C y C++, lo que facilita el aprendizaje y el desarrollo. La ejecución de código usando Arduino es significativamente más rápida que sus contrapartes de lenguaje interpretado debido a su naturaleza compilada. Además, Arduino solo requiere una pequeña cantidad de recursos del sistema para funcionar, lo que lo hace compatible con muchas placas de desarrollo y microcontroladores.
Actuación
A diferencia de MicroPython y CircuitPython, Arduino es un lenguaje de programación compilado. Esto significa que el código se compila primero en un compilador (ya incluido en el IDE de Arduino) y luego el microcontrolador lo ejecuta como un programa completo.
Esto mejora significativamente la ejecución del código ya que el microcontrolador no tiene que utilizar recursos para interpretar cada línea de código. Además, compilar el programa también lo traduce a un código de máquina que el microcontrolador puede ejecutar de forma nativa sin instalar dependencias.
Esto mejora significativamente la velocidad de ejecución del código porque el microcontrolador puede ejecutar directamente el programa sin asignar tiempo ni recursos de hardware para traducir el código.
Tableros compatibles
Dado que la etapa de compilación se realiza a través del IDE, los microcontroladores pueden tener tan solo 32 kB de memoria flash y 2 kB de RAM para funcionar. Aparte de las placas Arduino, hay muchas alternativas de placa Arduino se puede utilizar para programar con Arduino. Muchas de estas placas utilizarían microcontroladores como ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 y STM32.
Comunidad y soporte
Al ser una plataforma de código abierto desde 2005, Arduino tiene la mejor documentación disponible. La Fundación Arduino brinda activamente actualizaciones, soporte y productos nuevos e interesantes cada año. La comunidad mundial también es una de las más activas compartiendo guías e ideas y respondiendo a cualquier problema de solución de problemas que pueda encontrar. Con Arduino, tiene garantizado un buen nivel de soporte.
CircuitoPython
CircuitPython es la implementación de Python 3 de Adafruit, construida sobre MicroPython. Aunque es una bifurcación de MicroPython, CircuitPython ofrece varias mejoras para que el aprendizaje de los microcontroladores sea fácil y divertido.
Características
CircuitPython fue creado para ayudar a los principiantes a aprender a programar microcontroladores. Para lograr esto, CircuitPython proporciona varias funciones, incluida una codificación interactiva entorno, bibliotecas integradas, sintaxis simple (más simple que MicroPython) y excelente documentación y guías.
Actuación
Dado que CircuitPython se basa en MicroPython, tiene muchas de las mismas fortalezas y debilidades. El tiempo de ejecución del programa será un poco más lento que el de MicroPython, ya que CircuitPython proporciona más funciones y bibliotecas adicionales. Sin embargo, es probable que la diferencia no se note ya que CircuitPython requiere microcontroladores más capaces para funcionar.
Tableros compatibles
Con bibliotecas integradas y una sintaxis aún más simple, las placas de desarrollo de microcontroladores necesitan más recursos para usar CircuitPython. Como mínimo, un microcontrolador debe tener un procesador de 8 bits, 256 kB de memoria flash (se recomiendan 512 kB) y 32 kB de RAM (se recomiendan 64 kB). Actualmente, CircuitPython admite más de 390 placas de desarrollo, enumeradas en el página web oficial.
Comunidad y soporte
Se sabe que Adafruit fabrica productos aptos para principiantes. Como tal, puede encontrar documentación y libros fáciles de entender en CircuitPython. Aunque el lenguaje solo se introdujo en 2017, todavía tiene más seguidores que MicroPython, al que puede acceder a través de Discord y el foro oficial. Al igual que la Fundación Arduino, Adafruit brinda activamente actualizaciones, soporte y nuevos productos, lo que significa que el soporte debería ser fácil de encontrar.
C
C es un lenguaje de programación de propósito general desarrollado en la década de 1970 por Dennis Ritchie en Bell Labs. Es un lenguaje de programación compilado que los ingenieros y otros profesionales suelen utilizar para programar microcontroladores con altos niveles de eficiencia.
Características
Aunque es un lenguaje más difícil de aprender, la principal ventaja de C sobre MicroPython, CircuitPython y Arduino es el nivel de velocidad, eficiencia, control y portabilidad que proporciona. Esto hace que C sea el mejor lenguaje para programar ambos microcontroladores que se utilizarán en productos terminados.
Actuación
Aparte de su gran portabilidad, C es conocido por su rendimiento. Puede ejecutar programas más rápido que Arduino, MicroPython y CircuitPython, incluso con un microcontrolador de menores recursos. Esto se debe a que C es un lenguaje más eficiente y requiere menos dependencias. Aunque un programa Arduino compilado puede, como uno C, ejecutarse en hardware básico, su código de máquina viene preconfigurado con bibliotecas y herramientas que reducen el rendimiento.
Tableros compatibles
El lenguaje C es tan portátil que se puede usar para programar casi cualquier microcontrolador basado en Arm. Además, se puede utilizar en placas basadas en los microcontroladores Atmel AVR, STM32, PIC y MSP.
Comunidad y soporte
Debido a su robusta aplicación de programación y al hecho de que ya tiene varias décadas, el lenguaje de programación C tiene una gran comunidad en línea. Puede encontrar ayuda fácilmente a través de varios foros en línea, salas de chat y blogs dedicados a debatir y compartir ideas sobre el lenguaje C.
¿Con qué lenguaje deberías programar?
Entonces, ¿cuál es el mejor lenguaje para programar microcontroladores? Realmente depende de la persona. El lenguaje C sería el mejor para los profesionales que diseñan electrónica para la producción.
Aquellos que no tienen experiencia en codificación pueden querer comenzar con CircuitPython, ya que tiene funciones y documentación que hacen que el aprendizaje sea fácil y divertido. Quienes estén familiarizados con Python encontrarán fácil programar microcontroladores con MicroPython.
Y para la mayoría de la comunidad DIY/maker, Arduino seguiría siendo el mejor lenguaje para programar. microcontroladores, ya que ofrece un excelente equilibrio de rendimiento, portabilidad, características y comunidad.