Cum se face un obstacol pentru a evita robotul folosind Arduino?

Lumea se mișcă rapid, iar tehnologia se mișcă odată cu ea și în domeniul roboticii. Aplicațiile roboticii pot fi văzute peste tot în lume. Conceptul de roboți mobili sau autonomi care se mișcă fără niciun ajutor extern este cel mai imersiv domeniu de cercetare. Există atât de multe tipuri de roboți mobili, de exemplu, interpreți de auto-localizare și cartografiere (SLAM), urmărire de linie, roboți Sumo, etc. Folosește o tehnică pentru a schimba calea dacă detectează orice obstacol în calea sa.



(Amabilitatea imaginii: Rezumatul circuitului)

În acest proiect, este conceput un robot care evită obstacolele bazat pe Arduino, care va utiliza un senzor cu ultrasunete pentru a detecta toate obstacolele din calea sa.



Cum se evită obstacolele folosind senzorul cu ultrasunete?

Pe măsură ce știm rezumatul proiectului nostru, permiteți-ne să facem un pas înainte și să adunăm câteva informații pentru a începe proiectul.



Pasul 1: Colectarea componentelor

Cea mai bună abordare pentru a începe orice proiect este de a face o listă de componente complete la început și de a parcurge un scurt studiu al fiecărei componente. Acest lucru ne ajută să evităm inconvenientele din mijlocul proiectului. O listă completă a tuturor componentelor utilizate în acest proiect este prezentată mai jos.



  • Șasiu roată auto
  • Baterie

Pasul 2: Studierea componentelor

Acum, deoarece avem o listă completă a tuturor componentelor, să mergem cu un pas înainte și să parcurgem un scurt studiu al funcționării fiecărei componente.

Arduino nano este o placă de microcontroler compatibilă cu placa de joc care este utilizată pentru a controla sau a efectua diferite sarcini într-un circuit. Ardem un Codul C pe Arduino Nano pentru a spune plăcii microcontrolerului cum și ce operațiuni să efectueze. Arduino Nano are exact aceeași funcționalitate ca Arduino Uno, dar într-o dimensiune destul de mică. Microcontrolerul de pe placa Arduino Nano este ATmega328p.

Arduino Nano



L298N este un circuit integrat de înaltă tensiune și curent ridicat. Este un full-bridge dual conceput pentru a accepta logica TTL standard. Are două intrări de activare care permit dispozitivului să funcționeze independent. Două motoare pot fi conectate și acționate în același timp. Viteza motoarelor este variată prin intermediul pinilor PWM. Modularea lățimii pulsului (PWM) este o tehnică în care fluxul de tensiune în orice componentă electronică poate fi controlat. Acest modul are un H-Bridge care este responsabil pentru controlul direcției de rotație a motoarelor prin inversarea direcției curentului. Enable pin A și Enable Pin B sunt utilizate pentru a schimba viteza ambelor motoare. Acest modul poate funcționa între 5 și 35V și curent de vârf până la 2A. Pinul de intrare1 și Pinul de intrare2 și pentru primul motor și Pinul de intrare3 și Pinul de intrare4 sunt pentru al doilea motor.

Driver motor L298N

Placa HC-SR04 este un senzor cu ultrasunete care este utilizat pentru a determina distanța dintre două obiecte. Se compune dintr-un emițător și un receptor. Transmițătorul convertește semnalul electric într-un semnal ultrasonic, iar receptorul convertește semnalul ultrasonic înapoi în semnal electric. Când emițătorul trimite o undă cu ultrasunete, acesta se reflectă după ce se ciocnește cu un anumit obiect. Distanța este calculată utilizând timpul, pe care semnalul ultrasonic îl ia pentru a trece de la transmițător și a reveni la receptor.

Senzor cu ultrasunete

Pasul 3: Asamblarea componentelor

Acum, după cum știm acum funcționarea majorității componentelor utilizate, să începem să asamblăm toate componentele și să producem un robot care să evite obstacolele.

  1. Luați o mașină cu urmăriri pe roți și lipiți o panou de sus în partea de sus. Montați senzorul cu ultrasunete în partea din față a urmăririlor și un capac al bateriei în spatele urmăririlor.
  2. Fixați placa Arduino Nano pe panou și atașați șoferul motorului chiar în spatele panoului, pe urmăriri. Conectați pinii de activare ai motoarelor la Pin6 și Pin9 din Arduino nano. Pinii In1, In2, In3 și In4 ai modulului driverului motorului sunt conectați la pinul 2, pin3, pin4 și respectiv pin5 din Arduino nano.
  3. Pinul de declanșare și ecoul senzorului cu ultrasunete sunt conectate la pinul11 și respectiv la in10 al nano Arduino. Vcc-ul și pinul de masă al senzorului cu ultrasunete sunt conectate la 5V și la masă ale Arduino Nano.
  4. Modulul controlerului motorului este alimentat de baterie. Placa Arduino Nano obține puterea de la portul de 5V al modulului driverului motorului, iar senzorul cu ultrasunete își va obține puterea de la placa Arduino nano. greutatea și energia bateriilor pot deveni factorul determinant al performanței sale.
  5. Asigurați-vă că conexiunile dvs. sunt identice cu cele prezentate mai jos în schema circuitului.

    Diagrama circuitului

Pasul 4: Noțiuni introductive despre Arduino

Dacă nu sunteți deja familiarizați cu Arduino IDE, nu vă faceți griji, deoarece o procedură pas cu pas pentru a configura și utiliza Arduino IDE cu o placă de microcontroler este explicată mai jos.

  1. Descărcați cea mai recentă versiune a Arduino IDE de la Arduino.
  2. Conectați placa Arduino Nano la laptop și deschideți panoul de control. în panoul de control, faceți clic pe Hardware și sunet . Acum faceți clic pe Dispozitive și imprimante. Aici găsiți portul la care este conectată placa de microcontroler. În cazul meu este COM14 dar este diferit pe diferite computere.

    Găsirea portului

  3. Faceți clic pe meniul Instrument. și setați tabla la Arduino Nano din meniul derulant.

    Placă de setare

  4. În același meniu Tool, setați portul la numărul de port pe care l-ați observat anterior în Dispozitive și imprimante .

    Setarea portului

  5. În același meniu Instrument, setați procesorul la ATmega328P (Bootloader vechi).

    Procesor

  6. Descărcați codul atașat mai jos și lipiți-l în ID-ul dvs. Arduino. Faceți clic pe încărcați butonul pentru a arde codul de pe placa de microcontroler.

    Încărcare

Pentru a descărca codul, Click aici.

Pasul 5: Înțelegerea codului

Codul este bine comentat și se explică de la sine. Dar totuși, este explicat mai jos

1. La începutul codului, sunt inițializați toți pinii plăcii Arduino Nano care sunt conectați la senzorul cu ultrasunete și la modulul driverului motorului. Pin6 și Pin9 sunt pini PWM care pot varia debitul de tensiune pentru a varia viteza robotului. Două variabile, durată, și distanţă sunt inițializate pentru a stoca date care vor fi utilizate ulterior pentru a calcula distanța senzorului cu ultrasunete și obstacol.

int enable1pin = 6; // Pinii pentru primul motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pinii pentru al doilea motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Trigger Pin Of Ultrasonic Sesnor const int echoPin = 10; // Echo Pin de ultrasunete Sesnor de lungă durată; // variabile pentru a calcula distanța distanței plutitoare;

2. configurare nulă () este o funcție care este utilizată pentru a seta toate pinii utilizați, ca INTRARE și IEȘIRE. Rata Baud este definită în această funcție. Baud Rate este viteza de comunicare prin care placa microcontrolerului comunică cu senzorii integrați cu aceasta.

void setup () {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. bucla nulă () este o funcție care rulează în mod repetat într-un ciclu. În această funcție, îi spunem plăcii de microcontroler cum și ce operațiuni să efectueze. Aici, mai întâi, pinul de declanșare este setat pentru a trimite un semnal care va fi detectat de pinul de ecou. Apoi, timpul care este luat de semnalul cu ultrasunete pentru a călători de la și înapoi la senzor este calculat și salvat în variabilă durată. Apoi, acest timp este folosit într-o formulă pentru a calcula distanța obstacolului și a senzorului cu ultrasunete. Apoi se aplică o condiție ca, dacă distanța este mai mare de 5ocm, robotul să se deplaseze înainte în linie dreaptă și dacă distanța este mai mică de 50cm, robotul va lua o viraj ascuțit la dreapta.

bucla void () {digitalWrite (trigPin, LOW); // Trimiterea și detectarea întârzierii semnalului ultrasonic Microsecunde (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); // Calularea timpului luat de unda ultrasonică pentru a reflecta distanța de spate = 0,034 * (durata / 2); // Calcularea distanței între robot și obstacol. if (distanță> 50) // Mutați înainte dacă distanța este mai mare de 50cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } else if (distanță<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); }

Aplicații

Deci, aici a fost procedura de a face un robot care evită obstacolele. Această tehnologie care evită obstacolele poate fi acționată în judecată și în alte aplicații. Unele dintre aceste aplicații sunt următoarele.

  1. Sistem de urmărire.
  2. Scopuri de măsurare a distanței.
  3. Aceasta poate fi utilizată la roboții de curățare automată.
  4. Aceasta poate fi utilizată în Sticks pentru nevăzători.