Programación Física
Construye tu Estación Meteorológica
Programación Física
En la programación tradicional, aquella en la que nuestros programas corren en la computadora en la que estamos programando y en donde los resultados generalmente los desplegamos en la pantalla de ésta o los guardamos en un archivo local, el primer programa que hacemos con nuestro lenguaje de programación, es el que envía un mensaje a la pantalla, el tradicional “Hello world” o “Hola mundo“.
En la programación física, donde nuestros programas se ejecutan en un microcontrolador, nuestro primer programa, nuestro “Hola mundo“, es un programa que hará parpadear un led conectado al microcontrolador.
Este led puede ser un led que forme parte de la tarjeta de control o un led que hayamos conectado de algún modo a uno de los pines de entrada/salida de nuestra tarjeta, los pines GPIO, general pourpose input output pin.
En el caso de la tarjeta Raspberry Pi Pico W, esta tiene un led conectado a un pin interno que podemos usar para correr nuestro programa Hola Mundo.
Desde el interprete de MicroPython, que ya tendremos instalado en nuestra tarjeta y desde el IDE Thonny(liga), que estará corriendo en nuestra computadora, tendremos que hacer lo siguiente.
En la pantalla del REPL, Read Evaluate Print Loop, de Tonny, desde donde podemos interactuar de manera interactiva con el microcontrolador, lo primero que tenemos que hacer es cargar la biblioteca de MicroPython que nos permitirá interactuar y utilizar las componentes físicas de la tarjeta, en particular con este led. Para ello ejecutamos la instrucción
import machine
Una vez que ya esté cargada esta biblioteca, podemos definir un objeto, que nos permitirá controlar el led de la tarjeta. Esto lo hacemos con la siguiente linea de comando:
led_tarjeta = machine.Pin(“LED”, machine.Pin.OUT)
donde led_tarjeta es un identificador o nombre de este objeto.
machine.Pin() es el método o función que nos permitirá controlar el led.
“LED” es en este caso un identificador predeterminado en la biblioteca machine para el MicroPython de la Raspberry Pico W, en este caso para el led de superficie de esta tarjeta. En otros casos, como podría ser con un led externo, pondríamos en numero del pin GPIO donde estaría conectado este led.
Y finalmente, el parametro machine.Pin.OUT, nos define que es un pin de salida.
Con este objeto ya definido, ahora podemos actuar sobre el con distintos métodos o funciones, en particular, podemos encenderlo o apagarlo con las siguientes lineas de codigo:
led_tarjeta.value(1) para prenderlo
y
led_tarjeta.value(0) para apagarlo
Ahora, si queremos hacerlo parpadear, podemos hacerlo en un ciclo de un programa.
Primero, necesitaremos otros métodos o funciones que nos permitan controlar los tiempos, para eso importaremos otra biblioteca, la biblioteca utime, que es muy similar a la biblioteca time del Python.
import utime
y para definir el ciclo, un ciclo infinito que se quedará ejecutandose, usaremos la instrucción while del Python
while TRUE:
el codigo completo de nuestro programa, que podemos escribir y ejecutar desde la ventana superior, sería:
import machine # importamos la biblioteca machine import utime # importamos la biblioteca utime led_tarjeta = machine.Pin(LED, machine.Pin.OUT) # declaramos nuestro objeto led_tarjeta while TRUE: # iniciamos nuestro loop infinito led_tarjeta.value(1) # encendemos el led utime.sleep(1) # una pausa de 1 segundo led_tarjeta.value(0) # apagamos el led utime.sleep(1) # una pausa de 1 segundo