App Inventor

tecnoloxia.org

Control de un coche Arduino por Bluetooth

Descrición

Imos a controlar a velocidade e o sentido de avance dun coche con Arduíno mediante Bluetooth.

  • Faremos o control de sentido de xiro de dous motores de corrente continua.
  • Mediante PWM imos controlar as súas velocidades de xiro.

Materiais:

  • Placa Arduino
  • Placa Protoboard
  • Pila 9 V
  • Módulo Bluetooth HC-05
  • 2 Resistencias: unha de 1kΩ e outra de 560Ω, para o divisor de tensión do BT.
  • Módulo integrado L298N (para o control dos motores)
  • Dous motores de corrente continua
  • Dúas rodas para os motores
  • Unha roda tola
  • Chasis

rodalocaarduinocar

(1: Bluetooth, 2: Conrolador de motores L298N, 3: Motor e roda, 4: Roda tola)
chasismedidaschasis

(Chasis)

Para a montaxe do chasis podes consultar esta páxina.

Que é o controlador L298N?

O L298 tamén, coñecido como driver ou dobre ponte h, é un dispositivo electrónico, en forma de circuíto integrado, formado a base de transistores para poder controlar, con base a pulsos, o sentido da corrente, podendo inverter así, a polaridade das súas saídas. Esta formado, a grandes liñas, por dúas pontes h, que poden controlar motores de corrente continua (D.C.) de 5 e 12 voltios e pode soportar ata 1 e 2 Amperios.

Pins do módulo L298N

  1. l298_numeradasOUT1: Conexión “+” para o motor A.
  2. OUT2: Conexión “-” para o motor A.
  3. +12V: Conexión de alimentación, máximo 35 V DC.
  4. GND
  5. +5V: Proporciona 5 V para alimentar a placa Arduíno.
  6. ENA: Habilita o motor A. Hai que quitar a ponte, así podemos introducir por el pulsos PWM e controlar a velocidade do motor de continua.
  7. IN1: Pins de control dos motores
  8. IN2
  9. IN3
  10. IN4
  11. ENB: Habilita o motor B. Hai que quitar a ponte, así podemos introducir por el pulsos PWM e controlar a velocidade do motor de continua.
  12. OUT3: Conexión “+” para o motor B.
  13. OUT4: Conexión “-” para o motor B.

Conexións

l298n_bb

No módulo L298N é posible que as entradas ENA e ENB traian unha ponte de fábrica… quitamos as pontes das entradas ENA e ENB.

  • Conectamos un motor ás saídas OUT1 e OUT2.
  • Conectamos o outro motor ás saídas OUT3 e OUT4.

Realizamos as seguintes conexións, dende o módulo L298N a Arduino:

  • ENA ⇒ 10
  • In1 ⇒ 9
  • In2 ⇒ 8
  • In3 ⇒ 7
  • In4 ⇒ 6
  • ENB ⇒ 5
  • Alimentamos con 9 V o módulo L298N, conectándoo a +12V (Vcc) e Gnd.
  • Conectamos a saída de 5 V e o Gnd do módulo L298N aos 5 V e Gnd do Arduíno. É moi importante non esquecer conectar o cable do Gnd ao Arduíno.

Ao conectalo desta maneira, a saída de 5 V do módulo L298N alimentará ao Arduíno, e non necesitaremos alimentar o Arduíno con ningunha outra fonte de alimentación.

Realizamos as seguintes conexións, dende o Bluetooth HC-05 a Arduino:

  • VCC ⇒  3.3V
  • GND ⇒ GND
  • TXD ⇒ 0 → RX
  • RXD ⇒ TX→1

O módulo Bluetooth aliméntase con 3,3 V.

Programación en IDE de Arduíno

Cando vaias  cargar o programa ao Arduíno, quita o cable vermello de alimentación do módulo Bluetooth (se tentas cargar co módulo Bluetooth conectado, dará erro). Unha vez cargado o programa no Arduíno, volve conectar o cable vermello do módulo Bluetooth.

Segundo se envíen os caracteres A, B, C, D o E, a velocidade dos motores será 70, 110, 150, 200 o 250 respectivamente. Estes valores producen distintos ciclos útiles (Duty Cycle) de PWM.

Programación en App Inventor

Deseño

desenoarduinocar

Inserimos os elementos indicados:

  • sdl_Conectar é un SelectorDeLista.
  • Btn_Desconectar é un Botón.
  • B1 … B9 son Botóns.
  • A … E son Botóns.
  • ClienteBluetooth1
  • Notificador1

Programación de bloques

conectararduinocar

b1_b9arduinocar

a_barduinocar

  • Vinculamos o Bluetooth e do dispositivo Android.
  • Segundo a tecla pulsada envíase un carácter mediante BT.
  • Coas teclas “Avanza” moverase cara adiante o motor A, o motor B ou os dous.
  • Coas teclas de “Parar” pararase o motor A, o motor B ou os dous.
  • Coas teclas de “Retro” retrocederá o motor A, o motor B ou os dous.
  • Para controlar a velocidade dos motores utilizaremos 5 botóns, segundo o botón pulsado enviarase o carácter: A, B, C, D ou E, que indicará un nivel de velocidade.

A  lento (70), B un pouco máis rápido (110), C máis rápido (150), D moi rápido (200) e E máxima velocidade (250).

Poderíase enviar a velocidade mediante un Deslizador (como vimos no titorial de Bluetooth co LED RGB), pero é máis sinxelo enviando só 5 niveis de velocidade con estes botóns. Xa que resulta máis sinxelo enviar un carácter que varios, se tivésemos que enviar a velocidade 125, por exemplo, o código complicaríase.

Nota:

O movemento do coche pode ter problemas pola falta de paralelidade das rodas. Posiblemente un motor vire máis rápido que o outro. Podes tentar corrixilo mediante a variable de velocidade.