Tienda de Electronica Avanzada

Tienda de Electronica Avanzada

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

Preparación del Senador Ultrasónico y ESP32 CAM

2 Más imágenes

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

Descarga los archivos para arduino

  •  

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.

    Descarga Directa APK

    Descargar archivo apk de GitHub https://github.com/catosci/CatosciApp/blob/main/release/catosci.apk

    Paso 10: Genial

    Felicidades. Ahora tu robot es un FPV.

     

    Si lo desea puede comprar directamente el robot en https://www.ebay.it/it/165403121965