Com fer un robot per evitar obstacles amb l'ús d'Arduino?

El món avança ràpidament i la tecnologia també s’hi mou en el camp de la robòtica. Les aplicacions de la robòtica es poden veure a tot el món. El concepte de robots mòbils o autònoms que es mouen sense cap ajuda externa és el camp de recerca més immersiu. Hi ha tants tipus de robots mòbils, per exemple, intèrprets d’autolocalització i mapatge (SLAM), seguiment de línia, robots de sumo, etc. Un dels robots que evita obstacles és un d’ells. Utilitza una tècnica per canviar el camí si detecta algun obstacle en el seu camí.



(Cortesia de la imatge: resum del circuit)

En aquest projecte, s’ha dissenyat un robot basat en Arduino per evitar obstacles que utilitzarà un sensor d’ultrasons per detectar tots els obstacles que hi ha al seu pas.



Com evitar els obstacles amb el sensor d'ultrasons?

Com que coneixem el resum del nostre projecte, fem un pas endavant i recollim-ne informació per iniciar el projecte.



Pas 1: recollida dels components

El millor enfocament per iniciar qualsevol projecte és fer una llista de components complets al començament i fer un breu estudi de cada component. Això ens ajuda a evitar els inconvenients enmig del projecte. A continuació es mostra una llista completa de tots els components utilitzats en aquest projecte.



  • Xassís de roda de cotxe
  • Bateria

Pas 2: estudiar els components

Ara, com que tenim una llista completa de tots els components, fem un pas endavant i fem un breu estudi del funcionament de tots els components.

Arduino nano és una placa de microcontrolador compatible amb les taules de control que s’utilitza per controlar o realitzar diferents tasques en un circuit. Cremem un Codi C a Arduino Nano per dir a la placa de microcontroladors com i quines operacions realitzar. Arduino Nano té exactament la mateixa funcionalitat que Arduino Uno, però en una mida força petita. El microcontrolador de la placa Arduino Nano és ATmega328p.

Arduino Nano



El L298N és un circuit integrat d’alta corrent i alta tensió. És un pont complet dual dissenyat per acceptar la lògica TTL estàndard. Té dues entrades d’activació que permeten que el dispositiu funcioni de forma independent. Es poden connectar i operar dos motors alhora. La velocitat dels motors es varia a través dels passadors PWM. La modulació d’amplada de pols (PWM) és una tècnica mitjançant la qual es pot controlar el flux de tensió en qualsevol component electrònic. Aquest mòdul té un pont H que s’encarrega del control de la direcció de rotació dels motors invertint la direcció del corrent. El pin Habilita A i Habilita el pin B s’utilitzen per canviar la velocitat de tots dos motors. Aquest mòdul pot funcionar entre 5 i 35 V i un màxim de corrent de fins a 2A. El pin d'entrada1 i el pin2 d'entrada i el primer motor i el pin d'entrada3 i el pin d'entrada4 són per al segon motor.

Controlador de motor L298N

La placa HC-SR04 és un sensor d'ultrasons que s'utilitza per determinar la distància entre dos objectes. Consisteix en un transmissor i un receptor. El transmissor converteix el senyal elèctric en un senyal ultrasònic i el receptor torna a convertir el senyal ultrasònic en el senyal elèctric. Quan el transmissor envia una ona ultrasònica, es reflecteix després de xocar amb un objecte determinat. La distància es calcula utilitzant el temps que triga el senyal ultrasònic en passar del transmissor i tornar al receptor.

Sensor d'ultrasons

Pas 3: Muntatge dels components

Ara que ja sabem el funcionament de la majoria dels components utilitzats, comencem a muntar tots els components i produïm un robot per evitar obstacles.

  1. Agafeu les persecucions de les rodes d’un cotxe i enganxeu una tauleta a la part superior. Munteu el sensor d'ultrasons a la part davantera de les persecucions i un tap de la bateria darrere de les persecucions.
  2. Fixeu la placa Arduino Nano a la tauleta de suport i connecteu el controlador del motor just darrere de la tauleta de suport, a les persecucions. Connecteu els pins Habilita els motors als pins Pin6 i Pin9 d'Arduino nano. Els pins In1, In2, In3 i In4 del mòdul del controlador del motor estan connectats al pin2, pin3, pin4 i pin5 del nano Arduino respectivament.
  3. El disparador i el pin de ressò del sensor d'ultrasons estan connectats al pin11 i a l'in10 de l'Arduino nano respectivament. El Vcc i el pin de terra del sensor d'ultrasons estan connectats a 5V i a terra de l'Arduino Nano.
  4. El mòdul del controlador del motor funciona amb la bateria. La placa Arduino Nano obté l'alimentació del port de 5 V del mòdul del controlador del motor i el sensor ultrasònic obtindrà la seva alimentació a partir de la placa Arduino nano. el pes i l'energia de les bateries poden convertir-se en el factor determinant del seu rendiment.
  5. Assegureu-vos que les vostres connexions siguin les mateixes que es mostren a continuació al diagrama del circuit.

    Esquema de connexions

Pas 4: Introducció a Arduino

Si encara no esteu familiaritzat amb l’IDE ​​Arduino, no us preocupeu, perquè a continuació s’explica un procediment pas a pas per configurar i utilitzar Arduino IDE amb una placa de microcontrolador.

  1. Descarregueu la versió més recent d'Arduino IDE des de Arduino.
  2. Connecteu la placa Arduino Nano al portàtil i obriu el tauler de control. al tauler de control, feu clic a Maquinari i so . Ara feu clic a Dispositius i impressores. Aquí trobareu el port al qual està connectada la vostra placa de microcontrolador. En el meu cas ho és COM14 però és diferent en diferents ordinadors.

    Buscant Port

  3. Feu clic al menú Eina. i fixeu el tauler a Arduino Nano des del menú desplegable.

    Taula de configuració

  4. Al mateix menú d'eines, establiu el port al número de port que heu observat anteriorment al fitxer Dispositius i impressores .

    Configuració del port

  5. Al mateix menú d'eines, configureu el processador a ATmega328P (Bootloader antic).

    Processador

  6. Baixeu-vos el codi adjunt a continuació i enganxeu-lo al vostre IDE Arduino. Feu clic al botó pujar per gravar el codi a la placa del microcontrolador.

    Pujar

Per descarregar el codi, clica aquí.

Pas 5: entendre el codi

El codi està ben comentat i s’explica per si mateix. Però, tot i així, s’explica a continuació

1. Al començament del codi, s’inicialitzen tots els pins de la placa Arduino Nano que estan connectats al mòdul del sensor d’ultrasons i del controlador del motor. Pin6 i Pin9 són pins PWM que poden variar el flux de tensió per variar la velocitat del robot. Dues variables, durada, i distància s’inicialitzen per emmagatzemar dades que posteriorment s’utilitzaran per calcular la distància del sensor d’ultrasons i l’obstacle.

int enable1pin = 6; // Pins per al primer motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pins per al segon motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Pin gatell de ultrasons Sesnor const int echoPin = 10; // Pin de ressò de Sesnor per ultrasons de llarga durada; // variables per calcular la distància flotant;

2. configuració nul·la () és una funció que s'utilitza per configurar tots els pins utilitzats, com ENTRADA i SORTIDA. La velocitat en bauds es defineix en aquesta funció. Baud Rate és la velocitat de comunicació mitjançant la qual la placa de microcontroladors es comunica amb els sensors integrats.

configuració nul·la () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. bucle buit () és una funció que s'executa repetidament en un cicle. En aquesta funció, expliquem a la placa de microcontroladors com i quines operacions s'han de dur a terme. En primer lloc, el pin de disparador està configurat per enviar un senyal que serà detectat pel pin de ressò. A continuació, es calcula el temps que triga el senyal ultrasònic en viatjar des del cap enrere fins al sensor i es guarda a la variable durada. A continuació, aquest temps s'utilitza en una fórmula per calcular la distància de l'obstacle i del sensor d'ultrasons. A continuació, s’aplica la condició que si la distància és superior a 5ocm, el robot avançarà en línia recta i si la distància és inferior a 50cm, el robot prendrà un gir brusc a la dreta.

bucle buit () {digitalWrite (trigPin, LOW); // Enviament i detecció del retard del senyal ultrasònic Microsegons (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durada = pulseIn (echoPin, HIGH); // Calulació del temps pres per l'ona ultrasònica per reflectir la distància posterior = 0,034 * (durada / 2); // Calculant la distància entre el robot i l’obstacle. if (distància> 50) // Avança si la distància és superior a 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, BAIX); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, BAIX); } else if (distància<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Aplicacions

Així doncs, aquí hi havia el procediment per fer un robot per evitar obstacles. Aquesta tecnologia per evitar obstacles pot ser demandada en altres aplicacions també. Algunes d’aquestes aplicacions són les següents.

  1. Sistema de seguiment.
  2. Propòsits de mesura de distància.
  3. Es pot utilitzar en robots de neteja automàtica.
  4. Es pot utilitzar a Sticks per a persones invidents.