Tutorial 1 – Encendido y Apagado del LED RGB con Metodos “ON” y “TOOGLE”.

Este es nuestro primer tutorial que muestra como programar Ophyra con MicroPython. En el que realizaremos una práctica de programación, para hacer una secuencia de encendido y apagado del LED RGB con el uso de los métodosON” y “TOOGLE“.

Como introducción a MicroPython, debemos destacar que es un lenguaje de facil programación, intuitivo y una de sus características importantes, es ser multiplataforma. Solo existe una versión de MicroPython 1.X. derivada de la versión 3 de Python original; otra de sus características, es que su interprete se ejecuta desde un sistema embebido como por ejemplo nuestra tarjeta Ophyra.  Su interacción es mediante una terminal serial como por ejemplo PuTTY.

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:

Led1 = LED(1)
Led2 = LED(2) 
Led3 = LED(3) 
Tiempo  = 400

Las primeras 3 lineas anteriores se utilizan para indicar cuales serán los objetos del LED RGB y por último, se asigna a la variable Tiempo un valor de 400 (posteriormente explicaremos porque la asignación del valor a la variable). En Micropython  se toma en cuenta la sintaxis de las variables  ya que es sensible a  mayúsculas o minúsculas.

Al terminar las sentencias, al final de la condición se coloca el caracter : para indicar el final de la sentencia. En este caso al finalar la sentencia del ciclo while, luego de colocar la condicion 1, escribimos el caracter :. Por último escribiremos el cuerpo del programa:

while 1:
    Led1.on() 
    delay(Tiempo) 
    Led1.off() 
    delay(Tiempo)
    Led2.on() 
    delay(Tiempo)
    Led2.off() 
    delay(Tiempo)
    Led3.on() 
    delay(Tiempo)
    Led3.off() 
    delay(Tiempo)
    Led1.toggle() 
    pyb.delay(Tiempo)
    Led2.toggle() 
    pyb.delay(Tiempo)
    Led3.toggle()
    pyb.delay(Tiempo)
    Led3.toggle()
    pyb.delay(Tiempo)
    Led2.toggle()
    pyb.delay(Tiempo)
    Led1.toggle()

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++. 

En el cuerpo del programa, se puede observar que solamente 22 líneas de código tienen un nivel de identación, debido a que pertenecen o forman parte de la sentencia while; esto quiere decir que las 22 lineas se ejecutaran, mientras se cumpla la condición del ciclo while. Podemos ciclar de forma infinita un ciclo while colocando como condición un True o un 1.

De la explicación anterior se puede entonces concluir que: Se tienen que  implementar las  identaciones (espacios o tabuladores) por cada una de las sentencias condicionales (if, elif, else, for y while) usadas en un código de Micropython. Otra característica es que las sentencias no llevan ningún carácter identificador de linea final como por ejemplo el carácter ;.

Para explicar el código anterior lo dividiremos en 2 partes, ambas se encuentran al mismo nivel de identificación (dentro del while). En MicroPython, podemos invocar métodos utilizando el carácter . (siempre y cuando el objeto contenga métodos).

En MicroPython existen dos formas de utilizar retardos en los codigosEn la primera, es necesario importar la libreria delay, escribiendo from pyb import delay, como se realizo en la parte de encabezado del código (al inicio del paso 3); para realizar el retardo solo necesitas escribir la sentencia delay(), poniendo entre los parentesis ( ), el tiempo o variable con el valor del reatardo en milisegundos. En la segunda forma no  necesitas importar la libreria delay, solo debes invovar la función delay(), escribiendo pyb.delay() y entre los parentesis ( ) el tiempo o variable con el valor del reatardo en milisegundos.

La primer parte del código invoca los métodos on() y off () con cada uno de los objetos que hacen referencia a los colores del LED RGB y que respectivamente encienden o apagan los LEDs. Utilizando la primera forma para hacer retardos, en la que unicamente escribimos la sentencia delay() con la variable Tiempo, que ya tiene un valor de 400 (retardo de 400 milisegundos).

Led1.on() 
delay(Tiempo) 
Led1.off() 
delay(Tiempo)
Led2.on() 
delay(Tiempo)
Led2.off() 
delay(Tiempo)
Led3.on() 
delay(Tiempo)
Led3.off() 
delay(Tiempo)

La segunda parte del código presenta otra forma de utilizar los objetos (Led1, Led2 y Led3invocando el método toggle() que conmuta o invierte el estado (encendido o apagado) de los Led1, Led2 y Led3. Tambien utilizamos la la segunda forma para hacer retardos, solamente  escribiendo la asociación de la función pyb.delay() con la variable Tiempo, que ya tiene un valor de 400 (retardo de 400 milisegundos).

pyb.delay(Tiempo)
Led1.toogle()
pyb.delay(Tiempo)
Led2.toggle() 
pyb.delay(Tiempo)
Led3.toggle()
pyb.delay(Tiempo)
Led3.toggle()
pyb.delay(Tiempo)
Led2.toggle()
pyb.delay(Tiempo)
Led1.toggle()

Ejecutado el codigo; al terminar la secuencia, vuelve a iniciar el ciclo while de manera infinita.

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 la secuencia de iluminación del LED RGB, ver Imagen 6.

Imagen 6. Secuencia de LEDs en Ophyra.

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

Menú