Circuito de comunicación por infrarrojo. Por: Esaú Gil y Romer Mena. - USB-EC3883-III-2019/EC3883-G03 GitHub Wiki
Nuestro Circuito de comunicación por infrarrojo tiene como primera etapa de funcionamiento un circuito de adquisición, en el cual, para cada uno de los sensores empleados, Sonar, Lidar, Receptor Led y circuito emisor de la señal a través de un led, y motor de paso, se tomaron en cuenta sus características de funcionamiento.
En lo que respecta al circuito de adquisición del Sonar, el Lidar, y el motor de paso, el circuito es el mismo que se empleó en la primera parte del curso para la elaboración del Solindar, por ello, para conocer lo referente al circuito de adquisición para estos sensores, pueden emplear el siguiente enlace.
En cuanto al circuito emisor, a través del cual se va a enviar el mensaje, está conformado por una compuerta AND, la cual tiene como entradas la señal del PWM, señal portadora, y la que viene del puerto que envía la información del mensaje desde el DEMOQE128. Luego, la salida de la compuerta AND va conectada a la base del transistor y la salida del mensaje es un diodo led que está conectado en el colector de nuestro transistor. Por otro lado, el sensor receptor del led, el TSOP11, funciona con un voltaje Vcc= 5V, sin embargo, la señal de salida debió ser atenuada con una resistencia para que el valor de dicha señal no superara los 3V y pudiera ir directamente conectada al puerto receptor de información del DEMOQE128.
A continuación, una imagen del circuito de adquisición completo:
En el siguiente enlace pueden conocer sobre los sensores empleados en la primera parte del curso para la elaboración del Solindar y que estuvieron también relacionados con este proyecto.
Con relación al TSOP11, en la siguiente imagen pueden ver sus principales caracteristicas:
Sobre el ya hemos indicado sus funcionalidades en los diferentes proyectos anteriores, por lo cual pasaremos a lo referente a su programación.
Para el desarrollo de este segundo proyecto, fue necesaria la implementación de dos DEMOQE128, ya que se necesitaba enviar y recibir información a través del puerto serial, desde y hacia la interfaz de la aplicación. En uno de los Demoque128 se copió el código referente al envío del mensaje, que para el desarrollo de la aplicación, enviaba un mensaje fijo, y en el otro, estaba conectada la sección del circuito referente a la recepción del mensaje, cuyo código tenía cargado.
Una vez lista la aplicación, el código de envío y recepción del mensaje fue habilitado en uno de los Demoqe128 puesto que, como el envío y recepción de mensajes no se va a hacer de manera simultanea, el mensaje se puede recibir enviar y recibir por el mismo microcontrolador.
El código del Demoqe128 permite el envío y recepción de un mensaje que se envía desde la aplicación de Processing, en el modo Master, o la recepción del mensaje en modo esclavo, donde recibe el mensaje a través del receptor de infrarrojo conectado al circuito.
En el modo Master, se coloca en la aplicación hecha con Processing la información requerida, la zona a la que debe apuntar el motor para hacer el envío del mensaje y las zonas a través de las cuales va a hacer el recorrido hasta llegar nuevamente a nuestra "torre" para constatar que el mensaje enviado es el mismo que el recibido. Para ello, el Demoqe cuenta con una programación que le permite indicar al motor de paso a donde debe girar para hacer el envío del mensaje, enviandolo al pasar por el punto medio de la zona indicada y estando detenido, esto para evitar que el movimiento del motor genere interferencia en el mensaje a enviar. El envío de información se hace cada 100ms.
En el modo esclavo, el código del demoqe128 toma el mensaje recibido, le elimina la información correspondiente a su zona y reenvía el mensaje a su destinatario.
El PWM tambien es manejado por el Demoq128, el cual es la portadora del mensaje, su configuración es la siguiente:
A continuación, los códigos empleados para programar nuestro DEMOQE128:
El entramado empleado es el que se explicó en el anteproyecto. Presionando el siguiente enlace encontrará la información referente al mismo.
Interfaz gráfica: Aplicación hecha con Processing.
Una vez hemos enviado o recibido la información de nuestros sensores y del motor desde el DEMOQE128, esta es recibida por el demoqe y es enviada a través del puerto serial de la computadora.
Nuestra aplicación, realizada con Processing, recibe la información enviada a través del puerto serial desde el DEMOQE128, el cual envía un byte a la vez, y para ello verifica que efectivamente el paquete que se vaya a mandar, se haya enviado y que quede el puerto serial libre para poder hacer el próximo envío de paquetes.
Una vez comienza a recibir datos la aplicación, a través del puerto serial, verifica que el primer bit del byte recibido sea un uno, cuando esa condición se cumple, se comienza a recibir la trama de datos y se colocan en orden los 4 bytes recibidos, siendo el primer bit de cabecera 1, para comenzar a armar la trama y luego los próximos 3 primeros bits de los tres bytes restantes son 0 para poder diferenciarlos de la cabeza de la trama.
Tras la recepción de datos, se realizan una serie de operaciones lógicas: shifts (<< o >>), and (&) y or (|) y de operaciones matemáticas de multiplicación o división por una constante para escalar de manera correcta la data adquirida, que permiten separar y agrupar el conjunto de datos correspondientes a cada elemento, bien sean los sensores, el mensaje a enviar o el motor de paso, lo que se corresponde con el desentramado.
La información adquirida va a ser operada para poder ser mostrada en la interfaz de nuestro Circuito de comunicación por infrarrojo.
A continuación, una captura de la interfaz:
En lo que respecta al funcionamiento de la interfaz, Maneja el envío y recepción del mensaje, siendo capaz de recibir a través del teclado los datos solicitados, o en su defecto, desde el sensor receptor de infrarrojo, si está en modo esclavo.
Por otro lado, en la pantalla de nuestra aplicación encontraremos los mensajes que indicaran al usuario los pasos a seguir, el mensaje que debe introducir para enviar, el cual puede ser un número entre 0 y 255, que se puede visualizar en formato decimal, binario o Ascii, los saltos que se desean emplear ára el envío del mensaje, y la ruta que va a seguir el mensaje, por zonas, con cinco zonas como máximo.
En el siguiente enlace, pueden encontrar el código correspondiente a la aplicación desarrollada en Processig:
La próxima imagen muestra las señales de envio y recepción del mensaje enviado a través del sistema de comunicación infrarrojo:
Finalmente, tras realizar diversas pruebas empleando el Sonar y el Lidar para la ubicación del infrarrojo para hacer el envío de información, decidimos no incorporar ambos sensores en la "torre", debido al ruido que generaban tanto en las señales de envío, como en las de recepción de los mensajes.