Talaan ng mga Nilalaman:

Project 3: SonarDuino: 9 Hakbang
Project 3: SonarDuino: 9 Hakbang

Video: Project 3: SonarDuino: 9 Hakbang

Video: Project 3: SonarDuino: 9 Hakbang
Video: Ai robots taking over ping pong 👀 #shorts 2024, Setyembre
Anonim
Image
Image

Minamahal na kapwa Hobbyist, Sa proyektong ito susuriin namin ang posibilidad ng pagkakaroon ng 360 degree na radar system para sa pagtuklas ng bagay. Ang pagkakaroon ng hiwalay na hanay ng modyul na ito ay magpapahintulot sa iyong robot ng locomotion na makita ang mga hangganan ng paligid nito. Maaari rin itong maglingkod bilang isang tool sa pag-navigate nang madilim, ngunit kapag naglalakad ka lamang ng sapat; p

Hakbang 1: Ano ang Kakailanganin Mo

Ihanda ang Suporta ng Ultrasonic Sensor
Ihanda ang Suporta ng Ultrasonic Sensor

Upang magawa ang konstruksyon na ito kakailanganin mong bilhin ang sumusunod:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl0: rk: 2: pf: 0

Mga Prototyping Board: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSw ~ Zbl232: rk: 13: pf: 0

Servo Motors: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Ultrasonic Sensors: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distansya-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~ IAAOSw - xbD5Fp: rk: 2: pf: 0

Hakbang 2: Dokumentasyon

Tulad ng nalalaman na ng ilan sa inyo, ang proyektong ito ay inspirasyon mula sa isa pang open-source na proyekto na tinatawag na "Arduino Radar Project" na ginawa ni Dejan mula sa "How to Mechatronics" @ ang sumusunod na link: https://howtomechatronics.com/projects/arduino -radar-project /

Ang isa pang punto na nangangailangan ng dokumentasyon ay i-download ang sumusunod na dalawang mga aklatan sa iyong kapaligiran sa pag-unlad:

Adafruit-GFX-Library:

Adafruit_SSD1306:

Sinasabi ito, upang maunawaan ang C code kakailanganin mong gumawa ng ilang dokumentasyon ng pareho sa mga aklatan sa itaas. Maliban dito, ang mga pagpapaandar na ginamit ko sa aking code ay may mga pangalan na nagsasabi sa kanilang ginagawa.

Hakbang 3: Ihanda ang Suporta ng Ultrasonic Sensor

Ihanda ang Suporta ng Ultrasonic Sensor
Ihanda ang Suporta ng Ultrasonic Sensor
Ihanda ang Suporta ng Ultrasonic Sensor
Ihanda ang Suporta ng Ultrasonic Sensor
Ihanda ang Suporta ng Ultrasonic Sensor
Ihanda ang Suporta ng Ultrasonic Sensor

Kumuha ng anumang piraso ng karton at gupitin ito ayon sa sukat ng mga nag-uugnay na mga kable na nakakabit sa sensor tulad ng ipinakita sa unang larawan. Pagkatapos nito, tiklupin ang huling ito at idikit ito sa suporta ng servo motor. Kapag tapos na iyon, kola ang dalawang mga ultrasonic sensor ayon sa huling larawan. Tandaan na ang header ng mga sensor ay dapat na maghinang sa isang paraan upang hayaang lumabas ang mga kable sa harap ng sensor. Papayagan nitong hindi makagambala ang mga kable ng sensor sa bawat isa kapag ipinatupad ang pag-ikot ng 360 degree.

Hakbang 4: I-mount ang Lahat sa isang Prototyping Board

I-mount ang Lahat sa isang Prototyping Board
I-mount ang Lahat sa isang Prototyping Board
I-mount ang Lahat sa isang Prototyping Board
I-mount ang Lahat sa isang Prototyping Board
I-mount ang Lahat sa isang Prototyping Board
I-mount ang Lahat sa isang Prototyping Board

Sa hakbang na ito magsisimula ka sa pamamagitan ng pag-mount ng header na handa sa nakaraang hakbang sa kani-kanilang servo motor. Kapag ang motor na servo ay maingat na nasanay, mai-mount mo ang lahat sa isang prototyping board. Magsisimula ka sa pamamagitan ng paghihinang ng Arduino Nano pagkatapos sa pamamagitan ng pagdikit ng servo sa tabi mismo nito. Sa wakas ay hihihinang mo ang maliit na display na OLED sa kabilang gilid ng board.

Hakbang 5: Paggawa ng Huling Mga Koneksyon

Paggawa ng Huling Mga Koneksyon
Paggawa ng Huling Mga Koneksyon
Paggawa ng Huling Mga Koneksyon
Paggawa ng Huling Mga Koneksyon
Paggawa ng Huling Mga Koneksyon
Paggawa ng Huling Mga Koneksyon

Ang hakbang na ito ay magtatapos sa panig ng hardware ng proyektong ito. Kakailanganin mong sundin ang mga ibinigay na iskema upang maitaguyod ang lahat ng kinakailangang mga koneksyon.

Hakbang 6: Pag-boot sa Program

Pag-boot sa Program
Pag-boot sa Program

Mayroong Dalawang mga code na kakailanganin mong i-boot

Arduino (C):

Pagproseso (java):

Kapag pinapatakbo ang code, magkakaroon ka ng dalawang pagpipilian upang pumili mula sa:

Pagpipilian 1: Paggamit ng OLED Display, para doon kakailanganin mong itakda ang variable MODE sa C code sa 0.

Pagpipilian 2: Gamit ang Iyong Monitor, para doon kakailanganin mong itakda ang variable MODE sa C code sa 1. Bilang karagdagan, kakailanganin mong i-download at i-install ang Kapaligiran sa pag-unlad ng pagproseso at i-download ang font ng radar mula sa link na ito: https:// github.com/lastralab/ArduinoRadar/blob/ma…

At idagdag ang file na iyon sa iyong pagproseso ng file ng code upang makilala ng iyong java code ang font kapag tinawag.

Hakbang 7: Pag-unawa sa C Code

Pag-unawa sa C Code
Pag-unawa sa C Code

Ang code ay pangunahing binubuo ng dalawang mga ‘para sa’ mga loop. Ang isa ay naiugnay sa forward pass habang ang isa ay nasa paatras na pass. Sa loob ng pareho sa kanila, ang pangunahing function na draw_scanner (), na iguhit ang mga linya ng radar papunta sa screen, ay tinatawag nang maraming beses. Matapos ang pagsubok ng maraming mga pagsasaayos, nakarating ako sa konklusyon na kailangan naming i-overlap ang mga puting linya ng radar sa oras na t sa mga parehong linya ng radar na itim sa oras na t + 1 upang matanggal ang mga ito. Kung hindi man, magaganap ang flickering tuwing linisin mo ang display gamit ang function na "clearDisplay ()" bago itulak ang bagong pixel grid. Habang nakikipag-usap ako sa 7 mga linya - para sa mga layunin ng disenyo- Kailangan kong panatilihin ang pag-save at pagpasa ng integer array ng 7 mga elemento, kung saan ang bawat elemento ay tumayo para sa radius sa pagitan ng gitna ng radar sa napansin na bagay, kung mayroon man. Sa pag-iisip na ito, ang natitirang code ay dapat na tuwid upang maunawaan.

Hakbang 8: Pag-unawa sa Java Code

Sa Pagproseso, kailangan kong i-bypass ang tawag sa pagpapaandar para sa serialEvent (), na gagana lamang sa mga serial port na pinangalanang COM. Habang nagtatrabaho ako sa isang Mac, ang aking mga serial port ay nasa ilalim ng ibang pangalan. Sinabi na, inalis ko ang pagpapaandar na iyon sa pangunahing pag-andar sa pagproseso ng "gumuhit ()". Tungkol sa lahat ng iba pa, na-update ko ang application upang matugunan ang buong disenyo ng rebolusyon. Sa wakas, na-update ko ang lahat ng mga iginuhit na hugis at teksto na may paggalang sa lapad ng screen upang magkasya ang panghuling produkto sa iba't ibang mga resolusyon sa screen. Personal kong nasubukan ito para sa parehong 1000X1000 at 500X500 na resolusyon, at gumana ito nang maayos:).

Hakbang 9: Konklusyon

Ang gawaing ito ay maaaring ma-upgrade sa pagkakaroon ng 3 mga sensor ng Ultrasonic, bawat isa ay sumasaklaw sa 120 anggulo ng pagtingin, o kahit na 4 na mga sensor (90 degree * 4) -> mas mabilis na 360 deg. scan.

Maaari mo ring pahabain ang saklaw ng radar mula 40 cm hanggang 60 cm o kahit 80 cm. Personal kong nasubukan ang pagpapaandar ng pulsoIn at inayos ang variable ng TIMEOUT na patungkol sa 40 cm. Ang variable na ito ay nakasalalay sa maraming mga kadahilanan, kabilang ang haba ng ipadala ng pulso at ang ibabaw ng bagay kung saan nasasalamin ang pulso.

Sa wakas tulad ng nakasaad dati, ang susunod na hakbang ay upang isama ang radarDuino sa isang robot ng locomotion upang i-scan ang nakapalibot na perimeter.

Inirerekumendang: