Coche controlado por bluetooth desde PC



Con esta sesión damos inicio a una serie de tutoriales que culminarán con la construcción de nuestro propio coche controlado por bluetooth programado con S4A.

El objetivo es construir un coche teledirigido que controlaremos utilizando el teclado de nuestro ordenador , sin ningún cable de por medio. Para ello a parte de la estructura del coche vamos a utlizar un Arduino UNO , un controlador de motores y un Bluetooth, además de otros componentes como cables o tornillos.



I. Montaje del Chasis 


montaje coche s4a

1° paso : Conectar los cables a los motores

Lo primero que haremos será conectar los cables rojos y negros a los dos motores amarillos. Podríamos también hacerlo después de montar los motores en el chasis del coche, pero al menos a nosotros , nos resulta más sencillo hacerlo antes de colocarlos en el chasis.

Los cables se conectan en los dos bornes metálicos que tienen los motores. La mejor manera es soldarlos , pero si no tenéis soldador podéis pelar un poquito más el cable y después de atarlo lo mejor posible a los bornes ponerle un poquito de cinta aislante para que no se suelten , pero asegurándolos de que el cable no deje de hacer contacto con el borne metálico en ningún momento.

No hace falta preocuparse por el orden en el que conectamos los cables a los bornes, porque luego podemos cambiar el sentido de giro de los motores tanto en la conexión al controlador de motores como en el programa que haremos para controlarlos.

Sí , es más importante que los cables salgan hacia el lado del motor, porque luego al conectarlos irán hacia ese lado.

motor cc cable

2° Montar los motores en el chasis 
Para sujetar los motores al chasis vamos a necesitar las siguientes piezas

paso 2



Colocamos una de las piezas de plástico en uno de los dos agujeros rectangulares que hay en la zona central  del chasis , y otra en la parte exterior que tiene una hendidura paralela a la que hemos colocado en el interior, con el motor en medio de ellas.

Atravesamos con los tornillos los agujeros de las piezas de plástico haciéndolos coincidir con los del motor.Recomendamos :

-) Dejar los cables hacia el interior , y la parte donde están las soldaduras hacia el lado del chasis que no tiene esa especie de parachoques.

-) Las tuercas las colocaremos en el lado interior, porque hacia el exterior rozarían con las ruedas.

-) Colocar primero el tornillo y la tuerca más cercana al chasis antes de meter el otro tornillo , para que nos sea más sencillo poner la tuerca que queda bastante pegada al chasis de plástico.


Debería quedar de esta forma:

paso 2 motor


De la misma forma con el otro motor

paso 2


3° Montar la rueda loca:

A continuación vamos a montar lo que se llama rueda loca. Es una rueda sin tracción que puede girar libremente.Para este paso vamos a necesitar los 4 hexágonos dorados, 8 de los tornillos más cortos y la parte del chasis que ya tenemos montada.

piezas paso 3

Empezamos atornillando los hexágonos dorados al chasis con cuatro de los tornillos , de forma que los hexágonos queden hacia el lado de los motores.

paso 3

Ahora colocamos la rueda loca en los hexágonos y la atornillamos con cuatro tornillos.


-) La base de la rueda no es cuadrada,sino rectangular así que sólo encaja en un sentido.

-) A la hora de colocar los tornillos , es mejor no apretarlos del todo hasta que estén los cuatro bien puestos , para que nos sea más sencillo hacer coincidir los tornillos con los hexágonos a través de la base de la rueda.

paso 3 final

4° Colocar las ruedas de los motores: 
Simplemente tenemos que colocar las ruedas en la parte exterior de los motores ,haciendo coincidir la forma del agujero de las ruedas con las de la parte blanca rotativa del motor

paso 4

5° Montar el interruptor
Vamos a utilizar un interruptor para poder encender y apagar el coche de la forma más sencilla posible. Sólo tenemos que colocarlo en el agujero que hay en el centro del coche, forzándolo un poquito a que entre y dejando el interruptor hacia la parte de arriba.
paso 5

6° Atornillar el soporta para las pilas 

Para el soporte necesitamos dos tornillos un poquito más largos, para que puedan atravesar el chasis. Los colocaremos en los dos agujeros alargados que hay entre el interruptor y la rueda loca. Sólo tenemos que meterlos por los agujeros del propio soporte y poner las tuercas para sujetarlo al chasis.


paso 6

Y con esto ya hemos terminado el montaje del chasis que nos servirá de soporte para ir colocando los componentes electrónicos que usemos en el coche.



montaje coche s4a


II Arduino  y L298N : Montaje y Conexión:

Desde el S4A podemos manejar motores de corriente continua (CC) utlizando directamente los pines de salida analógico de Arduino y un transistor.

Pero nuestro Arduino está limitado por la intensidad que puede proporcionar al motor , y va a ser insuficiente cuando queremos usarlo para controlar motores de mayor potencia.

-) Podríamos decir que la potencia es la velocidad con la que se consume energía.

-) La potencia eléctrica , si hablamos de corriente continua , es el producto de la tensión por la intensidad , es decir P=VxI, y se mide en Vatios.

Por lo tanto , cuando queramos trabajar con motores un poquito potentes  vamos a tener que utlizar unos componentes a los que llamamos controladores de motores o drivers. Estos controladores nos permitirán suministrar la potencia necesaria a los motores y os controlaremos usando nuestro arduino.

Hay muchísimos controladores diferentes , pero nosotros nos hemos decidido por el L298N por su facilidad de uso y su reducido precio, y porque nos permite elegir los pines del arduino que  queremos usar para controlar los motores. El L298N puede trabajar con tensiones hasta 35v y una intensidad de hasta 2A por canal, con lo que puede manejar hasta 4A en total y unos 25W

-) Algunos controladores de motores (y muchos otros componentes ) se montan directamente encima del Arduino , y los denominados shields.

-) Estos Shields se reservan directamente ciertos pines para su uso y disfrute , así que no suelen ser recomendables para usar con S4A , ya que raramente nos coinciden correctamente la función del los pines en S4A y en el controlador.

Este módulo además tiene otra característica muy importante, y es que nos permite controlar la dirección de giro de los motores , es decir podremos hacer que giren en ambos sentidos , algo totalmente necesario para nuestro coche.

Además nos permite obtener del módulo una tensión de 5v , perfecta para alimentar nuestro Arduino sin tener que utilizar otra fuente adicional. Eso sí , este regulador sólo funciona si alimentamos el módulo con una tensión máxima de 12V. En nuestro caso 4pilas de 1.5v osea 6v.

pines l298n h-bridge
La entrada de tensión Vin admite tensiones entre 3V y 5V y justo a su derecha en la imagen tenemos el pin que debemos conectar a GND.

La tercera conexión de ese grupo V lógico puede funcionar de dos maneras:

-) Un jumper es un componente que nos sirve para conectar dos pines.

-) Si el jumper del regulador está cerrado activaremos el regulador de tensión del L298N , y en V lógico tendremos una salida de 5V, que podremos usar para lo que queramos , por ejemplo para alimentar una placa de arduino.

-) Si le quitamos el jumper desactivaremos el regulador, necesitaremos alimentar la parte lógica del módulo, así que tendremos que meter una tensión de 5V por la conexión V lógico para que el módulo funcione.



Los pines IN1 e IN2 nos sirven para controlar el sentido de giro del motor A , y los pines IN3 e IN4 el del motor B. Funcionan de forma que si IN1 está a HIGH e IN2 a LOW, el nmotor A gira en un sentido , y si está IN1 a LOW e IN2 a HIGH lo hacen en el otro.

De igual manera  con los pines IN3 e IN4 y el motor B.

Para controlar la velocidad de giro del os motores tenemos que quitar los jumper y usar los pines ENA y ENB. Los conectores a dos salidas analógicas de forma que le enviemos un valor entre 0 y 255 que controle la velocidad de giro. Si tenemos  los jumpers , colocados , los motores girarán a máxima velocidad.


