Ensamble Configuracion Robot Arduino 4WD
Esta robot se controla a través de Bluetooth (conectado a Arduino) o WIFI (Con un ESPCAM de ESP32 adicional conectado a Arduino).
Espero hacer una guía paso a paso para hacer este robot de una manera muy fácil.
Video tutorial disponible en: https://www.youtube.com/watch?v=S48q2WzM1kc
Robot que evita obstaculos
Es un robot totalmente autónomo que puede ser capaz de evitar cualquier obstáculo al que se enfrenta cuando se mueve. Simplemente, cuando se encontró con un obstáculo mientras avanzaba, deja automáticamente de avanzar y da un paso atrás. Entonces parece que es de dos lados de izquierda y derecha y comienza a moverse de la mejor manera posible, lo que significa ya sea en la izquierda si hay otro obstáculo en la derecha o en la dirección derecha si hay otro obstáculo en el lado izquierdo. Este modo es muy útil y es la base de muchos grandes proyectos como los coches automáticos, robots utilizados en las fábricas, incluso en robots utilizados en naves
espaciales.
Robot seguidor de lineas
utiliza algunos sensores de proximidad infrarrojos para detectar la línea y en base a la entrada recibida de los sensores, el Arduino dirigirá los motores a moverse con la ayuda de una unidad motora.
Robot de seguimiento
Con sensores de proximidad el robot puede detectar cualquier objeto cerca de él y pueden seguir este objeto. Si vienes
delante del robot empezará a seguirte. este robot consiste en sensor ultrasónico y sensor ir que ayudan a seguir el objeto. Esto es como el obstáculo que evita el robot sólo pero hace lo opuesto. Usa 2 sensores IR y un sensor ultrasónico. Los sensores IR utilizados para seguir el ser humano u objeto y se utiliza el sensor ultrasónico para mover el robot.
Modo Bluetooth
se puede controlar a través de un dispositivo Bluetooth conectado a Arduino. una aplicación para Android que puede controlar la dirección del robot y activar el modo de acción. como un carro a control remoto.
El tablero ESP32(modulo adicional)
puede transmitir vídeo en tiempo real a través de WIFI. una aplicación para Android donde se puede ver vídeo en tiempo real durante el movimiento del robot. Puedes usar el robot como dispositivo IOT.
Lista de componentes
1 Arduino Uno Más cable
1. Sensor Shield V5.0
1. Puente H L298N
4. DC 3V-6V Motor
4. Ruedas de plástico 65x26mm
1. Módulo de seguimiento Linea 5V 5-way
2. IR Sensor
1. Buzzer module
1. Sensor de UltraSonido HC-SR04
1. Micro servo SG90
1. Resistores 100k- y 1M
0. Esp32 Cam WiFi (Modulo adicional)
1. Bluetooth module HC-05
1. Soporte de la batería
20. Cable femenino- femenino
4. Standoff M3x50mm
Varios Tornillos M2-M 2.5 ó m3
1 Chasis Superior
1 Chasis Inferior
1 HC-SR04/ESP32 Face Holder
1 clip ESP32
Paso 1: Ensamblando el chasis Inferior
Coloca el chasis Inferior y monta el Puente H L298N en él (usa 4 tornillos).
Cuida la orientación del Puente Dual H (ver imagen de referencia).
Fija los 4 los motores DC en el chasis usando el Tornillos y tuerca más largos (ver imagen para referencia).
Conecta los 4 Motores DC al Puente H L298N después del esquema. Recuerde que el puente H L298N es capaz de controlar el motor 2 DC y tenemos que conectar el motor derecho y el motor izquierdo juntos.
Ensamble el módulo de seguimiento 5V 5-way en la posición frontal del chasis inferior (ver imagen para referencia).
Paso 2: Montar el chasis superior
Coloca el chasis de arriba en un avión y monta el avión Arduino en él (utiliza 4 tornados).
Coloque el Escudo del Sensor Arduino V5.0 en la parte superior de la junta de Arduino teniendo cuidado de que el pin correspondiente se acopla a los que se acopla.
Monta el Sensor 2 IR en el chasis con el tornado. Utilíce los soportes orientados en el chasis para tener el sensor orientado a 30o. Este paso es importante porque los sensores IR se utilizan para comprobar el obstáculo en el lado derecho e izquierdo del robot.
Montar el Micro servo SG90 en el agujero de sqare del chasis.Use 2 tornillo para arreglarlo.
Monta el módulo Buzzer en el chasis con el tornado. Utilícele el soporte para la orientación adecuada.
Montar el soporte de la Batería en el chasis con el tornado 2. Utilíce el soporte para la orientación adecuada.
Ahora has reunido el chasis de Top y Bottom. Buen trabajo.
Sigamos con otro paso.
Paso 3: Preparación del Sensor Ultrasónico y ESP32 CAM
Utilista el Face Holder impreso en 3D e inserte el sensor de ultrasound HC-SR04 en el agujero redondo de 2.
A continuación, montar el Holder en el micro servo que ya se ha instalado en el chasis.
Alambre del sensor Ultrasound HC-SR04 usando 4 cable femenino-femenino.
Monte He ESP32 Cam en el Face Holder impreso en 3D.
Alambre de la ESP32 Cam con 2 cable femenino-mujer (5V y GND).
Paso 4: Componentes de cableado
Ahora podemos empezar a cablear el coche inteligente.
Antes de ensamblo el chasis juntos tenemos que cablear el componente en el chasis inferior para poder usar el agujero a través.
Alambre del módulo de seguimiento 5V 5-way en el chasis de Bottom usando 5 cable femenino-femenino.
Alambre del puente Dual H L298N en el chasis de fondo usando 6 cables femeninos.
Alambre del puerto GND, 5V con 2 cable macho-masculino.
Alita el puerto GND,12V en el puente Dual H al soporte de la batería. Importante: Pon el interruptor de encendido a OFF.
Ahora puedes usar el agujero en el chasis de la Top para pasar a través del cable femenino-mujer cableado antes. No olvides el micro servo cable.
Coloque la tapa de la tapa en la parte superior y cóstelo con el chasis de fondo usando tornado M3.
Ahora podemos continuar cableando otro componente en el chasis de Top.
Alambres ambos sensores IR en el chasis superior usando 3 cable femenino-femenino para cada uno.
Alcámbie el módulo Buzzer en el chasis Top usando 3 cable femenino-mujer.
Trate de juntar todo el cable usando un elástico o algo similar.
Detalle de cableado:
Conductor de motor L298N:
12V Batería Lipo ()
Batería de Lipo (- ) importante: conectar el GND a la batería de lipo (-) y arduino tablero cualquier pin de GND
5V Arduino Vin
EnA . arduino digital pin 3
In1 arduino digital pin 4
In2 arduino digital pin 5
En 3 . arduino digital pin 6
In4 arduino digital pin 7
EnB – arduino digital pin 11
OUT1 – Motor FWD-BWD Right
OUT2 – Motor FWD-BWD Right
OUT3 – Motor FWD-BWD Izquierda
OUT4 . Motor FWD . Izquierda
Módulo Buzzer:
GND – arduino V
VCC – arduino G
I/S. arduino digital pin 13
Micro servo:
GND – arduino V
VCC – arduino G
EN . arduino digital pin 12
Sensor derecho IR:
GND – arduino V
VCC – arduino G
OUT . arduino digital pin 2
Sensor izquierdo IR:
GND – arduino V
VCC – arduino G
OUT . arduino pin digital 8
HC-SR04 Ultrasonic
Sensor del sónar:
VCC – Arduino URF 5V
Trig arduino URF alfiler 2
Echo arduino URF pin analógico 3
GND – Arduino URF GND
Módulo de rastreo:
GND arduino G
5V arduino V
OUT2 . arduino analog pin 4
OUT3 . arduino analog pin 1
OUT4 . arduino analog pin 0
El módulo Bluetooth HC-06
GND arduino G
5V arduino V
TX arduino RX
RX – arduino TX
ESP32 CAM
GND arduino G
5V arduino V
RX – arduino TX importante: cuando está conectado debe desconectar Bluetooth
Paso 5: Breadboard con lector de voltaje
Montar el mini tablero de pan en el chasis superior con el adhesivo.
Alambre del puerto de 12V en el puente Dual H hasta la tabla de pan con un cable macho-masculino.
Volta de batería (100k y conexión serie de resistencia 1M)
100k de resistencia 12V
100k/1M resistor . . . . . . . . . . . . . . .
Resistencia 1M – arduino G
Mini Breadboard se puede utilizar también para su propio experimento.
Paso 6: Ensamba completa
Ahora puede completar el trabajo ensamblando las 4 ruedas de plástico y agrupar todos los cables.
Paso 7: Programación Arduino UNO
Descargar e instalar el IDE de escritorio de Arduino Windows- https://www.arduino.cc/en/Guide/Windows Mac OS X - https://www.arduino.cc/en/Guide/MacOSX Linux - https://www.arduino.cc/en/Guide/Linux Cree una carpeta llamada a Catosci-SmartCar y guarde todos los archivos .ino,.cpp y .h. Abra el archivo Catosci-SmartCar.ino en Arduino IDE y suba a Arduino bordo. Importante: Recuerde desconectar Bluetooth antes de conectar cable USB ************************************************** Nombre de archivo: Catosci-SmartCar.ino Producto : Coche Catosci 4WD para UNO Descripción: Un coche remoto multifuncional Bluetooth. Auther : Carlo Iurisci Modificación: 2022/03/25 ******************************************************* Include "Catosci,4WD,Carfor-Arduino.h" Incluir "Automatic, obstacle, evitar.Mode.h" Include "Automatic, Tracking, Lino.Mode.h" Incluir "BluetoothOrders.h" Definir UPLOAD-VOL-TIME 3000 Definir . . . . . . . . . . . . . . . . . . . . Definir COMMANDS-COUNT-MAX 8 Definir INTERVAL-CHAR '' ///-define DEBUG u32 lastUploadVoltageTime; u32 lastUploadDataTime; Introduzca en cadenaStringBLE = "; cuerda boolComplete = false; paramters int[COMMANDS-COUNT-MAX], paramterCount = 0; int bleCarMode = MODE-NONE; configuración anífala () de pinsSetup (); Serial.begin (9600); servoSetup (); // mientras sea (-strip.begin()); // strip.setAllLedsColor(0xFF0000); - bucle vacío () // invia misura Vbatteria all'App ogni UPLOAD-VOL-TIME upLoadVoltageToApp (); // invia lettura sensori all'App ogni UPLOAD-DATA-TIME upLoadAedReadSonarValueToApp (); i (cadeingCompleto) //da eseguiro solo alla ricezione di un comando Entrada de cuerdaCommandArray [COMMANDS-COUNT-MAX]; Introversión de cuerdaStringTemp = inputStringBLE; para (u8 i = 0; i - COMMANDS-COUNT-MAX; i) int index = inputStringTemp.indexOf(INTERVAL-CHAR); si (índice 0) rompida; - paramterCount = i; // inputCommandArray[i] = inputStringTemp.substring(0, index); inputStringTemp = inputStringTemp.substring (índice 1); paramters[i] = inputCommandArray[i].toInt(); - Encadenado = false; inputStringBLE = ""; char comandoChar = inputCommandArray[0].charAt(0); interruptor (comandoChar) - caso ACTION-MOVE: si (paramterCount == 2) motorRun(paramters[1], paramters[2]); //app contol catoscicar-speed es 0o 100 ,pwm es 0-255 - rompida; caso ACTION-CAR-MODE: si (paramterCount == 1) bleCarMode = paramters[1]; interruptor (bleCarMode) - caso MODE-NONE: caso MODE-GRAVIDAD: resetCarAction (); escribirServo (OA-SERVO-CENTER); rompida; caso MODE-ULTRASONIC: oa-CalculateVoltageCompensation (); rompida; caso MODE-ULTRASONIC-NOIR: oa-CalculateVoltageCompensation (); rompida; caso MODE-FOLLOW: oa-CalculateVoltageCompensation (); rompida; caso MODE-TRACKING: tk-CalculateVoltageCompensation (); rompida; por defecto: rompida; - - rompida; caso ACTION-BUZZER: si (paramterCount == 1) setBuzzer (paramters[1]); - rompida; por defecto: rompida; - - interruptor (bleCarMode) //loop per modalitá di controllo - caso MODE-NONE: caso MODE-GRAVIDAD: rompida; caso MODE-ULTRASONIC: updateAutomaticObstacleAvoidance (); rompida; caso MODE-ULTRASONIC-NOIR: actualizaciónAutomaticObstacleAvoidanceNoInfrared(); rompida; caso MODE-FOLLOW: UltrasonicFollow (); rompida; caso MODE-TRACKING: updateAutomaticTrackingLine (); rompida; por defecto: rompida; - void upLoadVoltageToApp() tensión int = 0; si (millis (millis () - últimoUploadVoltageTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . si (getBatteryVoltage ()) voltaje = batería Voltaje * 1000; - String sendString = String(ACTION.GET.VOLTAGE) - String(INTERVAL-CHAR) - String(voltage) - String(INTERVAL-CHAR); Serial.println (sendString); últimoUploadVoltageTime = millis (); - - void upLoadAndReadSonarValueToApp() // Invia lettura sensori all'App si (milliss () - últimoUploadDataTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . String sendString = String(ACTION.ULTRASONIC).String(INTERVAL-CHAR).String(DógetSonar ()); sendString -= String(INTERVAL-CHAR).. String(digitalRead(IR AVOIDANCE.RIGHT-PIN)); sendString .= String(INTERVAL.CHAR) . String(digitalRead(IR AVOIDANCE.LEFT.PIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serial.println (sendString); la última cargaDataTime = millis (); - - serie de vacíoEvent () mientras que (Serial.available()) char inChar = (char)Serial.read (); inputStringBLE .= inChar; si (encharo" == 'en') stringComplete = true; Serial.println (inputStringBLE); - - -
Cuando la carga complete el código comenzará a ejecutarse.
Mini servo se posicionará a 90o.
Importante: Reposición del Titular de la Cara en el servo si es necesario.
Ahora puede probar el movimiento de Robot y el modo de acción con el comando serie.
Siguiendo instrucciones para los comandos serie:
El movimiento de ID ACTION-MOVE 'A' //control del smartcar A-speedl.speedr. Define ACTION.CAR-MODE 'H' //smartcar. // H-MODE-NONE--stop // H-MODE-GRAVITY--stop // Olesión de laobstáculo con sonar e ir // Evitar la evitación de laobstáculo con sonar y no ir // H-MODE-TRACKING---tracking con ir // H-MODE-FOLLOW-oguijo con sonar e ir - Define ACTION.BUZZER 'D' //control tizzer D-1" timbre en / D.0" off Definir MODENONE 0 Definir MODE-GRAVIDAD 1 Definir MODE-ULTRASONIC 2 Definir MODE-ULTRASONIC-NOIR 3 Definir MODE-TRACKING 4 Definir MODEFOLLOW 5
Paso 8: Programación ESP32 CAM
Ahora es el momento de programar ESP32 CAM para desautorar vídeo en tiempo real. Siga este tutorial para conectar ESP32 CAM a su USB portáctero / computadora utilizando un programador FTDI.
https://randomnerdtutorials.com/program-upload-code-esp32-cam/
Cree una carpeta llamada “esp32cam-robot y guarde app”.httpd.cpp ,esp32cam-robot.ino.
Abrir archivo esp32cam-robot.ino en Arduino IDE.
Antes de subir el código, necesita insertar sus credenciales de red en las siguientes variables:
const char* ssid = "REPLACE-WITH-YOUR-SSID"; const char* password = "REPLACE-WITH-YOUR-PASSWORD";
Luego, haga clic en el botón en su IDE Arduino
Cuando empieces a ver algunos puntos en la ventana de depuración, presione el botón RST a bordo ESP32-CAM.
Después de unos segundos, el código debe ser subido con éxito a su tablero.
Cuando veas el mensaje de carga de la GPIO 0 de GND y pulsa el botón RST para ejecutar tu nuevo código.
En el monitor de serie deberías ver algo como esto. Tome nota de la dirección IP ESP32.
20:43:13.775 -...... 20:43:18.265 -- WiFi conectado 20:43:18.265 - La cámara listo. Utilícelo 'http://192.168.1.27' para conectarse 20:43:18.359 -o El servidor web inicial en el puerto: '80' 20:43:18.359 -o Arserver de streaming en el puerto: '81'
Adjuntos para descarga
Paso 9: Aplicación Android
Ahora puedes usar mi aplicación desarrollada para controlar el Robot vía bluetooth y ver vídeo en tiempo real a través de wifi.
Descargar archivo apk de GitHub https://github.com/catosci/CatosciApp/blob/main/release/catosci.apk