Robot 4×4 controlado con un movil (Android) a traves de bluetooth.

DSC_0298

¡¡¡ Ya estamos de vuelta con un nuevo proyecto!!!  Esta vez haremos algo mas dinámico. Siempre es mas divertido construirnos algo con movimiento, en vez de ver caracteres en una pantalla.

En esta nueva entrada, nos construiremos un robot 4×4, el cual manejaremos a través de nuestro móvil o dispositivo Android. Utilizaremos los giroscopios del dispositivo para dirigir nuestro robot. Para realizar la conexión entre nuestro dispositivo y el Arduino, que se encarga de controlar el robot, utilizaremos comunicación Bluetooth.

Aquí tenemos un listado del material que vamos a utilizar:

Unas fotos de nuestro material:

  • Arduino Mega:

Arduino Mega2560 Revision3_01

  • Robot 4×4:

chasis 4x4

  • Módulo Bluetooth JY-MCU:

modulo bluetooth

  • Puente en H:

driver-de-motores-l298n

  • Porta pilas 6V:

Portapilas-4xAAA

¡¡¡ Empecemos el montaje !!!

  • El primer paso sera montar el chasis del robot 4×4. En mi caso venía sin instrucciones. Como podreis comprobar, no tiene ninguna complicación.

DSC_0215

DSC_0217

Os recomiendo soldar los cables de los motores antes de montarlos.

DSC_0218

Ya que nuestro puente en H solo es capaz de controlar 2 motores, conectaremos los motores de cada lado en paralelo. Una buena prueba de que hemos hecho las cosas bien, es probarlos con unas pilas y comprobar que en cada lado los motores giran en el mismo sentido.

DSC_0219

Ahora un poco de teoría sobre puentes en H:

  • La finalidad de un puente en H es controlar grandes cantidades de corriente, como las que necesitan los motores del robot.
  • Con una cantidad mínima de corriente, que es lo que Arduino nos proporciona, podremos controlar la velocidad y el sentido de giro de los motores.
  • 3 señales son suficientes para controlar cada motor, en esta caso son dos motores, ya que los tenemos conectados en paralelo.
  • Utilizaremos 2 señales para controlar el sentido de giro del motor, y la tercera para controlar la velocidad.

Aquí podeis ver un esquema de conexión del Driver L293B:

l293b

  • Para controlar el motor M1, usaremos los pines IN1 e IN2 para controlar el sentido de giro del motor.

tablal293

En esta tabla: DIRA seria el pin IN1 , DIRB seria el pin IN2  y ENABLE seria el pin EN1-2.

  • El pin EN1-2 para controlar la velocidad.
  • En el pin VC tendremos la tensión con la que alimentaremos los motores (12V).
  • El pin VSS lo conectaremos a 5V, que el mismo Arduino nos los proporciona.

Aquí podeis ver una foto de mi puente en H, decidí hacérmelo en vez de comprarlo 😉

DSC_0228

El puente en H ya montado en el robot:

DSC_0301

Comunicación Bluetooth:

  • Para comunicar nuestro dispositivo Android con nuestro robot 4×4, usaremos comunicación Bluetooth. El modulo Bluetooth JY-MCU nos brinda una gran cantidad de opciones. La comunicación entre el Arduino y el modulo bluetooth se realiza por conexión serial, asi que con solo un par de cables tenemos todo lo necesario para hacer que nuestro Arduino se comunique con el modulo Bluetooth.
  • Os dejo un link muy bueno, donde encontrareis mas información sobre el modulo Bluetooth, como configurarlo y una simple aplicación entre Arduino y Android.

Ahora toca la parte de electrónica:

  • Puente en H:

Driver 293b                  Arduino Mega

Pin 1 ————————–> Pin 7

Pin 2 ————————-> Pin 51

Pin 7 ————————-> Pin 53

Pin 9 ————————-> Pin 6

Pin 10 ————————> Pin 45

Pin 14 ————————> Pin 47

Pin 16 (Vss) —————–> 5 Voltios (obligatorio)

Pin 8 (Vc) ——————-> 12 Voltios (Opcional)

En el pin 8 (Vc) conectaremos la tensión que necesitemos para alimentar nuestros motores.

¡¡¡OJO!!! COMO SIEMPRE QUE SE TRABAJAN CON TENSIONES DISTINTAS, RECORDAD TENER SIEMPRE LAS MASAS(GND) COMUNES.

  • Modulo Bluetooth:

Bluetooth                      Arduino Mega

Pin RX —————–> Pin 18(TX1)

Pin TX —————–> Pin 19(RX1)

Software:

A continuación os dejo el software necesario , tanto para Arduino como para Android. Os he dejado 2 versiones, una que se controla el robot con botones que aparecen en la pantalla del dispositivo. Y otra versión que se controla mediante giroscopios, simplemente hay que mover el dispositivo.

Para Arduino: link

Para Android: link.

  • Nota importante: Para la aplicacion de Android, en el MainActivity.java  hay que modificar la linea 57. Tendreis que poner la dirección MAC del modulo Bluetooth.

Y por último un video de demostración:

Advertisements
This entry was posted in Arduino. Bookmark the permalink.

25 Responses to Robot 4×4 controlado con un movil (Android) a traves de bluetooth.

  1. Pingback: Robot 4×4 controlado con el mando de la Wii (Nunchuck) | Arduyectos

  2. quike says:

    Una pregunta el arduino hay que programarlo o no? O solo es con la aplicación y ya?

  3. quike says:

    Otra pregunta no tienes otro tutoriales mas completo que diga como poner el cableado como un vídeo más en especifico

    • arduyectos says:

      Buenas, de momento no tengo otro tutorial para el cableado. En Google puedes encontrar mucha informacion sobre el manejo de motores con Arduino y sobre puentes en H.

      Saludos

  4. oye bro. con que programa abro lo de android

  5. como modifico la linea 57

  6. Andrés Olvera says:

    Disculpa podrías poner los códigos fuente que usaste para programar? Me interesa bastante hacer este proyecto y poder guiarme un poco en ellos. Gracias.

  7. jreyes says:

    El codigo del arduino seria mas simple si se utilizara un arduino uno con un puente H L293D
    Gracias

    • arduyectos says:

      Buenas.

      El codigo para el Arduino Mega y el Uno seria el mismo, salvo por la asignacion de pines.
      El puente en H usado en el proyecto es un L293B, por lo que la programacion es la misma que para el L293D.

      Saludos

  8. jreyes says:

    Gracias por su respuesta. A que se debe que cuando hago pruebas desde un celular y el monitor serial del arduino uno aparece basura cuando se oprime cualquier boton de la aplicacion, siempre aparece la misma lagrilla ($).

    Saludos y gracias

  9. xicotencalt says:

    oye amigo tengo un problema con el cogido del arduino cuando le doy verificar al programa o cargarlo al arduino me sale un Error.

    ´Serial1′ was not declared in this scope

    ese error me sale como lo puedo solucionar
    por favor ayúdenme
    saludos y gracias

    • arduyectos says:

      Hola, si estas tabajando con Arduino MEGA, asegurate de tener en el IDE de Arduino,
      seleccionada la tarjeta Arduino Mega (IDE-Herramientas-tarjeta-Arduino Mega 2560 or Mega ADK)

      Si trabajas con Arduino UNO, no tiene Serial1, asi que tendras que trabajar con el Serial

      Saludos.

  10. Kevin says:

    ¿Como instalo y configuro la aplicación en un dispositivo android?

    • arduyectos says:

      Buenas, se instala como cualquier aplicación, pero para configurarla, necesitas modificar el codigo fuente antes de instalarla. No tuve tiempo de programar mejor la aplicacion.

      Saludos.

  11. erick says:

    Buenas , disculpa pero soy nuevo en esto, no pude encontrar el modulo de bluetooth que colocas en el post. Mi pregunta es si un hc06 sirvira aqui las especificaciones

    VERSION BLUETOOTH : V2.0+EDR

    FRECUENCIA : 2,4GHZ

    MODULACION : GFSK

    PODER DE TRANSMISION  ≤4dBm, Class 2

    VELOCIDAD : ASYCRONO HASTA 2.1 MBPS SINCRONO HASTA 1MBPS

    PERFIL BLUETOOTH : PUERTO SERIAL

    ALIMENTACION : 3.3 Y 5 V

    TASA PREDETERMINADA 9600,8,1,N

  12. Leandro says:

    Buenas muy buen aporte queria saber si me podrias ayudar con mi proyecto, el cual quiero mover 4 motores dc, yo tengo un arduino uno, un motor shield L293D,(no el integrado solo sino la placa completa), tengo modulo bluetooth HC-06 y servo, mi complicacion es que como hago para conectar los 4 motores, si es tan simple con colocarlos en el shield cada uno en su lugar desde M1 a M4, y montar el shield en el arduino uno,cargar algun sketch y que funcionara o estoy olvidando algunos pasos, desde ya muchas gracias y espero alguna solucion, saludos

    • arduyectos says:

      Buenas, basicamente es como tu comentas. Conectar los motores a la shield, la shield al Arduino y cargar algun sketch. El problema viene, q si conectas los 4 motores de forma separada, solo puedes hacer que giren en una direccion, si los conectas en paralelo, puedes hacer que giren en ambas direcciones, pero digamos que los motores ya no son independientes, funcionan en pares. Cada par de motores giraran en la misma direccion.

      Saludos.

  13. Leandro says:

    Buenas disculpa la molestia, tengo una duda con el shield L293D.
    La shield la tengo montada en la placa arduino uno el problema es que no se que pines toma del arduino para mover los motores, osea cuando le subo codigo que diga motor1 y motor4 los cuales estan conectados en paralelo funcionan bien, pero hay varios codigos que se refieren a los pines osea:
    int motor1Pin1 = 3; // pin 2 on L293D IC
    int motor1Pin2 = 4; // pin 7 on L293D IC
    int enable1Pin = 6; // pin 1 on L293D IC
    int motor2Pin1 = 8; // pin 10 on L293D IC
    int motor2Pin2 = 9; // pin 15 on L293D IC
    int enable2Pin = 11; // pin 9 on L293D IC
    no se como modificar el codigo para que se muevan los motores.
    Espero me entiendas y gracias.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s