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

The RADbot: 7 քայլ
The RADbot: 7 քայլ

Video: The RADbot: 7 քայլ

Video: The RADbot: 7 քայլ
Video: BIT.TRIP RUNNER 2-07 Radbot (Perfect) 2024, Նոյեմբեր
Anonim
RADbot- ը
RADbot- ը

Jեքսոն Բրեյքելի, Թայլեր Մակկուբինսի և Յակոբ Թալերի նախագիծը EF 230 -ի համար

Մարսի վրա տիեզերագնացները ենթարկվելու են տարբեր վտանգների ՝ ծայրահեղ ջերմաստիճանից մինչև փոշու փոթորիկ: Մի գործոն, որը հաճախ անտեսվում է, այնուամենայնիվ, վտանգն է, որը ներկայացնում են մոլորակի մակերևույթում բնակվող հզոր ռադիոիզոտոպները: RADbot- ը աջակցություն է ցուցաբերում Մարսի մակերևույթի տիեզերագնացներին հետազոտելուն ՝ ճամփորդության ընթացքում բարձր ակտիվություն ունեցող ժայռերի նմուշները հայտնաբերելով, ինչպես նաև ունի ծրագրավորված անվտանգության հնարավորություններ, որոնք օգտագործում են ժայռերի տվիչները, լուսային տվիչները, բամպերի սենսորները և տեսախցիկը ՝ կանխելով ռոբոտին վնասելուց: մարսյան աններելի տեղանքում: Բացի տիեզերագնացներին մակերևույթի վրա հնարավոր ռադիոակտիվ վտանգների մասին զգուշացնելուց, ռոբոտի ռադիոակտիվ նմուշի տեղադրման հնարավորությունը կարող է կիրառվել որպես գործիք ՝ ուրանի և այլ ակտինիդների մեծ հանքավայրերի հայտնաբերման գործիք: Տիեզերագնացները կարող են ականազերծել այդ տարրերը, բավականաչափ հարստացնել դրանք և օգտագործել դրանք միջուկային ռեակտորներում և ջերմաէլեկտրական գեներատորներում, ինչը կարող է օգնել մոլորակի վրա մշտական ինքնապաշտպան գաղութի հզորացմանը:

Ի տարբերություն տիպիկ Մարսագնաց սարքի, մեր դիզայնը պարունակում է դարակից դուրս գտնվող բաղադրիչներ և ողջամիտ գին: Եթե ունեք միջոցներ և ցանկություն, կարող եք նույնիսկ ինքներդ կառուցել ՝ հետևելով այս ուղեցույցին: Խնդրում ենք կարդալ ՝ սովորելու համար, թե ինչպես պատրաստել ձեր սեփական RADbot- ը:

Քայլ 1: Ձեռք բերեք անհրաժեշտ մասեր և նյութեր

Ձեռք բերեք անհրաժեշտ մասեր և նյութեր
Ձեռք բերեք անհրաժեշտ մասեր և նյութեր
Ձեռք բերեք անհրաժեշտ մասեր և նյութեր
Ձեռք բերեք անհրաժեշտ մասեր և նյութեր
Ձեռք բերեք անհրաժեշտ մասեր և նյութեր
Ձեռք բերեք անհրաժեշտ մասեր և նյութեր

Այն, ինչ ձեզ հարկավոր է սկսելու համար (պատկերները տեղադրված են ըստ ցուցակի)

1. One Roomba (ցանկացած նոր մոդել)

2. Մեկ Գայգեր-Մյուլլերի հաշվիչ

3. One Raspberry Pi

4. Մեկ տախտակի տեսախցիկ `USB վարդակից

5. Մեկ micro USB- ից USB մալուխ

6. Մեկ USB- ից USB մալուխ

7. Բավարար գործունեության մեկ ռադիոակտիվ նմուշ (~ 5μSv կամ ավելի բարձր)

8. Մեկ համակարգիչ `տեղադրված Matlab- ով

