Coche velocista con bluetooth y Arduino: Componentes, construcción y programación en Arduinoblocks

Presentamos el proyecto de un coche velocista de “altas prestaciones” controlado por bluetooth con Arduino.

En la primera parte del proyecto, lo hemos construido y programado para que funcione como coche teledirigido controlado por una aplicación móvil y bluetooth.

Posteriormente, se añadirán detectores infrarrojos para hacer un sigue línea y, finalmente, se hará un coche de competición inteligente que, cuando se sale de la pista se para automáticamente.

Esquema del coche

Video tutoriales:

  1. En el siguiente vídeo podéis encontrar la configuración física y construcción del coche:

  1. Y aquí la programación del coche y la personalización de la aplicación móvil:

  1. Además, en el siguiente enlace se accede a una lista de reproducción sobre la programación de Arduino con Arduinoblocks para el control de motores de corriente continua mediante bluetooth:

https://www.youtube.com/playlist?list=PLGMZwZq6OIt943OcnHbO3njYQkFH_Yk4K

Componentes utilizados, consejos y propuestas alternativas

CONTROLADOR CENTRAL

Se usará Arduino Nano como cerebro de este coche “inteligente” por varias razones:

  • Alto número de pines de conexión en muy poco espacio.
  • Muy poco peso.
  • Arduinoblocks está preparada para programar Arduino Nano con todos sus bloques.

Arduino Nano

Hay que recordar que no todos los Arduinos tienen el mismo microcontrolador, este es uno de los motivos por los que muchas plataformas no permitan programar ciertas placas Arduino. También es uno de los motivos de que muchas librerías de funcionalidades o bloques, no valgan para todos los modelos de Arduino.

  • Cabe la posibilidad de adquirir una versión no oficial por muy poco precio.

IMPORTANTE: No siempre se puede contribuir con dinero, pero hay muchas formas de colaborar, y es importante. Cuando compras un Arduino original, no solo pagas una placa, pagas un software, diseño, investigación, soporte, plataformas…

Arduino Nano original: 22€ sin IVA

Arduino Nano no original: Menos de 2,5€ en Aliexpress, por ejemplo.

La alimentación del Nano es igual que la de la mayoría de los Arduinos. Se puede alimentar a través de los pines Vin y GND, con una tensión desde 6V hasta 20V.

MOTORES

Dos motores de corriente continua con reductora. Se han utilizado los Pololu HP 10:1 que funcionan a máximo 6 voltios y pueden llegar a consumir 1,5 Amperios cada uno.  Estos motores son el elemento mas caro del coche. Es cierto que ofrecen muy buenas prestaciones en relación con su precio, pero también hay que tener en cuenta que son muy poco resistentes a golpes, etc.

10:1 significa que, por cada diez vueltas que da el motor, el eje que va a la rueda dará una. Cuanta mayor reducción tenga el motor, mas fuerza tendrá, pero mas despacio girará la rueda. Hay que tener cuidado para no construir un coche demasiado pesado para los motores con reductora elegidos.

Para que os hagáis una idea, el coche tiene un peso total de 160 gramos con batería incluida.

Pololu HP 10:1

La elección del motor también depende del tipo de respuesta que se quiere del coche. Una reducción menor en los Pololu, por ejemplo 5:1, va a dar mas velocidad punta pero menos aceleración y menos frenado y una reducción superior, tendrá el efecto opuesto. Para un coche mas pesado, una reducción común para los Pololu es la 30:1.

Una opción mas mucho mas resistente y económica son los kit de motor con reductora y rueda para robots que se pueden encontrar por internet. También funcionan a 6 voltios pero son considerablemente menos potentes.

Kit motor, rueda y reductora

FUNDAS PROTECTORAS Y DE FIJACIÓN DE LOS MOTORES:

Para fijar los motores al chasis, se usan dos fundas protectoras/anclaje. Conviene comprar estos elementos, suelen ser económicos y simplifican el montaje y le dan robustez al conjunto.

CONTROLADOR DE MOTORES

