Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017

download Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017

of 35

  • date post

    15-Apr-2017
  • Category

    Education

  • view

    42
  • download

    2

Embed Size (px)

Transcript of Proyecto coche por bluetooth por joaquin berrocal piris marzo 2017

  • Coche por bluetooth controlado por la aplicacin en appinventor 2 de Andrs Lasry mando.apk y complementada por Joaqun Berrocal, para la recepcin de datos desde la placa Arduino Uno del coche hacia

    el telfono. Marzo-2017

    Carcasa utilizada; Coche CYBOT 950 del 2001 Informacin circuitera de la placa driver: http://www.lpilsley.co.uk/cybot/driver.htm

    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 imgenes de abajo.

    Tambin 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:JOAQUN BERROCAL PIRIS para "curso 17S1AR001 de Andrs Lasry" Nov16-Feb17 Se trata de utilizar una aplicacin bluetooth por l realizada para enviar datos desde el telefono mvil a la placa Arduino. La aplicacin la tiene realizada en ANDROID por APPINVENTOR2. es configurable los valores que enva.por defecto tiene los siguientes; 1 2 3 4 5 6 7 8 9 - Lo utilizar para manejar mi coche CYBOT950 Eaglesmoss del 2001. Direccin web sobre el coche http://www.lpilsley.co.uk/cybot/driver.htmel cual dispone; + de una placa driver par activar los motores Le incorporo: + Una placa BT HC05 para la recepcin bluetooth + Dos sensores de distancia HC-SR04, que pueden medir distancias entre 2 cm a 4mts con una precisin de 3mm + Dos leds que podrn ser activados desde el bluetooch + Programa "mando_mio_V1.aia" que realizo basado en el "mando.aia" de Andrs lasry. Le tengo hecho las siguientes modificaciones: + Permitir la recepcin de datos del arduino al mvil. es decir: + Permitir ver en el tfno sobre el LCD, los valores de distancia al objeto de forma contnua + Se podrn encender o apagar los leds desde el tfno. + Todas las posiciones del Joystick ejecutan una funcin

    ----posicin Joystick Android y actuacin---- posicion 1 : Activa leds posicion 7 : los apaga. posicin 2 : Marcha adelante. posicin 8 : Marcha Atrs posicin 4 : Marcha a Izquierda; girar aprox 90 y continuar de frente. posicin 6 : Marcha a derecha; girar aprox 90 y continuar de frente. posicin 3 : Gira sobre s mismo a Dcha posicin 7 : gira sobre s mismo a Izqda.

    Todas estas posiciones se vern reflejadas sobre la LCD del mvil, as como el valor en centmetros de la distancia a los objetos de la parte frontal y trasera del coche.Claramente estos datos sern enviados de la placa arduino al mvil de forma constante. La dificultad del proyecto ha estado en el envo, no de uno, si no de tres datos diferentes al mviltratando siempre de conseguir rapida respuesta del tfno mvil con la placa arduino del coche en el envo y recepcin de datos

    ------------- 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 atrs: 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 obstculo que se encuentrepor delante o detrs del vehculo.

    Si se sobrepasa la distancia mnima, se producir una intermitencia de los leds durante 4 segundos, y acto seguido, invertir la marcha durante 1 sg para salir de esa posicin, quedandos en posicin de "Parado" a la espera de recibir ordenes desde el joystick del mando.

    ------------Conexionado de la placa driver.-------Conector de 7 pinesNota 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 Atrs, 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 alimentacin a otros elementos6 - 6 volts , " " " " " " "7 - ground.

    Conector de 4 pines1 - ground.2 - ground.3 - 9 volts in procedente de la pila de 9V4 - 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 DRIVERMT2R_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-SR042 como salida ----- TriggerDtero4 como entrada ---- echoDtero.

    7 como salida ----- TriggerTrasero8 como entrada ---- echoTrasero.

    --------Conexionado Arduino sensor BlueTooth HC05---------ARDUINO Sensor blueTooth HC0510RX -------- Con pin Tx Bluetooth11TX -------- 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 enve: "ambos NL & CR"Y lo mismo si lo hacemos de cualquier aplicacin android como en este caso.----------------------------------------------------------ARDUINO12 ----- 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 comunicacin con el Serial Monitor que utiliza los pines 0 RX y 1 Tx

    //y la comunicacin 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 BTint 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 90int tiempoParada = 100; //tiempo para que paren motoresint dato = '5'; //inicia posicin 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 atrsconst int MT1L_GiroAtras=9; //unido al pin 4 de la placa driver MT1 hacia atrs

    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 Frontalconst int echoF = 4;// por donde recibe seal del sensor frontal

    const int triggerT = 7;// para activar el trigger del sensor distancia HC-SR04 Traseroconst int echoT = 8;// por donde recibe seal del sensor Trasero

    //--------------------PROGRAMA-----------------/* OBSERVACIN MUY IMPORTANTE: sobre las limitaciones de la librera "SoftwareSerial (Rx,Tx);"http://manueldelgadocrespo.blogspot.com.es/p/biblioteca.htmlNo 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 mxima actual de RX es de 57600bpsEn 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 TXSoftwareSerial 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 ultrasnico Frontal - Trasero//los pines 10Rx y 11Tx para el bluetooth no hace falta configurarlos

    for (int i=2;i

  • media1= media; //"Distancia Frontal: "

    medidorDistancias (7,8,distanciaMinima);

    med