Sei sulla pagina 1di 9

Carro controlado por bluetooth y Arduino.

Introducción.
El motivo por el cual se desea diseñar un auto controlado por el teléfono celular es para
poner en práctica los conocimientos obtenidos durante el curso y se considera lo
bastante complejo como para poner a prueba cada lección aprendida en las clases. Se
necesita diseñar, investigar el estado del arte y pensar la solución más eficiente para
cada problema.
Nuestro proyecto, nos ayuda a la investigación, nos dará a conocer cómo manejar un
auto a través del teléfono celular con una programación. 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 teléfono celular Ya que así
demostraremos la programación de un control remoto y el sistema en el teléfono celular
para controlar todos los tipos de movimientos del auto RC. Además de darle un
mejoramiento al tema y al auto antes mencionado, “Seguidor de línea”, lo cual se hace
un mejoramiento manual y programable, algo más difícil que nos reta, obviamente a
mejorar e innovar.
Objetivo general.
Demostrar la programación de un sistema operativo android móvil hacia la placa arduino
que está instalada en el auto RC (teléfono celular – auto RC).También para demostrar la
programación en nuevas tecnologías como lo es android. El coche es un proyecto
mejorado, al segudior de línea, que nos ha ayudado a familiarizarnos con la plataforma
Arduino. El proyecto consiste en la creación de un coche de bajo costo, a la que ha
conectado un Arduino UNO y un módulo Bluetooth para comunicarse con la tarjeta y
poder controlar el coche. Además, se ha añadido un sistema de sensores, que ayudan a
la protección 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 programación para inventar nuevas cosas que funcionen
con tecnología de computación.

·Demostrar a factibilidad de contrallación, con dispositivos móviles como teléfonos


celulares.

·Demostrar lo aprendido en clases anterirores sobre los Pic y materiales utilizables, así
como codificación y decodificación en este proyecto, así como la mejora del seguidor de
línea.
Diagrama.
Arduino.
“Arduino es una fuente abierta de una sola placa electrónica, descendiente de la plataforma de cableado
de código abierto, diseñado para hacer que el proceso de utilización de la electrónica en proyectos
multidisciplinares más accesibles. El hardware consiste en un diseño 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 programación estándar 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 explicación y materiales utilizados en la construcción


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 tracción Protoboard Arduino One.

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


Construcción.

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


experimentales, las cuales pondremos a continuación.

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)
más un avance previamente programado en Arduino, mediante el siguiente código.

/* 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 más lector de Bluetooth HC-05.

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

PIN Conexión

VCC ………………………………………………………....Al positivo del Protoboard

GND …………………………………………………………Tierra del Protoboard

TXD ………………………………………………………… A RX del Arduino (Recepción).

RXD ………………………………………………………….A TX del Arduino (Transmisión).

/* 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 construcción mecánica del carro,
ubicamos los sensores en la parte trasera y delantera del auto, junto con los códigos de
Arduino, vistos previamente, y añadiendo unas líneas más, 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 Conexión

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 obstáculos, los cuales detectan los sensores, HC-SR04, estas
pruebas fueron verídicas, y cumplieron sus funciones de acuerdo a los códigos
previamente programados en Arduino.

Nota: El emparejamiento del módulo HC-05 Bluetooth se abarco únicamente con un


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

Nota 2: La aplicación se programó únicamente en java, con el sistema Android,


asimilando una paquetería APK, e instalándola en el sistema antes mencionado, para
este proceso de programación seguimos un vídeo tutorial, que podemos recomendar. ii
Conclusiones.

Lo más importante de este proyecto es que logramos los objetivos establecidos al


principio, además de considerar todo lo visto en clases anteriores, así como la
programación, codificación y decodificación de sistemas, consideramos además que
este proyecto nos dio la oportunidad de integrar realmente la parte práctica y no teórica,
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 línea y que podemos implementar a proyecto de mayor escala, así
como autos controlados a largas distancias y programados, como se ve en la robótica
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 códigos de
programación 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 podría 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

Potrebbero piacerti anche