- Kinakailangan ang Mga Bahagi:
- Module ng Ultrasonic Sensor:
- Paliwanag sa Circuit:
- Paano ito gumagana:
- Paliwanag sa Programming:
Ang mga robot ay mga makina na binabawasan ang mga pagsisikap ng tao sa mabibigat na gawain sa pamamagitan ng pag-automate ng mga gawain sa mga industriya, pabrika, ospital atbp. Karamihan sa mga robot ay pinapatakbo sa pamamagitan ng paggamit ng ilang control unit o mga sangkap tulad ng isang push button, remote, joystick, PC, mga galaw at ng pagpapatupad ng ilang mga utos sa pamamagitan ng paggamit ng controller o processor. Ngunit ngayon narito kami kasama ang isang Awtomatikong Robot na gumagalaw nang nakapag-iisa nang walang anumang panlabas na kaganapan na iniiwasan ang lahat ng balakid sa daanan nito, oo pinag-uusapan natin ang tungkol sa Obstacle Avoiding Robot. Sa proyektong ito, ginamit namin ang Raspberry Pi at Motor driver upang himukin ang robot at sensor ng Ultrasonic para sa pagtuklas ng mga bagay sa daanan ng Robot.
Dati ay saklaw namin ang maraming mga kapaki-pakinabang na Robots, mahahanap mo ang mga ito sa aming seksyon ng mga proyekto ng Robotics.
Kinakailangan ang Mga Bahagi:
- Raspberry Pi
- Ultrasonic Sensor Module HC-SR04
- ROBOT Chassis kumpleto sa tornilyo
- DC Motors
- L293D IC
- Mga gulong
- Lupon ng Tinapay
- Resistor (1k)
- Kapasitor (100nF)
- Mga kumokonekta na mga wire
- Power supply o Power bank
Module ng Ultrasonic Sensor:
Ang isang Obstacle Avoider Robot ay isang Automated Robot at hindi ito kailangang kontrolin gamit ang anumang remote. Ang mga uri ng mga awtomatikong robot ay may ilang 'pang-anim na kahulugan' na mga sensor tulad ng mga hadlang na detector, sound detector, heat detector o metal detector. Dito nagawa na namin ang Detection ng Obstacle gamit ang Mga Ultrasound Signal. Para sa hangaring ito, gumamit kami ng Ultrasonic Sensor Module.
Karaniwang ginagamit ang mga Ultrasonic Sensor upang makita ang mga bagay at matukoy ang distansya ng balakid mula sa sensor. Ito ay isang mahusay na tool upang masukat ang distansya nang walang anumang pisikal na pakikipag-ugnay, tulad ng Pagsukat sa Antas ng Tubig sa tangke, pagsukat ng distansya, Obstacle avoider robot atbp Kaya dito, nakita namin ang bagay at sinukat ang distansya sa pamamagitan ng paggamit ng Ultrasonic Sensor at Raspberry Pi.
Ginagamit ang ultrasonic sensor HC-SR04 upang sukatin ang distansya sa saklaw na 2cm-400cm na may katumpakan na 3mm. Ang module ng sensor ay binubuo ng isang ultrasonic transmitter, receiver, at ang control circuit. Ang Ultrasonic Sensor ay binubuo ng dalawang pabilog na mga mata kung saan ang isa ay ginagamit upang maipadala ang ultrasonik na alon at ang isa pa upang matanggap ito.
Maaari nating kalkulahin ang distansya ng bagay batay sa oras na kinuha ng ultrasonikong alon upang bumalik sa sensor. Dahil ang oras at bilis ng tunog ay nalalaman maaari nating kalkulahin ang distansya sa pamamagitan ng mga sumusunod na formula.
- Distansya = (Oras x Bilis ng Tunog sa Hangin (343 m / s)) / 2.
Ang halaga ay nahahati sa dalawa dahil ang alon ay naglalakbay pasulong at paatras na sumasakop sa parehong distansya. Sa gayon ang oras upang maabot ang balakid ay kalahati lamang ng kabuuang oras na ginugol.
Kaya nakalkula namin ang distansya (sa sentimeter) mula sa balakid tulad ng sa ibaba:
pulse_start = time.time () habang GPIO.input (ECHO) == 1: #Suriin kung ang ECHO ay HIGH GPIO.output (led, False) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distansya = pulse_duration * 17150 distansya = bilog (distansya, 2) avgDistansya = avgDistansya + distansya
Kung saan ang pulse_duration ay ang oras sa pagitan ng pagpapadala at pagtanggap ng signal ng ultrasonic.
Paliwanag sa Circuit:
Napakadali ng circuit para sa Obstacle na Pag-iwas sa Robot gamit ang Raspberry Pi. Ang isang module ng Ultrasonic Sensor, na ginagamit para sa pagtuklas ng mga bagay, ay konektado sa GPIO pin 17 at 27 ng Raspberry Pi. Ang isang Motor Driver IC L293D ay konektado sa Raspberry Pi 3 para sa pagmamaneho ng mga motor ng robot. Ang mga input pin ng driver ng motor na 2, 7, 10 at 15 ay konektado sa Raspberry Pi GPIO pin number 12, 16, 20 at 21 ayon sa pagkakabanggit. Ginamit namin dito ang dalawang DC motor upang himukin ang robot kung saan ang isang motor ay konektado sa output pin 3 & 6 ng motor driver IC at isa pang motor ang nakakonekta sa Pin 11 & 14 ng motor driver IC.
Paano ito gumagana:
Ang pagtatrabaho ng Autonomous Robot na ito ay napakadali. Kapag ang Robot ay pinapagana at nagsimulang tumakbo, sinusukat ng Raspberry Pi ang distansya ng mga bagay, sa harap nito, sa pamamagitan ng paggamit ng Ultrasonic Sensor Module at mga tindahan sa isang variable. Pagkatapos ihinahambing ng RPi ang halagang ito sa mga paunang natukoy na halaga at kumuha ng mga desisyon nang naaayon upang ilipat ang Robot Kaliwa, Kanan, Ipasa, o paatras.
Dito sa proyektong ito, pumili kami ng 15cm na distansya para sa pagkuha ng anumang desisyon sa pamamagitan ng Raspberry Pi. Ngayon tuwing ang Raspberry Pi ay nakakakuha ng mas mababa sa 15cm na distansya mula sa anumang bagay pagkatapos ay ititigil ng Raspberry Pi ang robot at ilipat ito pabalik at pagkatapos ay i-left o pakanan. Ngayon bago ito isulong muli, muling susuriin ng Raspberry Pi kung mayroong anumang balakid na nasa loob ng saklaw na 15 cm ang distansya, kung oo pagkatapos ay ulitin muli ang nakaraang proseso, iba pa ilipat ang robot hanggang sa makita ang anumang balakid o bagay muli.
Paliwanag sa Programming:
Kami ay gumagamit ng Python wika dito para sa Programa. Bago ang pag-coding, kailangang i-configure ng gumagamit ang Raspberry Pi. Maaari mong suriin ang aming nakaraang mga tutorial para sa Pagsisimula sa Raspberry Pi at Pag-install at Pag-configure ng Raspbian Jessie OS sa Pi.
Ang bahagi ng programa ng proyektong ito ay may mahalagang papel upang maisagawa ang lahat ng mga operasyon. Una sa lahat, nagsasama kami ng kinakailangang mga silid-aklatan, pinasimulan ang mga variable at tinukoy ang mga pin para sa ultrasonic sensor, motor at mga bahagi.
i-import ang RPi.GPIO bilang oras ng pag-import ng GPIO # I-import ang library ng oras GPIO.setwarnings (Maling) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27…………
Pagkatapos nito, lumikha kami ng ilang mga function na def forward (), def back (), def left (), def right () upang ilipat ang robot sa pasulong, paatras, kaliwa o kanan na direksyon ayon sa pagkakabanggit at paghinto ng () upang itigil ang robot, suriin ang mga pagpapaandar sa Code na ibinigay sa ibaba.
Pagkatapos, sa pangunahing programa, sinimulan namin ang Ultrasonic Sensor at nagbasa ng oras sa pagitan ng paghahatid at pagtanggap ng signal at kinakalkula ang distansya. Dito namin ulitin ang prosesong ito nang 5 beses para sa mas mahusay na kawastuhan. Ipinaliwanag na namin ang proseso ng pagkalkula ng distansya gamit ang Ultrasonic sensor.
i = 0 avgDistansya = 0 para sa i sa saklaw (5): GPIO.output (TRIG, Mali) oras. tulog (0.1) GPIO.output (TRIG, True) oras. pagtulog (0.00001) GPIO.output (TRIG, False) habang GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () habang GPIO.input (ECHO) == 1: #Suriin kung ang ECHO ay HIGH GPIO.output (led, Maling) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duras * 17150 distansya = bilog (distansya, 2) avgDistansya = avgDistansya + distansya
Panghuli kung ang Robot ay makakahanap ng anumang balakid sa harap nito pagkatapos pagkatapos makalayo mula sa balakid, na-program namin ang Robot na tumagal ng iba't ibang ruta.
kung avgDistance <15: count = count + 1 stop () time.s Sleep (1) back () time.s Sleep (1.5) kung (count% 3 == 1) & (flag == 0): right () flag = 1 pa: kaliwa () watawat = 0 oras. Pagtulog (1.5) paghinto () oras. Pagtulog (1) iba pa: pasulong () flag = 0
Kumpletuhin ang code para sa Raspberry Pi Obstacle Avoiding Robot na ito ay ibinibigay sa ibaba gamit ang isang Demonstration Video.