Paano Gumawa ng Obstacle Pag-iwas sa Robot Gamit ang Arduino?

Mabilis ang paggalaw ng mundo, at ang teknolohiya ay gumagalaw din kasama nito sa larangan ng robotics. Ang mga aplikasyon ng robotics ay makikita kahit saan sa buong mundo. Ang konsepto ng mga mobile o autonomous na robot na lumilipat nang walang anumang panlabas na tulong ay ang pinakalaking larangan ng pagsasaliksik. Maraming uri ng mga mobile robot, halimbawa, mga interpreter ng Self Localization at Mapping (SLAM), sumusunod sa Line, Sumo Bots, atbp. Ang isang balakid na pag-iwas sa robot ay isa sa mga ito. Gumagamit ito ng isang diskarte upang mabago ang landas kung nakakita ito ng anumang balakid sa paraan nito.



(Larawan Kagandahang-loob: Circuit digest)

Sa proyektong ito, ang isang batay sa Arduino na pag-iwas sa balakid sa robot ay idinisenyo na gagamit ng isang ultrasonic sensor upang makita ang lahat ng mga hadlang sa daanan nito.



Paano Maiiwasan ang Mga Hadlang gamit ang Ultrasonic Sensor?

Tulad ng alam namin ang abstract ng aming proyekto, ilipat natin ang isang hakbang nang maaga at magtipon ng ilang para sa impormasyon upang masimulan ang proyekto.



Hakbang 1: Pagkolekta ng Mga Bahagi

Ang pinakamahusay na diskarte upang simulan ang anumang proyekto ay upang gumawa ng isang listahan ng mga kumpletong bahagi sa simula at dumaan sa isang maikling pag-aaral ng bawat bahagi. Tumutulong ito sa amin sa pag-iwas sa mga abala sa gitna ng proyekto. Ang isang kumpletong listahan ng lahat ng mga sangkap na ginamit sa proyektong ito ay ibinibigay sa ibaba.



  • Car Wheel Chassis
  • Baterya

Hakbang 2: Pag-aaral ng Mga Bahagi

Ngayon, dahil mayroon kaming kumpletong listahan ng lahat ng mga bahagi, ilipat natin ang isang hakbang pasulong at dumaan sa isang maikling pag-aaral ng pagtatrabaho ng bawat bahagi.

Ang Arduino nano ay isang pisara-friendly microcontroller board na ginagamit upang makontrol o magsagawa ng iba't ibang mga gawain sa isang circuit. Sinusunog namin ang a C Code sa Arduino Nano upang sabihin sa board ng microcontroller kung paano at anong mga operasyon ang dapat gumanap. Ang Arduino Nano ay may eksaktong parehong pag-andar tulad ng Arduino Uno ngunit sa medyo maliit na sukat. Ang microcontroller sa Arduino Nano board ay ATmega328p.

Arduino Nano



Ang L298N ay isang mataas na kasalukuyang at mataas na boltahe na integrated circuit. Ito ay isang dalawahang buong tulay na dinisenyo upang tanggapin ang karaniwang lohika ng TTL. Mayroon itong dalawang paganahin ang mga input na nagpapahintulot sa aparato na gumana nang nakapag-iisa. Ang dalawang mga motor ay maaaring konektado at patakbuhin nang sabay. Ang bilis ng mga motor ay iba-iba sa pamamagitan ng mga PWM na pin. Ang Pulse Width Modulation (PWM) ay isang pamamaraan kung saan maaaring makontrol ang daloy ng boltahe sa anumang elektronikong sangkap. Ang modyul na ito ay may isang H-Bridge na responsable para sa kontrol ng direksyon ng pag-ikot sa mga motor sa pamamagitan ng pag-invert ng direksyon ng kasalukuyang. Ang Paganahin ang pin A at Paganahin ang Pin B ay ginagamit upang baguhin ang bilis ng pareho ng mga motor. Ang module na ito ay maaaring gumana sa pagitan ng 5 at 35V at kasalukuyang rurok hanggang sa 2A. Ang Input Pin1 at Input Pin2 at para sa Unang motor at ang Input Pin3 at Input Pin4 ay para sa pangalawang Motor.

