Saltar al contenido

Raspberry Pi Pico - Instalar IDE y Primer Programa con MicroPython

¡Bienvenido a la página web de Wexter Home! Seguramente ya sabrás que Raspberry ha sacado su primer microcontrolador, la Raspberry Pi Pico. Mi idea para hoy es enseñarte a instalar el IDE para que puedas programarla con MicroPython y así empezar a crear proyectos lo antes posible. Además hablaré un poco sobre sus características principales y te enseñare a utilizar los pines digitales con el «Hello World» de los microcontroladores.

¿Y cual es este «Hello World»? Pues por supuesto que es hacer parpadear un LED. También conectaré un botón, y con un segundo programa lo utilizaremos para controlar el LED. Así ya sabrás utilizar los pines digitales de la Raspberry Pi Pico como entrada y como salida utilizando MicroPython.

Por si lo prefieres, te dejo por aquí un vídeo donde explico exactamente lo mismo que en esta página. Si no quieres perderte los siguientes tutoriales y proyectos, suscríbete a mi canal de Youtube.

Características principales de la Raspberry Pi Pico

No quiero extenderme mucho en este apartado porque el objetivo de hoy es empezar a utilizar este nuevo microcontrolador, así que solo voy a hacer un resumen de sus características más importantes.

Se puede programar con dos lenguajes de programación diferentes: C++ y MicroPython. MicroPython es una versión reducida de Python hecha especialmente para microcontroladores. Para mi esta es la opción más interesante ya que este lenguaje de programación es bastante más sencillo que C++. La única desventaja es que es más lento, pero normalmente nuestras aplicaciones no son tan exigentes en cuanto a tiempo se refiere. 

Respecto a su potencia, cuenta con un procesador ARM Cortex-M0+ de doble núcleo, y una velocidad máxima de hasta 133 MHz. Para que te hagas una idea, la velocidad máxima de Arduino Nano, Uno y Mega es de 16 MHz. La Raspberry Pi Pico es mucho más potente. 

También cuenta con suficientes pines de propósito general, 26 en total. Entre ellos, 16 pueden generar una señal PWM y 3 se pueden configurar como entradas analógicas. En cuanto a comunicaciones, tiene dos canales UART, 2 controladores SPI y 2 controladores I2C.

Instalar IDE de la Raspberry Pico - Thonny

Thonny es un entorno de desarrollo (IDE) con el que puedes programar tu Raspberry Pi Pico con MicroPython fácilmente. Sin embargo, para poder programar el microcontrolador con este lenguaje de programación, primero tienes que prepararlo.

Instalar fichero UF2

Para ello primero tienes que instalar este fichero. Dirígete a Getting Started with Pico. Dentro de está página hay un cuadrado en el que está escrito «Getting Started with MicroPython». Al pulsar en él se te abre un pequeño tutorial en inglés que es lo que yo te voy a explicar.

Dentro de dicho tutorial, hay un botón en el que pone «Download UF2 file». Púlsalo porque necesitas ese fichero. Una vez lo hayas descargado, coge tu Raspberry, y mientras mantienes pulsado el único botón que tiene, en el cual al lado está escrita la palabra «BOOTSEL», conéctala al ordenador.

Al hacer esto conectas tu Raspberry como si fuera un Pendrive. Entonces ahora tienes que ir a la carpeta en la que puedes acceder a los pendrives que conectas y copiar el fichero que has descargado antes dentro de la Raspberry. Con esto el microcontrolador ya está listo para ser programado con Python. 

Instalar Thonny

Instalar este IDE es muy sencillo. Dirígete a su página oficial Thonny. Al entrar dentro, en la esquina superior derecha aparecen las 3 opciones de descarga que hay. Una para cada sistema operativo, Windows, Linux, y Mac. En mi caso yo elijo Windows.

Una vez descargues el fichero, ejecútalo como administrador para instalar Thonny. Simplemente hay que ir dándole a siguiente, aceptar las condiciones, elegir donde se va a instalar en tu ordenador, yo voy a dejar la carpeta que aparece por defecto, y si quieres crear un acceso directo en el escritorio o no. Con esto ya habrías instalado el entorno de desarrollo.

La primera vez que lo abras te dará dos opciones entre las que elegir. Estas son «Standar mode» y «Raspberry mode». Tienes que elegir la opción estándar. 

Hacer parpadear un LED con Raspberry Pi Pico y Micropython

Antes de empezar, dentro de Thonny, pulsa en ejecutar, elegir intérprete y elige la opción de «MicroPython (Raspberry Pi Pico)».

Ahora ya sí, vamos con nuestro primer programa. Como puedes ver al abrir el IDE, no hay nada de código. Yo he empezado creado una función que se llama «main», y que será la función principal. Dentro de dicha función he creado un bucle while infinito, como si fuera el «void loop» de Arduino.

Para hacer parpadear un LED, lo primero que hay que hacer es configurar un pin digital como salida. Yo voy a utilizar el pin digital 25 porque a este pin está vinculado un LED que tiene integrado la Raspberry Pico. Así no necesito conectar uno externo. Para poder configurarlo, es necesario incluir el modulo Pin de la librería machine. 

Llamando a la función Pin creo una variable que se llama LED con la que voy a poder acceder al pin digital que configure. Los parámetros de la función son el número del pin digital y si lo quieres configurar como entrada o como salida. 

Una vez hecho esto, dentro del bucle while llamo a LED.on() para encender el LED y a LED.off() para apagarlo. Lo que sería el delay de Arduino aquí es time.sleep_ms(). Para utilizar esta función necesitas incluir la librería time.

from machine import Pin
import time

LED = Pin(25, Pin.OUT)

def main():
    
    while(True):
        LED.on()
        time.sleep_ms(1000)
        LED.off()
        time.sleep_ms(1000)


if __name__ == "__main__":
    main()

 

Controlar LED con un botón

Ya para terminar por hoy quería enseñarte a controlar el LED con un botón para que así también sepas utilizar los pines digitales de la Raspberry Pi Pico como entrada. Para ello yo he conectado un pulsador sin resistencia externa porque voy a utilizar la configuración PULL_UP

El objetivo es que mientras mantengas pulsado el botón, el LED esté encendido. En caso contrario apagado. Lo primero que hay que hacer es configurar el pin digital al que has conectado el botón como entrada. Yo he utilizado el 9. Para ello he creado una variable llamada BUTTON y que la inicializo con la función Pin. Los parámetros de esta función ahora son 3. El número del pin digital, Pin.IN para configurarlo como entrada, y Pin.PULL_UP.

Ahora con la variable BUTTON podemos acceder al valor que devuelve el pin digital configurado como entrada, utilizando la función BUTTON.value(). Si nos devuelve un 0, significa que el botón está pulsado, si nos devuelve un 1, significa que no. Esto es así porque recuerda que estamos utilizando la conexión PULL_UP.

Compruebo el valor leído del pin digital con una sentencia IF – ELSE, y apago o enciendo el LED en función de éste. Además he añadido un pequeño delay de 100 milisegundos que se suele dejar.

from machine import Pin
import time

LED = Pin(25, Pin.OUT)
BUTTON = Pin(9, Pin.IN, Pin.PULL_UP)

def main():
    
    while(True):
        if BUTTON.value() == False:
            LED.on()
        else:
            LED.off()
            
        time.sleep_ms(100)


if __name__ == "__main__":
    main()