Turinys:

3 projektas: „SonarDuino“: 9 žingsniai
3 projektas: „SonarDuino“: 9 žingsniai

Video: 3 projektas: „SonarDuino“: 9 žingsniai

Video: 3 projektas: „SonarDuino“: 9 žingsniai
Video: #3 Projektas. Vėžys / rutina, svečiai, kas ta “Hočkino limfoma?” / 2024, Rugsėjis
Anonim
Image
Image

Gerbiamas kolega mėgėjas, Šiame projekte mes išnagrinėsime galimybę turėti 360 laipsnių radaro sistemą objektų aptikimui. Jei šis modulis bus nustatytas atskirai, judėjimo robotas galės aptikti jo aplinkos ribas. Jis taip pat gali tarnauti kaip navigacijos priemonė tamsoje, bet tik tada, kai einate pakankamai lėtai; p

1 žingsnis: ko jums reikės

Paruoškite ultragarso jutiklio palaikymą
Paruoškite ultragarso jutiklio palaikymą

Norėdami sukurti šią konstrukciją, turėsite nusipirkti:

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

Prototipų sudarymo lentos: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item4cos:a ~ Zbl232: rk: 13: pf: 0

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

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

2 žingsnis: Dokumentacija

Kaip kai kurie iš jūsų tai jau žinote, šis projektas įkvėptas kito atviro kodo projekto „Arduino Radar Project“, kurį sukūrė Dejanas iš „How to Mechatronics“@ šią nuorodą: https://howtomechatronics.com/projects/arduino -radaro projektas/

Kitas dalykas, kurį reikia dokumentuoti, yra atsisiųsti šias dvi bibliotekas į savo kūrimo aplinką:

„Adafruit-GFX“biblioteka:

„Adafruit_SSD1306“:

Tai sakant, kad tikrai suprastumėte C kodą, turėsite atlikti abiejų aukščiau išvardytų bibliotekų dokumentaciją. Išskyrus tai, mano kode naudojamos funkcijos turi pavadinimus, kurie parodo, ką jie daro.

3 žingsnis: Paruoškite ultragarso jutiklio palaikymą

Paruoškite ultragarso jutiklio palaikymą
Paruoškite ultragarso jutiklio palaikymą
Paruoškite ultragarso jutiklio palaikymą
Paruoškite ultragarso jutiklio palaikymą
Paruoškite ultragarso jutiklio palaikymą
Paruoškite ultragarso jutiklio palaikymą

Paimkite bet kokį kartono gabalėlį ir supjaustykite jį pagal jungiamųjų kabelių, pritvirtintų prie jutiklio, matmenis, kaip parodyta pirmame paveikslėlyje. Po to paskutinį kartą sulenkite ir priklijuokite prie servo variklio atramos. Kai tai bus padaryta, priklijuokite du ultragarso jutiklius pagal paskutinę nuotrauką. Atminkite, kad jutiklių antraštė turi būti lituota taip, kad kabeliai priešais jutiklį galėtų išeiti į išorę. Tai leis jutiklių kabeliams netrukdyti vienas kitam, kai bus sukamas 360 laipsnių kampas.

4 žingsnis: sumontuokite viską į prototipų plokštę

Viską sumontuokite į prototipų plokštę
Viską sumontuokite į prototipų plokštę
Viską sumontuokite į prototipų plokštę
Viską sumontuokite į prototipų plokštę
Viską sumontuokite į prototipų plokštę
Viską sumontuokite į prototipų plokštę

Šiame etape pradėsite montuoti ankstesniame žingsnyje paruoštą antraštę į atitinkamą servo variklį. Kai servo variklis bus kruopščiai pripratęs, viską sumontuosite į prototipų plokštę. Pradėsite lituodami „Arduino Nano“, tada klijuokite servo prie jo. Galiausiai lituosite mažą OLED ekraną kitame plokštės krašte.

5 žingsnis: galutinių jungčių užmezgimas

