Sie sind auf Seite 1von 12

PRIMER PROYECTO

CON ARDUINO

ALUMNO: IVAN GAVILAN SOTO

IES JULIO VERNE (LEGANS)

PROFESOR:MIGUEL BARROSO

2017
COCHE CONTROLADO POR BLUETOOTH

Controlaremos nuestro coche con una aplicacin creada en nuestro mvil que se
comunicar por bluetooth, adems le dotaremos de la capacidad de ir esquivando
obstculos de manera autnoma .

Vamos paso por paso

Los materiales que vamos a necesitar para este proyecto son los siguientes:

Placa Arduino Nano


Protoboard
Cables de conexin (Jumpers)
2 x motores N20 12V
Puente H
Batera de unos 9V (pilas, batera lipo, o lo que os apetezca)
Sensor de Ultrasonidos
Mdulo Bluetooth HC-06
4 x ruedas (podis utilizar las de algn juguete viejo y ponerles una goma plana o algo
similar para que tengan mejor adherencia con el suelo)
Regulador de Voltage L7805
CDIGO EN ARDUINO

Como ya sabris, uno de los pilares de cualquier proyecto que realicemos con Arduino o
algn otro sistema de desarrollo similar es la parte Software (el cdigo o la programacin)
de nuestra placa Arduino para que el Hardware (compuesta por los componentes
electrnicos y mecnicos que vamos a utilizar) se comporte como nosotros deseamos.

Aqu tenis la oportunidad de echar unas cuantas horas a pensar cmo podrais realizar la
programacin de este proyecto, aunque para los que les guste ver primero que el asunto
funciona y despus intentar entenderlo, os dejo el cdigo a continuacin:

/* Como el mundo que rodea a Arduino se basa en una cultura OpenSource o


de cdigo abierto, en la que es muy frecuente compartir los proyectos
realizados para avanzar como comunidad, es una buena costumbre colocar en el
encabezado de nuestro programa, entre barras de comentarios (/* */), algunos
datos bsicos que nos identifiquen como autores del proyecto e informaciones
que consideremos necesarias.

- Autor:
- Fecha de creacin:
- Ttulo del proyecto:
- Aclaraciones y comentarios sobre el proyecto:
- Licencias para terceros: (por ejemplo, GNU General Public License, que
permite a teerceros utilizar tus contenidos, pero no lucrarse con ellos)*/

// DECLARACIN DE VARIABLES

int izqA = 5; //Conexin A del motor DC izquierdo


int izqB = 6; //Conexin B del motor DC izquierdo
int derA = 9; // Conexin A del motor DC izquierdo
int derB = 10; // Conexin B del motor DC izquierdo

int vel = 255; // Velocidad de los motores (pwm: 0-255)


int estado = 'g'; // ESTADO INICIAL DEL COCHE = EN REPOSO

int pecho = 2; // Emisor del Ultrasonido


int ptrig = 3; // Receptor del Ultrasonido
int duracion, distancia; // variables para calcular la distacia

// CONFIGURACIN DEL PROGRAMA

void setup() {
Serial.begin(9600); // inicia el Puerto Serial para
comunicacin con Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
pinMode(pecho, INPUT);
pinMode(ptrig,OUTPUT);
pinMode(13,OUTPUT); // lo utilizaremos para controlar un LED
}
//BUCLE DEL PROGRAMA QUE SE REPETIR INFINITAMENTE HASTA QUE DESCONECTEMOS
LA ALIMENTACIN DE NUESTRA PLACA ARDUINO

void loop() {

if(Serial.available()>0){ // Lee el comando que enviamos por


Bluetooth (a,b,c,d,e,f,g) y lo
Almacena dentro de la variable
estado, la cual har que nuestro
coche realice una u otra accin al
entrar dentro del bucle if
correspondiente

estado = Serial.read();
}

if(estado=='a'){ // Coche hacia delante


analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}

//Para entender lo que estamos haciendo, en el caso de estado=='a',


estamos activando la conexin A de los dos motores, es decir, le estamos
diciendo a los dos motores que vayan hacia delante. En el caso de
estado=='b', le estamos diciendo solamente al motor derecho que vaya hacia
delante, con lo que provocaremos un giro hacia la izquierda.

if(estado=='b'){ // Giro a la izquierda


analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado=='c'){ // Stop
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
if(estado=='d'){ // Giro a la derecha
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
}

if(estado=='e'){ // Marcha atrs


analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derB, vel);
analogWrite(izqB, vel);
}
if (estado =='f'){ // Estado automtico Esquiva obstculos

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 cm
delay(10);

if (distancia <= 15 && distancia >=2){ // si distancia menor a 15cm


digitalWrite(13,HIGH); // Enciende LED

analogWrite(derB, 0); // Para el coche 200 ms


analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
delay (200);

analogWrite(derB, vel); // Marcha atrs 500ms (0.5 seg)


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

analogWrite(derB, 0); // Gira a la dcha durante 1100 ms


analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
delay(1100);

digitalWrite(13,LOW); //Apaga LED


}

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);
}

}
MONTAJE DEL CIRCUITO
Para empezar, conviene soldar con estao un par de cables a los motores.

