MicroPython en proyectos. Una introducción práctica a la programación de microcontroladores - Beatriz Padín Romero - E-Book

MicroPython en proyectos. Una introducción práctica a la programación de microcontroladores E-Book

Beatriz Padín Romero

0,0
14,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 214

Veröffentlichungsjahr: 2025

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



 

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

Antes de comenzar a leer este libro

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.

Contenido

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

Guide

Cover

Índice

Start

Prólogo

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

Al lector

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

CAPÍTULO 1

¿Qué es MicroPython?

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.

1.1 Un poco de historia

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.

1.2 Los elementos del lenguaje

Antes de comenzar a crear nuestros proyectos, es importante que nos familiaricemos con aspectos clave de este lenguaje.

Variables y tipos de datos

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.

Estructuras de control

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.

Funciones

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.

Librerías predefinidas

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.

Módulos personalizados

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.

Depuración del código

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.

1.3 Interactuar con el hardware

Una de las principales ventajas de MicroPython es su capacidad para interactuar directamente con el hardware del microcontrolador.

Control de pines GPIO

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.

Comunicación con sensores y actuadores

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.

Comunicación entre dispositivos

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.

En resumen

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.

CAPÍTULO 2

Los microcontroladores

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.

2.1 Las placas para MicroPython

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.

ESP32

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.

Raspberry Pi Pico

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

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.

2.2 Características generales

Veamos ahora los elementos básicos de los microcontroladores y de las placas.

El procesador

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