2. Objectivos
El propósito de este proyecto es los siguientes conceptos:
Comunicaciones IEEE802.15.4 (Zigbee).
Protocolos binarios.
Motores de DC y control
Servomotores y control
3. Descripción del proyecto
En este proyecto, la idea principal es poder manipular un carro a control remoto, por medio de el
protocolo de comunicación de la IEEE 802.15.4 (Zigbee).
El carro cuenta con un microcoontrolador (arduino leonardo), sensores y actuadores como lo son
fotoresistencia, seguidor de linea, espacio para ultrasonido, sensor de fuego/calor y también
cuenta con 2 servo motores que controlan la dirección de un laser.
El control remoto cuenta con el microcoontrolador (arduino leonardo), 2 Joysticks de 3 ejes para
controlar el carro.
4. RETO
Una vez estudiados los asuntos anteriores realice un programa de prueba que comande los motores (por
ahora sólo los motores) mediante comandos seriales que serán recibidos, para esta prueba, por el
puerto serial virtual implementado en la interfaz USB del microcontrolador. Recuerde que el
microcontrolador de la plataforma es el mismo que tiene el arduino Leonardo.
En este este reto, utilizamos este programa que está como ejemplo, pero se le modifica y cambia
algunas cosas, también se le agregan funciones.
PROGRAMA.
6. Como es una red, donde los radios van a estar conectados entre si, debe de haber una
jerarquía, saber quien le manda a quien, o en este caso, quien ordena y envía datos. En este
caso como ejemplo utilizando la plataforma de Xctu veremos como se envían los datos, se
recibe, y se espera una respuesta.
8. Para tener en cuenta
Cuando configuremos nuestra red, que en este caso utilizaremos un coordinador que será
nuestro control remoto, un router, que será nuestro carro. Al configurar debemos elegir que
sean Api.
OJO: que sean Api2, ya que tiene unos bits de paridad en la trama de datos que se envía y se recibe,
esto nos da la seguridad de que el sistema reconoce cuando empieza y termina cada trama, así
reconociendo los datos que queremos transmitir.
9. Pruebas a las comunicaciones
1. Configure una pareja de radios como coordinador y otro como enrutador utilizando el software XCTU
(https://www.digi.com/products/xbee-rf-solutions/xctu-software/xctu#productsupport-utilities). Los radios deberán
tener un PANID único y estar en API 2. Esta fase de las pruebas las realizaremos todos
2. Analice con DETENIMIENTO el siguiente ejemplo para comunicar los radios con el arduino y reportar información al
coordinador de la red. ESTE EJEMPLO no utiliza biblioteca:
https://drive.google.com/open?id=0B0FEIQwvlT4MeVZpY01pNUdUc1k
3. Analice con DETENIMIENTO el siguiente ejemplo que utiliza una biblioteca para realizar las comunicaciones:
https://drive.google.com/open?id=0B0FEIQwvlT4MMEdNajVlUUdIY3c
4. Ahora que ya sabe cómo conectar el arduino con el radio y reportar al coordinador conectado a XCTU, vamos a
reemplazar XCTU por un programa propio. Analice los siguientes programas realizados con python 3 que permiten
recibir y transmitir datos:
a. Ejemplo de transmisión de datos de python:
https://drive.google.com/open?id=0B0FEIQwvlT4MMUdPa192UldTTFU
b. Ejemplo de recepción de datos con python:
https://drive.google.com/open?id=0B0FEIQwvlT4MOEF1SFhzTWZTRmM
1.
10. Con esto configuramos
Se configura el PAN ID donde con esto
cada radio de nuestra red se reconocen
y así establecer una conexión.
También hay que establecer los canales.
Y verificar con el panel:
Que todas las conexiones estén bien.
11. Mensaje
Con Xctu podemos programar el envío de datos y una
respuesta. Y esto lo podemos ver en programa.
Según el tipo de mensaje que enviemos este envía la
trama, y podemos escribir en ascii lo que queremos
que sea el mensaje.
12. Procedemos a conocer nuestros pines para programar el carro.
Luego de conocer y probar Zigbee
Nota: Si usted quiere a su computador, no prenda el carro con el switch mientras esté conectado vía
USB
13. Motores y Servos
Los motores de dc, utilizados en un proyecto como carros, debe de tener una manera condición
funcional, por lo tanto se utiliza el famoso puente H, este está incluido en el módulo del carro. Y
lo que básicamente hace es controlar la potencia y dirección con la que cada motor funciona.
Por lo general ya hay módulos de este estilo, pero es un circuito lleno de transistores y
diodos.
14. Utilizando servos.
Los servos ya disponen de una librería funcional donde tienes que declarar y definir el pin del
servo.
Lo que se debe de hacer para controlar un servo, es darle una dirección de 0 a 180 grados. Como
tenemos 2 servos posicionados de manera estratégica para que pueda simular el eje x y eje y.
15. Utilizando los códigos con y sin librería
Comprendimos el uso del radio Zigbee que utiliza una trama para el envío y recepción de datos.
Con la librería mandamos un arreglo de datos, llamándolo nuestro “protocolo de datos” en el
cual va incluido la velocidad, dirección de motores y dirección de servos y el poder del laser.
Con este protocolo definido, enviamos nuestra trama de datos por medio del radio de elcontrol.
El radio del carro recibe la trama de datos y la librería se encarga de segmentar y organizar que
es que, para así utilizarlo.
16. Links de los programas
Programación del carro.
Programación del control.