9. Կպչուն (նախընտրելի է կպչուն ժապավեն `հեշտ հանելիության համար)

Քայլ 2. Տեսախցիկի և Գայգեր-Մյուլլերի հաշվիչի կազմաձևում

Տեսախցիկի և Գայգեր-Մյուլլերի հաշվիչի կազմաձևում
Տեսախցիկի և Գայգեր-Մյուլլերի հաշվիչի կազմաձևում

Այժմ, երբ դուք ունեք RADbot- ը ստեղծելու համար անհրաժեշտ բոլոր նյութերը, մենք կսկսենք պարզապես տեղադրելով տեսախցիկը, որպեսզի այն կարողանա կարդալ գործունեությունը հաշվիչի վրա: Տեղադրեք Գայգեր-Մյուլլերի հաշվիչը հնարավորինս մոտ Roomba- ի ծայրին և համոզվեք, որ դրա ցուցիչը արգելափակված չէ: Ձեր ընտրած սոսինձով ամուր ամրացրեք հաշվիչը տեղում և անցեք տեսախցիկի ամրացմանը `դրան դեմքով: Տեղադրեք տեսախցիկը հնարավորինս մոտ հաշվիչի ցուցանակին, որպեսզի արտաքին մուտքերը չազդեն ծրագրի վրա և ապահովեք այն տեղում, երբ հարմարավետ զգաք: Խորհուրդ ենք տալիս վերջապես պահպանել տեսախցիկի ապահովումը, քանի որ, երբ ձեր ծածկագիրն ավարտված է, կարող եք տեսախցիկից պատկեր տեղադրել ձեր համակարգչին ՝ թույլ տալով տեղադրել տեսախցիկը տեսադաշտի հիման վրա: Երբ տեսախցիկը և հաշվիչը ամուր տեղավորվեն, միացրեք տեսախցիկը Raspberry Pi- ի USB մուտքերից մեկին USB- ից USB մալուխով և միացրեք Raspberry Pi- ն Roomba- ին միկրո USB- ից USB մալուխով:

Քայլ 3. Միացեք ձեր Roomba- ին և ստեղծեք լուսային տվիչների կոդ

Միացեք ձեր Roomba- ին և ստեղծեք լուսային տվիչների կոդ
Միացեք ձեր Roomba- ին և ստեղծեք լուսային տվիչների կոդ

Նախ, ներբեռնեք EF 230 կայքի Roomba գործիքների տուփը և համոզվեք, որ այն տեղադրեք նշված թղթապանակների մեջ: Ձեր Roomba- ին միանալու համար պարզապես նշեք Raspberry Pi- ին ամրացված կպչուն և հրամանի պատուհանում մուտքագրեք «r = roomba (x)» ՝ առանց չակերտների, և որտեղ x- ը Roomba- ի համարն է: Roomba- ն պետք է մեղեդի նվագի, իսկ մաքուր կոճակը պետք է կանաչ մատանի ցույց տա դրա շուրջը: Սկսեք ձեր կոդը «while» հայտարարությամբ և անդրադարձեք լուսային տվիչներին, ինչպես դրանք հայտնվում են ցուցիչների ցուցակում: Բացեք սենսորների ցուցակը ՝ հրամանի պատուհանում մուտքագրելով «r.testSensors»:

Ելնելով մեր օբյեկտի գույնից, որը որոշում է, թե որքան լույս է արտացոլվում, սահմանեք պահանջները while հայտարարության համար, որը պետք է կատարվի որպես> գործառույթ: Մեր դեպքում, մենք դնում ենք առջևի լույսի սենսորին, որպեսզի այն գործարկի ծածկագիրը while հայտարարության մեջ, եթե ձախ կամ աջ կենտրոնական լույսի տվիչների ցուցանիշը> 25 է: Գործարկվող հայտարարության համար Roomba- ի արագությունը դանդաղեցրեք ՝ մուտքագրելով «r.setDriveVelocity (x, y)», որտեղ x և y համապատասխանաբար ձախ և աջ անիվների արագություններն են: Տեղադրեք «այլ» հայտարարություն, որպեսզի Roomba- ն չդանդաղեցնի չճշտված արժեքները և նորից մուտքագրեք սահմանված արագության արագության հրամանը, բացառությամբ այլ արագության: Whileամանակի հայտարարությունն ավարտեք «վերջ» -ով: Այս ծածկագրի հատվածը կստիպի Roomba- ին մոտենալ օբյեկտին և դանդաղեցնել այն, երբ այն հասնի որոշակի տիրույթի `ազդեցությունը նվազագույնի հասցնելու համար:

Կից ներկայացված է մեր ծածկագրի սքրինշոթը, բայց ազատ զգալ խմբագրեք այն ՝ ձեր առաքելության պարամետրերին լավագույնս համապատասխանելու համար:

Քայլ 4: Ստեղծեք բամպերի կոդ

Ստեղծեք բամպերի կոդ
Ստեղծեք բամպերի կոդ

Երբ Roomba- ն դանդաղում է, այն նվազագույնի կհասցնի օբյեկտի վրա ունեցած ազդեցությունը, չնայած ոչ այնքան, որ այն ֆիզիկական բամպերը չձգի: Կոդի այս հատվածի համար նորից սկսեք «while» օղակով և դրեք դրա արտահայտությունը ճշմարիտ: Հայտարարության համար սահմանեք T փոփոխականը հավասար բամպերի ելքին `0 կամ 1, կեղծ և ճշմարիտ: Դրա համար կարող եք օգտագործել «T = r.getBumpers» - ը: T- ն դուրս կգա որպես կառուցվածք: Մուտքագրեք «եթե» հայտարարություն և դրա արտահայտությունը T. ենթակառուցվածքի համար հավասարեցրեք 1 -ի, և հայտարարությունը դրեք կամ դրեք սկավառակի արագությունը 0 -ին ՝ օգտագործելով «r.setDriveVelocity (x, y)» կամ «r.stop . Մուտքագրեք «ընդմիջում», որպեսզի Roomba- ն կարողանա շարժվել հաջորդ կոդի պայմանի բավարարումից հետո: Ավելացրեք «այլ» և դրեք նրա հայտարարությունը `քշելու արագությունը դնելով Roomba- ի սովորական նավարկության արագությանը:

Կից ներկայացված է մեր ծածկագրի սքրինշոթը, բայց ազատ զգալ խմբագրեք այն ՝ ձեր առաքելության պարամետրերին լավագույնս համապատասխանելու համար:

Քայլ 5. Ստեղծեք կոդ ՝ հաշվիչ էկրանը կարդալու, մեկնաբանելու և աղբյուրից նահանջելու համար

Ստեղծեք կոդ ՝ Counter Screen- ը կարդալու, մեկնաբանելու և աղբյուրից նահանջելու համար
Ստեղծեք կոդ ՝ Counter Screen- ը կարդալու, մեկնաբանելու և աղբյուրից նահանջելու համար

Մեր նախագծի հիմքում ընկած է Գայգեր-Մյուլլերի հաշվիչը և հետևյալ կոդի հատվածը օգտագործվում է որոշելու, թե ինչ են նշանակում էկրանի տվյալները տեսախցիկի միջոցով: Հաշվի առնելով, որ մեր հաշվիչի էկրանը փոխում է գույնը `ելնելով աղբյուրի ակտիվությունից, մենք տեսախցիկին կարգավորում ենք էկրանի գույնի մեկնաբանություն: Սկսեք ձեր կոդը ՝ փոփոխություն սահմանելով «r.getImage» հրամանին հավասար: Փոփոխականը պարունակում է կարմիր, կանաչ և կապույտ նկարի գունային արժեքների եռաչափ զանգված: Այս համապատասխան գույնի մատրիցների միջին արժեքներին հավասար փոփոխականներ կիրառելով ՝ «միջին (միջին (img1 (:,,, x))) հրաման», որտեղ x- ը 1 -ից մինչև 3 -ի ամբողջ թիվ է: 1, 2 և 3 -ը ներկայացնում են կարմիր, կանաչ և համապատասխանաբար կապույտ: Ինչպես բոլոր հիշատակված հրամանների դեպքում, չներառեք չակերտներ:

Թող ծրագիրը դադար տա 20 վայրկյան ՝ օգտագործելով «դադար» (20) », այնպես որ հաշվիչը կարող է ստանալ նմուշի ճշգրիտ ընթերցում, այնուհետև սկսել« եթե »արտահայտությունը: Մենք Roomba- ի ազդանշանը մի քանի անգամ հնչեցրեցինք «r.beep» - ի միջոցով, նախքան այն ցուցադրել «Տե՛ս ռադիոիզոտոպը» տեքստով մենյու: դա կարող է իրականացվել «waitfor (helpdlg ({'texthere'})» հրամանով: OK կոճակը սեղմելուց հետո Roomba- ն կշարունակի հետևել «եթե» հայտարարության մնացած կոդին: Թող Roomba- ն քշի նմուշի շուրջը «r.moveDistance» և «r.turnAngle» հրամանների համադրություն: Համոզվեք, որ ձեր if հայտարարությունը վերջացրեք «վերջ» -ով:

Կից ներկայացված է մեր ծածկագրի սքրինշոթը, սակայն ազատորեն խմբագրեք այն ՝ ձեր առաքելության պարամետրերին լավագույնս համապատասխանելու համար:

Քայլ 6: Ստեղծեք Cliff Sensor Code

Ստեղծեք Cliff Sensor Code
Ստեղծեք Cliff Sensor Code

Roomba- ի ներկառուցված ժայռերի տվիչներից օգտվելու համար ծածկագիր ստեղծելու համար սկսեք «while» օղակով և սահմանեք դրա արտահայտությունը ճշմարիտ: Փոփոխականը հավասարեցրեք «r.getCliffSensors» - ին, և դա կհանգեցնի կառուցվածքի: Սկսեք «եթե» հայտարարություն և «X.leftFront» և «X.rightFront» փոփոխականները կառուցվածքից դարձրեք ավելի մեծ, քան որոշված կանխորոշված արժեքը, որտեղ «X» այն փոփոխականն է, որին ընտրել եք «r.getCliffSensors» հրամանը: հավասար լինել. Մեր դեպքում, մենք օգտագործեցինք 1000 -ը, քանի որ սպիտակ թղթի կտորն օգտագործվում էր ժայռը ներկայացնելու համար, և, երբ սենսորները մոտենում էին, թուղթը, արժեքները հասնում էին 1000 -ի, ինչը երաշխավորում էր, որ ծածկագիրը կգործի միայն ժայռի հայտնաբերման դեպքում:. Հետո ավելացրեք «break» հրամանը, այնուհետև տեղադրեք «else» հայտարարությունը: «Այլ» հայտարարության համար, որը կկիրառվի, եթե ժայռ չբացահայտվի, շարժիչի արագությունը սահմանեք յուրաքանչյուր անիվի համար սովորական նավարկության արագության վրա: Եթե Roomba- ն իսկապես հայտնաբերի ժայռ, ապա «ընդմիջումը» կկատարվի, այնուհետև while օղակից դուրս գտնվող ծածկագիրը կկատարվի: «Եթե» և «while» հանգույցի «վերջը» դնելուց հետո Roomba- ն կարգավորեք հետ շարժվել ՝ օգտագործելով move distance հրահանգը: Տիեզերագնացներին զգուշացնելու համար, որ ժայռը մոտակայքում է, յուրաքանչյուր անիվի քշման արագությունը ՝ x և y, շարժիչի արագության հրամանի մեջ ՝ a և –a, որտեղ a- ն իրական թիվ է: Դա կհանգեցնի Roomba- ի պտույտին ՝ տիեզերագնացին զգուշացնելով ժայռի մասին:

Կից ներկայացված է մեր ծածկագրի սքրինշոթը, բայց ազատ զգալ խմբագրեք այն ՝ ձեր առաքելության պարամետրերին լավագույնս համապատասխանելու համար:

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

Եզրակացություն
Եզրակացություն

RADbot- ի վերջնական նպատակը Մարսի վրա տիեզերագնացներին օգնելն է կարմիր մոլորակի հետազոտման և գաղութացման գործում: Մակերևույթի վրա ռադիոակտիվ նմուշներ հայտնաբերելով ՝ մենք հույս ունենք, որ այս դեպքում ռոբոտը կամ մարսագնացը իսկապես կարող է տիեզերագնացներին ապահով պահել և օգնել նրանց բազայի (երի) էներգիայի աղբյուրների բացահայտմանը: Այս բոլոր քայլերը կատարելուց հետո, և գուցե որոշ փորձարկումներով, ձեր RADbot- ը պետք է գործի: Տեղադրեք ռադիոակտիվ նմուշը ինչ -որ տեղ ձեր փորձարկման տարածքում, կատարեք ձեր ծածկագիրը և դիտեք, թե ինչպես է արբանյակն անում այն, ինչ նախատեսված էր: Վայելեք ձեր RADbot- ը:

-EF230 RADbot թիմը

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