PROYECTO Carro controlado con acelermetro va bluetooth
PROCESO: 1) ESTABLECER COMUNICACIN ENTRE 2 MDULOS BLUETOOTH JY-MCU La comunicacin que necesito en el proyecto requiere sincronizar 2 mdulos bluetooth de la siguiente manera: Uno de ellos debe ser configurado para trabajar como Maestro (el que estara enviando la informacin del acelermetro al carro) y el otro como Esclavo (el que recibe la informacin). Los mdulos que us son del modelo jy-mcu HC-05 y HC-06. El mdulo HC-06 est configurado por default para trabajar como esclavo, por el otro lado el mdulo HC-05 se puede configurar para trabajar ya sea como esclavo o como maestro. De esta manera el primer paso para iniciar la comunicacin consiste en establecer el mdulo HC-05 como maestro. 1.1) CONFIGURACIN DE MDULO HC-05 COMO MAESTRO Para cambiar el modo de operacin del mdulo a Maestro existen los llamados comandos AT. Estos comandos (que vienen especificados en la hoja de datos del mdulo) funcionan como instrucciones que el mdulo reconoce y permiten obtener informacin del dispositivo o configurar cualquiera de sus caractersticas. Para establecer la comunicacin con el mdulo hice uso de un Arduino y un sencillo programa, as como del Monitor Serial incluido en la IDE del Arduino.
Para iniciar, los pines del mdulo deben estar conectados de la siguiente manera: El pin RX al pin 10 del Arduino, el pin TX al pin 11, el pin Vcc y GND a los pines correspondientes en el Arduino, y el pin KEY que es el que habilita el poder configurar el mdulo va al al pin 9. Ya conectado el mdulo y cargado el programa al Arduino, ya es posible mandar los comandos AT a travs del Monitor Serial para realizar la configuracin. AT+UART=9600,0,0 //Configura la velocidad de comunicacin OK AT+UART? OK AT+ROLE=1 +ROLE:1 OK //Indicamos que se comporte como maestro //Muestra la nueva configuracin +UART:9600,0,0
Las entradas son los comandos AT y las respuestas del mdulo son los OK y los + . Para que ambos dispositivos se comuniquen entre s, el mdulo maestro debe conocer la direccin del mdulo esclavo. Para indicarla hay que utilizar el comando AT+BIND utilizando el CMODE=0.
AT+CMODE? +CMOD:0 OK AT+BIND=11,5,40090 //Direccin del dispositivo esclavo OK AT+BIND? +BIND:11:5:40090 OK
Si utilizsemos la opcin CMODE=1, el maestro se conectara a cualquier dispositivo que se encontrara en su rango de transmisin. Una vez configurado esto pasamos a reiniciar el maestro cambiando el pin KEY a 0.
1.2) SINCRONIZAR MDULOS Para ese paso, el mdulo esclavo debe estar conectado al menos a voltaje y tierra. Los mdulos comenzarn a buscarse entre s y en menos de 2 segundos indicarn con sus leds que estn emparejados y listos para transmitir datos.
2) ENVI DE INFORMACIN Ya que los mdulos estn listos enviar y recibir datos, lo siguiente es enviar la informacin adecuada para poder mover el carro a la distancia. Para el envo de la informacin se consider lo siguiente: a) Del acelermetro se tomarn 2 valores que indicarn el movimiento del carro (adelante/atrs e izquierda/derecha). b) Los 2 valores devueltos del acelermetro estn en un rango de 180 a 490. c) En la comunicacin serial se transmite 1 byte a la vez. La informacin anterior es importante porque busco mandar ambos valores en un solo byte y al momento de recibirlos desencriptarlos para hacer uso de ellos. Para realizar lo anterior hice lo siguiente: 2.1) Primero, a los datos recibidos les hice una reduccin de rango de 0 a 15, es decir, que cualquier valor de entrada lo reduca de manera proporcional a un rango menor, de esta manera el dato se podr guardar en un espacio de 4 bits (la mitad de un byte). Ahora que ya tengo 2 variables representables cada una en 4 bits, las guardo juntas en una variable de 1 byte haciendo un corrimiento a la izquierda y una operacin lgica OR. Ya que tengo los 2 datos guardados en un byte los mando por el serialbluetooth para que se reciban en el otro lado. Cuando se reciben los datos lo que hace es hacer un enmascaramiento al bloque recibido y obtener as los dos datos enviados (al dato que se corri a la izquierda se le hace un corrimiento ahora hacia la derecha). Ya con los datos guardados en 2 variables se les aumenta el valor ampliando el rango a un valor proporcional ms grande, esto para para evitar errores de movimiento al usarlos en los condicionales. Ahora los nuevos valores son evaluados en los condicionales que gobiernan el movimiento del carro.
2.2)
2.3)
2.4)
2.5)
ENVO DE DATOS
RECEPCIN DE DATOS