Para no liarnos con una estructura complicada, vamos a realizar el montaje directamente
sobre nuestra protoboard, colocando los motores sobre una paletilla o algn objeto similar
y adherindolos con cinta aislante.
Podemos adherir nuestra paleta con una pistola de plstico caliente o usar una goma
elstica, de la siguiente manera:

Este es el momento de colocar las ruedas, podis pegar con la pistola de plstico caliente .
Ahora, para que nuestro coche quede nivelado, necesitamos dos rueda loca, es decir, dos
ruedas que sigan la direccin de las ruedas delanteras, cuya funcionalidad sea mantener
La protoboard horizontal respecto al suelo.
Para colocar nuestro sensor de Ultrasonidos vamos a usar una tcnica similar a la de los motores, es decir, una paletilla,
goma elstica y cinta aislante.

Al colocarlo as, con las conexiones hacia arriba, necesitaremos soldar los cables a las
conexiones de nuestro sensor, aunque si prefers no hacerlo, existen un tipo de cables
Hembra-Macho, con los que podemos realizar la conexin sin necesidad de soldar, los cuales
podemos comprar en cualquier tienda de electrnica (como Electrnica Embajadores, cerca
de la Universidad).
A continuacin, buscamos sitio libre para nuestro puente H, el mdulo bluetooth y la
batera.

OJO! Cuidado con poner el puente H al revs, la muesca del chip est colocado a la izquierda
en esta imagen.

Podemos alimentar nuestro Arduino con la misma batera que alimentamos el puente H,
llevando el pin positivo a la conexin de Arduino Vin (situada a la izquierda de las
conexiones Analgicas).
Aqu tenis apuntadas las conexiones con el puente H, con el sensor Bluetooth y el Ultrasonidos:
- Puente H:

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-05


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, las conectaremos una vez hayamos cargado el programa.

- El sensor de Ultrasonidos lo conectaremos de la siguiente manera:


ARDUINO Ultrasonidos
2 Echo
3 Trig
5V VCC
GND GND
APLICACIN PARA MVIL EN ANDROID
Si hemos realizado todos los pasos con xito ya estamos en disposicin de realizar una
aplicacin en Bluetooth para controlar nuestro coche.

Como hicimos en el apartado del cdigo de Arduino, os dejaremos la aplicacin


directamente por si la queris descargar directamente, aunque estis en condiciones de
realizarla vosotros mismos.

El enlace para descargarlo de la AppStore es el siguiente:

https://play.google.com/store/apps/details?id=appinventor.ai_el_profe_garcia.Arduino_C
ontrol_Car&hl=es_419

Nuestra aplicacin para el mvil tendr la siguiente funcionalidad:

- Flecha Arriba = Caracter 'a'


- Flecha Izquierda = Caracter 'b'
- Boton Cuadrado = Caracter 'c'
- Flecha Derecha = Caracter 'd'
- Flecha Abajo = Caracter 'e'
- Boton ON = Caracter 'f'
- Boton OFF = Caracter 'g'
- Boton Bluetooth = Para seleccionar el Modulo Bluetooth a que se va a conectar
(El modulo bluetooth debe estar previamente sincronizado con tu telefono Android)

La apariencia de nuestra aplicacin ddebe ser algo similar a esto, con cuatro botones para ir
hacia delante, hacia detrs, hacia la derecha o hacia la izquierda, con un botn para detener
el coche, con un botn de ON del sistema automtico Esquiva obstculos y un botn OFF
del sistema automtico y otro botn para conectarnos por bluetooth, como se vio en el
curso.
El cdigo de bloques ha de ser de la siguiente manera:

Comunicacin Bluetooth

Botones

Las instrucciones de los bloques las podemos encontrar dentro de el apartado Built in,
correspondiendo los colores de cada subapartado con los bloques utilizados, o directamente
clicando sobre los elementos sobre los que queremos actuar (Bluetooth, botones, ) y
colocando la accin deseada desde ah.

Das könnte Ihnen auch gefallen