Tabla de contenido:

Coche robot con Bluetooth, cámara y aplicación MIT Inventor2: 12 pasos (con imágenes)
Coche robot con Bluetooth, cámara y aplicación MIT Inventor2: 12 pasos (con imágenes)

Video: Coche robot con Bluetooth, cámara y aplicación MIT Inventor2: 12 pasos (con imágenes)

Video: Coche robot con Bluetooth, cámara y aplicación MIT Inventor2: 12 pasos (con imágenes)
Video: App desarrollada con App Inventor para el control de un coche por Bluetooth 2024, Noviembre
Anonim
Image
Image
Partes y software
Partes y software

¿Alguna vez quisiste construir tu propio coche robot? ¡¡Bueno, esta es tu oportunidad!!

En este Instructable, lo guiaré en cómo hacer un Robot Car controlado a través de Bluetooth y MIT App Inventor2. Tenga en cuenta que soy un novato y que este es mi primer instinto, así que sea amable en sus comentarios.

Hay muchos instructables por ahí, pero en este he intentado combinar muchas características como: transmisión de cámara, evitación de obstáculos, sensor de rango ultrasónico, escáner Larson (con charlieplexing) y monitoreo de batería en una aplicación de Android.

Así que comencemos y conozcamos a Frankie (utiliza ideas de muchos lugares … por lo tanto, Robo Frankenstein)

Paso 1: Piezas y software

Partes y software
Partes y software
Partes y software
Partes y software

Aquí, en mi ciudad natal, es difícil conseguir todas las piezas, por lo que pude conseguir la mayoría de ellas en www.aliexpress.com

Calculo que el proyecto se puede construir por USD 25 - 30 sin considerar el viejo teléfono celular.

  • Chasis de coche: 3 ruedas, 2 motores 6V (USD 9)
  • Arduino Nano (USD 2)
  • Bluetooth HC-05 (de 3 a 4 USD)
  • Controlador de motor L293D para impulsar motores de rueda (USD 1,50 por un lote de 5 piezas)
  • Antiguo celular con cámara y Wi-Fi
  • Sensor ultrasónico HC-SR04 para medición a un objeto cercano (USD 1)
  • 6 LED para el escáner Larson
  • ATtiny85 para escáner Larson (USD 1)
  • Tablero de pruebas (USD 1)
  • Alambres
  • Resistencia de 100K Ohm (4)
  • Resistencia de 1K Ohm (2)
  • Resistencia de 2K Ohm (1)
  • Resistencia de 270 ohmios (3)
  • Zumbador

Software:

  • IDE de Arduino
  • Cámara web IP (para Android celular antiguo)
  • MIT App Inventor2: esta aplicación es excelente, pero solo funciona para el sistema operativo Android (no para iPhone… ¡lo siento!)

Paso 2: proceso de construcción

Proceso de construcción
Proceso de construcción
Proceso de construcción
Proceso de construcción
Proceso de construcción
Proceso de construcción
Proceso de construcción
Proceso de construcción

El chasis del automóvil es muy fácil de montar; tiene 2 motores de 6V que alimentan las ruedas traseras y un paquete de 4 baterías.

El coche robot se controla a través de Bluetooth y Wi-Fi. Bluetooth controla las comunicaciones en serie entre el automóvil y la aplicación MIT inventor2 y se usa Wi-Fi para comunicarse con la cámara (teléfono celular antiguo) instalada en la parte delantera del automóvil.

Para este proyecto, he usado dos juegos de baterías: el arduino funciona con una batería de 9V y los motores del automóvil con 6V (cuatro baterías AA de 1.5V).

Arduino Nano es el cerebro de este proyecto que controla el coche, zumbador, sensor de rango ultrasónico HC-SR04, Bluetooth HC-05, escáner Larson (ATtiny85) y monitorea las baterías. La batería de 9V va a Vin (pin 30) y el pin 27 de Arduino le da una potencia regulada de 5V a la placa de pruebas. Necesita unir todas las conexiones a tierra de todos los circuitos integrados y baterías.

Adjunto, el diagrama del circuito lo hizo en Excel (Lo siento … la próxima vez probaré Fritzing). He conectado todo usando una placa de pruebas y conectores de cable macho a macho, el mío parece un nido de ratas.

Paso 3: controlador de motor L293D

Controlador de motor L293D
Controlador de motor L293D
Controlador de motor L293D
Controlador de motor L293D

L293D es un controlador de media H cuádruple de alta corriente diseñado para proporcionar corrientes de control bidireccionales de hasta 600 mA a voltajes de 4,5 V a 36 V. Se utiliza para impulsar las ruedas del automóvil.

Está alimentado por un paquete de baterías de 6V (cuatro 1.5V AA) para los motores y usa 5V para la lógica que proviene de 5V regulados (pin 27) en Arduino Nano. Las conexiones se muestran en el esquema adjunto.

No fue necesario instalarlo en un disipador de calor.

Paso 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth funciona con 5V (pin 27 de arduino), pero es importante entender que el nivel lógico es 3.3V, es decir, comunicaciones (Tx y Rx) con 3.3V. Es por eso que Rx debe configurarse con un máximo de 3.3V que se puede lograr con un convertidor de cambio de nivel o, como en este caso, con un divisor de voltaje usando resistencias de 1K y 2K como se ve en el circuito.

Paso 5: Monitor de batería

Para monitorear los niveles de la batería, establecí divisores de voltaje para llevar los niveles de voltaje por debajo de 5V (rango máximo de Arduino). El divisor de voltaje disminuye el voltaje que se mide dentro del rango de las entradas analógicas de Arduino.

Se utilizan las entradas analógicas A4 y A6 y se utilizan resistencias altas (100K ohmios) para no agotar demasiado las baterías en el proceso de medición. Tenemos que comprometernos, si las resistencias son demasiado bajas (10K ohmios), menos efecto de carga, la lectura de voltaje es más precisa, pero más corriente; si son demasiado altos (1 M ohmios), más efecto de carga, la lectura de voltaje es menos precisa, pero menos consumo de corriente.

El monitoreo de la batería se realiza cada 10 segundos y se muestra directamente en su teléfono celular controlador.

Estoy seguro de que hay mucho margen de mejora en esta parte, ya que estoy leyendo de dos pines analógicos y el MUX interno se intercambia entre ellos. No estoy promediando múltiples mediciones y tal vez eso sea lo que debería estar haciendo.

Déjame explicarte la siguiente fórmula:

// Lea el voltaje del pin analógico A4 y realice la calibración para Arduino:

voltaje1 = (lectura analógica (A4) * 5.0 / 1024.0) * 2.0; //8.0V

La placa nano Arduino contiene un convertidor analógico a digital de 8 canales y 10 bits. La función analogRead () devuelve un número entre 0 y 1023 que es proporcional a la cantidad de voltaje que se aplica al pin. Esto produce una resolución entre lecturas de: 5 voltios / 1024 unidades o 0,0049 voltios (4,9 mV) por unidad.

¡El divisor de voltaje reduce a la mitad el voltaje y, para obtener el voltaje real, es necesario multiplicarlo por 2!

IMPORTANTE: ¡Estoy seguro de que hay una forma más eficiente de alimentar un arduino que la forma en que lo estoy haciendo! Como novato, he aprendido por las malas. El pin Arduino Vin utiliza un regulador de voltaje lineal, lo que significa que, con una batería de 9 V, ¡quemará una gran parte de la energía en el regulador lineal mismo! No es bueno. Lo hice de esta manera porque fue rápido y solo porque no sabía nada mejor… pero asegúrate de que en la versión 2.0 de Robo Frankie ciertamente lo haré de manera diferente.

Estoy pensando (en voz alta) que una fuente de alimentación conmutada DC DC Step up y una batería recargable de iones de litio podrían ser una mejor manera. Su amable sugerencia será más que bienvenida …

Paso 6: Sensor de rango ultrasónico HC-SR04

Sensor de rango ultrasónico HC-SR04
Sensor de rango ultrasónico HC-SR04

HC-SR04 es un sensor de rango ultrasónico. Este sensor proporciona medidas de 2 cm a 400 cm con una precisión de alcance de hasta 3 mm. En este proyecto, se utiliza para evitar obstáculos cuando alcanza los 20cm o menos y también para medir la distancia a cualquier objeto, que se envía de regreso a su teléfono celular.

Hay un botón en la pantalla de su teléfono celular en el que debe hacer clic para solicitar la distancia a un objeto cercano.

Paso 7: escáner Larson

Escáner Larson
Escáner Larson
Escáner Larson
Escáner Larson
Escáner Larson
Escáner Larson

Quería incluir algo divertido, así que incluí un escáner Larson que se parece a K. I. T. T. de Knight Rider.

Para el escáner Larson he usado ATtiny85 con charlieplexing. Charlieplexing es una técnica para controlar una pantalla multiplexada en la que se utilizan relativamente pocos pines de E / S en un microcontrolador para controlar una matriz de LED. El método utiliza las capacidades lógicas de tres estados de los microcontroladores para ganar eficiencia sobre la multiplexación tradicional.

En este caso, estoy usando 3 pines de ATtiny85 para encender 6 LED.

Puede encender los LED "X" con N pines. Utilice la siguiente fórmula para derivar cuántos LED puede conducir:

X = N (N-1) LED con N pines:

3 pines: 6 LED;

4 pines: 12 LED;

5 pines: 20 LED … entiendes la idea;-)

La corriente fluye de positivo (ánodo) a negativo (cátodo). La punta de la flecha es cátodo.

Es importante tener en cuenta que el pin 1 (en el código IDE de Arduino) se refiere al pin físico 6 en ATtiny85 (consulte el pinout adjunto).

Adjunto encontrará el código que debe cargarse en ATtiny85 que controla el escáner Larson. No estoy describiendo cómo cargar un código en ATtiny85 ya que hay muchos instructables que hacen eso como este.

Paso 8: Código

Código
Código

Adjunto el código que debe cargarse en ATtiny85 que controla el escáner Larson y el código para Arduino nano.

En cuanto al Arduino nano, he usado parte de los códigos de otros instructables (aquí) e hice cambios para satisfacer mis necesidades. He incluido un diagrama de flujo (también en Word para una imagen más clara) del código para comprender mejor cómo funciona Switch - Case.

Importante: Para cargar el código CarBluetooth en Arduino nano, ¡debe desconectar Rx y Tx del módulo Bluetooth HC-05!

Paso 9: cámara

Cámara
Cámara
Cámara
Cámara

La aplicación IP Webcam debe descargarse de Play Store e instalarse en su teléfono celular anterior. Verifique las preferencias de video, ajuste la resolución en consecuencia y finalmente vaya al último comando "Iniciar servidor" para iniciar la transmisión. ¡No olvides activar el Wi-Fi en el teléfono celular!

Paso 10: MIT App Inventor2

Inventor2 de la aplicación MIT
Inventor2 de la aplicación MIT

MIT App inventor2 es una herramienta basada en la nube que ayuda a crear aplicaciones en su navegador web. Esta aplicación (solo para celulares basados en Android) se puede cargar en su celular y controlar su automóvil robot.

Adjunto código.apk y.aia para que pueda ver lo que he hecho y pueda modificarlo como desee. Utilicé un código de Internet (aplicación MIT) y realicé mis propias modificaciones. Este código controla el movimiento del coche robot, recibe la señal del sensor ultrasónico, enciende las luces y emite un pitido. También recibe señal de las baterías avisándonos el nivel de voltaje.

Con este código podremos recibir dos señales diferentes del coche: 1) distancia a un objeto cercano y 2) voltaje del motor y las baterías del arduino.

Para identificar la cadena de serie recibida, he incluido una bandera en el código de Arduino que especifica el tipo de cadena que se envió. Si Arduino envía la distancia medida desde el sensor ultrasónico, entonces envía un carácter "A" delante de la cadena. Siempre que Arduino envía niveles de batería, envía una bandera con un carácter "B". En el código de inventors2 de la aplicación MIT, analicé la cadena serial que viene de Arduino y verifiqué estas banderas. Como dije, soy un novato y estoy seguro de que hay formas más eficientes de hacer esto y espero que alguien pueda iluminarme de una mejor manera.

Envíe Arduino_Bluetooth_Car.apk a su teléfono celular (por correo electrónico o Google Drive) e instálelo.

Paso 11: conecte su teléfono celular a su auto RC

Conecte su teléfono celular a su auto RC
Conecte su teléfono celular a su auto RC
Conecte su teléfono móvil a su coche RC
Conecte su teléfono móvil a su coche RC

En primer lugar, encienda el wi-fi en el teléfono celular antiguo (el del robot RC).

En su teléfono celular controlador, encienda su wi-fi, Bluetooth y abra Arduino_Bluetooth_Car.apk que acaba de instalar. Al final de la pantalla (desplácese hacia abajo si no puede verlo) verá dos botones: Dispositivos y CONECTAR. Haga clic en Dispositivos y seleccione el Bluetooth de su coche RC (debería ser algo HC 05), luego haga clic en CONECTAR y debería ver el mensaje CONECTADO en la parte inferior izquierda de la pantalla. La primera vez, se le pedirá una contraseña (ingrese 0000 o 1234).

Hay un cuadro donde debe ingresar la dirección IP de su antiguo celular (celular que está en su auto RC), en mi caso es

Este número de IP se puede detectar en su enrutador Wi-Fi. Debe ingresar a la configuración de su enrutador, seleccionar Lista de dispositivos (o algo así, dependiendo de la marca de su enrutador) y debería poder ver su dispositivo celular anterior, haga clic en él e ingrese este número de IP en este cuadro.

Luego seleccione CÁMARA y debería comenzar a ver la transmisión de la cámara desde su Coche RC.

Paso 12: ¡Listo

¡Estás listo!
¡Estás listo!

¡Estás listo! ¡Empieza a jugar con él

Cambios futuros: cambiaré la batería de 9V con baterías de iones de litio para recargarlas y usar un regulador de voltaje elevador DC-DC, también quiero mejorar el monitor de batería al incluir suavizado (promediado) de las lecturas analógicas. No planea incluir A. I. todavía …;-)

Entré en mi primer concurso instructable … así que por favor vote;-)

Recomendado: