SlideShare una empresa de Scribd logo
Coche por bluetooth controlado por la aplicación en appinventor 2 de Andrés Lasry “mando.apk” y
complementada por Joaquín Berrocal, para la recepción de datos desde la placa Arduino Uno del coche hacia
el teléfono. Marzo-2017
Carcasa utilizada; Coche CYBOT 950 del 2001
Información circuitería de la placa driver: http://www.lpilsley.co.uk/cybot/driver.htm
Como se puede ver en el display marca 15 cm ------ 150 mm
De distancia al sensor frontal bluetooh. Prueba realizada OK ver imágenes de abajo.
También se ve que la distancia a objeto frontal que ha de pararse cuando va caminado de frente es a
unos 28 cm. OK
POSICIONES DEL JOYSTICK DEL MANDO DEL TFNO.
/*"COCHE_POR_BT_Joaquin_Berrocal.ino"
realizado por:
JOAQUÍN BERROCAL PIRIS para "curso 17S1AR001 de Andrés Lasry"
Nov16-Feb17
Se trata de utilizar una aplicación bluetooth por él realizada
para enviar datos desde el telefono móvil a la placa Arduino.
La aplicación la tiene realizada en ANDROID por APPINVENTOR2.
es configurable los valores que envía.
por defecto tiene los siguientes;
1 2 3
4 5 6
7 8 9
- Lo utilizaré para manejar mi coche CYBOT950 Eaglesmoss del 2001.
Dirección web sobre el coche http://www.lpilsley.co.uk/cybot/driver.htm
el cual dispone;
+ de una placa driver par activar los motores
Le incorporo:
+ Una placa BT HC05 para la recepción bluetooth
+ Dos sensores de distancia HC-SR04, que pueden medir
distancias entre 2 cm a 4mts con una precisión de 3mm
+ Dos leds que podrán ser activados desde el bluetooch
+ Programa "mando_mio_V1.aia" que realizo basado en el "mando.aia" de Andrés lasry.
Le tengo hecho las siguientes modificaciones:
+ Permitirá la recepción de datos del arduino al móvil. es decir:
+ Permitirá ver en el tfno sobre el LCD, los valores de distancia al objeto de forma contínua
+ Se podrán encender o apagar los leds desde el tfno.
+ Todas las posiciones del Joystick ejecutan una función
----posición Joystick Android y actuación----
posicion 1 : Activa leds
posicion 7 : los apaga.
posición 2 : Marcha adelante.
posición 8 : Marcha Atrás
posición 4 : Marcha a Izquierda; girará aprox 90º y continuará de frente.
posición 6 : Marcha a derecha; girará aprox 90º y continuará de frente.
posición 3 : Gira sobre sí mismo a Dcha
posición 7 : gira sobre sí mismo a Izqda.
Todas estas posiciones se verán reflejadas sobre la LCD del móvil, así como el valor en centímetros
de la distancia a los objetos de la parte frontal y trasera del coche.
Claramente estos datos serán enviados de la placa arduino al móvil de forma constante.
La dificultad del proyecto ha estado en el envío, no de uno, si no de tres datos diferentes al móvil
tratando siempre de conseguir rapida respuesta del tfno móvil con la placa arduino del coche en el envío y re
------------- Para activar los 2 motores;----------------
- Giro hacia adelante: pines arduino 3 y 5 a nivel HIGH (con 1-3 de la placa driver)
- Giro hacia atrás: pines arduino 6 y 9 a nivel HIGH (con 2-4 de la placa driver)
- Giro a Dcha: pines arduino 3 en LOW y pin 5 en HIGH
- Giro a izqda: pines arduino 3 en HIGH y pin 5 en LOW
- Giro sobre sí mismo a Dcha : analogWrite(3,0); analogWrite (5,125);
- Giro sobre sí mismo a Izqda : analogWrite(3,125); analogWrite (5,0);
-----------------------------------------------------------
OBSERVACIONES:
La velocidad se irá reduciendo a medida que se vaya acercando a cualquier obstáculo que se encuentre
por delante o detrás del vehículo.
Si se sobrepasa la distancia mínima, se producirá una intermitencia de los leds durante 4 segundos, y acto
seguido, invertirá la marcha durante 1 sg para salir de esa posición, quedandosé en posición de "Parado"
a la espera de recibir ordenes desde el joystick del mando.
------------Conexionado de la placa driver.-------
Conector de 7 pines
Nota RH y LH significan motor Righ (motor dcho, motor Left (motor izqdo)
---Motores hacia adelante, poner los pines 1-3 en high de la placa driver---
(que corresponden con el pin 3 y 5 de arduino en HIGH)
1 - RH motor
3 - LH motor
---Motor hacia Atrás, poner los pines 2-4 en high de la placa driver---
(que corresponden con el pin 6 y 9 de arduino en HIGH)
2 - RH motor
4 - LH motor
5 - 5 volts ,se puede usar como alimentación a otros elementos
6 - 6 volts , " " " " " " "
7 - ground.
Conector de 4 pines
1 - ground.
2 - ground.
3 - 9 volts in procedente de la pila de 9V
4 - 6 volts in.procedente de las 4 pilas de 1.5V
-------------------------
conector MT1; es el LH Motor (motor de la izqda)
conector MT2; es el LR Motor (motor de la dcha)
++++++Conexionado ARDUINO PLACA DRIVER ++++++
ARDUINO PLACA DRIVER
MT2R_GiroAdelante pin 3PWM --------- 1
MT1L_GiroAdelante pin 5PWM --------- 3
MT2R_GiroAtras pin 6PWM ------------ 2
MT2L_GiroAtras pin 9PWM ------------ 4
GND -------------------------------- 7 GND para unificar masas.
5 salida de la placa driver a + 5V
6 salida a +6V de la placa driver
----Conexionado Arduino sensor de distancia HC-SR04------
ARDUINO HC-SR04
2 como salida ----- TriggerDtero
4 como entrada ---- echoDtero.
7 como salida ----- TriggerTrasero
8 como entrada ---- echoTrasero.
--------Conexionado Arduino sensor BlueTooth HC05---------
ARDUINO Sensor blueTooth HC05
10RX -------- Con pin Tx Bluetooth
11TX -------- Con pin Rx Bluetooth
OBSERVACIONES: El bluetooth HC05 (que es maestro/esclavo)debemos siempre mandarle
al final de cada comando r,n .Para ello configurar el monitor/terminal serial de arduino,
para que envíe: "ambos NL & CR"
Y lo mismo si lo hacemos de cualquier aplicación android como en este caso.
----------------------------------------------------------
ARDUINO
12 ----- activa dos leds azules que ya llevan R de 68ohm
-----------------------------------------------------------
*/
#include < SoftwareSerial .h> //Para manejo bluetooth HC05
//permite asignar otros puertos distinto al serial para poder utilizarlo en conjunto
//Para utilizar a la par la comunicación con el Serial Monitor que utiliza los pines 0 RX y 1 Tx
//y la comunicación BLUETOOH pines que le asigno el pin 10RX y 11Tx intercambiarlos con los de
//la placa bluetooth 10Rx con el Tx y el 11Tx con el Rx de la placa bluetooth HC05
//---variables globales-------
const int nLecturas=10; //para hacer 1/2 de 10 lecturas BT
int lecturas[nLecturas]; //array para guardar últimas lecturas BT
int indice = 0;
int total = 0;
unsigned int media = 0; //media de las lecturas
unsigned int media1=0; //media del sensor frontal
unsigned int media2=0; //media del sensor trasero
String direccion = "";
unsigned long tiempo = 0;
unsigned long distancia = 0;
int distanciaMinima= 25; //valor inicial 25cm
int tiempoGirar = 100; //tiempo para hacer girar corresponde aprox a 90º
int tiempoParada = 100; //tiempo para que paren motores
int dato = '5'; //inicia posición reposo joystick ""Ponerlo entre comillas"" o se verá mal en lcd.
const int MT2R_GiroAdelante=3; //unido al pin 1 de la placa driver MT2 hacia adelante
const int MT1L_GiroAdelante=5; //unido al pin 3 de la placa driver MT1 hacia adelante
const int MT2R_GiroAtras=6; //unido al pin 2 de la placa driver MT2 hacia atrás
const int MT1L_GiroAtras=9; //unido al pin 4 de la placa driver MT1 hacia atrás
const int leds = 12;//para activar leds en la pro micro el 20
const int triggerF = 2;// para activar el trigger del sensor distancia HC-SR04 Frontal
const int echoF = 4;// por donde recibe señal del sensor frontal
const int triggerT = 7;// para activar el trigger del sensor distancia HC-SR04 Trasero
const int echoT = 8;// por donde recibe señal del sensor Trasero
//--------------------PROGRAMA-----------------
/* OBSERVACIÓN MUY IMPORTANTE: sobre las limitaciones de la librería "SoftwareSerial (Rx,Tx);"
http://manueldelgadocrespo.blogspot.com.es/p/biblioteca.html
No todos los pines en la Mega y Mega 2.560 soportan interrupciones de cambio de nivel,
por lo que solamente la siguiente puede ser utilizado para
RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 ( 63),
A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
No todos los pines de las placas Leonardo y Micro soportan interrupciones de cambio de nivel,
así que solamente los siguientes se pueden utilizar para
RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
En Arduino o Genuino 101 la velocidad máxima actual de RX es de 57600bps
En Arduino o Genuino 101 RX no funciona en el pin 13
*/
//si utilizo la PRO MICRO El pin 10 de arduino pro micro hace de RX y 16 de TX
SoftwareSerial bt(10,11); //en la uno 10RX Y 11TX ; intercambiarlos con la placa
//bluetooth HC05, es decir,
// unir pin10(RX)con ------> TX placa bluetooth HC05
//y el pin 11 (TX)con ------> RX placa bluetooth HC05
String posicJoystickGiroMot[]= {"ADELANTE" ,"ATRAS ","IZQUIERDA" ,"DERECHA " ,"PARADO " ,"LEDS ON
void setup()
{
//--configuracion pines de salida y entrada---
//OUTPUT 2-3-5-6-7-9 y el 20 INPUT 4-8 conectados al pin "echo" del sensor ultrasónico Frontal - Trasero
//los pines 10Rx y 11Tx para el bluetooth no hace falta configurarlos
for (int i=2;i<=9;i++)
{
if ((i == 4)or (i==8))
{
pinMode (i,INPUT); //configura como entrada el 4 y 8
continue ; // salta de nuevo al for sin hacer lo de más abajo
}//
pinMode (i,OUTPUT );
digitalWrite (i,LOW); //los inicializa a cero
} //fin for
pinMode (leds, OUTPUT ); //pin 12 activar leds como salida
digitalWrite (leds, LOW); //inicia a nivel 0
//---------------------------------
// MI PLAQUITA bluetooh va a "9600".
//la comunicación con la placa bluetooth HC05 sólo acepta 9600 baudios.
bt.begin(9600); //serial bluetooth
Serial .begin(9600); //Serial arduino; acepta todas las velocidades
//----------------------------------------------------------------
}// fin setup ();
//----------------------------------------------------------------
void loop()
{
//-------------MENSAJES DISTANCIA AL MÓVIL---------
//int medidorDistancias (byte pinTrigger,byte pinEcho,int distancia)
medidorDistancias (2,4,distanciaMinima);
media1= media; //"Distancia Frontal: "
medidorDistancias (7,8,distanciaMinima);
media2= media; //"Distancia Trasera: "
// sprintf(buffer,"%d,%d",media1,media2);//no acepta el sprintf(buffer,"%s,%d,%d",direccion,media1,media2);
//----ENVÍO AL SERIAL se puede suprimir------------
Serial .println (direccion); //variable global con la dirección que toma el vehículo
Serial .print(media1); //Sensor Delantero
Serial .println (" cm");
Serial .print(media2); //Sensor Trasero
Serial .println (" cm");
//----- SENSORES DE DISTANCIA SR-HC04------------
//----------ENVÍO DE DATOS AL MÓVIL---------------
bt.print(direccion); //index 1 variable global con la dirección que toma el vehículo.
//sensor ultrasonico Frontal
bt.print("/"); //separador
bt.print(media1); //index 2 Sensor Delantero
bt.print(" cm");
bt.print("/");//separador para lectura del siguiente sensor ultrasónico
//sensor ultrasonico Trasero
bt.print(media2); //index 3 Sensor Trasero
bt.print(" cm");
bt.print("/"); //separador para lectura del siguiente sensor ultrasónico
//---------------------------------------------------
} // fin loop()
//++++++++++++++++FUNCIONES UTILIZADAS++++++++++++++++
// ----FUNCIÓN DE LECTURA PUERTO BLUETOOTH----
// lo pongo aquí para que lea de forma constante y se pueda tener
//respuesta más inmediata a los botones del Joystick móvil
void lecturaPuertoBT()
{
while(bt.available ()>0)
{
int datoprueba = bt.read();//variable entera global
if ((datoprueba!=13)and (datoprueba!=10))
{
dato = datoprueba;
}
// En la función "switch" el valor a comparar "case X: " X sólo puede ser de tipo entero.
//otros lenguajes sí lo aceptan pero arduino NO: No obstante, he probado que si pongo
//en los "case" el valor entero a comprobar entre comillas; ej case '2' todo ok SI LO ACEPTA
//es decir el valor enviado por el mando bluetooth es el entero 2. Si lo pongo sin comillas no lo acepta
switch (dato) //comprobamos el caracter que nos llega
{
//---para activar o desactivar los leds pin 12 ---
case '1':
{
Serial .println (posicJoystickGiroMot[5]); //GIRO HACIA ADELANTE
direccion = "LEDS ON "; //ajustado a 11 caracteres+espacios en el appinventor
digitalWrite (leds, HIGH);// pin 12
break;
}
case '9':
{
Serial .println (posicJoystickGiroMot[6]); //GIRO HACIA ADELANTE
direccion = "LEDS OFF " ;//ajustado a 10 11
digitalWrite (leds, LOW);// pin 12
break;
}
//-------------------------------------------------
case '2':
{
Serial .println (posicJoystickGiroMot[0]); //GIRO HACIA ADELANTE
direccion = "ADELANTE" ; //ajustado a 8
apagarTodos();
giroAdelante(); //pin 1 y 3 en HIGH
break;
}
case'8':
{
Serial .println (posicJoystickGiroMot[1]); //GIRO HACIA ATRÁS
direccion = "ATRAS "; //ajustado a 13
apagarTodos();
giroAtras(); //pines 6 y 9 en HIGH
break;
}
case'4':
{
Serial .println (posicJoystickGiroMot[2]); //GIRO A IZQDA
direccion = "IZQUIERDA" ;//ajustado a 9
apagarTodos();
//luego activa el nuevo giro
digitalWrite (MT2R_GiroAdelante, HIGH);// pin 3
digitalWrite (MT1L_GiroAdelante, LOW);// pin 5
delay(tiempoGirar); //tiempo para girar
apagarTodos();
giroAdelante(); //pin 1 y 3 en HIGH
break;
}
case'6':
{
Serial .println (posicJoystickGiroMot[3]); //GIRO A DCHA
direccion = "DERECHA " ; //ajustado a 9
//primero desactiva TODOS los MOTORES
apagarTodos();
//luego activa el nuevo giro
digitalWrite (MT2R_GiroAdelante, LOW);// pin 3
digitalWrite (MT1L_GiroAdelante, HIGH);// pin 5
delay(tiempoGirar); //tiempo para girar
apagarTodos();
giroAdelante(); //pin 1 y 3 en HIGH
break;
}
case'5':
{
Serial .println (posicJoystickGiroMot[4]); //VEHÍCULO PARADO
direccion = "PARADO " ; //ajustado a 11
apagarTodos();
break;
}
// -----hacer rotar de forma continua a Dcha o a Izqda------
case'3': //giro a DCHA continuo
{
Serial .println (posicJoystickGiroMot[2]); //GIRO A DCHA
direccion = "GIRO >>>>" ;//ajustado a 9
apagarTodos();
//luego activa el nuevo giro
analogWrite (MT2R_GiroAdelante,0); // pin 3
analogWrite (MT1L_GiroAdelante,125); // pin 5
break;
}
case'7': //giro a IZQDA continuo
{
Serial .println (posicJoystickGiroMot[2]); //GIRO A IZQDA
direccion = "<<<< GIRO" ;//ajustado a 9
apagarTodos();
//luego activa el nuevo giro
analogWrite (MT2R_GiroAdelante,125); // pin 3
analogWrite (MT1L_GiroAdelante,0); // pin 5
break;
}
//----------------------------------------------------------
} //fin del switch(dato)
} //fin if bt.available()>0
}//fin void lecturaPuertoBT
//--------------------------------------------
//++++FUNCIÓN medidorDistancias ()++++
//------------instrucciones para el control de la distancia ----
//--si es menor a una distancia que especifiquemos se parara----
// se hace una media de 10 lecturas para dar un valor más estbilizado
int medidorDistancias (byte pinTrigger,byte pinEcho,int distMinima)
{
total = 0; // Sí lo necesito al no utilizar el array int lecturas[nLecturas];
indice = 0; //reiniciamos el indice.
while (indice < nLecturas)
{
digitalWrite (pinTrigger, LOW); //activación pinTrigger 2 - 7 sensores frontal-trasero
delayMicroseconds (5); //para estabilizar otros le dan sólo 2 us
digitalWrite (pinTrigger, HIGH);
delayMicroseconds (10); //ha de ser 10 us para el sensor HC-SR04 otros sensores le dan sólo 5 us.
digitalWrite (pinTrigger, LOW); //paro la activación y comienza el envío de la señal ultrasónica
//por el pin "echo" se empieza a recibir una señal HIGH la función pulsein(), pausa el sketc
//para contar el tiempo transcurrido hasta recibir el rebote, momento en el cual por el pi
//"echo" pasa a detectarse una señal LOW y pulseIn() devuelve su resultado en microsegundos
// http://manueldelgadocrespo.blogspot.com.es/p/pulsin.html
tiempo = pulseIn (pinEcho, HIGH);//receptor pinEcho 4 - 8 sensores frontal-trasero
distancia = 0.01717*tiempo; // considero la velocidad del sonido como 343,2m/s según la wiki a 20
//dando un resultado de 0.01717cm por cada microsegundo considerando
total= total + distancia;
indice = indice + 1;
lecturaPuertoBT(); // si lo dejo me sube el contaje de la distancia
delayMicroseconds (25); //tiempo mínimo entre lecturas es de 20 us.
}//fin while indice <= nlecturas
media = total / nLecturas; //en cm
//Según donde mires dicen que el sensor de distancia mide desde
//los 2cm a 4 ó 5 o incluso 7 metros con una precision de 3 mm.
//para evitar posibles problemas limito su lectura en 400
if (media > 400){media = 400;}
controlDistMinima();
}//fin función medidorDistancias (...)
//--------------------------------------------------------------
//++++++++++++FUNCIÓN controlDistMinima()++++++++++
//Evita se pase, y si lo hace para,parpadean los leds y retrocede-avanza un tiempo
void controlDistMinima()
{
// if (dirección != direccionPrevia)
///// { direccionPrevia = direccion; //evita que
//---------------------al 100% máxima velociad--------
if ((media >= distanciaMinima + 75)and (direccion == "ADELANTE" ))
{
digitalWrite (MT2R_GiroAdelante, HIGH);// pin 3 analogWrite(MT2R_GiroAdelante,255);// pin 3
digitalWrite (MT1L_GiroAdelante, HIGH);// pin 5 analogWrite(MT1L_GiroAdelante,255);// pin 5
}
if ((media >= distanciaMinima + 75)and (direccion == "ATRAS ")) // ajustado a 13
{
digitalWrite (MT2R_GiroAtras, HIGH);// pin 6 analogWrite(MT2R_GiroAtras,255);// pin 6
digitalWrite (MT1L_GiroAtras, HIGH);// pin 9 analogWrite(MT1L_GiroAtras,255);// pin 9
}
//------------------------al 50% velocidad-----------
if ((media >= distanciaMinima + 50)and (media < distanciaMinima + 75)and (direccion == "ADELANTE" ))
{
analogWrite (MT2R_GiroAdelante,125); // pin 3 digitalWrite(MT2R_GiroAdelante,HIGH);// pin 3
analogWrite (MT1L_GiroAdelante,125); // pin 5 digitalWrite(MT1L_GiroAdelante,HIGH);// pin 5
}
if ((media >= distanciaMinima + 50)and (media < distanciaMinima + 75)and(direccion == "ATRAS ")
{
analogWrite (MT2R_GiroAtras,125); // pin 6 digitalWrite(MT2R_GiroAtras,HIGH);// pin 6
analogWrite (MT1L_GiroAtras,125); // pin 9 digitalWrite(MT1L_GiroAtras,HIGH);// pin 9
}
//------------------------al 28% velocidad-----------
if ((media >= distanciaMinima + 25)and (media < distanciaMinima + 50)and (direccion == "ADELANTE" ))
{
analogWrite (MT2R_GiroAdelante,70); // pin 3 digitalWrite(MT2R_GiroAdelante,HIGH);// pin 3
analogWrite (MT1L_GiroAdelante,70); // pin 5 digitalWrite(MT1L_GiroAdelante,HIGH);// pin 5
}
if ((media >= distanciaMinima + 25)and (media < distanciaMinima + 50) and(direccion == "ATRAS "
{
analogWrite (MT2R_GiroAtras,70); // pin 6 digitalWrite(MT2R_GiroAtras,HIGH);// pin 6
analogWrite (MT1L_GiroAtras,70); // pin 9 digitalWrite(MT1L_GiroAtras,HIGH);// pin 9
}
//------------------------al 20% velocidad-----------
if ((media >= distanciaMinima + 10)and (media < distanciaMinima + 25)and (direccion == "ADELANTE" ))
{
analogWrite (MT2R_GiroAdelante,50); // pin 3 digitalWrite(MT2R_GiroAdelante,HIGH);// pin 3
analogWrite (MT1L_GiroAdelante,50); // pin 5 digitalWrite(MT1L_GiroAdelante,HIGH);// pin 5
}
if ((media >= distanciaMinima + 10)and (media < distanciaMinima + 25) and(direccion == "ATRAS "
{
analogWrite (MT2R_GiroAtras,50); // pin 6 digitalWrite(MT2R_GiroAtras,HIGH);// pin 6
analogWrite (MT1L_GiroAtras,50); // pin 9 digitalWrite(MT1L_GiroAtras,HIGH);// pin 9
}
//------Parar + intermit Leds + invertir sentido giro durante 1sg a 1/2 velocidad -------
// ----y poner dato ='5' para parar motor a espera orden de joystick del móvil-----------
//A (media < distanciaMinima +10) parar 100ms + intermit leds ( 4 sgdos)+ invertir trayectoria para salir
//de esa posición. Se evita que choque con objetos que pueda encontrar de frente o por la parte trasera
if ((media < distanciaMinima +10 )and (direccion == "ADELANTE" ))
{
apagarTodos(); //detenerlo + intermit leds + salida direccion inversa
intermitenciaLeds(); //intermitencia 10ms + tiempoParada
digitalWrite (MT2R_GiroAtras, HIGH);
digitalWrite (MT1L_GiroAtras, HIGH);
delay(1000); //para que salga
dato = '5'; // para que se pare el motor
}
if ((media < distanciaMinima + 10) and(direccion == "ATRAS "))
{
apagarTodos(); //detenerlo + intermit leds + salida direccion inversa
intermitenciaLeds(); //intermitencia 10ms + tiempoParada
digitalWrite (MT2R_GiroAdelante, HIGH);
digitalWrite (MT1L_GiroAdelante, HIGH);
delay(1000); //para que salga
dato = '5'; // para que se pare el motor
}
}//fin función controlDistMinima()
//-----------------------------------------------------------
//++++FUNCIÓN giroAdelante()++++
void giroAdelante()
{
digitalWrite (MT2R_GiroAdelante, HIGH);// pin 3
digitalWrite (MT1L_GiroAdelante, HIGH);// pin 5
}//fin función void giroAdelante()
//-----------------------------------------------------------
//++++FUNCIÓN void giroAtras()++++
void giroAtras()
{
digitalWrite (MT2R_GiroAtras, HIGH);// pin 6
digitalWrite (MT1L_GiroAtras, HIGH);// pin 9
}//fin función void giroAtras()
//-----------------------------------------------------------
// se pondrán a nivel 0 la activación a los motores cuando se cambie
// de posición el Joystick o bien cuando esté en posición neutra
//y se le dará un pequeño tiempo(tiempoParada = 100) para hacer suaves los cambios
//++++FUNCIÓN apagarTodos()++++
void apagarTodos()
{
for (int i=2;i<=9;i++)
{
if ((i == 4)or (i==8))//el 4 y el 8 son entradas de los "echo" sensor distacia HC-SR04
{
continue ; // salta de nuevo al for sin hacer lo de más abajo
}//
digitalWrite (i,LOW); //pone a nivel 0 las salidas
} //fin for
delay(tiempoParada); //tiempo para que se paren todos los motores
}//fin función void apagarTodos()
//-----------------------------------------------------------
//-----------FUNCIÓN intermitenciaLeds()------
void intermitenciaLeds()
{
for (int i = 0; i<27; i++) // 4 sgdos de parpadeo, paro motor y salida en dirección inversa
{
digitalWrite (leds, HIGH);
delay(100);
digitalWrite (leds, LOW);
delay(50);
}//fin for
} //fin intermitenciaLeds()
//-----------------------------------------
PROGRAMA EN APPINVENTOR 2
Para el control del coche por bluetooth de Andrés Lasry “mando.apk” y complementado por Joaquín
Berrocal, para la recepción de datos desde la placa Arduino Uno del coche hacia el teléfono. Marzo-2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017
Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017

Más contenido relacionado

La actualidad más candente

Brazo robotico ksr10 ps2 x mayo 2015 a 9v_version_3
Brazo robotico ksr10 ps2 x  mayo 2015 a 9v_version_3Brazo robotico ksr10 ps2 x  mayo 2015 a 9v_version_3
Brazo robotico ksr10 ps2 x mayo 2015 a 9v_version_3
joaquinin1
 
Proyecto brazo robotico ksr10 enero marzo 2015 a 9 v-version_2
Proyecto brazo robotico ksr10  enero marzo 2015 a 9 v-version_2Proyecto brazo robotico ksr10  enero marzo 2015 a 9 v-version_2
Proyecto brazo robotico ksr10 enero marzo 2015 a 9 v-version_2
joaquinin1
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
joaquinin1
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
Victor Asanza
 
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
Victor Asanza
 
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
Victor Asanza
 
Informe N°2-Microcontroladores
Informe N°2-MicrocontroladoresInforme N°2-Microcontroladores
Informe N°2-Microcontroladores
Omar Ruiz
 
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
Victor Asanza
 
Proyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduinoProyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduino
UTEQ
 
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886
Victor Asanza
 
Seminari
SeminariSeminari
Seminari
Diego Landazury
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
Deyvis Gonzales Guevara
 
USBee_datasheet
USBee_datasheetUSBee_datasheet
USBee_datasheet
elektrostorecali
 
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
Fernando Marcos Marcos
 
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328PMultiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Fernando Marcos Marcos
 

La actualidad más candente (20)

Brazo robotico ksr10 ps2 x mayo 2015 a 9v_version_3
Brazo robotico ksr10 ps2 x  mayo 2015 a 9v_version_3Brazo robotico ksr10 ps2 x  mayo 2015 a 9v_version_3
Brazo robotico ksr10 ps2 x mayo 2015 a 9v_version_3
 
Proyecto brazo robotico ksr10 enero marzo 2015 a 9 v-version_2
Proyecto brazo robotico ksr10  enero marzo 2015 a 9 v-version_2Proyecto brazo robotico ksr10  enero marzo 2015 a 9 v-version_2
Proyecto brazo robotico ksr10 enero marzo 2015 a 9 v-version_2
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
 
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
 
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
 
Informe N°2-Microcontroladores
Informe N°2-MicrocontroladoresInforme N°2-Microcontroladores
Informe N°2-Microcontroladores
 
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
 
1. microcontrolador
1. microcontrolador1. microcontrolador
1. microcontrolador
 
Ejemplos pic c
Ejemplos pic cEjemplos pic c
Ejemplos pic c
 
Proyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduinoProyecto: Brazo mecanico con servomotor, potenciometro y arduino
Proyecto: Brazo mecanico con servomotor, potenciometro y arduino
 
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886
 
Seminari
SeminariSeminari
Seminari
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
USBee_datasheet
USBee_datasheetUSBee_datasheet
USBee_datasheet
 
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...
 
Usart 3
Usart 3Usart 3
Usart 3
 
Timers 2
Timers 2Timers 2
Timers 2
 
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328PMultiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
Multiplexor Display de 7 Segmentos con Arduino UNO ATmega328P
 
Adc 4
Adc 4Adc 4
Adc 4
 

Destacado

CENTRO DE LAVADO ECOLÓGICO
CENTRO DE LAVADO ECOLÓGICOCENTRO DE LAVADO ECOLÓGICO
CENTRO DE LAVADO ECOLÓGICO
Presen Pérez
 
Ecowash presentación original
Ecowash presentación originalEcowash presentación original
Ecowash presentación originalStefany Carpio
 
Sistema Eléctrico de Carrocería Hyundai !!
Sistema Eléctrico de Carrocería Hyundai !!Sistema Eléctrico de Carrocería Hyundai !!
Sistema Eléctrico de Carrocería Hyundai !!
Mundo Automotriz
 
Ductos de lubricacion y refrigeracion
Ductos de lubricacion y refrigeracionDuctos de lubricacion y refrigeracion
Ductos de lubricacion y refrigeracionbriller
 
Sistemas de lubricación
Sistemas de lubricaciónSistemas de lubricación
Sistemas de lubricacióngonguibri
 
Proyecto car-wash
Proyecto car-washProyecto car-wash
Proyecto car-washacadaniel
 
Sistemas de lubricación 33 diapo-2006-014-02- c
Sistemas de lubricación  33 diapo-2006-014-02- cSistemas de lubricación  33 diapo-2006-014-02- c
Sistemas de lubricación 33 diapo-2006-014-02- c
joaquinin1
 
Electricidad básica 1 Hyundai!!
Electricidad básica 1 Hyundai!!Electricidad básica 1 Hyundai!!
Electricidad básica 1 Hyundai!!
Mundo Automotriz
 
planeación estratégica de un taller de servicio automotriz
planeación estratégica de un taller de servicio automotriz planeación estratégica de un taller de servicio automotriz
planeación estratégica de un taller de servicio automotriz
Jorge Antonio Guillen
 
Perfektionismus vermeiden und dadurch Zeit sparen
Perfektionismus vermeiden und dadurch Zeit sparenPerfektionismus vermeiden und dadurch Zeit sparen
Perfektionismus vermeiden und dadurch Zeit sparen
Meike Kranz
 
HR Business Partner
HR Business PartnerHR Business Partner
IBERFASA
IBERFASAIBERFASA
IBERFASA
Isabel Castaño
 
Una història de dones
Una història de donesUna història de dones
Una història de dones
Meritxell Fernández Domènech
 
Elsa I. Lara Landeo
Elsa I. Lara LandeoElsa I. Lara Landeo
Elsa I. Lara Landeo
Elsa I. Lara Landeo
 
Suchen und Finden im Netz
Suchen und Finden im NetzSuchen und Finden im Netz
Suchen und Finden im Netz
Stefan Kontschieder
 
¿Qué es Bussi?
¿Qué es Bussi? ¿Qué es Bussi?
¿Qué es Bussi?
Alan Moreno Murillo
 
M-Files expandiert und wächst rasant in Europa
M-Files expandiert und wächst rasant in EuropaM-Files expandiert und wächst rasant in Europa
M-Files expandiert und wächst rasant in Europa
bhoeck
 
MyServicePortal.dokumente - Digitales Abrechnungsarchiv für die Personalabte...
MyServicePortal.dokumente  - Digitales Abrechnungsarchiv für die Personalabte...MyServicePortal.dokumente  - Digitales Abrechnungsarchiv für die Personalabte...
MyServicePortal.dokumente - Digitales Abrechnungsarchiv für die Personalabte...
Florian Maximilian Lauck-Wunderlich, MBA
 
Fullcar Services - Presentation independants
Fullcar Services - Presentation independants Fullcar Services - Presentation independants
Fullcar Services - Presentation independants
FullcarServices
 

Destacado (20)

CENTRO DE LAVADO ECOLÓGICO
CENTRO DE LAVADO ECOLÓGICOCENTRO DE LAVADO ECOLÓGICO
CENTRO DE LAVADO ECOLÓGICO
 
Ecowash presentación original
Ecowash presentación originalEcowash presentación original
Ecowash presentación original
 
Sistema Eléctrico de Carrocería Hyundai !!
Sistema Eléctrico de Carrocería Hyundai !!Sistema Eléctrico de Carrocería Hyundai !!
Sistema Eléctrico de Carrocería Hyundai !!
 
Ductos de lubricacion y refrigeracion
Ductos de lubricacion y refrigeracionDuctos de lubricacion y refrigeracion
Ductos de lubricacion y refrigeracion
 
Sistemas de lubricación
Sistemas de lubricaciónSistemas de lubricación
Sistemas de lubricación
 
Proyecto car-wash
Proyecto car-washProyecto car-wash
Proyecto car-wash
 
Sistemas de lubricación 33 diapo-2006-014-02- c
Sistemas de lubricación  33 diapo-2006-014-02- cSistemas de lubricación  33 diapo-2006-014-02- c
Sistemas de lubricación 33 diapo-2006-014-02- c
 
Anillos del piston
Anillos del pistonAnillos del piston
Anillos del piston
 
Electricidad básica 1 Hyundai!!
Electricidad básica 1 Hyundai!!Electricidad básica 1 Hyundai!!
Electricidad básica 1 Hyundai!!
 
planeación estratégica de un taller de servicio automotriz
planeación estratégica de un taller de servicio automotriz planeación estratégica de un taller de servicio automotriz
planeación estratégica de un taller de servicio automotriz
 
Perfektionismus vermeiden und dadurch Zeit sparen
Perfektionismus vermeiden und dadurch Zeit sparenPerfektionismus vermeiden und dadurch Zeit sparen
Perfektionismus vermeiden und dadurch Zeit sparen
 
HR Business Partner
HR Business PartnerHR Business Partner
HR Business Partner
 
IBERFASA
IBERFASAIBERFASA
IBERFASA
 
Una història de dones
Una història de donesUna història de dones
Una història de dones
 
Elsa I. Lara Landeo
Elsa I. Lara LandeoElsa I. Lara Landeo
Elsa I. Lara Landeo
 
Suchen und Finden im Netz
Suchen und Finden im NetzSuchen und Finden im Netz
Suchen und Finden im Netz
 
¿Qué es Bussi?
¿Qué es Bussi? ¿Qué es Bussi?
¿Qué es Bussi?
 
M-Files expandiert und wächst rasant in Europa
M-Files expandiert und wächst rasant in EuropaM-Files expandiert und wächst rasant in Europa
M-Files expandiert und wächst rasant in Europa
 
MyServicePortal.dokumente - Digitales Abrechnungsarchiv für die Personalabte...
MyServicePortal.dokumente  - Digitales Abrechnungsarchiv für die Personalabte...MyServicePortal.dokumente  - Digitales Abrechnungsarchiv für die Personalabte...
MyServicePortal.dokumente - Digitales Abrechnungsarchiv für die Personalabte...
 
Fullcar Services - Presentation independants
Fullcar Services - Presentation independants Fullcar Services - Presentation independants
Fullcar Services - Presentation independants
 

Similar a Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017

Proyecto brazo robotico ksr10 enero marzo 2015
Proyecto brazo robotico ksr10  enero marzo 2015Proyecto brazo robotico ksr10  enero marzo 2015
Proyecto brazo robotico ksr10 enero marzo 2015
joaquinin1
 
Robot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardwareRobot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardwareNamsohj Ozarazil
 
10.stock octubre 2015-ii-kit arduino
10.stock octubre   2015-ii-kit arduino10.stock octubre   2015-ii-kit arduino
10.stock octubre 2015-ii-kit arduino
Ripley Perú
 
Arduino
ArduinoArduino
16072007 5220esp
16072007 5220esp16072007 5220esp
16072007 5220esp
Jorge Paúl Castro Mendoza
 
Manual tk102 (2)
Manual tk102 (2)Manual tk102 (2)
Manual tk102 (2)
Jose Antonio Sanchez Zea
 
Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12
Hamiltonn Casallas
 
Servo motor 360 con arduino
Servo motor 360 con arduinoServo motor 360 con arduino
Servo motor 360 con arduino
Sergio Uscamaita Flores
 
Estrategias de apoyo arduino uno
Estrategias de apoyo arduino unoEstrategias de apoyo arduino uno
Estrategias de apoyo arduino uno
AngieAdrada1
 
Guia mci servo motor con arduino
Guia mci   servo motor con arduinoGuia mci   servo motor con arduino
Guia mci servo motor con arduino
MarceArocas
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-unoAngelik Hdez
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-unoAngelik Hdez
 
151887351 comunicaciones-satelitales
151887351 comunicaciones-satelitales151887351 comunicaciones-satelitales
151887351 comunicaciones-satelitales
Gomia Detutti
 
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINODISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
Fernando Marcos Marcos
 
guia de usuario gps.pdf
guia de usuario gps.pdfguia de usuario gps.pdf
guia de usuario gps.pdf
CesarBarcoOlivera1
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
Jair BG
 

Similar a Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017 (20)

Proyecto brazo robotico ksr10 enero marzo 2015
Proyecto brazo robotico ksr10  enero marzo 2015Proyecto brazo robotico ksr10  enero marzo 2015
Proyecto brazo robotico ksr10 enero marzo 2015
 
Robot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardwareRobot seguidor de línea con software y hardware
Robot seguidor de línea con software y hardware
 
8 entregable
8 entregable8 entregable
8 entregable
 
10.stock octubre 2015-ii-kit arduino
10.stock octubre   2015-ii-kit arduino10.stock octubre   2015-ii-kit arduino
10.stock octubre 2015-ii-kit arduino
 
Arduino
ArduinoArduino
Arduino
 
16072007 5220esp
16072007 5220esp16072007 5220esp
16072007 5220esp
 
Manual tk102 (2)
Manual tk102 (2)Manual tk102 (2)
Manual tk102 (2)
 
Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12Curso de microcontroladores capitulo 12
Curso de microcontroladores capitulo 12
 
Servo motor 360 con arduino
Servo motor 360 con arduinoServo motor 360 con arduino
Servo motor 360 con arduino
 
Estrategias de apoyo arduino uno
Estrategias de apoyo arduino unoEstrategias de apoyo arduino uno
Estrategias de apoyo arduino uno
 
Lab2 bluetooth.docx
Lab2 bluetooth.docxLab2 bluetooth.docx
Lab2 bluetooth.docx
 
Guia mci servo motor con arduino
Guia mci   servo motor con arduinoGuia mci   servo motor con arduino
Guia mci servo motor con arduino
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-uno
 
62962340 manual-arduino-uno
62962340 manual-arduino-uno62962340 manual-arduino-uno
62962340 manual-arduino-uno
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
151887351 comunicaciones-satelitales
151887351 comunicaciones-satelitales151887351 comunicaciones-satelitales
151887351 comunicaciones-satelitales
 
Proyecto
ProyectoProyecto
Proyecto
 
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINODISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
DISEÑO DE UN DETECTOR DE VELOCIDAD CON ARDUINO
 
guia de usuario gps.pdf
guia de usuario gps.pdfguia de usuario gps.pdf
guia de usuario gps.pdf
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 

Más de joaquinin1

Simulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdf
Simulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdfSimulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdf
Simulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdf
joaquinin1
 
Control_Temp_Hume_AC_junio_22.pdf
Control_Temp_Hume_AC_junio_22.pdfControl_Temp_Hume_AC_junio_22.pdf
Control_Temp_Hume_AC_junio_22.pdf
joaquinin1
 
Proyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal piris
Proyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal pirisProyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal piris
Proyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal piris
joaquinin1
 
Puente garaje-asm
Puente garaje-asmPuente garaje-asm
Puente garaje-asm
joaquinin1
 
Incubadora con foto, esquemas y programa en PBP 19 pag
Incubadora con foto, esquemas y programa en PBP 19 pagIncubadora con foto, esquemas y programa en PBP 19 pag
Incubadora con foto, esquemas y programa en PBP 19 pag
joaquinin1
 
Proyecto mi alarma_pbp_completo_48pag
Proyecto mi alarma_pbp_completo_48pagProyecto mi alarma_pbp_completo_48pag
Proyecto mi alarma_pbp_completo_48pag
joaquinin1
 
Ascensor fotos esquemas_asm_y_hex
Ascensor fotos esquemas_asm_y_hexAscensor fotos esquemas_asm_y_hex
Ascensor fotos esquemas_asm_y_hex
joaquinin1
 
Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...
Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...
Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...
joaquinin1
 
Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...
Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...
Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...
joaquinin1
 
Ruedas muy interesante _67_pag
Ruedas muy interesante _67_pagRuedas muy interesante _67_pag
Ruedas muy interesante _67_pag
joaquinin1
 
Sistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pagSistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pagjoaquinin1
 
Ac muy bueno 143 pag f sin logo
Ac muy bueno 143 pag f sin logoAc muy bueno 143 pag f sin logo
Ac muy bueno 143 pag f sin logo
joaquinin1
 
Explicacion de la carga comprob f
Explicacion de la carga comprob fExplicacion de la carga comprob f
Explicacion de la carga comprob f
joaquinin1
 
Climatizacion peugeot manual del alumno 76 pag interesante
Climatizacion peugeot manual del alumno 76 pag interesanteClimatizacion peugeot manual del alumno 76 pag interesante
Climatizacion peugeot manual del alumno 76 pag interesante
joaquinin1
 
Comprobacion con reloj f
Comprobacion con reloj fComprobacion con reloj f
Comprobacion con reloj f
joaquinin1
 
Ruedas y neumáticos 69 pag bueno
Ruedas y neumáticos 69 pag buenoRuedas y neumáticos 69 pag bueno
Ruedas y neumáticos 69 pag buenojoaquinin1
 
Direcciones peugeot 30 pag
Direcciones peugeot 30 pagDirecciones peugeot 30 pag
Direcciones peugeot 30 pagjoaquinin1
 
Suspensión camiones 45 pág c
Suspensión camiones 45 pág cSuspensión camiones 45 pág c
Suspensión camiones 45 pág cjoaquinin1
 
Sistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pagSistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pagjoaquinin1
 

Más de joaquinin1 (19)

Simulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdf
Simulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdfSimulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdf
Simulador_CAN_OBD2_por_Joaquín_Berrocal_Piris_mayo_2023.pdf
 
Control_Temp_Hume_AC_junio_22.pdf
Control_Temp_Hume_AC_junio_22.pdfControl_Temp_Hume_AC_junio_22.pdf
Control_Temp_Hume_AC_junio_22.pdf
 
Proyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal piris
Proyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal pirisProyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal piris
Proyecto bornera 60 +_94_pines_mayo_18_por_joaquin berrocal piris
 
Puente garaje-asm
Puente garaje-asmPuente garaje-asm
Puente garaje-asm
 
Incubadora con foto, esquemas y programa en PBP 19 pag
Incubadora con foto, esquemas y programa en PBP 19 pagIncubadora con foto, esquemas y programa en PBP 19 pag
Incubadora con foto, esquemas y programa en PBP 19 pag
 
Proyecto mi alarma_pbp_completo_48pag
Proyecto mi alarma_pbp_completo_48pagProyecto mi alarma_pbp_completo_48pag
Proyecto mi alarma_pbp_completo_48pag
 
Ascensor fotos esquemas_asm_y_hex
Ascensor fotos esquemas_asm_y_hexAscensor fotos esquemas_asm_y_hex
Ascensor fotos esquemas_asm_y_hex
 
Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...
Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...
Construcción máquina control numérico cnc agost-sept-2009_joaquin berrocal pî...
 
Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...
Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...
Control de 8 sensores de temperatura ds1621 en proteus eagle-asm-hex por joaq...
 
Ruedas muy interesante _67_pag
Ruedas muy interesante _67_pagRuedas muy interesante _67_pag
Ruedas muy interesante _67_pag
 
Sistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pagSistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pag
 
Ac muy bueno 143 pag f sin logo
Ac muy bueno 143 pag f sin logoAc muy bueno 143 pag f sin logo
Ac muy bueno 143 pag f sin logo
 
Explicacion de la carga comprob f
Explicacion de la carga comprob fExplicacion de la carga comprob f
Explicacion de la carga comprob f
 
Climatizacion peugeot manual del alumno 76 pag interesante
Climatizacion peugeot manual del alumno 76 pag interesanteClimatizacion peugeot manual del alumno 76 pag interesante
Climatizacion peugeot manual del alumno 76 pag interesante
 
Comprobacion con reloj f
Comprobacion con reloj fComprobacion con reloj f
Comprobacion con reloj f
 
Ruedas y neumáticos 69 pag bueno
Ruedas y neumáticos 69 pag buenoRuedas y neumáticos 69 pag bueno
Ruedas y neumáticos 69 pag bueno
 
Direcciones peugeot 30 pag
Direcciones peugeot 30 pagDirecciones peugeot 30 pag
Direcciones peugeot 30 pag
 
Suspensión camiones 45 pág c
Suspensión camiones 45 pág cSuspensión camiones 45 pág c
Suspensión camiones 45 pág c
 
Sistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pagSistema de carga y arranque del automovil 18 pag
Sistema de carga y arranque del automovil 18 pag
 

Último

Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
jheisonraulmedinafer
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 

Último (20)

Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 

Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017

  • 1. Coche por bluetooth controlado por la aplicación en appinventor 2 de Andrés Lasry “mando.apk” y complementada por Joaquín Berrocal, para la recepción de datos desde la placa Arduino Uno del coche hacia el teléfono. Marzo-2017 Carcasa utilizada; Coche CYBOT 950 del 2001 Información circuitería de la placa driver: http://www.lpilsley.co.uk/cybot/driver.htm
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Como se puede ver en el display marca 15 cm ------ 150 mm De distancia al sensor frontal bluetooh. Prueba realizada OK ver imágenes de abajo. También se ve que la distancia a objeto frontal que ha de pararse cuando va caminado de frente es a unos 28 cm. OK
  • 7.
  • 8. POSICIONES DEL JOYSTICK DEL MANDO DEL TFNO.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. /*"COCHE_POR_BT_Joaquin_Berrocal.ino" realizado por: JOAQUÍN BERROCAL PIRIS para "curso 17S1AR001 de Andrés Lasry" Nov16-Feb17 Se trata de utilizar una aplicación bluetooth por él realizada para enviar datos desde el telefono móvil a la placa Arduino. La aplicación la tiene realizada en ANDROID por APPINVENTOR2. es configurable los valores que envía. por defecto tiene los siguientes; 1 2 3 4 5 6 7 8 9 - Lo utilizaré para manejar mi coche CYBOT950 Eaglesmoss del 2001. Dirección web sobre el coche http://www.lpilsley.co.uk/cybot/driver.htm el cual dispone; + de una placa driver par activar los motores Le incorporo: + Una placa BT HC05 para la recepción bluetooth + Dos sensores de distancia HC-SR04, que pueden medir distancias entre 2 cm a 4mts con una precisión de 3mm + Dos leds que podrán ser activados desde el bluetooch + Programa "mando_mio_V1.aia" que realizo basado en el "mando.aia" de Andrés lasry. Le tengo hecho las siguientes modificaciones: + Permitirá la recepción de datos del arduino al móvil. es decir: + Permitirá ver en el tfno sobre el LCD, los valores de distancia al objeto de forma contínua + Se podrán encender o apagar los leds desde el tfno. + Todas las posiciones del Joystick ejecutan una función ----posición Joystick Android y actuación---- posicion 1 : Activa leds posicion 7 : los apaga. posición 2 : Marcha adelante. posición 8 : Marcha Atrás posición 4 : Marcha a Izquierda; girará aprox 90º y continuará de frente. posición 6 : Marcha a derecha; girará aprox 90º y continuará de frente. posición 3 : Gira sobre sí mismo a Dcha posición 7 : gira sobre sí mismo a Izqda. Todas estas posiciones se verán reflejadas sobre la LCD del móvil, así como el valor en centímetros de la distancia a los objetos de la parte frontal y trasera del coche. Claramente estos datos serán enviados de la placa arduino al móvil de forma constante. La dificultad del proyecto ha estado en el envío, no de uno, si no de tres datos diferentes al móvil tratando siempre de conseguir rapida respuesta del tfno móvil con la placa arduino del coche en el envío y re ------------- Para activar los 2 motores;---------------- - Giro hacia adelante: pines arduino 3 y 5 a nivel HIGH (con 1-3 de la placa driver) - Giro hacia atrás: pines arduino 6 y 9 a nivel HIGH (con 2-4 de la placa driver) - Giro a Dcha: pines arduino 3 en LOW y pin 5 en HIGH - Giro a izqda: pines arduino 3 en HIGH y pin 5 en LOW - Giro sobre sí mismo a Dcha : analogWrite(3,0); analogWrite (5,125); - Giro sobre sí mismo a Izqda : analogWrite(3,125); analogWrite (5,0); ----------------------------------------------------------- OBSERVACIONES: La velocidad se irá reduciendo a medida que se vaya acercando a cualquier obstáculo que se encuentre por delante o detrás del vehículo. Si se sobrepasa la distancia mínima, se producirá una intermitencia de los leds durante 4 segundos, y acto seguido, invertirá la marcha durante 1 sg para salir de esa posición, quedandosé en posición de "Parado" a la espera de recibir ordenes desde el joystick del mando. ------------Conexionado de la placa driver.------- Conector de 7 pines Nota RH y LH significan motor Righ (motor dcho, motor Left (motor izqdo) ---Motores hacia adelante, poner los pines 1-3 en high de la placa driver--- (que corresponden con el pin 3 y 5 de arduino en HIGH) 1 - RH motor 3 - LH motor ---Motor hacia Atrás, poner los pines 2-4 en high de la placa driver--- (que corresponden con el pin 6 y 9 de arduino en HIGH) 2 - RH motor
  • 19. 4 - LH motor 5 - 5 volts ,se puede usar como alimentación a otros elementos 6 - 6 volts , " " " " " " " 7 - ground. Conector de 4 pines 1 - ground. 2 - ground. 3 - 9 volts in procedente de la pila de 9V 4 - 6 volts in.procedente de las 4 pilas de 1.5V ------------------------- conector MT1; es el LH Motor (motor de la izqda) conector MT2; es el LR Motor (motor de la dcha) ++++++Conexionado ARDUINO PLACA DRIVER ++++++ ARDUINO PLACA DRIVER MT2R_GiroAdelante pin 3PWM --------- 1 MT1L_GiroAdelante pin 5PWM --------- 3 MT2R_GiroAtras pin 6PWM ------------ 2 MT2L_GiroAtras pin 9PWM ------------ 4 GND -------------------------------- 7 GND para unificar masas. 5 salida de la placa driver a + 5V 6 salida a +6V de la placa driver ----Conexionado Arduino sensor de distancia HC-SR04------ ARDUINO HC-SR04 2 como salida ----- TriggerDtero 4 como entrada ---- echoDtero. 7 como salida ----- TriggerTrasero 8 como entrada ---- echoTrasero. --------Conexionado Arduino sensor BlueTooth HC05--------- ARDUINO Sensor blueTooth HC05 10RX -------- Con pin Tx Bluetooth 11TX -------- Con pin Rx Bluetooth OBSERVACIONES: El bluetooth HC05 (que es maestro/esclavo)debemos siempre mandarle al final de cada comando r,n .Para ello configurar el monitor/terminal serial de arduino, para que envíe: "ambos NL & CR" Y lo mismo si lo hacemos de cualquier aplicación android como en este caso. ---------------------------------------------------------- ARDUINO 12 ----- activa dos leds azules que ya llevan R de 68ohm ----------------------------------------------------------- */ #include < SoftwareSerial .h> //Para manejo bluetooth HC05 //permite asignar otros puertos distinto al serial para poder utilizarlo en conjunto //Para utilizar a la par la comunicación con el Serial Monitor que utiliza los pines 0 RX y 1 Tx //y la comunicación BLUETOOH pines que le asigno el pin 10RX y 11Tx intercambiarlos con los de //la placa bluetooth 10Rx con el Tx y el 11Tx con el Rx de la placa bluetooth HC05 //---variables globales------- const int nLecturas=10; //para hacer 1/2 de 10 lecturas BT int lecturas[nLecturas]; //array para guardar últimas lecturas BT int indice = 0; int total = 0; unsigned int media = 0; //media de las lecturas unsigned int media1=0; //media del sensor frontal unsigned int media2=0; //media del sensor trasero String direccion = ""; unsigned long tiempo = 0; unsigned long distancia = 0; int distanciaMinima= 25; //valor inicial 25cm int tiempoGirar = 100; //tiempo para hacer girar corresponde aprox a 90º int tiempoParada = 100; //tiempo para que paren motores int dato = '5'; //inicia posición reposo joystick ""Ponerlo entre comillas"" o se verá mal en lcd. const int MT2R_GiroAdelante=3; //unido al pin 1 de la placa driver MT2 hacia adelante
  • 20. const int MT1L_GiroAdelante=5; //unido al pin 3 de la placa driver MT1 hacia adelante const int MT2R_GiroAtras=6; //unido al pin 2 de la placa driver MT2 hacia atrás const int MT1L_GiroAtras=9; //unido al pin 4 de la placa driver MT1 hacia atrás const int leds = 12;//para activar leds en la pro micro el 20 const int triggerF = 2;// para activar el trigger del sensor distancia HC-SR04 Frontal const int echoF = 4;// por donde recibe señal del sensor frontal const int triggerT = 7;// para activar el trigger del sensor distancia HC-SR04 Trasero const int echoT = 8;// por donde recibe señal del sensor Trasero //--------------------PROGRAMA----------------- /* OBSERVACIÓN MUY IMPORTANTE: sobre las limitaciones de la librería "SoftwareSerial (Rx,Tx);" http://manueldelgadocrespo.blogspot.com.es/p/biblioteca.html No todos los pines en la Mega y Mega 2.560 soportan interrupciones de cambio de nivel, por lo que solamente la siguiente puede ser utilizado para RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 ( 63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69). No todos los pines de las placas Leonardo y Micro soportan interrupciones de cambio de nivel, así que solamente los siguientes se pueden utilizar para RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). En Arduino o Genuino 101 la velocidad máxima actual de RX es de 57600bps En Arduino o Genuino 101 RX no funciona en el pin 13 */ //si utilizo la PRO MICRO El pin 10 de arduino pro micro hace de RX y 16 de TX SoftwareSerial bt(10,11); //en la uno 10RX Y 11TX ; intercambiarlos con la placa //bluetooth HC05, es decir, // unir pin10(RX)con ------> TX placa bluetooth HC05 //y el pin 11 (TX)con ------> RX placa bluetooth HC05 String posicJoystickGiroMot[]= {"ADELANTE" ,"ATRAS ","IZQUIERDA" ,"DERECHA " ,"PARADO " ,"LEDS ON void setup() { //--configuracion pines de salida y entrada--- //OUTPUT 2-3-5-6-7-9 y el 20 INPUT 4-8 conectados al pin "echo" del sensor ultrasónico Frontal - Trasero //los pines 10Rx y 11Tx para el bluetooth no hace falta configurarlos for (int i=2;i<=9;i++) { if ((i == 4)or (i==8)) { pinMode (i,INPUT); //configura como entrada el 4 y 8 continue ; // salta de nuevo al for sin hacer lo de más abajo }// pinMode (i,OUTPUT ); digitalWrite (i,LOW); //los inicializa a cero } //fin for pinMode (leds, OUTPUT ); //pin 12 activar leds como salida digitalWrite (leds, LOW); //inicia a nivel 0 //--------------------------------- // MI PLAQUITA bluetooh va a "9600". //la comunicación con la placa bluetooth HC05 sólo acepta 9600 baudios. bt.begin(9600); //serial bluetooth Serial .begin(9600); //Serial arduino; acepta todas las velocidades //---------------------------------------------------------------- }// fin setup (); //---------------------------------------------------------------- void loop() { //-------------MENSAJES DISTANCIA AL MÓVIL--------- //int medidorDistancias (byte pinTrigger,byte pinEcho,int distancia) medidorDistancias (2,4,distanciaMinima);
  • 21. media1= media; //"Distancia Frontal: " medidorDistancias (7,8,distanciaMinima); media2= media; //"Distancia Trasera: " // sprintf(buffer,"%d,%d",media1,media2);//no acepta el sprintf(buffer,"%s,%d,%d",direccion,media1,media2); //----ENVÍO AL SERIAL se puede suprimir------------ Serial .println (direccion); //variable global con la dirección que toma el vehículo Serial .print(media1); //Sensor Delantero Serial .println (" cm"); Serial .print(media2); //Sensor Trasero Serial .println (" cm"); //----- SENSORES DE DISTANCIA SR-HC04------------ //----------ENVÍO DE DATOS AL MÓVIL--------------- bt.print(direccion); //index 1 variable global con la dirección que toma el vehículo. //sensor ultrasonico Frontal bt.print("/"); //separador bt.print(media1); //index 2 Sensor Delantero bt.print(" cm"); bt.print("/");//separador para lectura del siguiente sensor ultrasónico //sensor ultrasonico Trasero bt.print(media2); //index 3 Sensor Trasero bt.print(" cm"); bt.print("/"); //separador para lectura del siguiente sensor ultrasónico //--------------------------------------------------- } // fin loop() //++++++++++++++++FUNCIONES UTILIZADAS++++++++++++++++ // ----FUNCIÓN DE LECTURA PUERTO BLUETOOTH---- // lo pongo aquí para que lea de forma constante y se pueda tener //respuesta más inmediata a los botones del Joystick móvil void lecturaPuertoBT() { while(bt.available ()>0) { int datoprueba = bt.read();//variable entera global if ((datoprueba!=13)and (datoprueba!=10)) { dato = datoprueba; } // En la función "switch" el valor a comparar "case X: " X sólo puede ser de tipo entero. //otros lenguajes sí lo aceptan pero arduino NO: No obstante, he probado que si pongo //en los "case" el valor entero a comprobar entre comillas; ej case '2' todo ok SI LO ACEPTA //es decir el valor enviado por el mando bluetooth es el entero 2. Si lo pongo sin comillas no lo acepta switch (dato) //comprobamos el caracter que nos llega { //---para activar o desactivar los leds pin 12 --- case '1': { Serial .println (posicJoystickGiroMot[5]); //GIRO HACIA ADELANTE direccion = "LEDS ON "; //ajustado a 11 caracteres+espacios en el appinventor digitalWrite (leds, HIGH);// pin 12 break; } case '9': { Serial .println (posicJoystickGiroMot[6]); //GIRO HACIA ADELANTE
  • 22. direccion = "LEDS OFF " ;//ajustado a 10 11 digitalWrite (leds, LOW);// pin 12 break; } //------------------------------------------------- case '2': { Serial .println (posicJoystickGiroMot[0]); //GIRO HACIA ADELANTE direccion = "ADELANTE" ; //ajustado a 8 apagarTodos(); giroAdelante(); //pin 1 y 3 en HIGH break; } case'8': { Serial .println (posicJoystickGiroMot[1]); //GIRO HACIA ATRÁS direccion = "ATRAS "; //ajustado a 13 apagarTodos(); giroAtras(); //pines 6 y 9 en HIGH break; } case'4': { Serial .println (posicJoystickGiroMot[2]); //GIRO A IZQDA direccion = "IZQUIERDA" ;//ajustado a 9 apagarTodos(); //luego activa el nuevo giro digitalWrite (MT2R_GiroAdelante, HIGH);// pin 3 digitalWrite (MT1L_GiroAdelante, LOW);// pin 5 delay(tiempoGirar); //tiempo para girar apagarTodos(); giroAdelante(); //pin 1 y 3 en HIGH break; } case'6': { Serial .println (posicJoystickGiroMot[3]); //GIRO A DCHA direccion = "DERECHA " ; //ajustado a 9 //primero desactiva TODOS los MOTORES apagarTodos(); //luego activa el nuevo giro digitalWrite (MT2R_GiroAdelante, LOW);// pin 3 digitalWrite (MT1L_GiroAdelante, HIGH);// pin 5 delay(tiempoGirar); //tiempo para girar apagarTodos(); giroAdelante(); //pin 1 y 3 en HIGH break; } case'5': { Serial .println (posicJoystickGiroMot[4]); //VEHÍCULO PARADO direccion = "PARADO " ; //ajustado a 11 apagarTodos(); break; } // -----hacer rotar de forma continua a Dcha o a Izqda------ case'3': //giro a DCHA continuo { Serial .println (posicJoystickGiroMot[2]); //GIRO A DCHA direccion = "GIRO >>>>" ;//ajustado a 9 apagarTodos(); //luego activa el nuevo giro analogWrite (MT2R_GiroAdelante,0); // pin 3 analogWrite (MT1L_GiroAdelante,125); // pin 5 break; } case'7': //giro a IZQDA continuo {
  • 23. Serial .println (posicJoystickGiroMot[2]); //GIRO A IZQDA direccion = "<<<< GIRO" ;//ajustado a 9 apagarTodos(); //luego activa el nuevo giro analogWrite (MT2R_GiroAdelante,125); // pin 3 analogWrite (MT1L_GiroAdelante,0); // pin 5 break; } //---------------------------------------------------------- } //fin del switch(dato) } //fin if bt.available()>0 }//fin void lecturaPuertoBT //-------------------------------------------- //++++FUNCIÓN medidorDistancias ()++++ //------------instrucciones para el control de la distancia ---- //--si es menor a una distancia que especifiquemos se parara---- // se hace una media de 10 lecturas para dar un valor más estbilizado int medidorDistancias (byte pinTrigger,byte pinEcho,int distMinima) { total = 0; // Sí lo necesito al no utilizar el array int lecturas[nLecturas]; indice = 0; //reiniciamos el indice. while (indice < nLecturas) { digitalWrite (pinTrigger, LOW); //activación pinTrigger 2 - 7 sensores frontal-trasero delayMicroseconds (5); //para estabilizar otros le dan sólo 2 us digitalWrite (pinTrigger, HIGH); delayMicroseconds (10); //ha de ser 10 us para el sensor HC-SR04 otros sensores le dan sólo 5 us. digitalWrite (pinTrigger, LOW); //paro la activación y comienza el envío de la señal ultrasónica //por el pin "echo" se empieza a recibir una señal HIGH la función pulsein(), pausa el sketc //para contar el tiempo transcurrido hasta recibir el rebote, momento en el cual por el pi //"echo" pasa a detectarse una señal LOW y pulseIn() devuelve su resultado en microsegundos // http://manueldelgadocrespo.blogspot.com.es/p/pulsin.html tiempo = pulseIn (pinEcho, HIGH);//receptor pinEcho 4 - 8 sensores frontal-trasero distancia = 0.01717*tiempo; // considero la velocidad del sonido como 343,2m/s según la wiki a 20 //dando un resultado de 0.01717cm por cada microsegundo considerando total= total + distancia; indice = indice + 1; lecturaPuertoBT(); // si lo dejo me sube el contaje de la distancia delayMicroseconds (25); //tiempo mínimo entre lecturas es de 20 us. }//fin while indice <= nlecturas media = total / nLecturas; //en cm //Según donde mires dicen que el sensor de distancia mide desde //los 2cm a 4 ó 5 o incluso 7 metros con una precision de 3 mm. //para evitar posibles problemas limito su lectura en 400 if (media > 400){media = 400;} controlDistMinima(); }//fin función medidorDistancias (...) //-------------------------------------------------------------- //++++++++++++FUNCIÓN controlDistMinima()++++++++++ //Evita se pase, y si lo hace para,parpadean los leds y retrocede-avanza un tiempo void controlDistMinima() { // if (dirección != direccionPrevia) ///// { direccionPrevia = direccion; //evita que //---------------------al 100% máxima velociad-------- if ((media >= distanciaMinima + 75)and (direccion == "ADELANTE" )) {
  • 24. digitalWrite (MT2R_GiroAdelante, HIGH);// pin 3 analogWrite(MT2R_GiroAdelante,255);// pin 3 digitalWrite (MT1L_GiroAdelante, HIGH);// pin 5 analogWrite(MT1L_GiroAdelante,255);// pin 5 } if ((media >= distanciaMinima + 75)and (direccion == "ATRAS ")) // ajustado a 13 { digitalWrite (MT2R_GiroAtras, HIGH);// pin 6 analogWrite(MT2R_GiroAtras,255);// pin 6 digitalWrite (MT1L_GiroAtras, HIGH);// pin 9 analogWrite(MT1L_GiroAtras,255);// pin 9 } //------------------------al 50% velocidad----------- if ((media >= distanciaMinima + 50)and (media < distanciaMinima + 75)and (direccion == "ADELANTE" )) { analogWrite (MT2R_GiroAdelante,125); // pin 3 digitalWrite(MT2R_GiroAdelante,HIGH);// pin 3 analogWrite (MT1L_GiroAdelante,125); // pin 5 digitalWrite(MT1L_GiroAdelante,HIGH);// pin 5 } if ((media >= distanciaMinima + 50)and (media < distanciaMinima + 75)and(direccion == "ATRAS ") { analogWrite (MT2R_GiroAtras,125); // pin 6 digitalWrite(MT2R_GiroAtras,HIGH);// pin 6 analogWrite (MT1L_GiroAtras,125); // pin 9 digitalWrite(MT1L_GiroAtras,HIGH);// pin 9 } //------------------------al 28% velocidad----------- if ((media >= distanciaMinima + 25)and (media < distanciaMinima + 50)and (direccion == "ADELANTE" )) { analogWrite (MT2R_GiroAdelante,70); // pin 3 digitalWrite(MT2R_GiroAdelante,HIGH);// pin 3 analogWrite (MT1L_GiroAdelante,70); // pin 5 digitalWrite(MT1L_GiroAdelante,HIGH);// pin 5 } if ((media >= distanciaMinima + 25)and (media < distanciaMinima + 50) and(direccion == "ATRAS " { analogWrite (MT2R_GiroAtras,70); // pin 6 digitalWrite(MT2R_GiroAtras,HIGH);// pin 6 analogWrite (MT1L_GiroAtras,70); // pin 9 digitalWrite(MT1L_GiroAtras,HIGH);// pin 9 } //------------------------al 20% velocidad----------- if ((media >= distanciaMinima + 10)and (media < distanciaMinima + 25)and (direccion == "ADELANTE" )) { analogWrite (MT2R_GiroAdelante,50); // pin 3 digitalWrite(MT2R_GiroAdelante,HIGH);// pin 3 analogWrite (MT1L_GiroAdelante,50); // pin 5 digitalWrite(MT1L_GiroAdelante,HIGH);// pin 5 } if ((media >= distanciaMinima + 10)and (media < distanciaMinima + 25) and(direccion == "ATRAS " { analogWrite (MT2R_GiroAtras,50); // pin 6 digitalWrite(MT2R_GiroAtras,HIGH);// pin 6 analogWrite (MT1L_GiroAtras,50); // pin 9 digitalWrite(MT1L_GiroAtras,HIGH);// pin 9 } //------Parar + intermit Leds + invertir sentido giro durante 1sg a 1/2 velocidad ------- // ----y poner dato ='5' para parar motor a espera orden de joystick del móvil----------- //A (media < distanciaMinima +10) parar 100ms + intermit leds ( 4 sgdos)+ invertir trayectoria para salir //de esa posición. Se evita que choque con objetos que pueda encontrar de frente o por la parte trasera if ((media < distanciaMinima +10 )and (direccion == "ADELANTE" )) { apagarTodos(); //detenerlo + intermit leds + salida direccion inversa intermitenciaLeds(); //intermitencia 10ms + tiempoParada digitalWrite (MT2R_GiroAtras, HIGH); digitalWrite (MT1L_GiroAtras, HIGH); delay(1000); //para que salga dato = '5'; // para que se pare el motor } if ((media < distanciaMinima + 10) and(direccion == "ATRAS ")) { apagarTodos(); //detenerlo + intermit leds + salida direccion inversa intermitenciaLeds(); //intermitencia 10ms + tiempoParada digitalWrite (MT2R_GiroAdelante, HIGH); digitalWrite (MT1L_GiroAdelante, HIGH); delay(1000); //para que salga dato = '5'; // para que se pare el motor }
  • 25. }//fin función controlDistMinima() //----------------------------------------------------------- //++++FUNCIÓN giroAdelante()++++ void giroAdelante() { digitalWrite (MT2R_GiroAdelante, HIGH);// pin 3 digitalWrite (MT1L_GiroAdelante, HIGH);// pin 5 }//fin función void giroAdelante() //----------------------------------------------------------- //++++FUNCIÓN void giroAtras()++++ void giroAtras() { digitalWrite (MT2R_GiroAtras, HIGH);// pin 6 digitalWrite (MT1L_GiroAtras, HIGH);// pin 9 }//fin función void giroAtras() //----------------------------------------------------------- // se pondrán a nivel 0 la activación a los motores cuando se cambie // de posición el Joystick o bien cuando esté en posición neutra //y se le dará un pequeño tiempo(tiempoParada = 100) para hacer suaves los cambios //++++FUNCIÓN apagarTodos()++++ void apagarTodos() { for (int i=2;i<=9;i++) { if ((i == 4)or (i==8))//el 4 y el 8 son entradas de los "echo" sensor distacia HC-SR04 { continue ; // salta de nuevo al for sin hacer lo de más abajo }// digitalWrite (i,LOW); //pone a nivel 0 las salidas } //fin for delay(tiempoParada); //tiempo para que se paren todos los motores }//fin función void apagarTodos() //----------------------------------------------------------- //-----------FUNCIÓN intermitenciaLeds()------ void intermitenciaLeds() { for (int i = 0; i<27; i++) // 4 sgdos de parpadeo, paro motor y salida en dirección inversa { digitalWrite (leds, HIGH); delay(100); digitalWrite (leds, LOW); delay(50); }//fin for } //fin intermitenciaLeds() //-----------------------------------------
  • 26. PROGRAMA EN APPINVENTOR 2 Para el control del coche por bluetooth de Andrés Lasry “mando.apk” y complementado por Joaquín Berrocal, para la recepción de datos desde la placa Arduino Uno del coche hacia el teléfono. Marzo-2017