Բովանդակություն:

Նախագիծ 3 ՝ SonarDuino ՝ 9 քայլ
Նախագիծ 3 ՝ SonarDuino ՝ 9 քայլ

Video: Նախագիծ 3 ՝ SonarDuino ՝ 9 քայլ

Video: Նախագիծ 3 ՝ SonarDuino ՝ 9 քայլ
Video: 009 ՆԱԽԱԳԻԾ ՀՅՈՒՐԱՆՈՑ 3-րդ ննջարան 2024, Սեպտեմբեր
Anonim
Image
Image

Հարգելի ընկերներ, հոբբիստ, Այս նախագծում մենք կուսումնասիրենք օբյեկտների հայտնաբերման համար 360 աստիճանի ռադարային համակարգ ունենալու հնարավորությունը: Այս մոդուլի առանձին տեղադրումը թույլ կտա ձեր շարժական ռոբոտին հայտնաբերել իր շրջակայքի սահմանները: Այն կարող է ծառայել նաև որպես նավիգացիոն գործիք մթության մեջ, բայց միայն այն դեպքում, երբ բավական դանդաղ եք քայլում, էջ

Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի

Պատրաստեք ուլտրաձայնային տվիչների աջակցություն
Պատրաստեք ուլտրաձայնային տվիչների աջակցություն

Այս կառուցվածքը պատրաստելու համար ձեզ հարկավոր է գնել հետևյալը.

Արդուինո Նանո.: rk: 2: pf: 0

Նախատիպերի տախտակներ. ~ Zbl232: rk: 13: pf: 0

Servo Motors.: 16: pf: 0 & var

Ուլտրաձայնային սենսորներ. IAAOSw-xbD5Fp: rk: 2: pf: 0

Քայլ 2: Փաստաթղթեր

Քանի որ ձեզանից ոմանք արդեն կարող են դա իմանալ, այս նախագիծը ոգեշնչված է մեկ այլ բաց կոդով նախագծով, որը կոչվում է «Arduino Radar Project», որը պատրաստել է Դեժանը «How to Mechatronics»-ից ՝ հետևյալ հղումով ՝ https://howtomechatronics.com/projects/arduino -ռադիոտեղորոշիչ նախագիծ/

Մեկ այլ կետ, որը պահանջում է փաստաթղթեր, հետևյալ երկու գրադարանների ներլցումն է ձեր զարգացման միջավայրում.

Adafruit-GFX- գրադարան ՝

Adafruit_SSD1306:

Ասվածն այն է, որ C ծածկագիրն իսկապես հասկանալու համար անհրաժեշտ կլինի վերը նշված երկու գրադարանների վերաբերյալ որոշ փաստաթղթեր կազմել: Բացի այդ, իմ ծածկագրում օգտագործված գործառույթներն ունեն անուններ, որոնք ցույց են տալիս, թե ինչ են նրանք անում:

Քայլ 3. Պատրաստեք ուլտրաձայնային տվիչների աջակցություն

Պատրաստեք ուլտրաձայնային տվիչների աջակցություն
Պատրաստեք ուլտրաձայնային տվիչների աջակցություն
Պատրաստեք ուլտրաձայնային տվիչների աջակցություն
Պատրաստեք ուլտրաձայնային տվիչների աջակցություն
Պատրաստեք ուլտրաձայնային տվիչների աջակցություն
Պատրաստեք ուլտրաձայնային տվիչների աջակցություն