L298N Motor Driver

Ang board ng HC-SR04 ay isang sensor ng ultrasonic na ginagamit upang matukoy ang distansya sa pagitan ng dalawang mga bagay. Ito ay binubuo ng isang transmiter at isang tatanggap. Ang transmiter ay nagko-convert ng signal ng elektrikal sa isang signal ng ultrasonic at ang recepter ay binago ang signal ng ultrasonic pabalik sa electrical signal. Kapag nagpapadala ang transmitter ng isang ultrasonikong alon, sumasalamin ito pagkatapos mabangga sa isang tiyak na bagay. Ang distansya ay kinakalkula sa pamamagitan ng paggamit ng oras, ang signal na ultrasonic na tatagal mula sa transmiter at bumalik sa tatanggap.

Ultrasonic Sensor

Hakbang 3: Pag-iipon ng Mga Bahagi

Ngayon alam na natin ngayon ang pagtatrabaho ng karamihan sa mga sangkap na ginamit, simulan nating tipunin ang lahat ng mga bahagi at gumawa ng isang balakid na pag-iwas sa robot.

  1. Kumuha ng mga chass ng gulong ng kotse at dumikit ang isang breadboard sa tuktok nito. I-mount ang sensor ng Ultrasonic sa harap ng mga chass at isang takip ng baterya sa likod ng mga chass.
  2. Ayusin ang Arduino Nano board sa breadboard at ikabit ang driver ng motor sa likod mismo ng breadboard, sa mga chass. Ikonekta ang Paganahin ang mga pin ng bothe ang mga motor sa Pin6 at Pin9 ng Arduino nano. Ang In1, In2, In3 at In4 na mga pin ng module ng driver ng motor ay konektado sa pin2, pin3, pin4 at pin5 ng Arduino nano ayon sa pagkakabanggit.
  3. Ang trig at echo pin ng ultrasonic sensor ay konektado sa pin11 at in10 ng Arduino nano ayon sa pagkakabanggit. Ang Vcc at ground pin ng ultrasonic sensor ay konektado sa 5V at ground ng Arduino Nano.
  4. Ang module ng Motor controller ay pinalakas ng baterya. Ang board ng Arduino Nano ay nakakakuha ng lakas mula sa 5V port ng module ng driver ng motor at ang ultrasonic sensor ay makakakuha ng lakas nito mula sa Arduino nano board. ang bigat at lakas ng mga baterya ay maaaring maging determinative factor ng pagganap nito.
  5. Tiyaking ang iyong mga koneksyon ay pareho ng ipinakita sa ibaba sa circuit diagram.

    Diagram ng Circuit

Hakbang 4: Pagsisimula sa Arduino

