Բովանդակություն:
- Քայլ 1: Ձեռք բերեք անհրաժեշտ մասեր և նյութեր
- Քայլ 2. Տեսախցիկի և Գայգեր-Մյուլլերի հաշվիչի կազմաձևում
- Քայլ 3. Միացեք ձեր Roomba- ին և ստեղծեք լուսային տվիչների կոդ
- Քայլ 4: Ստեղծեք բամպերի կոդ
- Քայլ 5. Ստեղծեք կոդ ՝ հաշվիչ էկրանը կարդալու, մեկնաբանելու և աղբյուրից նահանջելու համար
- Քայլ 6: Ստեղծեք Cliff Sensor Code
- Քայլ 7: Եզրակացություն
Video: The RADbot: 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
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- ին և ստեղծեք լուսային տվիչների կոդ
Նախ, ներբեռնեք 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. Ստեղծեք կոդ ՝ հաշվիչ էկրանը կարդալու, մեկնաբանելու և աղբյուրից նահանջելու համար
Մեր նախագծի հիմքում ընկած է Գայգեր-Մյուլլերի հաշվիչը և հետևյալ կոդի հատվածը օգտագործվում է որոշելու, թե ինչ են նշանակում էկրանի տվյալները տեսախցիկի միջոցով: Հաշվի առնելով, որ մեր հաշվիչի էկրանը փոխում է գույնը `ելնելով աղբյուրի ակտիվությունից, մենք տեսախցիկին կարգավորում ենք էկրանի գույնի մեկնաբանություն: Սկսեք ձեր կոդը ՝ փոփոխություն սահմանելով «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
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 թիմը
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Քայլ առ քայլ համակարգչային շենք. 9 քայլ
Քայլ առ քայլ համակարգչի կառուցում. Պարագաներ. Սարքավորումներ. Մայրական համակարգիչ CPU coolerPSU (Էներգամատակարարման միավոր) Պահեստավորում (HDD/SSD) RAMGPU (պարտադիր չէ) Գործ CaseTools: Պտուտակահան ESD ապարանջան/matsthermal paste w/aplikator
Երեք բարձրախոս շղթա -- Քայլ առ քայլ ձեռնարկ ՝ 3 քայլ
Երեք բարձրախոս շղթա || Քայլ առ քայլ ձեռնարկ. Բարձրախոսների սխեման ուժեղացնում է շրջակա միջավայրից ստացված աուդիո ազդանշանները MIC- ում և այն ուղարկում է խոսնակին, որտեղից արտադրվում է ուժեղացված ձայնը:
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ `հանդերձանքով. 6 քայլ
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ ՝ հանդերձանքով. Իմ սեփական ռոբոտը կառուցելուց մի քանի ամիս անց (խնդրում եմ անդրադառնալ այս բոլորին), և երկու անգամ մասերի խափանումից հետո, ես որոշեցի մի քայլ հետ գնալ և նորից մտածել իմ մասին ռազմավարություն և ուղղություն: Մի քանի ամսվա փորձը երբեմն շատ հատուցող էր, և
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)