Montaje del Arduino y del L298N

Con el chasis montado vamos a colocar el Arduino y el controlador de motores L298N. No tenéis por qué hacerlo igual que nosotros, pero nosotros vamos a recomendaros el lugar y el orden para montarlo que nos ha parecido mejor y más sencillo.

Con eso en mente os recomendamos montar primero el L298N , para poder conectarle los cables de los motores sin que se nos moleste el Arduino. Lo colocaremos en esta posición mediante 2 tornillos ( de los dos tipos que nos quedan , los más largos)

coche l298n

Y a continuación conectaremos los cables de los motores a los bornes de alimentación de los motores. No os preocupéis demasiado por la posición en la que conectéis el cable negro y el blanco. De ello dependerá hacia donde gire el motor , pero si gira en el sentido que no esperamos hay varias maneras de corregirlo, y así lo haremos más adelante.

l298n motores

Una vez conectados vamos a colocar el Arduino justo encima del controlador utilizando 3 tornillos (de los largos también)

coche arduino


Conexiones Eléctricas

Una vez hemos montado el Arduino y el L298N , y sabemos cómo funciona este último , ya estamos en disposición de realizar las conexiones eléctricas pertinentes. El esquema eléctrico sería el siguiente :

diagrama eléctrico

Siguiendo con nuestras recomendaciones, creemos que lo más sencillo es conectar primero los cables de alimentación y GND del soporte para pilas al L298N , pasando antes por el interruptor que colocamos para poder encenderlo y apagarlo fácilmente.

El cable negro lo conectaremos directamente al GND del L298N , y será el cable rojo el que pasaremos por el interruptor.Para ello lo cortaremos y lo soldaremos a una de las patas metálicas del interruptor (da igual a cuál), y la parte sobrante de cable la conectaremos a la otra parte del interruptor , y de ahí a la alimentación del módulo L298N.




calimentacion l298n

El resto de cables los conectaremos como hemos visto en el esquema eléctrico , tratando de utlizar cables de colores diferentes y de la forma más ordenada posible , para asumir el menor riesgo a equivocarnos posible.

Una vez conectados todos los cables podemos colocarle una goma o una brida para tenerlos unidos que esté un poquito más ordenado. Además podemos meterle ya las pilas que os recomendamos que sean una buenas pilas alcalinas.

montaje eléctrico

Si pulsamos el interruptor deberían encenderse los LEDs de alimentación tanto del Arduino como del L298N
encendido coche


Controlador de Morores L298N

Anteriormente ya conectamos y explicamos cómo funciona el controlador , pero vamos a recordarlo un poco por encima antes de ponernos a programar.

Para controlar la velocidad de giro de los motores se utilizan los pines ENA  y ENB , que hemos conectado a las salidas analógicas 6 y 5 de Arduino respectivamente.

Para controlar el sentido de giro de los motores se utilizan los pines IN1 e IN2 , para el motor A y los pines IN3 e IN4 para el motor B, y funcionan de la siguiente forma.

-) Podemos darles un valor de 0 a 255 aunque os recomendamos que no lo pongáis un valor demasiado alto ni demasiado bajo.

-) Si le damos un valor demasiado bajo, no será suficiente para mover los motores.

-) Si por el contrario le damos uno demasiado alto no vamos a tener suficiente potencia para mover las ruedas y hacer funcionar el bluetooth que pondremos en la siguiente sesión.

-) Los componentes que sirven para comunicarse a distancia como el Bluetooth , consumen mucha potencia.


Entonces :

-) Si IN1 está a HIGH e IN2 a LOW , el motor A gira en un sentido

-) Si IN1 está a LOW e IN2 a HIGH lo hace en el otro.

-) Lo mismo con los pines IN3 e IN4 y el motor B


diagrama eléctrico



Comprobando el sentido de giro

Sabemos que con los pines IN1 e IN4 controlamos el sentido de giro de los motores ,pero el problema que se nos presenta es que no tenemos forma de saber hacia qué dirección va a girar , así que lo haremos mediante ensayo y error. Para ello conectaremos el Arduino al PC y arrancaremos S4A

Haremos un pequeño programa en el que al pulsar la tecla de la flecha del teclado hacia arriba las ruedas se muevan, y que al hacerlo el coche se mueva hacia adelante, teniendo en cuenta que consideremos la parte delantera la que tiene forma de parachoques.

Vamos a suponer que el coche se va a mover hacia delante cuando tengamos IN1 (pin 13 de Arduino) a LOW , IN2 (pin 12) a HIGH , IN3 (pin 11) a LOW e IN4 (pin 10) a HIGH. Además le indicaremos la velocidad a lo que lo tiene que hacer con los pines ENA y ENB.

Y haremos que lo haga cuando pulsamos la tecla con la flecha hacia arriba de nuestro teclado.



coche s4a

Para comprobarlo encemdemos el interruptor del coche y pulsamos la techa hacia delante. Pueden pasar 4 cosas :

* Que el coche se mueva hacia adelante
* Que el coche se mueva hacia detrás
*Que el coche gire hacia la derecha
* Que el coche gire a la izquierda.

Bueno pues, si eres de la primera opción felicidades, y sino no pasa nada porque esto tiene fácil arreglo,  y de hecho , podemos arreglarlo de varias formas.

Podemos intercambiar las dos conexiones del motor que esté girando al revés de lo que buscamos, o de los dos motores si los dos lo hacen al revés. OUT1 y OUT 2 para el motor A , y OUT3 y OUT4 para el motor B.

Si resultad complicado acceder a esos cables, también podemos intercambiar los pines que controlan el sentido de giro de los motores.
Es decir : IN1 e IN2 para el motor A e IN3 e IN4 para el motor B.

Y si no quieres andar cambiando los cables podemos cambiar el programa. Sólo tendremos que cambiar el estado de los pines que dan el sentido de giro del motor que queremos invertir. Si  , por ejemplo, quisiéramos cambiar el sentido de giro del motor A , haríamos lo siguiente :
invertir-direccion-motor

Si lo corriges de cualquiera de las dos primeras formas ,el resto del programa puede seguir igual con el que ya hicimos más arriba.
Si lo haces de la última forma , tendremos que tenerlo en cuenta también para el resto del programa y cambiarlo también para los demás movimientos.


Programación del Coche 

Una vez que tenemos programado el movimiento hacia delante y tenemos claro como giran nuestros motores, el resto lo tenemos fácil. Primero vamos a hacer que se mueva hacia atrás , para lo que sólo necesitaremos invertir los pines 10 al 13 que controlan el sentido de giro:

programa coche

Si lo que queremos es girar a la derecha , el motor A debería ir hacia adelante y el B hacia atrás , y lo contrario a la izquierda.



izquierda derecha coche s4a

Y por último haremos que los motores se paren al pulsar la tecla "espacio" .
Podeís descargar el programa completo aquí Coche s4a




Añadir el Bluetooth al coche
Hasta ahora hemos tenido que mantener conectado el coche  al PC con u ncable y esto parece poco compatible con el concepto de carro teledirigido que cualquiera pueda tener en la cabeza. Y para solucionar eso vamos a utilizar el Bluetooth , un concepto que seguro que os suena a todos.

Y como podría ser de  otra manera, existen unos módulos que se conectan a nuestro Arduino y que nos servirán para otorgarle  la capacidad de comunicarse vía Bluetooth con otros dispositivos que también soporten esta tecnología.

presentacion

Si nos fijamos en los pines 0 y 1 de Arduibo veremos que al lado hay escrito Rx y Tx ¿Qué significa esto? Pues que estos pines sirven también para realizar la comunicación serie de la misma forma que el cable que hemos utilizado hasta ahora. El pin 0 (Rx) se encarga de recibir datos y el pin 1 (Tx) de transmitir datos.

partes-arduino-uno

Así que si conectamos el módulo a esos dos pines podrá transmitir los datos que lleguen desde otros dispositivos Bluetooth a nuestro Arduino , pudiendo prescindir de cables. En nuestro caso buscamos recibir los datos que le lleguen desde un PC con Bluetooth y que estará ejecutando S4A, desde dónde controlaremos el coche.

Hay varios módulos Bluetooth para Arduino , y los más utilizados son el HC-05 y el HC-06. Recomendamos utlizar el HC-06 porque es el más sencillo de conectar y de usar, y será el que utilicemos en el coche.

El HC-06 tiene 4 pines , dos para la alimentación como ya es costumbre y dos para comunicarse con nuestro Arduino , rotulados como Rx y Tx. A la hora de conectarlo a nuestro ARduino tenemos que conectar el Tx del módulo al Rx del Arduino , y el Tx del módulo al Rx del arduino y viceversa.

Vista posterior

Pero antes de poder utlizarlo de esta forma con el S4A , vamos a tener que cambiar la configuración que tiene predeterminada en el HC-06. Así que de momento no conectéis nada , ya explicaremos por qué.

Configurando El HC-06 para S4A

Para configurar el módulo vamos a tener que utilizar el IDE de Arduino ,el entorno de programación que se utliza normalmente para programar los Arduinos.

Ahora teneís que descargar este archivo: configurar

Lo que hace el programa es cambiar el nombre y la contraseña al Bluetooth para que pongáis la que vosotros queráis , y configurar la velocidad de comunicación para que sea la misma que utiliza el S4A y puedan "entenderse".

Descomprimir el archivo y ejecutarlo. En el programa pueden cambiar PROMETEC y 5678 por el nombre y la contraseña que queráis que tenga vuestro dispositivo:

Una vez hecho esto tenemos que cargar el programa en Arduino. Para ello no tenéis más que conectar el Arduino al PC , pulsar en el ícono con forma de flecha , y esperar a que en la parte de abajo os aparezca la palabra "Subido"

Captura

Y una vez hecho esto tendréis que desconectar el cable del ordenador y conectar el módulo Bluetooth HC-06 de la forma que hemos indicado anteriormente y que podéis ver en la siguiente imagen :

conectar bluetooth coche

Al fina , deberá quedar masomenos así :

coche teledirigido

Y ahora sí , ya puedes volver a conectar el cable del ordenador.
Cuando veas que se enciende el LED del arduibo que está conectado al pin 13 , significará que ya ha terminado de configurarlo.

Una vez configurado habrá que volver a desconectar el Bluetooth del Arduino y cargar el Firmware de S4A en el Arduino para poder volver a trabajar con S4A.

Link para descargar el Firmware : Firmware

Descargará un programa arduino que podemos cargar en nuestro IDE  y luego cargarlo en nuestra placa.

Aparecerán un montón de líneas de código en el entorno de trabajo. Pulsamos el botón de subir el que tiene un ícono con una flecha horizontal en amarillo y esperamos a que cargue la barra verde.

Una vez que lo hayamos subido , no hay que volver a hacerlo mientras trabajemos con S4A , a no ser que carguemos otro programa en la placa desde el ID

* Debes tener en cuenta que mientras esté conectado el módulo Bluetooth a la placa , la conexión serie del cable no funciona y no permite cargarle programas.

Utilizando el Bluetooth con S4A
Para conectar el PC en el que ejecutamos S4A y el HC - 06 accedemos a la configuración del Bluetooth de nuestro PC y ahí debería aparecernos el módulo con el nombre que le hayamos puesto. Lo seleccionamos , escribimos la contraseña que hemos elegido y esperamos a que se emparejen.
emparejar hc-06 arduino

Entonces abrimos el entorno S4A y si todo ha ido bien, tras un momento de incertidumbre, veremos como S4A detecta la placa. Por fin abrimos el programa que tenemos de la sesión anterior para controlar el coche y listo, a jugar con él




Comentarios