Tutorial 4 – Encendido del LED y Secuencia de Apagado con Operador Módulo, “try” y “finally”.

En nuestro cuarto tutorial que muestra como programar Ophyra con MicroPython, haremos una secuencia de encendido-apagado ascendente y desendente, respectivamente, con del LED RGB con toggle mediante un ciclo for. Al terminar la ejecucion del codigo, quedan apagados todos los LEDs.

Nota: Recuerda que previamente debes de tener instalado en la tarjeta Ophyra la versión de Micropython más actual, si no lo has realizado realiza este tutorial.

Abrir el Archivo “main.py“.

Paso 1. Conectar Ophyra: Realizar la conexión de Ophyra a tu computadora, de acuerdo a la versión con la que estés trabajando. Como se muestra en la Imagen 1.

 (Version B):  (1) Conecta el puerto USB-OTG y también el (2) puerto USB-RS232 a tu computadora.  (Version C): (1)  Conecta únicamente Ophyra por el puerto USB-OTG a tu computadora.

Imagen 1. Conexión USB-OTG en Ophyra para versiones B y C.

 

Recordemos que el puerto USB-OTG simula 2 dispositivos. El primero es un puerto serial virtual (CCS); para las Ophyras de versión B se observarían 2 puertos COM, por las 2 conexiones físicas utilizadas y el otro dispositivo es una memoria flash con el nombre de OPHYRA.

Paso 2. Abrir memoria flash de la tarjeta: (1) Entrar a la unidad de la memoria flash OPHYRA(2) abrir el archivo “main.py” con cualquier editor de texto de tu preferencia (por ejemplo Bloc de notas o WordPad).

Imagen 2. Archivos de la unidad OPHYRA.

Editar el  Archivo “main.py“.

Paso 3. Editar archivo “main.py”: Estamos programando Ophyra, al modificar el archivo “main.py. En el archivo se muestran 2 lineas de código comentadas mediante el símbolo # (al estar comentadas, podremos dejar o eliminar las lineas):

# main.py — put your code here!
# main.py — escriba su programa en este archivo!

Para programar en MicroPython, se tienen que tomar en cuenta que el firmware de Ophyra tiene ya incorporadas algunas librerías. En caso de que necesites incluir una librería, se hace mediante la sentencia import.

Para iniciar el programa, escribiremos las siguientes lineas que pertenecen al encabezado del código:

from pyb import LED
from pyb import delay

En las anteriores lineas se importan las librerías a utilizar; las cuales, como ya se mencionó, están incorporadas en el firmware de Ophyra. La primer linea importa la libreria LED para el uso del LED RGB incorporado en la tarjeta Ophyra y la libreria delay nos permite implementar retardos en el programa.

Las siguientes lineas que escribiremos pertenecen a la sección de “VARIABLES/OBJETOS”. Es importante mencionar que en MicroPython no se necesita iniciar y/o indicar el tipo de variable, pero si es necesario indicar los objetos que se usarán. El nombre de las variables nunca deben iniciar con números o caracteres especiales:

leds = [LED(i) for i in range(1,4)]
n=0

La linea 1 anterior genera un objeto con los LEDs, en el rango de 1 a 3 (Red, Green y Blue) y la linea 2 asiga a la variable n un valor de 0.

Al terminar las sentencias (al final de la condición) ó directrices, se coloca el caracter : para indicar el final de la sentencia. En este caso al finalizar las sentencias del ciclo for y while, ademas de las directivas ó clausulas try y finally, luego de colocar las condiciones escribimos el caracter :. Por último estudiaremos el cuerpo del programa, en tres partes:

for x in leds: #Ciclo de encendido de "leds" del 1 al 3
    x.on()

try: #Inicia directiva de ejecucion TRY
    while True: #Ciclado infinito
        leds[n].toggle() #Invierte el estado de "leds"
        n = (n + 1) % 3 #suma para cambiar el siguiente TOOGLE, hasta 3%3 = 0
        delay(50) #Retardo de 50mS

finally: #Antes de interrumpir el codigo se ejecuta directiva FINALLY
    for x in leds: #Ciclo de apagado de "leds" del 1 al 3
        x.off()
    print('Programa terminado')

En el lenguaje de python los espacios o identaciones se utilizan para separar las sentencias condicionales; similar a los caracteres de { y } que se utilizan en el lenguaje C o C++.

El cuerpo del programa se divide en tres partes, un ciclo for, una clausula try y una clausula finally.

En el ciclo for (primer parte del programa) se encienden los objetos leds que anteriormente ya se habian inicilizado.

La clausula try (segunda parte del programa), entra de manera automatica y tiene un ciclo while ciclado de forma infinita con la condición True, que en este ciclo se invoca la función toggle para invertir el estado del objeto con el vector led[n] (inicialmente n=0), luego sumamos n+1, realizamos el operador modulo y en la ultima parte del ciclo (linea 8), hay un retardo de 50 milisegundos y el resultado del operador modulo regresa al vector que invoca la función toggle().

Cuando el programa esta funcionandopresionamos en el teclado la combinación de teclas Ctrl + C  para interrumpir el programa, entra la  clausula fially (tercer parte del programa) antes de interrumpir el prorama para realizar el ciclo for que apagan los LEDs e imprime un mensaje, en la terminal: “Programa terminado“.

Paso 4. Guardar archivo “main.py”: Guardamos el archivo “main.py“, presionando en el teclado la combinación de teclas Ctrl + G ó Ctrl + S (Guardar o Save), dependiendo del editor de texto; luego de haber escrito el programa; al hacerlo, debemos esperar a que el LED-RGB (color rojo) de Ophyra se apague mientras se termina el proceso de guardado, ver Imagen 3.

Imagen 3. Secuencia de guardado.

Ejecutar Programa en Consola (PuTTY).

Paso 5. PuTTY Configuration: Abrimos el programa  PuTTY y en la ventana debemos dirigirnos a la sección de Connection type para (1) seleccionar Serial(2) escribir el número de puerto “COM(numero de COM que aparece en el Administrador de dispositivos)” que pertenece a la conexión del puerto USB-OTG. (3) Escribir en la sección Speed la cantidad de “115200” (baudios)  y (4) dar click en el botón Open.

Imagen 4. Ventana de inicio PuTTY Configuration.

 

Se mostrara la Consola de MicroPython, en la que se imprime información acerca de la versión de MicroPython, información de la tarjeta.  En la barra de título indica que número de puerto COM que se está utilizando, ver Imagen 5.

Imagen 5. Consola de MicroPython.

Puedes observar el código funcionando cada que presiones la combinación de teclas Ctrl + D, sobre la terminal (PuTTY) de MicroPython. Para relizar una interrupción de un programa ejecutado en la terminal; presiona en el teclado la combinación de teclas Ctrl + C; esta acción interrumpe la ejecución del código en la terminal (PuTTY).

Paso 6. Ejecutar el programa en la consola: Presiona en el teclado la combinación de teclas Ctrl + D; esta acción ejecuta el código guardado en el archivo “main.py” y observaremos las secuencias de apagado y luego presionaremos en el teclado la combinación de teclas Ctrl + C para detener la ejecución y observar que todos los objetos leds quedan apagados, ver Imagen 6.

Imagen 6. Secuencia de apagado.

Listo, has programado Ophyra en MicroPython para una secuencia del LED RGB!!!

Menú