====== Manejo de Display (TM1637) ====== El dispositivo TM1637 es un controlador que permite visualizar la información que deseemos en un formato de **cuatro digitos** que pueden ser alfanúmericos. La apariencia de este display es la siguiente: {{:tm1637.jpg?nolink&300x300|tm1637.jpg}} Para trabajar con este display en el laboratorio remoto, tenemos una serie de pines conectados desde la Raspberry Pi hasta el display. **En el laboratorio remoto smartlabsuniminuto trabajamos con una librería para el TM1637 que puede ser consultada en el siguiente enlace**: [[https://pypi.org/project/raspberrypi-tm1637/|https://pypi.org/project/raspberrypi-tm1637/]] La lista de pines es la siguiente: ^Pin^Descripción| |**GPIO5** |Pin CLK (Reloj) para display TM1637| |**GPIO4** |Pin DIO (Datos) para display TM1637| |**VCC** |Conexión 5V para display| |**GND** |Conexión a tierra para display| Así la conexión de la Raspberry Pi a este display es la siguiente: {{:tm1637.png?nolink&600x463}} ---- ===== 2. Programación en bloques para display TM1637 ===== Para la programación en bloques usaremos los siguientes bloques disponibles en la interfaz del laboratorio remoto: ^Bloque^Descripción| |{{:tm1637inicio.png?nolink&277x60}}|Permite llamar la librería de comunicación del display TM1637 e inicializarlo con los pines CLK y DIO de acuerdo a la anterior tabla.| |{{:tm1637escribirt.png?nolink&230x74}}|Permite escribir texto en el display (Máximo cuatro carácteres).| |{{:tm1637scroll.png?nolink&320x110}}|Permite escribir un texto con desplazamiento (scroll). El bloque necesita el texto a escribir y un tiempo de deslizamiento, normalmente 250ms (0.25 s)| |{{:tm1637hora.png?nolink&200x106}}|Permite escribir la hora y minutos indicados en el display TM1637.| Con estos bloques podemos enviar información a nuestro display TM1637. A continuación se muestra el código para enviar información con desplazamiento y el video de explicación respectivo para construir nuestro algoritmo gráfico. {{:tm1637scrollalgo.png?nolink&400x193}} {{youtube>4DdTomqJdTM?500x300}} ---- ===== 3. Programación en código Python para display TM1637 ===== Para trabajar con código directamente en Python para interactuar con el display TM1637 usaremos las siguientes instrucciones en lenguaje de programación Python ^Instrucción (Sentencia)^Descripción| | import tm1637 |Permite importar el paquete **tm1637** en Python para enviar la información al display TM1637| | import time |Incorpora la librería o paquete **time** para retrasos en el código en segundos.| | tm=tm1637.TM1637(clk=5,dio=4) |Permite inciar al display TM1637 en los pines seleccionados. CLK en GPIO5 y DIO en GPIO4. Estos pines están conectados directamente a la Raspberry Pi en el laboratorio remoto.| | tm.scroll('hola mundo',delay=250) |Permite **escribir **con desplazamiento el texto enviado al display. Este desplazamiento se efectuará en pasos de 250 milisegundos (250).| | tm.show('hola') |**Muestra **el texto indicado en el display TM1637 (Sin desplazamiento). En este caso el texto está limitado a 4 carácteres.| | | | | time.sleep(2) |Crea un retraso en tiempo, en este caso de 2 segundos.| Para trabajar en lenguaje Python, usaremos el siguiente código base que permite enviar información con desplazamiento el display. #Inserta tu codigo de Raspberry Pi aqui (Nota: comentarios sin tildes!) import tm1637 import time tm = tm1637.TM1637(clk=5, dio=4) #Pines para tm1647 (no cambiar) while True: tm.scroll('Hola Mundo',delay=250) #Escribir en display con una periodo de 250ms time.sleep(1) #retraso de 1 sec El código funciona del siguiente modo: * Importamos la librería tm1637 para trabajar con el display. * Importamos la librería time para crear retrasos. * Iniciamos el display en los pines seleccionados para CLK y DIO (GPIO5, GPIO4) respectivamente. * Colocamos un bucle **while True **que repetirá todo lo que se ponga dentro de él de manera continua. * Usamos la sentencia tm.scroll('Hola Mundo',delay=250)para escribir un text con desplazamiento en el LCD. * Esperamos 2 segundos para volver a escribir texto en el display. El video de explicación de este código se muestra a continuación: {{youtube>X6EZ9dobagw?500x300}} Un código complementario para mostrar la hora en tiempo real en nuestro display se muestra en el siguiente código base: import tm1637 import time from time import sleep, localtime from tm1637 import TM1637 DIO = 4 #pines para display tm1637 CLK = 5 class Clock: def __init__(self, tm_instance): self.tm = tm_instance self.show_colon = False def run(self): while True: #bucle para mostrar hora continuamente t = localtime() #Obtener hora de la Raspberry Pi self.show_colon = not self.show_colon tm.numbers(t.tm_hour, t.tm_min, self.show_colon) sleep(1) if __name__ == '__main__': #funcion principal para activar display y obtener hora tm = TM1637(CLK, DIO) #Configuracion de TM1637 tm.brightness(1) #ajuste de brillo de display clock = Clock(tm) clock.run()