Problema 1:
Realizar un programa en python + Modulo InpOut32.dll que escriba la secuencia de [0,1,.,253,254,255] por este puerto cada 3 segundos.
Para controlar el puerto paralelo con Pyhton en Windows utilizaremos Inpout32.dll, para ello debimos descargar el archivo DLL y ponerlo en la carpeta system32 ubicada en la carpeta Windows del disco local.
Lo primero es importar el windll, además del time, que nos ayudará a pausar la salida de la serie.
Con un for recorremos desde el 0 al 256 para que imprima desde el 0 al 255.
p.Out32 es de salida de datos, mientras que el p.Inp32 es de entrada.
EL p.Out32(0x378) corresponde al puerto 888 que es de salida.
p.Out32(nBase, dato) donde nbase corresponde al 0x378 y dato corresponde al dato de salida.
SALIDA:
Problema 2:
Implemente un sistema de control de 2 Motores DC utilizando el dispositivo L293D y el puerto paralelo. El control de los dos motores debe ser independiente.
Implemente una interfaz gráfica que permita controlar las direcciones de giro de ambos motores y su tiempo (duración).
Lo primero que hicimos fue importar las librerías de pygame con las cuales trabajaremos. Luego definimos el único método que utilizaremos en nuestro código, el main.
Definimos el tamaño que tendrá nuestra ventana emergente que se mostrará al ejecutar el programa. Comenzamos a utilizar el pygame, definimos la ventana y la superficie sobre la cual construiremos nuestra interfaz.
Definimos el clock para pausar cada refresco, definimos la variable going en Verdadero.
La imagen que utilizaremos de fondo es:
Continuando con el código, ahora cargaremos las imágenes que nos simulan los motores A y B
El Motor A y B:
Luego definimos los cuatro pines ( el 4,5,6 y 7, pero que en nuestro programa se utilizarán como 1,2,3 y 4) en Falso.
Definimos las coordenadas de x e y en las cuales serán posicionados los pines. Definimos e inicializamos los ángulos 1 y 2 en cero.
Entramos en el ciclo while, hacemos una pausa y detectamos los eventos. Implementamos un for para obtener todos los eventos.
Con un if preguntamos si se cierra la ventana, si es así la variable going toma el valor de False.
Con un elif preguntamos si se presiona una tecla, pero además preguntamos si la tecla apretada fue el número 1, y es así invierte el valor del pin en la posición 0 que estaba en falso.
Y así lo mismo si se presiona la tecla 2, cambia el pin en la posición 1, si se presiona la tecla 3, cambia el pin en la posición 2 y finalmente si apretamos la tecla 4, cambia el pin en la posición3.
Y así terminamos la detección de eventos. Luego pintamos el fondo de la imagen con el circuito.
Preguntamos si el pin en la posición 0 es verdadero y el pin en la posición 1 es falso, y es así al ángulo 1 se le suma 10.
En caso contrario, si el pin en la posición 0 es falso y el pin en la posición 1 es verdadero, entonces al ángulo 1 se le restan 10.
Y giramos el motor según el resultado de lo anterior, a la derecha o a la izquierda.
Volvemos a preguntar, si el pin en la posición 2 es verdadero y el pin en la posición 3 es falso, y es así al ángulo 2 se le suma 10.
En caso contrario, si el pin en la posición 2 es falso y el pin en la posición 3 es verdadero, entonces al ángulo 2 se le restan 10.
Y giramos el motor según el resultado de lo anterior, a la derecha o a la izquierda.
Recorremos los 4 pines con un for, preguntamos si el valor es True, en caso que así sea lo pintamos rojo. En caso contrario lo pintamos azul.
Luego pintamos la superficie de trabajo bg, mostramos todo lo dibujado en la ventana y cerramos el pygame y finalizamos el método main.
CODIGO:
EJEMPLO EN ISIS PROFESIONAL:
SALIDAS:
Como los cuatro pines están el mismo estado (Falso) no hay movimiento de motores.
Como el pin 4 está en verdadero y el 5 en falso el motor A se mueve hacia la izquierda
Como el pin 4 está en falso y el 5 en verdadero el motor A se mueve hacia la derecha.
Como el pin 6 está en verdadero y el 7 en falso el motor B se mueve hacia la izquierda.
Como el pin 6 está en falso y el 7 en Verdadero el motor B se mueve hacia la derecha.
Cuando los cuatro pines están en verdaderos, se detiene el movimiento de los motores A y B
No hay comentarios:
Publicar un comentario