- Paano bumuo ng balakid na pag-iwas sa robot gamit ang Ultrasonic Sensor
- Kinakailangan ang Mga Bahagi
- Diagram ng Circuit
- Sagabal Pag-iwas sa Robot gamit ang Arduino - Code
Ang Obstacle Avoiding Robot ay isang matalinong aparato na maaaring awtomatikong maramdaman ang balakid sa harap nito at maiwasan ang mga ito sa pamamagitan ng pagliko ng sarili nito sa ibang direksyon. Pinapayagan ng disenyo na ito ang robot na mag-navigate sa isang hindi kilalang kapaligiran sa pamamagitan ng pag-iwas sa mga banggaan, na isang pangunahing kinakailangan para sa anumang autonomous na mobile robot. Ang aplikasyon ng Obstacle Avoiding robot ay hindi limitado at ginagamit ito sa karamihan ng mga samahang militar ngayon na tumutulong na maisakatuparan ang maraming mapanganib na trabaho na hindi magagawa ng sinumang mga sundalo.
Nakagawa kami dati ng Obstacle Avoiding Robot gamit ang Raspberry Pi at paggamit ng PIC Microcontroller. Sa oras na ito ay magtatayo kami ng isang Obstacle na pag-iwas sa robot gamit ang isang ultrasonic sensor at Arduino. Dito ginagamit ang isang sensor ng Ultrasonic upang maunawaan ang mga hadlang sa landas sa pamamagitan ng pagkalkula ng distansya sa pagitan ng robot at balakid. Kung nakakita ang robot ng anumang balakid binabago nito ang direksyon at patuloy na gumagalaw.
Paano bumuo ng balakid na pag-iwas sa robot gamit ang Ultrasonic Sensor
Bago itayo ang robot, mahalagang maunawaan kung paano gumagana ang ultrasonic sensor dahil ang sensor na ito ay magkakaroon ng mahalagang papel sa pagtuklas ng balakid. Ang pangunahing prinsipyo sa likod ng pagtatrabaho ng ultrasonic sensor ay upang tandaan ang oras na kinuha ng sensor upang maipadala ang mga ultrasonik na sinag at matanggap ang mga ultrasonik na sinag pagkatapos ng pagpindot sa ibabaw. Pagkatapos ay karagdagang ang distansya ay kinakalkula gamit ang formula. Sa proyektong ito, ginagamit ang malawak na magagamit na HC-SR04 Ultrasonic Sensor. Upang magamit ang sensor na ito, susundan ang katulad na diskarte na ipinaliwanag sa itaas.
Kaya, ang Trig pin ng HC-SR04 ay ginawang mataas para sa hindi bababa sa 10 sa amin. Ang isang sonic beam ay nakukuha sa bawat 8 pulso na 40KHz bawat isa.
Pagkatapos ay pinindot ng signal ang ibabaw at bumalik pabalik at nakuha ng tatanggap na Echo pin ng HC-SR04. Ang Echo pin ay nagawa nang mataas sa oras na nagpapadala ng mataas.
Ang oras na kinuha ng sinag upang bumalik ay nai-save sa variable at nai-convert sa distansya gamit ang naaangkop na mga kalkulasyon tulad sa ibaba
Distansya = (Oras x Bilis ng Tunog sa Hangin (343 m / s)) / 2
Gumamit kami ng ultrasonikong sensor sa maraming mga proyekto, upang matuto nang higit pa tungkol sa Ultrasonik sensor, suriin ang iba pang mga proyekto na nauugnay sa Ultrasonik sensor.
Ang mga sangkap para sa pag-iwas sa balakid na ito sa robot ay maaaring matagpuan madali. Upang makagawa ng chassis, ang anumang mga chassis ng laruan ay maaaring gamitin o maaaring pasadyang gawin.
Kinakailangan ang Mga Bahagi
- Arduino NANO o Uno (anumang bersyon)
- HC-SR04 Ultrasonic Sensor
- LM298N Motor Driver Module
- 5V DC Motors
- Baterya
- Mga gulong
- Chassis
- Jumper Wires
Diagram ng Circuit
Ang kumpletong diagram ng circuit para sa proyektong ito ay ibinibigay sa ibaba, dahil nakikita mong gumagamit ito ng isang Arduino nano. Ngunit makakagawa rin kami ng isang balakid sa pag-iwas sa robot gamit ang Arduino UNO na may parehong circuit (sundin ang parehong pinout) at code.
Kapag handa na ang circuit kailangan nating buuin ang aming balakid sa pag-iwas sa kotse sa pamamagitan ng pag-iipon ng circuit sa tuktok ng isang robotic chassis tulad ng ipinakita sa ibaba.
Sagabal Pag-iwas sa Robot gamit ang Arduino - Code
Ang kumpletong programa na may isang demonstration video ay ibinibigay sa pagtatapos ng proyektong ito. Isasama sa programa ang pag-set up ng module ng HC-SR04 at paglabas ng mga signal sa Motor Pins upang ilipat ang direksyon ng motor nang naaayon. Walang gagamitin na mga aklatan sa proyektong ito.
Una tutukuyin sa maayos at echo pin ng HC-SR04 sa programa. Sa proyektong ito ang trig pin ay konektado sa GPIO9 at ang echo pin ay konektado sa GPIO10 ng Arduino NANO.
int trigPin = 9; // trig pin ng HC-SR04 int echoPin = 10; // Echo pin ng HC-SR04
Tukuyin ang mga pin para sa pag-input ng LM298N Motor Driver Module. Ang LM298N ay may 4 na mga input input data na ginamit upang makontrol ang direksyon ng motor na konektado dito.
int revleft4 = 4; // REVerse galaw ng Kaliwa motor int fwdleft5 = 5; // ForWarD galaw ng Kaliwa motor int revright6 = 6; // REVerse motion of Right motor int fwdright7 = 7; // ForWarD galaw ng Tamang motor
Sa pag- andar ng setup () , tukuyin ang direksyon ng data ng mga ginamit na GPIO pin. Ang apat na Motor pin at Trig pin ay itinakda bilang OUTPUT at ang Echo Pin ay itinakda bilang Input.
pinMode (revleft4, OUTPUT); // set Motor pin bilang output pinMode (fwdleft5, OUTPUT); pinMode (revright6, OUTPUT); pinMode (fwdright7, OUTPUT); pinMode (trigPin, OUTPUT); // set trig pin as output pinMode (echoPin, INPUT); // itakda ang echo pin bilang input upang makuha ang mga naipakitang alon
Sa pag- andar ng loop () , kunin ang distansya mula sa HC-SR04 at batay sa distansya ilipat ang direksyon ng motor. Ipapakita ng distansya ang distansya ng bagay na dumarating sa harap ng robot. Ang Distansya ay kinuha sa pamamagitan ng pagsabog ng isang sinag ng ultrasonic hanggang sa 10 sa amin at pagtanggap nito pagkatapos ng 10us. Upang matuto nang higit pa tungkol sa pagsukat ng distansya gamit ang Ultrasonic sensor at Arduino, sundin ang link.
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, MATAAS); // send waves for 10 us delayMicroseconds (10); tagal = pulseIn (echoPin, HIGH); // makatanggap ng nakalantad na distansya ng alon = tagal / 58.2; // convert to distansya antala (10);
Kung ang distansya ay mas malaki kaysa sa tinukoy na distansya nangangahulugang walang balakid sa landas nito at lilipat ito sa direktang direksyon.
kung (distansya> 19) { digitalWrite (fwdright7, HIGH); // move forward digitalWrite (revright6, LOW); digitalWrite (fwdleft5, HIGH); digitalWrite (revleft4, LOW); }
Kung ang distansya ay mas mababa kaysa sa tinukoy na distansya upang maiwasan ang balakid nangangahulugan na mayroong ilang balakid sa unahan. Kaya sa sitwasyong ito ang robot ay titigil para sa isang sandali at umatras pagkatapos nito ay muling huminto nang ilang sandali at pagkatapos ay lumiko sa ibang direksyon.
kung (distansya <18) { digitalWrite (fwdright7, LOW); // Stop digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); pagkaantala (500); digitalWrite (fwdright7, LOW); // movebackword digitalWrite (revright6, HIGH); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, TAAS); pagkaantala (500); digitalWrite (fwdright7, LOW); // Stop digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); pagkaantala (100); digitalWrite (fwdright7, MATAAS); digitalWrite (revright6, LOW); digitalWrite (revleft4, LOW); digitalWrite (fwdleft5, LOW); pagkaantala (500); }
Kaya't ito ay kung paano maiiwasan ng isang robot ang mga hadlang sa daanan nito nang hindi natigil kahit saan. Hanapin ang kumpletong code at video sa ibaba.