Kazalo:

Projekt 3: SonarDuino: 9 korakov
Projekt 3: SonarDuino: 9 korakov

Video: Projekt 3: SonarDuino: 9 korakov

Video: Projekt 3: SonarDuino: 9 korakov
Video: ⚡️ Я НЕ СДАМСЯ! AMAZON 2.0 | Интернет магазин с нуля - Часть 3 2024, September
Anonim
Image
Image

Dragi kolega hobist, V tem projektu bomo raziskali možnost 360 -stopinjskega radarskega sistema za zaznavanje predmetov. Z ločeno nastavitvijo tega modula bo vaš lokomotorni robot zaznal meje svoje okolice. Lahko služi tudi kot navigacijsko orodje v temi, vendar le, če hodite dovolj počasi; str

Korak: Kaj boste potrebovali

Pripravite podporo za ultrazvočni senzor
Pripravite podporo za ultrazvočni senzor

Za izdelavo te zgradbe boste morali kupiti naslednje:

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

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

Servo motorji: 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

Ultrazvočni senzorji: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5d ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

2. korak: Dokumentacija

Ker nekateri to morda že veste, je ta projekt navdihnjen z drugim odprtokodnim projektom, imenovanim “Arduino Radar Project”, ki ga je izdelal Dejan iz “How to Mechatronics” @ na naslednji povezavi: https://howtomechatronics.com/projects/arduino -radar-project/

Druga točka, ki zahteva dokumentacijo, je prenos naslednjih dveh knjižnic v vaše razvojno okolje:

Knjižnica Adafruit-GFX:

Adafruit_SSD1306:

Če želite razumeti kodo C, boste morali narediti nekaj dokumentacije obeh zgornjih knjižnic. Razen tega imajo funkcije, ki sem jih uporabil v svoji kodi, imena, ki označujejo, kaj počnejo.

3. korak: Pripravite podporo za ultrazvočni senzor

Pripravite podporo za ultrazvočni senzor
Pripravite podporo za ultrazvočni senzor
Pripravite podporo za ultrazvočni senzor
Pripravite podporo za ultrazvočni senzor
Pripravite podporo za ultrazvočni senzor
Pripravite podporo za ultrazvočni senzor

Vzemite kateri koli kos kartona in ga razrežite glede na dimenzije priključnih kablov, pritrjenih na senzor, kot je prikazano na prvi sliki. Nato zložite zadnji del in ga prilepite na nosilec servo motorja. Ko to storite, lepite dva ultrazvočna senzorja v skladu z zadnjo sliko. Upoštevajte, da je treba glavo senzorjev spajkati tako, da kabli gredo navzven pred senzorjem. To bo omogočilo, da senzorski kabli ne bodo motili drug drugega, ko se izvede rotacija za 360 stopinj.

4. korak: Vstavite vse v ploščo za izdelavo prototipov

Namestite vse v desko za izdelavo prototipov
Namestite vse v desko za izdelavo prototipov
Namestite vse v desko za izdelavo prototipov
Namestite vse v desko za izdelavo prototipov
Namestite vse v desko za izdelavo prototipov
Namestite vse v desko za izdelavo prototipov

V tem koraku boste začeli z montažo glave, pripravljene v prejšnjem koraku, v ustrezni servo motor. Ko se servo motor skrbno navadi, boste vse skupaj namestili v prototipno ploščo. Začeli boste s spajkanjem Arduino Nano, nato pa lepite servo tik ob njem. Na koncu boste spajkali majhen zaslon OLED na drugem robu plošče.

5. korak: Vzpostavitev končnih povezav

Vzpostavitev končnih povezav
Vzpostavitev končnih povezav
Vzpostavitev končnih povezav
Vzpostavitev končnih povezav
Vzpostavitev končnih povezav
Vzpostavitev končnih povezav

Ta korak bo zaključil strojno stran tega projekta. Za vzpostavitev vseh potrebnih povezav boste morali upoštevati priložene sheme.

6. korak: Zagon programa

Zagon programa
Zagon programa

Za zagon morate uporabiti dve kodi

Arduino (C):

Obdelava (java):

Pri zagonu kode boste imeli na izbiro dve možnosti:

Možnost 1: Z zaslonom OLED boste morali spremenljivko MODE v kodi C nastaviti na 0.

Možnost 2: Z uporabo svojega monitorja boste morali za spremenljivko MODE v kodi C nastaviti 1. Poleg tega boste morali prenesti in namestiti razvojno okolje Processing ter s te povezave prenesti radarsko pisavo: https:// github.com/lastralab/ArduinoRadar/blob/ma…

In dodajte to datoteko v datoteko s kodo za obdelavo, tako da bo vaša koda java ob klicu prepoznala pisavo.

7. korak: Razumevanje kode C

Razumevanje kode C
Razumevanje kode C

Koda je sestavljena predvsem iz dveh zank "za". Eden je povezan s prehodom naprej, drugi pa s prehodom nazaj. Znotraj obeh se večkrat pokliče glavna funkcija draw_scanner (), ki bo risala črte radarja na zaslon. Po preizkusu več konfiguracij sem prišel do zaključka, da moramo bele radarske črte v času t prepisati s črnimi črtami v času t+1, da jih lahko izbrišemo. V nasprotnem primeru bi utripanje nastalo vsakič, ko očistite zaslon s funkcijo “clearDisplay ()”, preden potisnete novo mrežo slikovnih pik. Ker sem se ukvarjal s 7 vrsticami- za namene oblikovanja- sem moral še naprej shranjevati in posredovati celoštevilsko matriko 7 elementov, kjer vsak element stoji za polmer med središčem radarja do zaznanega predmeta, če sploh. Ob upoštevanju tega bi morala biti preostala koda razumljiva.

8. korak: Razumevanje kode Java

Pri obdelavi sem moral zaobiti klic funkcije za serialEvent (), ki deluje samo s serijskimi vrati z imenom COM. Ko sem delal na Macu, so moja serijska vrata dobila drugo ime. Kot rečeno, sem to funkcijo razpakiral v glavno funkcijo pri obdelavi »draw ()«. Kar zadeva vse ostalo, sem aplikacijo posodobil tako, da ustreza celotni zasnovi revolucije. Nazadnje sem posodobil vse narisane oblike in besedila glede na širino zaslona, tako da bo končni izdelek ustrezal različnim ločljivostim zaslona. Osebno sem ga preizkusil za ločljivosti 1000X1000 in 500X500 in delal je v redu:).

9. korak: Zaključek

To delo je mogoče nadgraditi na 3 ultrazvočne senzorje, od katerih vsak pokriva 120 vidnih kotov ali celo 4 senzorje (90 stopinj*4) -> hitreje 360 stopinj. skeniranje.

Domet radarja lahko razširite tudi s 40 cm na 60 cm ali celo na 80 cm. Osebno sem preizkusil funkcijo pulseIn in prilagodil spremenljivko TIMEOUT glede na 40 cm. Ta spremenljivka je odvisna od številnih dejavnikov, vključno z dolžino pošiljanja impulza in površino predmeta, kjer se impulz odbije.

Kot je že navedeno, je naslednji korak vključitev radarDuino z lokomotornim robotom za skeniranje okoliškega oboda.

Priporočena: