La Raspberry pi pico es una tarjeta pequeña, barata, muy rápida y que nos permite realizar muchos proyectos con un lenguaje de programación popular como lo es Python, las capacidades del microcontrolador de esta tarjeta supera con creces a los simples Arduino, además que cuenta con una gran documentación.
Estas son algunas características de es este microcontrolador.
- 32 bits Dual Core
- ARM Cortex-M0+
- 48MHz por defecto, configurable hasta 133 MHz
- 264kB de SRAM
- 2MB de almacenamiento
- 3 pines ADC de 12 bits
- 2 puertos UART
- 2 puertos SPI
- 2 puertos I2C
- 26 GPIO
Esta tarjeta funciona a 3.3 V y recibe alimentación de 5V por el USB
¿Cómo preparar la tarjeta para programar con Python?
Para usar esta tarjeta con micro python hay que seguir 5 pasos sencillos.
1- Ir a la pagina de la documentación de Micro Python y descargar el archivo UF2 para la tarjeta especifica que tengas. Este es un archivo que nos permitirá que la tarjeta pueda ser programada con micro Python.
2- Presiona el botón de la Raspberry pi pico mientras conectas el cable USB del computador al dispositivo.
3 - Debe aparecer un nuevo dispositivo USB conectado a tu computador que se llama RPI-RP2
4- Arrastrar el archivo UF2 hasta el nuevo dispositivo del paso anterior, así la tarjeta se reiniciar
5- Ya puedes usar Thonny para programar la tarjeta
¿Cómo configurar Thonny para usar la Raspberry pi pico?
Despues de tener la tarjeta flasheada con el archivo UF2, se procede abrir Thonny, para ello debe ser descargado de su web oficial
1- Instalar Thonny y lo abrimos con la tarjeta Raspberry pi pico conectada al computador
2- Ir al menú, a la opción Run. Y damos clic a Select interpreter
3- Seleccionar MicroPython(Raspberry pi pico), clic en ok
4- Se debe seleccionar el puerto COM donde esta la Raspberry y Clic en ok.
5- Revisar en la esquina inferior derecha, ahí debería seleccionar la tarjeta disponible
Con estos pasos Thonny debe reconocer la tarjeta, se puede verificar en la esquina inferior derecha. Ahi debe aparecer la nomenclatura de la tarjeta conectada a la PC.
Listo, ya estamos preparados para usar nuestra tarjeta.
¿Cómo cargamos nuestro primer código en la Raspberry pi pico?
Vamos a hacer el ejemplo mas simple posible al momento de usar esta tarjeta.
Print("Hola Mundo")
al recibir una respuesta de este codigo se denota que el microcontrolador esta enviando al computador por el puerto serial este mensaje, es decir, este programa esta corriendo desde el microcontrolador y lo esta enviando al computador para que despues se nos muestre por la pantalla.
De ahora en adelante vamos a pensar en eso, ese dispositivo diminuto va a correr un conjunto de instrucciones internas cada vez que nosotros le carguemos el programa. Es decir, todas las lineas de codigo que hagamos en Thonny seran cargadas en el microcontrolador y este responderá por las salidas que le hayamos especificado, algunas veces llegarán al computador que es nuestro principal medio de comunicación con el microchip.
Es decir, si obtenemos como respuesta "Hola Mundo", nuestro programa funcionó dentro del microcontrolador y fue enviado por el puerto de comunicación COM a la interfaz de Thonny.
¿Cómo cargamos nuestro segundo código en la Raspberry pi pico y que esta vez usemos los puertos GP-IO (General Purpose Input/Output, Entrada/Salida de Propósito General)?
Aquí dejo mi GitHub donde encontrarán todos los códigos asociados a este curso.
El siguiente será el segundo programa más simple que se pueda hacer en una Raspberry pi pico y la idea general es usar el led integrado que trae la tarjeta para que encienda y apague, recordemos que este se encuentra directamente conectado al GP25
from machine import Pin
import time
led = Pin(25, Pin.OUT)
while True:
led.on()
time.sleep(2)
led.off()
time.sleep(2)Este codigo tiene varias cosas de interés que vamos a seguir utilizando en cada código que hagamos entonces es valioso entenderlas.
Primer bloque (definición de librerias y módulos)
siempre, siempre, siempre, al inicio del código vamos a definir las librerias que vamos a usar. Aqui esta la clave que puedas hacer un código mas simple y que te apoyes de recursos creados por otro o por ti mismo.
from machine import Pin
import time
*Clase* termino de programación orientada a objetos que dentro de un futuro hablaremos a profundidad del tema.
La clase Pin es un recurso que nos permite manejar todos los pines disponibles del microcontrolador.
Entonces con esa primera linea solo importamos la *clase* Pin de un modulo que contiene muchas clases y que no es necesario traer otras cosas.
La segunda linea import time agrega el modulo time al listado de recursos de la tarjeta, este modulo permite usar funciones relacionadas con el tiempo.
Segundo bloque (definición de variables, creación de objetos)
En el segundo bloque de código vamos a intentar definir las variables e *Instanciar* los objetos
*instanciar* es otro termino de programación orientada a objetos que discutiremos en un futuro
led = Pin(25, Pin.OUT)esta linea de código tiene información muy importante que nos será útil en cada proyecto que hagamos con esta tarjeta. Aquí lo que hacemos es definir un objeto de tipo Pin, el cual se llamará led y que es obligatorio definirle unos parámetros particulares, dentro de la Clase Pin definimos primero el numero de puerto GPIO y después se define si este Pin será usado como entrada (Pin.IN) o salida (Pin.OUT).
El objeto led quedara definido como el pin 25 y declarado como salida.
Tercer bloque (funciones a realizar)
Los dos primeros bloques son fundamentales para desarrollar eficazmente este bloque de código, aquí es donde desarrollaremos la aplicación que deseemos.
while True:
led.on()
time.sleep(2)
led.off()
time.sleep(2)En este caso se decidió usar una estructura cíclica while True: esta linea genera un bucle, que repite el codigo que esté en su interior, siempre y cuando la condición sea verdadera. En este caso la condición es un True, entonces la condición es verdadera siempre, por lo cual el ciclo se repetirá indefinidamente.
Otra cosa que se debe notar es que las líneas abajo del ciclo, están alineadas a mano derecha, esa indentación es una característica de python que obliga a manejar estos espacios para denotar que las líneas se encuentran dentro del ciclo.
Otra cosa que se debe notar es que las líneas abajo del ciclo, están alineadas a mano derecha, esa indentación es una característica de python que obliga a manejar estos espacios para denotar que las líneas se encuentran dentro del ciclo.
Las lineas siguientes hacen uso del objeto instanciado en el bloque 2 y del modulo time.
led.on() time.sleep(2)
Dentro del módulo time se usa su método sleep(2) que hace que el microcontrolador espere por la cantidad de segundos definidos en este caso 2 segundos. Es decir, hasta ahí hemos encendido el led y esperamos por 2 segundo.
led.off()Usamos el método off() del objeto y con esto apagamos el led o enviamos un estado bajo al GP25
time.sleep(2)Y por ultimo usamos el método sleep() del módulo time, que tal como el caso anterior, espera la cantidad de segundos que le sean definidos, en este caso 2 segundo.
Con esto finalizamos y cuando se cargue el programa a la tarjeta, se debe evidenciar encender y apagar el led cada 2 segundos.


0 Comentarios