Galutinių jungčių sudarymas
Galutinių jungčių sudarymas
Galutinių jungčių sudarymas
Galutinių jungčių sudarymas
Galutinių jungčių sudarymas
Galutinių jungčių sudarymas

Šis žingsnis užbaigs šio projekto aparatinę pusę. Norėdami nustatyti visus reikalingus ryšius, turėsite vadovautis pateiktomis schemomis.

6 veiksmas: programos paleidimas

Programos paleidimas
Programos paleidimas

Yra du kodai, kuriuos turėsite paleisti

„Arduino“(C):

Apdorojama (java):

Vykdydami kodą turėsite dvi parinktis:

1 variantas: naudodami OLED ekraną, C kodo kintamąjį MODE turėsite nustatyti į 0.

2 variantas: Naudodami monitorių, C kodo kintamąjį MODE turėsite nustatyti į 1. Be to, turėsite atsisiųsti ir įdiegti apdorojimo kūrimo aplinką ir atsisiųsti radaro šriftą iš šios nuorodos: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Ir pridėkite tą failą prie savo apdorojimo kodo failo, kad jūsų „Java“kodas atpažintų šriftą, kai jis bus iškviestas.

7 žingsnis: C kodo supratimas

C kodo supratimas
C kodo supratimas

Kodą daugiausia sudaro dvi kilpos „už“. Vienas yra susijęs su perdavimu į priekį, o kitas - su atbuline eiga. Jų abiejų viduje daug kartų vadinama pagrindinė funkcija draw_scanner (), kuri ant ekrano nubrėžs radaro linijas. Išbandęs kelias konfigūracijas, priėjau prie išvados, kad turime ištrinti baltas radaro linijas tuo metu t tomis pačiomis radaro linijomis juodos spalvos metu t+1, kad jas ištrintume. Priešingu atveju, kiekvieną kartą išvalydami ekraną naudodami funkciją „clearDisplay ()“prieš stumdami naują pikselių tinklelį, mirksėsite. Kadangi aš susidūriau su 7 eilutėmis- projektavimo tikslais- turėjau išsaugoti ir perduoti sveikų skaičių 7 elementų masyvą, kur kiekvienas elementas reiškia spindulį tarp radaro centro iki aptikto objekto, jei toks yra. Turint tai omenyje, likusi kodo dalis turėtų būti suprantama tiesiai.

8 žingsnis: „Java“kodo supratimas

Perdirbdamas turėjau apeiti serialEvent () funkcijos iškvietimą, kuris veikia tik su nuosekliais prievadais, pavadintais COM. Kai dirbau su „Mac“, mano nuoseklieji prievadai buvo pavadinti kitu pavadinimu. Be to, aš išpakavau šią funkciją į pagrindinę funkciją „draw ()“. Kalbant apie visa kita, atnaujinau programą, kad atitiktų visą revoliucijos dizainą. Galiausiai atnaujinau visas nupieštas figūras ir tekstus atsižvelgiant į ekrano plotį, kad galutinis produktas atitiktų skirtingas ekrano skyras. Aš asmeniškai išbandžiau tiek 1000X1000, tiek 500X500 rezoliucijas, ir tai gerai veikė:).

9 žingsnis: Išvada

Šį darbą galima atnaujinti ir turėti 3 ultragarsinius jutiklius, kurių kiekvienas apima 120 matymo kampą, arba net 4 jutiklius (90 laipsnių*4) -> greitesnius 360 laipsnių. nuskaityti.

Taip pat galite išplėsti radaro diapazoną nuo 40 cm iki 60 cm ar net 80 cm. Aš asmeniškai išbandžiau „pulseIn“funkciją ir pakoregavau TIMEOUT kintamąjį 40 cm atžvilgiu. Šis kintamasis priklauso nuo daugelio veiksnių, įskaitant impulsų siuntimo ilgį ir objekto paviršių, kuriame impulsas atsispindi.

Galiausiai, kaip minėta anksčiau, kitas žingsnis yra įtraukti radarDuino su judėjimo robotu, kad būtų galima nuskaityti aplinkinį perimetrą.

Rekomenduojamas: