Kuidas teha Arduino abil roboti vältimiseks takistusi?

Maailm liigub kiiresti ja ka robootika valdkonnas liigub tehnika. Robootika rakendusi võib näha kõikjal maailmas. Väliste abita liikuvate mobiilsete või autonoomsete robotite mõiste on kõige süvenevam uurimisvaldkond. Mobiilseid roboteid on nii mitut tüüpi, näiteks isetuvastamise ja kaardistamise (SLAM) tõlgid, liini jälgimine, Sumo robotid jne. Robotit vältiv takistus on üks neist. Ta kasutab tehnikat tee muutmiseks, kui see avastab oma teel takistusi.



(Pilt viisakalt: vooluringi kokkuvõte)

Selles projektis on välja töötatud Arduinol põhinev takistusi vältiv robot, mis kasutab ultraheliandurit kõigi tema teel olevate takistuste tuvastamiseks.



Kuidas vältida takistusi ultrahelianduri abil?

Kuna teame oma projekti kokkuvõtet, liigume sammu edasi ja kogume projekti alustamiseks teavet.



1. samm: komponentide kogumine

Parim lähenemine mis tahes projekti alustamiseks on koostada alguses täielik komponentide loetelu ja läbi viia iga komponendi lühitutvustus. See aitab meil vältida ebameeldivusi projekti keskel. Allpool on toodud kõigi selles projektis kasutatud komponentide täielik loetelu.



  • Auto ratta šassii
  • Aku

2. samm: komponentide uurimine

Nüüd, kui meil on kõigi komponentide täielik loetelu, liikugem ühe sammu võrra edasi ja uurime lühidalt iga komponendi tööd.

Arduino nano on leivalaudasõbralik mikrokontrolleriplaat, mida kasutatakse vooluringis erinevate ülesannete juhtimiseks või täitmiseks. Me põletame a C kood Arduino nanos, et öelda mikrokontrolleri plaadile, kuidas ja milliseid toiminguid teha. Arduino Nano on täpselt sama funktsionaalsusega kui Arduino Uno, kuid üsna väikeses suuruses. Mikrokontroller Arduino Nano plaadil on ATmega328p.

Arduino Nano



L298N on kõrgvoolu ja kõrgepinge integraallülitus. See on kahekordne täissild, mis on loodud TTL-i loogika aktsepteerimiseks. Sellel on kaks lubatavat sisendit, mis võimaldavad seadmel iseseisvalt töötada. Kaks mootorit saab korraga ühendada ja juhtida. Mootorite kiirust varieeritakse PWM-tihvtide kaudu. Impulsi laiuse modulatsioon (PWM) on tehnika, mille abil saab juhtida mis tahes elektroonikakomponendi pinge voolu. Sellel moodulil on H-sild, mis vastutab mootorite pöörlemissuuna juhtimise eest, pöörates voolu suuna. Mõlema mootori kiiruse muutmiseks kasutatakse lubamisnuppu A ja lubavat tihvti B. See moodul võib töötada vahemikus 5 kuni 35 V ja tippvoolu kuni 2 A. Esimese mootori sisendnupp1 ja sisendtapp2 ning teise mootori jaoks sisendnõel 3 ja sisendtapp4.

L298N mootori juht

HC-SR04 plaat on ultraheliandur, mida kasutatakse kahe objekti vahelise kauguse määramiseks. See koosneb saatjast ja vastuvõtjast. Saatja muundab elektrisignaali ultrahelisignaaliks ja vastuvõtja teisendab ultrahelisignaali tagasi elektrisignaaliks. Kui saatja saadab ultrahelilaine, peegeldub see pärast kokkupõrget kindla objektiga. Vahemaa arvutamiseks kasutatakse aega, mis ultraheli signaalil läheb saatjalt ja jõuab vastuvõtjani tagasi.

Ultraheliandur

3. samm: komponentide kokkupanek

Nüüd, kui teame enamiku kasutatud komponentide tööd, alustagem kõigi komponentide kokkupanekut ja tekitagem takistust, vältides robotit.

  1. Võtke auto rattahoidjad ja kleepige leivaplaat selle kohale. Paigaldage ultraheliandur šassiide ette ja akude kate šassiide taha.
  2. Kinnitage Arduino Nano plaat leivaplaadile ja kinnitage mootorijuht otse leivaplaadi taha, šahtidele. Ühendage mõlema mootori tihvtid Luba Arduino nano Pin6 ja Pin9. Mootori draiveri mooduli In1, In2, In3 ja In4 tihvtid on ühendatud vastavalt Arduino nano pin2, pin3, pin4 ja pin5.
  3. Ultraheli anduri päästik ja kajatihv on ühendatud vastavalt Arduino nano pin11 ja in10. Ultrahelianduri Vcc ja maandatud tihvt on ühendatud Arduino Nano 5V ja maandusega.
  4. Mootori juhtimismoodul töötab toitega akust. Arduino Nano plaat saab toite mootori draiverimooduli 5V porti ja ultraheliandur saab toite Arduino nano plaadilt. patareide kaal ja energia võivad saada selle jõudluse määravaks teguriks.
  5. Veenduge, et teie ühendused oleksid samad, mis allpool skeemil näidatud.

    Vooluringi skeem

4. samm: Arduinoga alustamine

Kui te pole Arduino IDE-ga juba tuttav, ärge muretsege, sest allpool on selgitatud samm-sammult protseduuri Arduino IDE seadistamiseks ja kasutamiseks mikrokontrolleriplaadiga.

  1. Laadige alla Arduino IDE uusim versioon saidilt Arduino.
  2. Ühendage oma Arduino Nano plaat sülearvutiga ja avage juhtpaneel. klõpsake juhtpaneelil nuppu Riistvara ja heli . Nüüd klõpsake nuppu Seadmed ja printerid. Siit leiate porti, millega teie mikrokontrolleri plaat on ühendatud. Minu puhul on see nii KOM14 kuid see on erinevates arvutites erinev.

    Sadama leidmine

  3. Klõpsake menüüd Tööriist. ja seadke tahvel asendisse Arduino Nano rippmenüüst.

    Laua määramine

  4. Määrake samas menüüs Tööriist portiks pordinumber, mida olete enne Seadmed ja printerid .

    Pordi seadistamine

  5. Valige samas menüüs Tööriist protsessor ATmega328P (vana alglaadur).

    Protsessor

  6. Laadige alla allolev kood ja kleepige see oma Arduino IDE-sse. Klõpsake nuppu Laadi üles nupp mikrokontrolleri plaadil oleva koodi kirjutamiseks.

    Laadi üles

Koodi allalaadimiseks kliki siia.

5. samm: koodeksist aru saamine

Kood on hästi kommenteeritud ja iseenesestmõistetav. Kuid siiski selgitatakse seda allpool

1. Koodi alguses lähtestatakse kõik Arduino Nano plaadi tihvtid, mis on ühendatud ultraheli anduri ja mootori draiveri mooduliga. Pin6 ja Pin9 on PWM-tihvtid, mis võivad muuta roboti kiiruse muutmiseks pingevoogu. Kaks muutujat, kestus, ja kaugus lähtestatakse andmete salvestamiseks, mida hiljem kasutatakse ultrahelianduri ja takistuse kauguse arvutamiseks.

int enable1pin = 6; // Esimese mootori tihvtid int motor1pin1 = 2; int mootor 1pin2 = 3; int enable2pin = 9; // Teise mootori tihvtid int motor2pin1 = 4; int mootor 2pin2 = 5; const int trigPin = 11; // Ultraheli Sesnori käivitusnupp const int echoPin = 10; // Ultraheli Sesnori kajasignaal pikaajaline; // muutujad ujukkauguse arvutamiseks;

2. kehtetu seadistamine () on funktsioon, mida kasutatakse kõigi nööpnõelte seadistamiseks SISEND ja VÄLJUND. Selles funktsioonis on määratletud edastuskiirus. Baudi kiirus on sidekiirus, mille abil mikrokontrolleri plaat suhtleb temaga integreeritud anduritega.

void setup () {Seeria.alusta (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (mootor1pin1, OUTPUT); pinMode (mootor1pin2, OUTPUT); pinMode (mootor2pin1, OUTPUT); pinMode (mootor2pin2, OUTPUT); }

3. void loop () on funktsioon, mis töötab tsüklis korduvalt. Selles funktsioonis ütleme mikrokontrolleri plaadile, kuidas ja milliseid toiminguid teha. Kõigepealt seatakse päästik tihvt saatma signaali, mille kajanõel tuvastab. Seejärel arvutatakse ja salvestatakse muutujasse aeg, mis kulub ultrahelisignaalil sensorist edasi ja tagasi liikumiseks kestus. Siis kasutatakse seda aega valemi abil takistuse ja ultrahelianduri kauguse arvutamiseks. Seejärel rakendatakse tingimus, et kui vahemaa on üle 5 cm, liigub robot sirgjooneliselt edasi ja kui vahemaa on alla 50 cm, võtab robot järsu parempöörde.

void loop () {digitalWrite (trigPin, LOW); // Ultrahelisignaali viivituse saatmine ja tuvastamineMikrosekundid (2); digitalWrite (trigPin, HIGH); viivitus mikrosekundit (10); digitalWrite (trigPin, LOW); kestus = pulssIn (echoPin, HIGH); // ultrahelilaine kulutatud aja arvestamine tagantkauguse kajastamiseks = 0,034 * (kestus / 2); // Röövli ja takistuse vaheline kauguse arvutamine. if (kaugus> 50) // Liigu edasi, kui kaugus on suurem kui 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } muu if (kaugus<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); }

Rakendused

Nii et siin tehti protseduur, kuidas takistusest robotit vältida. Seda tehnoloogiat vältivat takistust saab kaevata ka teistes rakendustes. Mõned neist rakendustest on järgmised.

  1. Jälgimissüsteem.
  2. Kauguse mõõtmise eesmärgid.
  3. Seda saab kasutada automaatsetes tolmuimeja robotites.
  4. Seda saab kasutada pimedate jaoks mõeldud pulgades.