Kung hindi ka pa pamilyar sa Arduino IDE, huwag mag-alala dahil ang isang hakbang-hakbang na pamamaraan upang mai-set-up at gamitin ang Arduino IDE sa isang board ng microcontroller ay ipinaliwanag sa ibaba.

  1. I-download ang pinakabagong bersyon ng Arduino IDE mula sa Arduino.
  2. Ikonekta ang iyong Arduino Nano board sa iyong laptop at buksan ang control panel. sa control panel, mag-click sa Hardware at Sound . Ngayon mag-click sa Mga devices at Printers. Dito, hanapin ang port kung saan nakakonekta ang iyong board ng microcontroller. Sa aking kaso ito ay COM14 ngunit iba ito sa iba`t ibang mga computer.

    Paghanap ng Port

  3. Mag-click sa menu ng Tool. at itakda ang board sa Arduino Nano mula sa drop-down na menu.

    Setting Board

  4. Sa parehong menu ng Tool, itakda ang port sa numero ng port na iyong naobserbahan dati sa Mga devices at Printers .

    Setting Port

  5. Sa parehong menu ng Tool, Itakda ang Proseso sa ATmega328P (Old Bootloader).

    Nagpoproseso

  6. I-download ang code na nakalakip sa ibaba at i-paste ito sa iyong Arduino IDE. Mag-click sa i-upload pindutan upang sunugin ang code sa iyong board ng microcontroller.

    I-upload

Upang mai-download ang code, pindutin dito.

Hakbang 5: Pag-unawa sa Code

Ang code ay mahusay na nagkomento at nagpapaliwanag ng sarili. Ngunit gayon pa man, ipinaliwanag sa ibaba

1. Sa pagsisimula ng code, ang lahat ng mga pin ng Arduino Nano board na nakakonekta sa ultrasonikong sensor at module ng driver ng motor, ay naisasimula. Ang Pin6 at Pin9 ay mga PWM na pin na maaaring mag-iba ng daloy ng boltahe upang maiiba ang bilis ng Robot. Dalawang variable, tagal, at distansya ay pinasimulan upang mag-imbak ng data na sa paglaon ay gagamitin upang makalkula ang distansya ng ultrasonic sensor at ang balakid.

int enable1pin = 6; // Pins para sa First Motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pins For Second Motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Trigger Pin Of Ultrasonic Sesnor const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor mahabang tagal; // variable upang Kalkulahin ang distansya ng float na distansya;

2. walang bisa ang pag-setup () ay isang pagpapaandar na ginagamit upang maitakda ang ginamit na mga pin, bilang INPUT at OUTPUT. Ang baud rate ay tinukoy sa pagpapaandar na ito. Ang Baud Rate ay ang bilis ng komunikasyon kung saan nakikipag-usap ang board ng microcontroller sa mga sensor na isinama dito.

void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (paganahin1pin, OUTPUT); pinMode (paganahin ang 2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. walang bisa loop () ay isang pagpapaandar na paulit-ulit na tumatakbo sa isang ikot. Sa pagpapaandar na ito, sasabihin namin sa board ng microcontroller kung paano at anong mga pagpapatakbo ang isasagawa. Dito, una, ang gatilyo pin ay nakatakda upang magpadala ng isang senyas na makikita ng echo pin. Pagkatapos ang oras na kinuha ng signal ng ultrasonic upang maglakbay mula at pabalik sa sensor ay kinakalkula at nai-save sa variable tagal. Pagkatapos ang oras na ito ay ginagamit sa isang pormula upang makalkula ang distansya ng balakid at ang ultrasonic sensor. Pagkatapos ay inilalagay ang isang kundisyon na kung ang distansya ay higit sa 5ocm, ang robot ay susulong sa isang tuwid na linya at kung ang distansya ay mas mababa sa 50cm, ang robot ay kukuha ng isang matalim na kanang liko.

void loop () {digitalWrite (trigPin, LOW); // Pagpapadala at Pagtuklas ng pagkaantala ng Ultrasonic SignMicroseconds (2); digitalWrite (trigPin, MATAAS); delayMicroseconds (10); digitalWrite (trigPin, LOW); tagal = pulseIn (echoPin, HIGH); // Calculating the timme taken by the ultrasonic gelombang upang ipakita ang distansya sa likod = 0.034 * (tagal / 2); // Pagkalkula ng distansya sa pagitan ng robbot at ang balakid. kung (distansya> 50) // Ilipat ang Pasulong kung ang distansya ay mas malaki sa 50cm {digitalWrite (enable1pin, HIGH); digitalWrite (paganahin ang 2pin, TAAS); digitalWrite (motor1pin1, TAAS); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, TAAS); digitalWrite (motor2pin2, LOW); } iba pa kung (distansya<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); }

Mga Aplikasyon

Kaya narito ang pamamaraan upang makagawa ng isang balakid sa pag-iwas sa robot Ang teknolohiyang balakid na pag-iwas na ito ay maaari ding kasuhan sa ibang mga aplikasyon. Ang ilan sa mga application na ito ay ang mga sumusunod.

  1. Sistema ng Pagsubaybay.
  2. Mga Layunin sa Pagsukat ng Distansya.
  3. Maaari itong magamit sa mga awtomatikong robot ng paglilinis ng vacuum.
  4. Maaari itong magamit sa Sticks para sa mga bulag na tao.