Importancia de este elemento:

  • Arduino no puede ofrecer la potencia necesaria para mover los motores.
    • Cada pin (puerto) de Arduino saca un máximo de 5 voltios y necesitamos 6V.
    • Cada pin de Arduino saca un máximo de 40 mA y cada motor consume 1,5A
  • Necesitamos poder invertir del sentido de giro de los motores

Esta función se puede realizar con relés, pero esto nos obligaría a trabajar a velocidad constante.

Se ha elegido el L298N, que es un controlador de motores de CC que permite el control de dos motores de 1,5A cada uno. Además, funciona perfectamente con un rango variable de tensión PWM de 0 a 5 Voltios como el que ofrece Arduino Nano.

Controlador L298N

Puedes encontrar un vídeo tutorial en el que explicamos detalladamente cómo funciona este elemento:

BATERÍAS:

Principalmente hay tres opciones:

  1. Poner una batería pequeña para ahorrar peso y mejorar prestaciones
    1. Una batería de 3,7 Voltios.
  2. Una (o varias) baterías más grandes que den más autonomía.
  3. Dos baterías de 3,7 voltios en serie = 7,4 voltios
  4. Una batería de 5 voltios (son más difíciles de encontrar que las de 3,7)
  5. Usar 4 baterías recargables AA Ni-MH 1,5 V cada una.
  6. Dan los 6 voltios exactos que necesitamos y son muy baratas, pero considerablemente más pesadas que las de litio. Simplifica mucho el coche porque ahorra el uso de parte de la electrónica.

Se ha elegido la opción 1 por varios motivos:

  • No hacer un coche demasiado pesado.
  • En el diseño se puede prever un sistema de cambio rápido de baterías (como se hace con los drones) para poder usar varias a medida que se van gastando.
  • Es muy económico y fácil hacer un cargador para estas baterías
  • Son muy comunes, por lo que hay muchos modelos diferentes y muy buena disponibilidad para comprarlos.
  • Para la misma tensión hay baterías de autonomías diferentes. Se suele expresar en mAh (miliamperios hora), como en los móviles. Cuantos mas mAh, mas autonomía tiene la batería, pero también más cara resulta.

El precio en internet varía muchísimo dependiendo de la página y el vendedor. También influye la capacidad de la batería. Se puede obtener cada una por una media de 2,20€ para una capacidad de 5000 mAh, que es mas que suficiente. SI los motores consumen 3 A, esta batería nos da una autonomía de mas de una hora. Yo he utilizado una de 9600 mAh que ya tenía hace tiempo.

Baterías de litio

Dado que los motores funcionan a un máximo de 6 voltios y la batería elegida es de 3,7 V, nos vemos obligados a utilizar un dispositivo que aumente la tensión que va a los motores.

Una opción mas económica y técnicamente mas sencilla, es utilizar 4 baterías AA de 1,5 Voltios de NI-MH. Dan justo los 6 voltios necesarios, por lo que ahorramos introducir en el circuito el elevador de tensión mencionado. Como puntos negativos, destacar que sus procesos de carga son mas lentos, por lo general ofrecen menos autonomía y mucho mas peso. Sin embargo, son mucho mas económicas.

MÓDULO REGULADOR DE VOLTAJE XL6009 DC-DC:

Este dispositivo nos permite aumentar la tensión de la batería, de 3,7 V a 6 V máximos que van a demandar los motores. Se necesitan al menos 6 voltios para alimentar Arduino Nano por los pines Vin y GND, con lo cual, está es una solución perfecta también para esto.

Inciso: Arduino se puede alimentar de más formas, pero para ello exige una fuente de alimentación estable de 5 V. Vin conecta con un regulador interno a 5V, es lo que nos facilita alimentarlo con un rango de tensión tan versátil y además, lo que no exige que esta alimentación no sea especialmente estable. Eso si, es un proceso mas ineficiente que consume un poco mas de energía.

Este módulo admite hasta 4 A para esa elevación de tensión, y dado que los motores consumirán en torno a 1,5 A (algo más en el arranque), no vamos a tener problema.

Es un dispositivo barato y fiable, aunque un poco grande y pesado en comparación con otras alternativas mas caras.

Hay que destacar, que incluir este elemento sólo tiene sentido teniendo en cuenta que:

  • Pesa en torno a 10 veces menos que añadir otra batería de 3,7V.
  • Dos baterías de 3,7 V, que equivale a 7,4 V nos obligaría a utilizar un regulador de tensión para sacar los 6 V para el motor (o una resistencia, pero de forma mucho mas ineficiente).
  • Una batería de 5 V tampoco nos ofrece los 6 voltios necesarios.

Al instalarlo, tendremos que regularlo ayudándonos de un voltímetro y un destornillador.

Se pueden conseguir en internet por poco mas de un euro y medio:

REGULADOR DE VOLTAJE XL6009

MÓDULO BLUETOOTH:

Se utiliza un HC-05 que ofrece comunicación bluetooth bidireccional. Esto es, permite enviar órdenes a Arduino y además, permite recibir datos desde Arduino. De esta forma, además de controlar el coche, podemos recibir parámetros de él en el móvil.

En los siguientes enlaces puedes encontrar información sobre cómo conectar el bluetooth, tanto para este proyecto, como con fines más genéricos:

https://www.youtube.com/watch?v=yURB0M4nxfE&t=388s

https://www.youtube.com/watch?v=vMo6NzWk6eI&t=145s&index=2&list=PLGMZwZq6OIt943OcnHbO3njYQkFH_Yk4K

El HC-05 funciona con bluetooth 2.0. Actualmente ya hay módulos de BLE 4.0 (bluetooth low ennergy) que consumen incluso menos, pero aún hay menos apps móviles para ellos en Android. Bluetooth Electronics, que es la app utilizada en el proyecto, si soporta ya BLE.

Módulo bluetooth

CHASIS

Se realiza con dos stripboard, que son como placas de pruebas protoboard pero de cobre, preparadas para realizar uniones fijas por soldadura de estaño. Tienen una medida de 4.7×13.2 cm.

Se elige este material porque:

  • Permite aprovecha el chasis para realizar parte de las soldaduras necesarias en la realización del circuito.
  • Son muy ligeras y fácilmente mecanizables.

El inconveniente es que para que salgan baratas sueles necesitar comprar un pack de 5 ó 10 unidades. Pero son placas que se pueden aprovechar para montar muchos otros circuitos.

Chasis veroboard

RUEDAS

Conviene comprar unas ruedas y llantas ya preparadas para los motores elegidos y cuyo diámetro también vaya en consonancia con estos.

Es un elemento cuyo precio y prestaciones pueden variar ampliamente. Hay que buscar un equilibrio que evite que sean demasiado pesadas pero que tengan el suficiente agarre.

Se ha optado por unas ruedas RW2i Solarbotics de 28 mm de diámetro y 12,7 mm de ancho en base a otros tutoriales. Al ser el primer prototipo, no son elementos que se haya comparado, contrastado y probado físicamente aún con otros, pero están dando buen resultado. Hay otros modelos mucho mas baratos. Si no es para competición, seguramente sean opciones mas que interesantes.

BALL CASTER (RODAMIENTO DE BOLA)

Junto con las dos ruedas anteriores, es el elemento que forma el tercer punto de apoyo y que da estabilidad al conjunto. Las hay de metal o de plástico. Estas últimas son mas ligeras pero se deterioran más rápidamente.  Se pueden encontrar en Aliexpress por unos 2,5€.

En muchos casos esta parte directamente se sustituye por un elemento cualquiera con cabeza redondeada y lisa, como un led o la parte de atrás de un bolígrafo redondeado.

  SENSOR DE INFRARROJOS

Este sensor detecta cuando hay un cambio de color. Los colores claros reflejan mucha mas luz que los colores oscuros. De esta forma, el coche puede detectar la línea negra ya que refleja sobre el sensor menos luz que el resto del suelo.

Cuantos mas sensores se coloquen, mas difícil será que el coche pierda la línea de referencia, y de esta forma podrá ir mas deprisa. Sin embargo, esto aumenta la dificultad de la programación.

Se ha decidido instalar sensores TCRT500 con una placa LM393 incorporada, que son muy baratos y al ser módulos independientes puedes instalar los que prefieras.

Sensor sigue línea

Compartir