14,99 €
Desarrolle proyectos en MicroPython paso a paso Vivimos rodeados de microcontroladores. Estos pequeños ordenadores, programados para realizar tareas concretas, son la pieza central de muchos de los dispositivos electrónicos con los que interactuamos a diario: electrodomésticos, automóviles, sistemas de monitorización y control… Sin embargo, a pesar de su ubicuidad, su funcionamiento es en muchos casos desconocido. Con este manual se introducirá en el mundo de los microcontroladores para entender qué son, cómo se programan, cómo se conectan con dispositivos externos y qué se puede conseguir con ellos. Para lograr este objetivo diseñará varios proyectos relacionados con los colores, el sonido y el medio ambiente. Los pondrá en práctica usando el lenguaje MicroPython -Python para microcontroladores- , desarrollado para facilitar el uso y la programación de estos dispositivos y que, al mismo tiempo, permite desarrollar proyectos complejos y profesionales. Ya sea para fabricar un dispositivo con una utilidad concreta o por el simple placer de cacharrear, con este libro: - Aprenderá a programar en MicroPython utilizando el entorno de programación Thonny. - Utilizará una placa de desarrollo como ESP32, Arduino Nano ESP32 o Raspberry Pi Pico. - Conectará a la placa y programará dispositivos como ledes, pulsadores, altavoces o sensores de temperatura. - Realizará proyectos completos inspirados en necesidades reales. - Establecerá unos cimientos sólidos que le permitirán aplicar lo aprendido en situaciones diferentes y en proyectos más avanzados. Este libro está basado en la extensa trayectoria didáctica -en enseñanza secundaria y universitaria- de las autoras, que ha sido reconocida con numerosos premios en innovación docente. Si este es su primer contacto con la programación de dispositivos electrónicos, o si ya tiene experiencia en la programación de microcontroladores pero desea conocer el lenguaje MicroPython y otras plataformas, entonces este libro es el indicado. Ya seas una persona con espíritu maker que se quiere introducir por su cuenta en la programación con MicroPython, o un profesor o estudiante de educación secundaria o universitaria en cursos de introducción a la programación o la electrónica, con este libro adquirirá, paso a paso y mediante un enfoque learning-by-doing, las bases de la programación de microcontroladores con MicroPython. Y, no menos importante, ¡disfrutará llevando a cabo los entretenidos proyectos que se incluyen a lo largo del libro!
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 214
Veröffentlichungsjahr: 2025
MicroPython en proyectos
Una introducción práctica a la programación de microcontroladores
© 2026 Beatriz Padín Romero y Adriana Dapena Janeiro
Primera edición, 2026
© 2026 MARCOMBO, S. L. www.marcombo.com
Gran Via de les Corts Catalanes 594, 08007 Barcelona
Contacto: [email protected]
Ilustración de cubierta: Jotaká
Maquetación: Reverté-Aguilar, S.L.
Corrección: Haizea Beitia
Directora de producción: M.a Rosa Castillo
A lo largo de este libro, los elementos de los circuitos —como el altavoz, el LED o la placa de pruebas— se han tomado de Fritzing o de Adafruit. Asimismo, se han empleado ilustraciones adaptadas o modificadas de placasESP32, Arduino Nano ESP32 y Raspberry Pi Pico con fines didácticos. Algunas de estas ilustraciones provienen de materiales licenciados por la Comunidad Arduino y por Raspberry Pi Ltd, disponibles en sus sitios web oficiales. Dichas ilustraciones se reproducen bajo licencia con la correspondiente atribución, sin que ello implique en ningún caso que la Comunidad Arduino o Raspberry Pi Ltd respalden este libro ni el uso que aquí se hace de los materiales.
Todas las imágenes han sido realizadas por las autoras; las figuras que se detallan a continuación incluyen componentes de varios creadores: Figura 3.7: Ilustración de Studiogstock, Freepik. Figura 5.1: Ilustración de Amir Ali - vecteezy.com. Figura 5.2: Ilustración de Sinisa Maric (Pixabay). Figura 6.1: Ilustración de Freepik. Figura 8.7: Ilustración de WarX (Wikimedia Commons). Figura 9.1: Ilustración del Departamento de Comunicación Global de las Naciones Unidas. Figura 9.2: Ilustración de pch.vector
(Freepik) y bnielsen (Open Clipart). Figura 9.5: Ilustración de bnielsen (Open Clipart).
Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.
ISBN del libro en papel: 978-84-267-4118-9
ISBN del libro electrónico: 978-84-267-4207-0
Producción del ePub: booqlab
En este libro se utiliza la tipografía Courier en los casos en los que se hace referencia a código o acciones por realizar en el ordenador, ya sea en un ejemplo o cuando se refiere a alguna función mencionada en el texto. También se usa para indicar menús de programas, teclas, URL, grupos de noticias o direcciones de correos electrónicos.
El código fuente de los ejemplos, así como todos los recursos didácticos y de programación que se utilizan en este libro, podrán descargarse a medida que se avanza en la lectura.
Estos recursos están disponibles en www.marcombo.info con el código PYTHON26.
Cubierta
Título
Créditos
Contenido
Prólogo
Al lector
CAPÍTULO 1
¿Qué es MicroPython?
1.1
Un poco de historia
1.2
Los elementos del lenguaje
1.3
Interactuar con el hardware
En resumen
CAPÍTULO 2
Los microcontroladores
2.1
Las placas para MicroPython
2.2
Características generales
2.3
Los mapas de pines
En resumen
CAPÍTULO 3
Entorno de programación
3.1
El entorno Thonny
3.2
El firmware de MicroPython
3.3
El editor y el REPL
3.4
Los ficheros
main.py
y
boot.py
3.5
Un entorno de simulación.
En resumen
CAPÍTULO 4
Los módulos integrados
4.1
Los módulos integrados
4.2
¿Qué hay en un módulo?
4.3
Cómo usar los módulos
4.4
El módulo
time
4.5
La función
sleep()
4.6
Cuenta atrás
4.7
La función
ticks_ms()
4.8
Un cronómetro
4.9
El cronómetro, mejorado
En resumen
CAPÍTULO 5
Señalización marítima
5.1
Proyecto “Señalización marítima”
5.2
Las señales digitales
5.3
El diodo emisor de luz
5.4
La placa de pruebas
5.5
El circuito
5.6
Encender y apagar el led
5.7
La clase
Pin
del módulo
machine
5.8
La configuración y el bucle
5.9
El led intermitente
5.10
El operador
not
5.11
Cambiar la frecuencia
5.12
Encender dos ledes
5.13
Señal intermitente
5.14
Los
timers
5.15
Independizar el proyecto
En resumen
CAPÍTULO 6
Lámpara de señales
6.1
Proyecto “Lámpara de señales”
6.2
El pulsador
6.3
Las conexiones
6.4
Lectura del pulsador
6.5
¿Pulsado o no?
6.6
Tres pulsadores
6.7
El led y el pulsador
6.8
Manejar el led con el pulsador (versión 1)
6.9
Manejar el led con el pulsador (versión 2)
6.10
El reto
En resumen
CAPÍTULO 7
Rojo, verde y azul
7.1
Proyecto “Rojo, verde y azul”
7.2
Las señales analógicas
7.3
La modulación por ancho de pulso
7.4
Las señales periódicas
7.5
La clase
PWM
7.6
Los valores por defecto del objeto
PWM
7.7
Encender un led con PWM
7.8
¿Apagado o desactivado?
7.9
La frecuencia
7.10
El ciclo de trabajo
7.11
El led RGB
7.12
El circuito
7.13
Los colores primarios y secundarios de la luz
7.14
Azul turquesa
7.15
Del rojo al magenta pasando por el rosa
En resumen
CAPÍTULO 8
Música arcade
8.1
Proyecto “Música arcade”
8.2
Sonidos electrónicos, piezos y altavoces
8.3
El circuito
8.4
440 Hz
8.5
El ciclo de trabajo
8.6
Do, re, mi
8.7
¿
Legato
o
staccato
?
8.8
Space Invaders
8.9
El
tempo
de la composición
8.10
¡Ya están aquí!
8.11
Las partituras al estilo Python
8.12
Korobéiniki
8.13
Archivos externos
En resumen
CAPÍTULO 9
Cambio climático
9.1
Proyecto “Cambio climático”
9.2
¿Qué es un sensor?
9.3
El sensor de temperatura TMP36
9.4
Los pines de conexión
9.5
Probar el sensor
9.6
Conversión analógicodigital
9.7
Los pines analógicos
9.8
El circuito
9.9
La clase
ADC
del módulo
machine
9.10
Comprobación del pin
9.11
Lectura del voltaje con
read_uv()
9.12
Lectura del voltaje con
read_u16()
9.13
Voltaje vs. temperatura
9.14
Cómo calcular la temperatura
9.15
Por fin, la temperatura
9.16
Suavizado de las medidas
9.17
Todo junto
9.18
Bonus track
: un sensor no lineal
En resumen
CAPÍTULO 10
Data logger
10.1
Proyecto “Data logger”
10.2
El módulo
os
10.3
El contenido del
filesystem
10.4
Trabajar con archivos
10.5
El primer archivo
10.6
El bloque
with
10.7
Medir la temperatura
10.8
El
data logger
en versión minimalista
10.9
El nombre del archivo
10.10
Añadir feedback
10.11
El
data logger
final
En resumen
ANEXO A
Lista de materiales
ANEXO B
Nuevos retos
B.1.
Timbre adaptado
B.2.
Instrumento musical
B.3.
Termómetro con luces
B.4.
Alarma de nevera abierta
Cover
Índice
Start
Vivimos un momento extraordinario para las tecnologías de la información y la comunicación (TIC): la informática y la inteligencia artificial contribuyen a resolver desde retos científicos hasta necesidades cotidianas. Una base esencial de este progreso es la programación, a menudo asociada a lenguajes populares como Python.
Este libro invita a explorar un territorio menos conocido, pero igual de estimulante: la programación de microcontroladores con MicroPython. Las autoras lo abordan con claridad y cercanía, y proponen proyectos que permiten aprender haciendo retos accesibles, útiles y conectados con problemas reales. La primera parte introduce MicroPython, los microcontroladores y el entorno de desarrollo: una rampa de lanzamiento idónea para quienes quieran iniciarse. La segunda parte presenta seis proyectos inspirados en necesidades reales —incluyendo algunos alineados con los Objetivos de Desarrollo Sostenible (ODS)— que animan a ponerse manos a la obra.
Beatriz Padín y Adriana Dapena cuentan con una sólida trayectoria en docencia y divulgación, y eso se nota en cada capítulo. Ojalá este libro, escrito por dos mujeres brillantes, contribuya también a despertar vocaciones y a reducir la brecha de género que persiste en el ámbito de las TIC.
Verónica Bolón CanedoProfesora Titular de la Universidade da Coruña (UDC)Investigadora del Centro de Investigación en TIC de la UDCAcadémica Correspondiente de la Real Academia de Ciencias Exactas, Físicas y Naturales de España
El libro MicroPython en proyectos. Una introducción práctica a la programación de microcontroladores es un manual adecuado para cualquier persona con espíritu maker que se quiera introducir por su cuenta en la programación de microcontroladores usando el lenguaje MicroPython, y también puede ser utilizado por profesores y estudiantes de educación secundaria y universitaria en cursos de introducción a la programación o la electrónica.
Este libro ha sido escrito pensando en lectores con diferentes perfiles. Por un lado, puede ser usado para tener un primer contacto con la programación de dispositivos electrónicos: no es necesario haber trabajado con microcontroladores, pulsadores, resistencias o sensores, ya que su uso y las conexiones se explican desde cero. Ahora bien, sí se presuponen unos conocimientos básicos de programación, tales como saber qué es una variable, una estructura condicional o un bucle. Por otro lado, también está dedicado a aquellos que tienen experiencia en la programación de microcontroladores (Arduino, casi con total seguridad) y deseen conocer el lenguaje MicroPython y otras plataformas, como ESP32 y Raspberry Pi Pico.
Dado que se trata de un manual de introducción, empezaremos presentando el lenguaje MicroPython, el microcontrolador y el entorno de programación. El objetivo principal de los primeros capítulos es aprender a interactuar con la placa, por lo que no se utilizarán funciones relacionadas con el hardware. Una vez que conocemos las bases de MicroPython y nos manejamos con soltura en el entorno de programación, es el momento de pasar a los proyectos. Añadiremos dispositivos sencillos de conectar para analizar los cimientos del trabajo con microcontroladores: las señales analógicas y las digitales. Aunque no se incluyen cuestiones más avanzadas, como la conectividad wifi, la instalación de módulos externos o los protocolos de comunicación, lo trabajado servirá de punto de partida para afrontar proyectos más complejos.
Los proyectos del libro se pueden llevar a cabo con cualquiera de las placas ESP32, Arduino Nano ESP32 o Raspberry Pi Pico. Los programas han sido escritos de manera que el mismo código valga para las tres plataformas, aunque en algunos casos hay ligeras diferencias que se indican. Para mantener la compatibilidad entre los diferentes microcontroladores, no se ha incluido ninguna funcionalidad que sea específica de uno de ellos. Aunque todo el material que usaremos es barato y fácil de encontrar, si no se dispone del material se puede usar un simulador online –Wokwi– para llevar a cabo los proyectos (no es lo mismo, pero también vale). Ni siquiera hace falta un ordenador: desde el móvil se puede modificar el código o el montaje para probar cosas nuevas.
Todos los proyectos que se plantean a lo largo del libro tienen una utilidad concreta y están inspirados en una necesidad real. Cada secuencia de aprendizaje está diseñada para poder dar solución al reto planteado una vez finalizado el capítulo y, además, lo aprendido se puede modificar, ampliar y replicar en otros contextos. Basándonos en un enfoque de learning by doing, los nuevos conceptos se introducen secuencialmente a lo largo de cada capítulo y se apoyan en los trabajados con anterioridad. Este andamiaje posibilita que el aprendizaje se consolide gradual y eficazmente.
No se trata de un libro de “recetas” que simplemente se aplican para resolver un problema concreto; queremos que se entienda el porqué de lo que se está haciendo para poderlo aplicar en situaciones diferentes. El objetivo es ganar la suficiente confianza con los conceptos tratados como para ser capaces de contestar no solo la pregunta “¿Por qué se hace así?”, sino también “¿Por qué no se puede hacer de esta manera?” y, sobre todo, “¿De qué otras maneras se puede hacer?”. Por ello, aunque los conceptos teóricos se tratan sin entrar en cuestiones técnicas innecesarias, se incluyen explicaciones con cierta profundidad sobre el funcionamiento del hardware para establecer unos cimientos sólidos que permitan afrontar con seguridad conceptos más avanzados.
Este libro está basado en la extensa trayectoria didáctica –en enseñanza secundaria y universitaria– de las autoras, que ha sido reconocida con numerosos premios en innovación docente. En él están reflejadas muchas de nuestras experiencias, personales y profesionales. Es por ello que queremos mostrar nuestro agradecimiento a nuestras familias y compañeros, a los que están con nosotras y a los que se marcharon.
Esperamos que disfruten aprendiendo MicroPython y realizando los proyectos que hemos preparado. Y, cómo no, deseamos que este libro sirva para alimentar las ganas de conocer más sobre la programación de microcontroladores.
Las autoras,
Beatriz Padín Romero
Adriana Dapena Janeiro
La realización de un proyecto requiere conocer los detalles del lenguaje de programación que servirá para traducir lo que queremos hacer a instrucciones que, a su vez, se convertirán internamente a un lenguaje que “entiende” el microcontrolador.
En este libro hablaremos del lenguaje conocido como MicroPython que, basado en el popular lenguaje de programación Python, permite a los desarrolladores escribir código de forma rápida y sencilla, gracias a su sintaxis clara y a sus capacidades de alto nivel.
Un lenguaje de programación de alto nivel es un lenguaje muy abstracto diseñado para simplificar la programación. Oculta detalles como la gestión de memoria y el direccionamiento del hardware, lo que facilita la escritura y comprensión de código.
La historia de Python empieza a finales de los años 80 y tiene nombre propio: Guido van Rossum. Van Rossum nació y creció en los Países Bajos, donde obtuvo su titulación universitaria en Matemáticas y Computación por la Universidad de Ámsterdam en 1982. A lo largo de su vida ha trabajado en empresas muy conocidas, como Google, Microsoft y Dropbox, y en varios centros de investigación, como el Centrum Wiskunde & Informatica, el National Institute of Standards and Technology y la Corporation for National Research Initiatives.
En las navidades de 1989, van Rossum decidió dar continuidad al lenguaje de programación ABC desarrollado en los años 70 en el Centrum Wiskunde & Informatica. Este lenguaje tenía la ventaja de ser fácil de usar y de aprender, lo que marcó las directrices del desarrollo de un nuevo lenguaje de programación al que van Rossum llamó Python, porque era un gran fan de Monty Python's Flying Circus.
Van Rossum es, por tanto, el autor principal de Python y continúa ejerciendo un rol central a la hora de decidir la dirección del lenguaje. En la comunidad de Python se le conoce como Benevolent Dictator for Life, título informal que se otorga a personas de la comunidad de desarrolladores de software de código abierto que tienen la tarea de asignar las directrices.
Un poco después, en el año 1991, apareció Python 0.9.0, la primera versión pública, que incluía características fundamentales como excepciones, funciones y los tipos de datos principales (listas, diccionarios, etc.). Tres años después apareció Python 1.0 con mejoras significativas, incluyendo módulos y una sintaxis más rica. Se empezaron a establecer los cimientos de la comunidad de desarrolladores y la documentación asociada a este nuevo lenguaje.
A partir de ahí vino la consolidación y el crecimiento. Desde 2000 hasta 2010 surgieron nuevas versiones, y Python ganó popularidad en la comunidad de desarrolladores y en la industria. También se incorporaron importantes librerías, como NumPy, para la computación científica.
En 2008 apareció Python 3.0, también conocido como Python 3000 o simplemente Python 3. Esta versión fue una reescritura significativa del lenguaje, con cambios incompatibles con versiones anteriores, para mejorar la consistencia y claridad. Entre otras funcionalidades, introdujo el manejo de recursos como conexiones de red, memoria, etc.
En esta historia, encontramos otro nombre propio: Damien George, un ingeniero y programador australiano que inició el proyecto MicroPython en 2009 con el objetivo de crear una implementación de Python 3.0 que pudiera ejecutarse en microcontroladores de recursos limitados. Para financiar la idea, lanzó una campaña en Kickstarter con la que recaudó más de 97 000 libras, lo que superó significativamente su objetivo inicial.
En septiembre de 2013, Damien George presentó MicroPython para la placa PyBoard durante la conferencia PyCon en Reino Unido, un evento anual centrado en Python. Dos años después, la Agencia Espacial Europea (ESA) se interesó en el desarrollo de MicroPython para implementarlo en sus investigaciones espaciales, por lo que decidió financiar el proyecto MicroPython on the Moon. Desde entonces se han incorporado nuevas características, optimizado el rendimiento y ampliado la compatibilidad con diversos microcontroladores populares, como Arduino, ESP8266, ESP32, Raspberry Pi Pico y BBC Micro Bit. Algunas de ellas no tienen todas las funciones disponibles, por lo que es conveniente hacer un estudio detallado antes de adquirirlas, pero de eso hablaremos en otro capítulo.
La comunidad de usuarios y desarrolladores ha desempeñado un papel fundamental en la evolución de MicroPython, contribuyendo con librerías, proyectos de código abierto y correcciones de errores. Su historia ilustra cómo una idea innovadora puede evolucionar hasta convertirse en una herramienta fundamental en el ámbito de la electrónica y la programación de microcontroladores.
A diferencia de Python, que es un lenguaje de programación de alto nivel utilizado para el desarrollo de software, MicroPython está diseñado específicamente para microcontroladores. Esto permite aprovechar el hecho de contar con un lenguaje potente como Python en sistemas con recursos limitados.
Antes de comenzar a crear nuestros proyectos, es importante que nos familiaricemos con aspectos clave de este lenguaje.
MicroPython utiliza las mismas convenciones de variables y tipos de datos que Python estándar. Los tipos de datos incluyen enteros, cadenas, listas y muchos más. Se pueden declarar variables y asignarles valores sin indicar su tipo.
MicroPython admite estructuras de control como bucles e instrucciones condicionales. Los bucles for y while permiten iterar sobre listas y realizar acciones repetitivas. Las instrucciones condicionales if, elif y else permiten tomar decisiones en función de una condición.
Las funciones son herramientas muy útiles para reutilizar código y mantener el programa organizado. Para definir una función en MicroPython se usa la palabra clave def seguida del nombre de la función. Luego se escriben los comandos que la función debe ejecutar y, generalmente, se utiliza return para devolver un valor a la llamada desde la función.
MicroPython incluye una variedad de librerías predefinidas que cubren una amplia gama de funciones y dispositivos. Estas librerías proporcionan funciones y clases que facilitan la interacción con sensores, actuadores, pantallas y otros componentes comunes. Por ejemplo, para nuestros proyectos será imprescindible utilizar la librería machine, que permite controlar pines y dispositivos externos. Para proyectos avanzados de IoT (del inglés Internet of Things) suele emplearse la librería network, que permite configurar conexiones de red y comunicarse con servicios web.
Las librerías se importan al principio del programa utilizando import. Algunas de ellas vienen ya instaladas y listas para ser importadas, pero otras tendremos que instalarlas con la herramienta que incorpora el entorno de programación.
Además de las librerías predefinidas, podemos crear nuestros propios módulos personalizados que agrupan funciones y variables, lo que facilita su importación y uso en otros scripts. Pueden ser importados en otros scripts para reutilizar código. Por ejemplo, podemos crear un módulo que tenga funciones personalizadas para controlar un sensor específico y luego importarlo en otros proyectos utilizando import.
La depuración y las pruebas son procesos esenciales en el desarrollo de un proyecto. En MicroPython, existen métodos y técnicas específicas para identificar errores y asegurarse de que su código funcione correctamente. La forma más sencilla de rastrear errores en el código es con la función print, que permite imprimir valores y mensajes en la consola durante la ejecución del programa.
Una de las principales ventajas de MicroPython es su capacidad para interactuar directamente con el hardware del microcontrolador.
Los pines GPIO (del inglés General Purpose Input/Output) son fundamentales para la interacción con el hardware. Se pueden configurar pines como entradas o salidas y leer o escribir valores en ellos. Esto es esencial para controlar ledes, motores, sensores y otros dispositivos.
La interacción con sensores y actuadores mediante la lectura y escritura de datos es bastante sencilla en MicroPython, ya que tiene funciones específicas para distintos protocolos de comunicación como UART, I2C o SPI.
UART (del inglés Universal Asynchronous Receiver/Transmitter) es un método de comunicación serie ampliamente utilizado para transmitir datos de manera asíncrona entre dispositivos. I2C (del inglés Inter-Integrated Circuit) y SPI (del inglés Serial Peripheral Interface) son otros protocolos de comunicación que MicroPython admite. I2C es más complejo que UART debido a su manejo de direcciones y señal de reloj, pero permite conectar múltiples dispositivos a través de una sola interfaz. SPI, por su parte, ofrece una comunicación más rápida, pero requiere más líneas de conexión.
La capacidad de comunicarse con otros dispositivos y protocolos hace que MicroPython sea versátil y adecuado para una amplia gama de aplicaciones. Se pueden implementar soluciones de comunicación entre dispositivos, como la recopilación de datos de sensores y el envío a través de una conexión inalámbrica, como wifi. Para ello, necesitaremos incorporar librerías específicas para el protocolo de comunicación.
MicroPython es un lenguaje de alto nivel diseñado específicamente para desarrollar aplicaciones en microcontroladores, con una sintaxis sencilla y fácil de aprender. Ofrece una amplia gama de funcionalidades para interactuar con dispositivos externos, además de compatibilidad con diversos protocolos de comunicación inalámbrica, lo que lo convierte en una herramienta ideal tanto para proyectos educativos como para aplicaciones profesionales. A lo largo de este libro, poco a poco, iremos viendo cómo empezar a aprovechar su potencial.
Un microcontrolador es un circuito integrado, generalmente colocado en una placa, que tiene los mismos bloques de funcionamiento básicos de un ordenador: una unidad central de proceso, memorias y líneas de entrada/salida para la conexión con dispositivos externos. Podríamos decir que es un ordenador de bolsillo.
En este capítulo veremos las principales características de las placas que utilizaremos para desarrollar los proyectos de este libro, así como muchos otros. Nos movemos en un entorno tecnológico en constante evolución, donde continuamente surgen nuevas alternativas, por lo que es importante buscar datos actualizados.
Desde que Damien George presentó MicroPython para la placa llamada PyBoard, este lenguaje ha sido ampliamente adoptado en muchos sistemas. En este capítulo, hablaremos de las tres familias de microcontroladores más conocidas y compatibles con MicroPython: ESP32, Raspberry Pi Pico y Arduino.
El ESP32 fue creado y desarrollado por Espressif Systems y es fabricado por Taiwan Semiconductor Manufacturing Company Limited (TSMC; también llamada Taiwan Semiconductor). Se trata del nombre que recibe una familia de chips caracterizados por su bajo coste y consumo de energía, que permite conexión dual a través de wifi y bluetooth. Hoy en día, es una opción muy popular para aplicaciones de IoT, automatización del hogar, redes de sensores y muchas más.
Nos centraremos en el ESP32 básico, a menudo llamado ESP32 DevKit o ESP32-WROOM-32, que es ideal para comenzar debido a su facilidad de uso y bajo precio. Sin embargo, existen otros modelos con mejores características para proyectos avanzados, como ESP32-WROVER, que tiene módulo con memoria adicional para el manejo de cámaras, o ESP32-C3, como opción de ultra bajo consumo, entre otros.
La Raspberry Pi Pico fue creada en 2012 por la Raspberry Pi Foundation, una organización sin fines de lucro con sede en el Reino Unido. Esta fundación es conocida por desarrollar una serie de sistemas de bajo precio, con el objetivo de promover la educación en informática y facilitar el acceso a la tecnología. El modelo Raspberry Pi Pico W, presentado en 2022, es una versión con conectividad wifi integrada y se espera que incluya bluetooth en futuras actualizaciones. Aunque en este libro no utilizaremos la conexión wifi y bluetooth, es aconsejable elegir una tarjeta que las incluya para no limitar el alcance de los proyectos que vayamos a realizar en el futuro.
Arduino es una plataforma de hardware y software de código abierto diseñada para facilitar la creación de proyectos. De entre las diversas posibilidades que ofrece, tenemos la gama Nano, que agrupa placas compactas y versátiles, pensadas para proyectos que requieren espacio reducido sin sacrificar funcionalidad.
En 2023 se presentó la Arduino Nano ESP32, que incorpora el potente microcontrolador ESP32, lo que añade conectividad wifi y bluetooth a la gama Nano. Esta integración amplía significativamente las capacidades de desarrollo, y beneficia tanto a la comunidad de desarrolladores como a profesionales de la electrónica y el IoT. Al estar basada en ESP32, nos ofrece la posibilidad de programación en MicroPython.
Actualmente, para proyectos en MicroPython también podemos utilizar la Arduino Nano ESP32-S3, una placa similar a la Nano ESP32, pero basada en el microcontrolador ESP32-S3. Este modelo ofrece capacidades mejoradas para el procesamiento de algoritmos de inteligencia artificial, lo que la hace ideal para aplicaciones avanzadas como reconocimiento de voz, imagen o gestos.
Otra opción interesante es la Arduino Nano 33 BLE, que ofrece buenas características generales, conectividad bluetooth de bajo consumo y detección de movimiento gracias a su sensor integrado. Sin embargo, su potencia de procesamiento y memoria son más limitadas en comparación con otras placas como la Arduino Nano ESP32, lo que puede afectar su rendimiento en aplicaciones más exigentes o con algoritmos complejos.
Veamos ahora los elementos básicos de los microcontroladores y de las placas.
Comenzaremos con el procesador, el elemento central, responsable de ejecutar las instrucciones del programa y realizar las operaciones de cálculo necesarias para el funcionamiento del dispositivo. Existen diversos fabricantes y modelos de procesadores, pero siempre es importante conocer el número de núcleos (o, en inglés, cores
