Para empezar hablar de Micropython primero tenemos que comenzar a hablar del lenguaje del que deriva, que no es otro que Python
Phython es un lenguaje de alto nivel y sencillo de aprender, recuerda que de cuanto más alto nivel es un lenguaje más fácil resulta la programación ya que el lenguaje de programación hace cosas por nosotros que en un lenguaje de bajo nivel tendríamos que definir hasta el más último detalle, simplifica el número de líneas de código, también usan un lenguaje más natural, más cercano al nuestro resultándonos más amigable.

Poniendo un ejemplo muy básico, es como si quisiéramos hacer un bocadillo de Jamón, en un lenguaje de bajo nivel tendría que hacer el pan, harina agua, levadura, levadura, sal , como amasarlo, tiempo de cocción seleccionar el jamón lonchearlo abrir el pan introducir el Jamón etc.
Por el contrario usando este mismo ejemplo aplicando técnicas de lenguaje de alto nivel tendríamos ya el pan hecho y solo elegiríamos su contenido, ¿No es maravilloso?
¿Dónde se usa Python?
Pues como muestra un botón, a continuación te dejo algunos ejemplos donde se ha aplicado la programación en Python
Pinterest, Panda 3D, Dropbox, Spotify, Netflix, Uber, Instagram, Reddit, Google, Youtube y un largo etc
Otro dato que hace atractivo a Python además de su curva de aprendizaje es que uno de los lenguajes más demandados en las ofertas laborales.
Bueno Jose muy bién, pero ¿qué tiene esto que ver con el mundillo de la electrónica y de los microcontroladores?
Tranquilo que ahora mismo te lo explico.

Si quieres ser un experto en Arduino pulsa aquí
Micropython
Micropython como ya habrás podido intuir es una versión adaptada de Python para microcontroladores.
Es un lenguaje interpretado es decir no se compila para ejecutarse sino que se interpreta durante su ejecución.
Como entenderas un microcontrolador tiene unos recursos más limitados que un ordenador por lo que micropython no tiene todas las instrucciones, funciones y librerías de las que dispone Python, pero no por eso deja de ser un lenguaje muy potente en su campo.
Con MicroPython, se pueden hacer muchisimos proyectos controlando las entradas/salidas de un microcontrolador, tomando lecturas de señales analógicas y digitales, generando señales PWM, control de motores y servomotores, pantallas LCD, OLED, comunicarnos mediante I2C, SPI, etc. En microcontroladores como el ESP32 también es posible conexiones de Red vía WiFi.
El típico ejemplo de encender apagar un led durante 1 segundo sería de la siguiente manera
Aquí te dejo el enlace a la página oficial de micropython:
from machine import Pin
from time import sleep
#definimos el pin 3 como salida
pinLed = Pin(3, Pin.OUT)
while True:
pinLed.value(1)
sleep(1)
pinLed.value(0)
sleep(1)
Como puedes observar aquí a diferencia del C no se emplea el ; para acabar una línea ni llaves
Micropython vs C/C++ Arduino
La diferencia importante es que el lenguaje MicroPython se interpreta en lugar de compilarse como con el lenguaje de programación Arduino lo que significa que cuando se ejecuta el código MicroPython, tiene que hacer un poco más de trabajo para convertir el código MicroPython en instrucciones que el microcontrolador entienda.
El código interpretado es mucho más limpio y simple en comparación con los lenguajes que se compilan. Incluso puede escribir y ejecutar código interpretado como MicroPython directamente en una placa sin compilar ni cargar, cosa que no se puede hacer con Arduino
Una desventaja del código interpretado y MicroPython frente a Arduino es que a veces hay menos rendimiento y más uso de memoria al interpretar el código. Un programa escrito en Arduino se ejecutará lo más rápido posible en el microcontrolador, mientras que MicroPython será un poco más lento porque tiene que interpretar cada instrucción y convertirla en código de máquina. En la práctica el tipo de proyectos que acometen personas que suelen usar arduino no se van a resentir o prácticamente serán imperceptibles, pero si estuviéramos condicionados por tiempo o memoria, MicroPython le permite escribir código en C/C++ para obtener el máximo rendimiento.
En resumen no hay unas aplastantes razones para usar C/C++ o micropython pero en resumen diríamos si queremos mayor rapidez de ejecución usaríamos C/C++ y si queremos sencillez usaríamos Micropython, además que sería el aperitivo perfecto para adentrarnos en la programación de su hermano mayor el Python para hacer proyectos bastante más completos y complejos, usando por ejemplo una Raspberry pi
Placas que soportan Micropython
ESP 8266

Esp32 esta y la ESP 8266 además pueden ser programadas tanto en C/C++ como en Micropython

Raspberry Pi Pico

BBC Microbit

Wipy

Teensy 3.x

Pyboard

Bueno espero que este post te haya gustado y si quieres aprender más sobre Micropython déjamelo en los comentarios