Ya he comentado que soy un adicto a las Raspberries. Recuerdo que me contaba un compañero que su suegra era una adicta a las tiendas de veinte duros. Pues yo, de las Raspberries, así que cuando me he enterado que habían sacado la Raspberry Pi Pico me he lanzado a por un par de ellas. Uno de los vendedores de estos productos en España es raspipc.es y compré dos por 4 € + IVA cada una de las placas más los gastos de envío que subieron a 3,18 € + IVA. En total han sido 13,53 € y en un par de días me han llegado a casa.
Este dispositivo no es un ordenador como sus primas las Raspberry Pi 1, 2, 3 y 4, se trata de una placa donde se encuentra el microcontrolador, el RP2040, diseñado por la fundación Raspberry Pi, con una memoria flash de 2 MB y una memoria RAM de 264 kB, sí lo he escrito bien, kilobytes. El micro funciona a 133 MHz y consta de dos núcleos y tiene 26 puertas de entrada/salida multifunción.
Hacía tiempo que no me pegaba con microcontroladores y no sé si es novedad, pero para programar la flash utiliza un sistema curioso y es insertar en un puerto USB de un ordenador la tarjeta con el botón BOOTSEL pulsado. Una vez insertado en el puerto USB se suelta el botón y el ordenador ve el dispositivo como una unidad de disco. Sólo es necesario copiar un archivo de extensión uf2 y la flash queda programada. Ya sólo hay que meter el programa que se haya diseñado en la memoria RAM y ejecutarlo.
Los programas se pueden escribir en C o en Python. Lo de hacerlo en C es un verdadero lío, por lo que es recomendable hacerlo en Python. Quien me iba a decir que iba a pasar de programar un micro en ensamblador a hacerlo en Python, ¡un lenguaje interpretado!
Cuando se utiliza Python hay que tener en cuenta que no es el Python «normal» sino MicroPython que es un Python muy eficiente optimizado para micros, por lo tanto, más pequeño. Hay que tener en cuenta que hay que meterlo dentro de los 2 MB de la memoria flash. La fundación Raspberry Pi proporciona esos fichero uf2 con MicroPython en su web o te los puedes generar tú mismo desde el código fuente, que se puede encontrar en GitHub en el repositorio https://github.com/micropython/micropython y las instrucciones para generar el firmware están en https://github.com/micropython/micropython/tree/master/ports/rp2.
Resulta también muy interesante utilizar Thonny como IDE ya que está preparado para lidiar con la Raspberry Pi Pico. Thonny es software libre y multiplataforma por lo que lo puedes utilizar en Linux, Mac o Windows.
Reconozco que no me he pegado mucho con la Pico, sólo he soldado unos pines para poder encajarla en una placa de prototipos y jugado un poco con encender y apagar leds y cómo manejar interrupciones al pulsar un botón; sin embargo me va a venir bien para un proyecto de robótica que tengo aparcado desde hace unos cuantos años.
Decir que se puede hacer una prueba rápida de encender y apagar un led porque en la placa hay un led integrado en la placa y es fácil utilizarlo. Este programa sería como el hello world de otros lenguajes:
from machine import Pin
led = Pin(25,Pin.OUT)
led.on()
Un poquito más complicado sería que se encendiera y apagar con un determinado periodo. En el ejemplo el led de la plaquita se enciende durante un segundo y se apaga durante el mismo tiempo y así en un bucle infinito que desde el IDE se puede interrumpir con un Control+C
from machine import Pin
from time import sleep
led = Pin(25,Pin.OUT)
while True:
led.toggle()
sleep(1)
Tengo que mirar más este invento para ver si sustituyo el PIC del robot por ese micro. Veremos.