Վերցրեք ցանկացած ստվարաթուղթ և կտրեք այն սենսորին ամրացված միացնող մալուխների չափսերի համաձայն, ինչպես ցույց է տրված առաջին նկարում: Դրանից հետո, ծալեք այս վերջինը և կպցրեք այն servo շարժիչի աջակցությանը: Երբ դա արվի, կպցրեք երկու ուլտրաձայնային տվիչները `ըստ վերջին նկարի: Նկատի ունեցեք, որ սենսորների վերնագիրը պետք է այնպես սոսնձված լինի, որ մալուխները դուրս գան սենսորի դիմաց: Սա թույլ կտա սենսորային մալուխներին չխանգարել միմյանց, երբ 360 աստիճանի պտույտն իրականացվում է:

Քայլ 4. Ամեն ինչ տեղադրեք նախատիպերի տախտակի մեջ

Ամեն ինչ տեղադրեք նախատիպերի տախտակի մեջ
Ամեն ինչ տեղադրեք նախատիպերի տախտակի մեջ
Ամեն ինչ տեղադրեք նախատիպերի տախտակի մեջ
Ամեն ինչ տեղադրեք նախատիպերի տախտակի մեջ
Ամեն ինչ տեղադրեք նախատիպերի տախտակի մեջ
Ամեն ինչ տեղադրեք նախատիպերի տախտակի մեջ

Այս քայլում դուք կսկսեք նախորդ քայլում պատրաստված վերնագրի տեղադրումը համապատասխան սերվո շարժիչի մեջ: Երբ servo շարժիչը մանրակրկիտ ընտելանա, դուք ամեն ինչ միասին կտեղադրեք նախատիպի տախտակի մեջ: Դուք կսկսեք զոդել Arduino Nano- ն, այնուհետև սերվոն սոսնձելով հենց դրա կողքին: Ի վերջո, դուք կպցրեք փոքրիկ OLED էկրանը տախտակի մյուս եզրին:

Քայլ 5: Վերջնական կապեր հաստատելը

Վերջնական կապեր հաստատելը
Վերջնական կապեր հաստատելը
Վերջնական կապեր հաստատելը
Վերջնական կապեր հաստատելը
Վերջնական կապեր հաստատելը
Վերջնական կապեր հաստատելը

Այս քայլը կեզրափակի այս ծրագրի ապարատային կողմը: Բոլոր անհրաժեշտ կապերը հաստատելու համար դուք պետք է հետևեք տրամադրված սխեմաներին:

Քայլ 6: ootingրագրի գործարկում

Գործարկել ծրագիրը
Գործարկել ծրագիրը

Գոյություն ունեն երկու ծածկագիր, որոնք ձեզ հարկավոր է գործարկել

Arduino (C). Https: //github.com/ReconaissantL/RadarDuino/blob/master/radarduino.ino

Մշակում (java) ՝

Կոդը գործարկելիս դուք կունենաք ընտրելու երկու տարբերակ.

Տարբերակ 1. Օգտագործելով OLED էկրանը, դրա համար անհրաժեշտ է C կոդի մեջ փոփոխական MODE- ն սահմանել 0:

Տարբերակ 2. Օգտագործելով ձեր մոնիտորը, դրա համար անհրաժեշտ է C կոդի մեջ փոփոխական MODE- ն սահմանել 1. Բացի այդ, ձեզ հարկավոր է ներբեռնել և տեղադրել Processing զարգացման միջավայրը և ներբեռնել ռադիոտեղորոշիչ տառատեսակը այս հղումից ՝ https:// github.com/lastralab/ArduinoRadar/blob/ma…

Եվ ավելացրեք այդ ֆայլը ձեր մշակման կոդի ֆայլին, որպեսզի ձեր java ծածկագիրը ճանաչի տառատեսակը զանգելիս:

Քայլ 7: Հասկանալով C օրենսգիրքը

Հասկանալով C օրենսգիրքը
Հասկանալով C օրենսգիրքը

Կոդը հիմնականում բաղկացած է երկու «for» օղակից: Մեկը փոխկապակցված է առաջ փոխանցման հետ, իսկ մյուսը հետընթաց փոխանցման հետ: Երկուսի ներսում էլ շատ անգամ կոչվում է draw_scanner () հիմնական գործառույթը, որը ռադիոտեղորոշիչի գծերը կբերի էկրանին: Բազմաթիվ կոնֆիգուրացիաներ փորձարկելուց հետո ես եկա այն եզրակացության, որ մենք պետք է սպիտակ ռադիոտեղորոշիչ տերը ժամանակին փոխարինենք t+1 ժամանակ նույն սև ռադիոտեղորոշիչներով ՝ դրանք ջնջելու համար: Հակառակ դեպքում, թարթում տեղի կունենա ամեն անգամ, երբ դուք մաքրում եք էկրանը ՝ օգտագործելով «clearDisplay () գործառույթը, նախքան նոր պիքսելային ցանցը հրելը: Քանի որ գործ ունեի 7 գծերի հետ `նախագծման նպատակների համար, ես ստիպված էի պահել և փոխանցել 7 տարրերից բաղկացած ամբողջ շարք, որտեղ յուրաքանչյուր տարր կանգնած է ռադիոտեղորոշիչ կենտրոնի միջև ընկած շառավղով մինչև հայտնաբերված օբյեկտը, եթե այդպիսիք կան: Սա հաշվի առնելով ՝ մնացած ծածկագիրը պետք է ուղիղ լինի հասկանալու համար:

Քայլ 8: Հասկանալ Java կոդը

Մշակման ընթացքում ես ստիպված էի շրջանցել serialEvent () գործառույթի կանչը, որն աշխատում է միայն COM անունով սերիական նավահանգիստներով: Երբ աշխատում էի Mac- ում, իմ սերիական նավահանգիստներն այլ անվան տակ էին: Ասածս այն է, որ ես այդ գործառույթը բացեցի «գծել ()» մշակման հիմնական գործառույթի մեջ: Ինչ վերաբերում է մնացած ամեն ինչին, ես թարմացրել եմ ծրագիրը ՝ հեղափոխության ամբողջական նախագծին համապատասխանելու համար: Ի վերջո, ես թարմացրեցի բոլոր գծագրված ձևերն ու տեքստերը էկրանի լայնության նկատմամբ, որպեսզի վերջնական արտադրանքը համապատասխանի էկրանի տարբեր լուծումներին: Ես անձամբ այն փորձարկել եմ ինչպես 1000X1000, այնպես էլ 500X500 բանաձևերի համար, և այն լավ աշխատեց:):

Քայլ 9: Եզրակացություն

Այս աշխատանքը կարող է արդիականացվել ՝ ունենալով 3 Ուլտրաձայնային տվիչ, որոնցից յուրաքանչյուրը ծածկում է 120 դիտման անկյուն, կամ նույնիսկ 4 տվիչ (90 աստիճան*4) -> ավելի արագ ՝ 360 աստիճան: սկանավորել.

Կարող եք նաև ռադիոլոկացիոն տիրույթը 40 սմ -ից հասցնել 60 սմ -ի կամ նույնիսկ 80 սմ -ի: Ես անձամբ փորձարկել եմ իմպուլսային գործառույթը և ճշգրտել եմ TIMEOUT փոփոխականը `40 սմ -ի նկատմամբ: Այս փոփոխականը կախված է բազմաթիվ գործոններից, ներառյալ զարկերակի երկարությունը և այն առարկայի մակերեսը, որտեղ զարկերակն արտացոլվում է:

Վերջապես, ինչպես արդեն նշվեց, հաջորդ քայլը ռադարային Դուինոն ներառել շարժական ռոբոտի հետ `շրջապատող պարագիծը սկանավորելու համար:

Խորհուրդ ենք տալիս: