Sunteți pe pagina 1din 10

Carro controlado por bluetooth y Arduino.

Introduccin.
El motivo por el cual se desea disear un auto controlado por el telfono celular es para
poner en prctica los conocimientos obtenidos durante el curso y se considera lo
bastante complejo como para poner a prueba cada leccin aprendida en las clases. Se
necesita disear, investigar el estado del arte y pensar la solucin ms eficiente para
cada problema.
Nuestro proyecto, nos ayuda a la investigacin, nos dar a conocer cmo manejar un
auto a travs del telfono celular con una programacin. Con este proyecto
desarrollaremos nuestras mentes para crear este auto de juguete har demostrar que
si podremos hacer que un auto se maneje atreves del telfono celular Ya que as
demostraremos la programacin de un control remoto y el sistema en el telfono celular
para controlar todos los tipos de movimientos del auto RC. Adems de darle un
mejoramiento al tema y al auto antes mencionado, Seguidor de lnea, lo cual se hace
un mejoramiento manual y programable, algo ms difcil que nos reta, obviamente a
mejorar e innovar.
Objetivo general.
Demostrar la programacin de un sistema operativo android mvil hacia la placa
arduino que est instalada en el auto RC (telfono celular auto RC).Tambin para
demostrar la programacin en nuevas tecnologas como lo es android. El coche es un
proyecto mejorado, al segudior de lnea, que nos ha ayudado a familiarizarnos con la
plataforma Arduino. El proyecto consiste en la creacin de un coche de bajo costo, a la
que ha conectado un Arduino UNO y un mdulo Bluetooth para comunicarse con la
tarjeta y poder controlar el coche. Adems, se ha aadido un sistema de sensores, que
ayudan a la proteccin del mismo auto, en caso de choque, a una distancia no mayor
de entre 15 y 5 cm.

Objetivos especificos.
Demostrar la facilidad de la programacin para inventar nuevas cosas que funcionen
con tecnologa de computacin.

Demostrar a factibilidad de contrallacin, con dispositivos mviles como telfonos


celulares.

Demostrar lo aprendido en clases anterirores sobre los Pic y materiales utilizables, as


como codificacin y decodificacin en este proyecto, as como la mejora del seguidor
de lnea.
Diagrama.
Arduino.
Arduino es una fuente abierta de una sola placa electrnica, descendiente de la plataforma de cableado
de cdigo abierto, diseado para hacer que el proceso de utilizacin de la electrnica en proyectos
multidisciplinares ms accesibles. El hardware consiste en un diseo de hardware simple y abierto para
la placa Arduino con un procesador Atmel AVR ya bordo de entrada / salida de apoyo. El software
consiste en un compilador de lenguaje de programacin estndar y el gestor de arranque que se ejecuta
en el tablero.
Hardware Arduino se programa mediante un lenguaje basado en Wiring (sintaxis y bibliotecas), similar a
C + + con algunas simplificaciones y modificaciones leves, y un ambiente de procesamiento basado en
el desarrollo integral.i

Con esto procedemos a dar una explicacin y materiales utilizados en la construccin


del auto controlado a Bluetooth, as como el diagrama constructivo, que nos ayuda a
ensamblar, parte por parte.

Diagrama de ensamble.

Materiales.

Pic L293D Motores A y B Bateria de 9 voltios

4 Ruedas de traccin Protoboard Arduino One.

Sensores: HC-SR04 1 led! Shield Bluetooth HC-05.


Construccin.

Para hacer funcionar el carro controlado por Bluetooth se hicieron 3 pruebas


experimentales, las cuales pondremos a continuacin.

Prueba 1: Puente H.

El puente H, nos hace referencia, al movimiento de los motores, nicamente con el Pic
L293D, los cuales son movimientos coordinados de lado derecho a izquierdo
(Viceversa) ms un avance previamente programado en Arduino, mediante el siguiente
cdigo.

/* Prueba del Puente H (L293D)


El motor 1 se conecta a los pines 3 y 6 del Puente H
El motor 2 se conecta a los pines 11 y 14 del Puente H
La fuente de alimentacion de los Motores se conecta a tierra y
el positivo al pin 8 del puennte H.
*/
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
void setup() {
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}
void loop() {
analogWrite(derB, 0); // Detiene los Motores
analogWrite(izqB, 0);
delay (500);
analogWrite(derA, vel); // Frente 2 segundos
analogWrite(izqA, vel);
delay (2000);

analogWrite(derA, vel); // Derecha 0,5 segundos


analogWrite(izqA, 0);
delay (500);

analogWrite(derA, 0); // Izquierda 0,5 segundos


analogWrite(izqA, vel);
delay (500);

analogWrite(derA, 0); // Detiene los Motores


analogWrite(izqA, 0);
delay (500);
analogWrite(derB, vel); // Reversa 2 segundos
analogWrite(izqB, vel);
delay (2000);
}
Prueba 2: Puente H ms lector de Bluetooth HC-05.

Para este paso nicamente se instal el lector Bluetooth HC-05, ms las conexiones
previamente ubicadas en el diagrama. Usando solamente 4 pines del mismo lector HC-
05, las cuales son:

PIN Conexin

VCC ....Al positivo del Protoboard

GND Tierra del Protoboard

TXD A RX del Arduino (Recepcin).

RXD .A TX del Arduino (Transmisin).

/* Carro Inalambrico Bluetooth


Conexion del Modulo Bluetooth HC-05 y el Arduino
ARDUINO Bluetooth HC-05
0 (RX) TX
1 (TX) RX
5V VCC
GND GND
*/
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
int estado = 'g'; // inicia detenido

void setup() {
Serial.begin(9600); // comunicacion con el Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}

void loop() {

if(Serial.available()>0){ // lee el bluetooth y almacena en estado


estado = Serial.read();
}
if(estado=='a'){ // Boton desplazar al Frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
if(estado=='b'){ // Boton IZQ
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado=='c'){ // Boton Parar
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
if(estado=='d'){ // Boton DER
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
}

if(estado=='e'){ // Boton Reversa


analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derB, vel);
analogWrite(izqB, vel);
}
if (estado =='f'){ // Boton ON se mueve sensando distancia

}
if (estado=='g'){ // Boton OFF, detiene los motores no hace nada
}
}

Prueba 3: Puente H, lector Bluetooth HC-05 y Sensores de Choque HC-SR04.

Teniendo en cuenta las conexiones del diagrama, y la construccin mecnica del carro,
ubicamos los sensores en la parte trasera y delantera del auto, junto con los cdigos de
Arduino, vistos previamente, y aadiendo unas lneas ms, estos lectores al igual que
el Bluetooth HC-05, cuenta con 4 pines, los cuales son VCC,TRIG,ECHO,GND y sus
conexiones van de la siguiente manera:

Para sensores HC-SR04

PIN Conexin

VCC Al negativo del Protoboard

Trig.. Al sensor de Arduino, #2

Echo Al sensor de Arduino, #3

GND. A la tierra del Protoboard


/* Carro Inalambrico Bluetooth HC-05 | Sensor HC-SR04 | PUENTE H L293D
ARDUINO L293D(Puente H)
5 10
6 15
9 7
10 2
5V 1, 9, 16
GND 4, 5, 12, 13
El motor 1 se conecta a los pines 3 y 6 del Puente H
El motor 2 se conecta a los pines 11 y 14 del Puente H
La fuente de alimentacion de los Motores se conecta a tierra y
el positivo al pin 8 del puennte H.
Conexion del Modulo Bluetooth HC-06 y el Arduino
ARDUINO Bluetooth HC-06
0 (RX) TX
1 (TX) RX
5V VCC
GND GND
!!Cuidado!! Las conexiones de TX y RX al modulo Bluetooth deben estar
desconectadas
en el momento que se realiza la carga del codigo (Sketch) al Arduino.
Conexion Sensor Ultrasonido HC-SR04
ARDUINO Ultrasonido HC-SR04
2 Echo
3 Trig
5V VCC
GND Gnd
*/
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
int estado = 'g'; // inicia detenido
int pecho = 2; // define el pin 2 como (pecho) para el Ultrasonido
int ptrig = 3; // define el pin 3 como (ptrig) para el Ultrasonido
int duracion, distancia; // para Calcular distacia
void setup() {
Serial.begin(9600); // inicia el puerto serial para comunicacion con el
Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
pinMode(pecho, INPUT); // define el pin 2 como entrada (pecho)
pinMode(ptrig,OUTPUT); // define el pin 3 como salida (ptrig)
pinMode(13,OUTPUT);
}
void loop() {
if(Serial.available()>0){ // lee el bluetooth y almacena en estado
estado = Serial.read();
}
if(estado=='a'){ // Boton desplazar al Frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
if(estado=='b'){ // Boton IZQ
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado=='c'){ // Boton Parar
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
if(estado=='d'){ // Boton DER
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
}
if(estado=='e'){ // Boton Reversa
analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derB, vel);
analogWrite(izqB, vel);
}
if (estado =='f'){ // Boton ON, se mueve sensando distancia
digitalWrite(ptrig, HIGH); // genera el pulso de trigger por 10us
delay(0.01);
digitalWrite(ptrig, LOW);
duracion = pulseIn(pecho, HIGH); // Lee el tiempo del Echo
distancia = (duracion/2) / 29; // calcula la distancia en
centimetros
delay(10);
if (distancia <= 15 && distancia >=2){ // si la distancia es menor de 15cm
digitalWrite(13,HIGH); // Enciende LED

analogWrite(derB, 0); // Parar los motores por 200 mili segundos


analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
delay (200);
analogWrite(derB, vel); // Reversa durante 500 mili segundos
analogWrite(izqB, vel);
delay(500);

analogWrite(derB, 0); // Girar durante 1100 milisegundos


analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
delay(1100);
digitalWrite(13,LOW);
}
else{ // Si no hay obstaculos se desplaza al frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
}
if(estado=='g'){ // Boton OFF, detiene los motores no hace nada
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
}
Pruebas del funcionamiento y programado del carro.

Para probar el funcionamiento del auto, se program y emparejo, desde el modulo


Bluetooth HC-05, dando abastecimiento a las pruebas congruentes de cada rueda y/o
motor, as como poniendo obstculos, los cuales detectan los sensores, HC-SR04,
estas pruebas fueron verdicas, y cumplieron sus funciones de acuerdo a los cdigos
previamente programados en Arduino.

Nota: El emparejamiento del mdulo HC-05 Bluetooth se abarco nicamente con un


celular u otro dispositivo que contenga instalado el sistema operativo Android, sin
importar su versin, antigua o preliminar, aunque modificando se puede hacer desde
una computadora con cualquier sistemas operativo.

Nota 2: La aplicacin se program nicamente en java, con el sistema Android,


asimilando una paquetera APK, e instalndola en el sistema antes mencionado, para
este proceso de programacin seguimos un vdeo tutorial, que podemos recomendar.ii
Conclusiones.

Lo ms importante de este proyecto es que logramos los objetivos establecidos al


principio, adems de considerar todo lo visto en clases anteriores, as como la
programacin, codificacin y decodificacin de sistemas, consideramos adems que
este proyecto nos dio la oportunidad de integrar realmente la parte prctica y no
terica, lo cual a nuestro parecer es algo til, en cualquier aspecto, ya sea escolar, y
personal, para desenvolver nuestras habilidades, en cuanto al proyecto, le vimos varias
ventajas que al seguidor de lnea y que podemos implementar a proyecto de mayor
escala, as como autos controlados a largas distancias y programados, como se ve en
la robtica actual, sin embargo, las mejoras que pusimos, no nos fue bastantes
sencillas , lo cual fue un gran reto para nosotros, y mucho de ello, lo consultamos en
videos y cdigos de programacin desarrollados en C++, vistos en otras materias.
Ahora bien, en cuanto al aspecto del proyecto, nos sentimos conformes de lo que
acabamos de hacer, y en dicho caso, como mencionamos anteriormente, este proyecto
se podra implementar, en la vida diaria, si as se nos permite. Por nuestra parte es
todo, y estamos muy satisfechos de nuestro trabajo.
i http://arduino.cl/arduino-uno/

ii https://www.youtube.com/watch?v=MiWLzbpfqr0

S-ar putea să vă placă și