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

Walking Strandbeest, Java/Python և App Controlled: 4 քայլ (նկարներով)
Walking Strandbeest, Java/Python և App Controlled: 4 քայլ (նկարներով)

Video: Walking Strandbeest, Java/Python և App Controlled: 4 քայլ (նկարներով)

Video: Walking Strandbeest, Java/Python և App Controlled: 4 քայլ (նկարներով)
Video: TrotBot, Klann, Strandbeest, & Strider Linkages in Motion 2024, Նոյեմբեր
Anonim

Հետևեք հեղինակի ավելին ՝

Պարզ ներդաշնակ շարժման փորձնական ուսումնասիրություն
Պարզ ներդաշնակ շարժման փորձնական ուսումնասիրություն
Պարզ ներդաշնակ շարժման փորձնական ուսումնասիրություն
Պարզ ներդաշնակ շարժման փորձնական ուսումնասիրություն

Այս Strandbeest հավաքածուն DIY աշխատանք է ՝ հիմնված Theo Jansen- ի հորինած Strandbeest- ի վրա: Amazարմանալով հանճարեղ մեխանիկական դիզայնի վրա ՝ ես ուզում եմ այն վերազինել լիարժեք մանևրելու ունակությամբ, իսկ հաջորդը ՝ համակարգչային բանականությամբ: Այս ուսանելի դասում մենք աշխատում ենք առաջին մասի ՝ մանևրելու վրա: Մենք նաև ծածկում ենք վարկային քարտի չափի համակարգչի մեխանիկական կառուցվածքը, որպեսզի կարողանանք խաղալ համակարգչային տեսողության և արհեստական ինտելեկտի մշակման հետ: Շինարարական աշխատանքներն ու աշխատանքները պարզեցնելու համար ես չօգտագործեցի arduino կամ նման ծրագրավորվող համակարգիչ, փոխարենը ՝ ես կառուցում եմ Bluetooth սարքավորումների վերահսկիչ: Այս վերահսկիչը, որն աշխատում է որպես ռոբոտային սարքավորման հետ փոխկապակցված տերմինալ, վերահսկվում է ավելի հզոր համակարգով, ինչպիսիք են android հեռախոսի ծրագիրը կամ RaspberryPi- ն և այլն: Կառավարումը կարող է լինել բջջային հեռախոսի UI հսկողություն կամ ծրագրավորվող վերահսկողություն python կամ Java լեզվով: SDրագրավորման յուրաքանչյուր լեզվի համար մեկ SDK բաց կոդ է ՝ տրամադրված

Քանի որ mini-Strandbeest- ի օգտագործողի ձեռնարկը բավականին պարզ է շենքի քայլերը բացատրելու համար, այս ուսանելի դասում մենք կկենտրոնանանք այն տեղեկությունների վրա, որոնք սովորաբար ընդգրկված չեն օգտագործողի ձեռնարկում և էլեկտրական/էլեկտրոնային մասերի վրա:

Եթե մեզ անհրաժեշտ է ավելի ինտուիտիվ գաղափար այս հավաքածուի մեխանիկական հավաքման վերաբերյալ, ապա հավաքման թեմայով բավականին լավ տեսանյութեր կան, ինչպիսիք են ՝

Պարագաներ

Այս Strandbeest- ի մեխանիկական մասի կառուցման և ամբողջ էլեկտրական միացման համար այն պետք է տևի 1 ժամից պակաս, եթե 3D տպման սպասման ժամանակը չհաշված: Այն պահանջում է հետևյալ մասերը.

(1) 1x ստանդարտ Strandbeest հավաքածու (https://webshop.strandbeest.com/ordis-parvus)

(2) 2x DC շարժիչ ՝ փոխանցման տուփով (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x Bluetooth վերահսկիչ (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x LiPo մարտկոց (3.7V, ձեր ընտրած հզորությունը mAh)

(5) 12x M2x5.6 մմ փայտե պտուտակներ

(6) 2 մմ տրամագծով ածխածնի կամ բամբուկի ձող

Եռաչափ տպեք հետևյալ մասերը.

(1) 1x ռոբոտաշինության հիմնական մարմին

(Ներբեռնեք միայն 3D տպման ձևավորման ֆայլ ՝ bluetooth վերահսկիչով)

(3D տպման ձևավորման ֆայլ ՝ OrangePi Nano- ի լրացուցիչ ներլցմամբ)

(2) 2x Drive լիսեռի եզր (3D տպման դիզայնի ֆայլ ներբեռնում)

(3) 2x էներգահամակարգ

Մյուսները:

Android բջջային հեռախոս: Գնացեք Google playstore, որոնեք M2ROBOTS և տեղադրեք կառավարման հավելվածը:

Այն դեպքում, երբ դժվար է մուտք գործել Google Playstore, այցելեք իմ անձնական սկզբնական էջ ՝ հավելվածի ներլցման այլընտրանքային մեթոդի համար

Քայլ 1: Մասերի կազմակերպում

Մասերի կազմակերպում
Մասերի կազմակերպում
Մասերի կազմակերպում
Մասերի կազմակերպում
Մասերի կազմակերպում
Մասերի կազմակերպում
Մասերի կազմակերպում
Մասերի կազմակերպում

Այս քայլում մենք կկազմակերպենք հավաքման ենթակա բոլոր մասերը: Նկար 1: ցույց է տալիս տուփից դուրս մնացած բոլոր պլաստիկ մասերը, որոնք մենք օգտագործում ենք Strandbeest մոդելը կառուցելու համար: Դրանք պատրաստվում են ներարկման համաձուլվածքի միջոցով, որը շատ բարձր արդյունավետություն ունի ՝ համեմատած հաստոցների արտադրության այլ մեթոդների հետ, ինչպիսիք են 3D տպումը կամ ֆրեզերը: Այդ իսկ պատճառով մենք ցանկանում ենք առավելագույնս օգտվել զանգվածային արտադրանքից և հարմարեցնել միայն մասերի նվազագույն քանակը:

Ինչպես ցույց է տրված Նկար 2 -ում, պլաստիկ տախտակի յուրաքանչյուր կտոր ունի մակնշված այբուբեն, առանձին մասերում չկա մակնշում: Երբ դրանք կտրվեն, այլևս պիտակավորում չկա: Այս խնդիրը լուծելու համար մենք կարող ենք նույն տիպի մասեր դնել տարբեր արկղերի մեջ, կամ պարզապես մի քանի հատված թղթի վրա նշել և մի տեսակ մասեր դնել մեկ տարածքում, տե՛ս նկ. 3:

Պլաստիկ հատվածը պլաստմասե տախտակից ավելի մեծ մասից կտրելու համար մկրատը և դանակը կարող են այնքան արդյունավետ և անվտանգ չլինել, որքան նկ. 4 -ում և 5 -ում ներկայացված մխոցը:

Այստեղ ամեն ինչ պլաստմասե է, բացառությամբ մատների նյութի կաուչուկի, տես նկ. 6: Մենք կարող ենք կտրել ըստ նախապես պատրաստված կտրվածքների: Ռետինե նյութի փափուկ բնույթն ապահովում է խրտվիլակի բռնող ավելի լավ կատարում: Դա հատկապես ճիշտ է լանջ բարձրանալիս: Հետագա թեմաներում մենք կարող ենք ստուգել թեքության տարբեր անկյան տակ բարձրանալու ունակությունը ՝ ռետինե մատներով և առանց դրա: Երբ սայթաքում չկա, այն կոչվում է ստատիկ շփում: Երբ կորցնում է բռնելով, այն դառնում է կինետիկ շփում: Շփման գործակիցը կախված է օգտագործվող նյութերից, այդ իսկ պատճառով մենք ունենք ռետինե մատներ: Ինչպես նախագծել փորձ, բարձրացնել ձեռքը և բարձրաձայնել:

Վերջին նկարը պարունակում է այս մոդելի Strandbeest- ի «ECU», «Power train» և շասսի:

Քայլ 2. Մեխանիկական հավաքման ընթացքում ուշադրության արժանի կետեր

Մեխանիկական հավաքման ընթացքում ուշադրության արժանի կետեր
Մեխանիկական հավաքման ընթացքում ուշադրության արժանի կետեր
Մեխանիկական հավաքման ընթացքում ուշադրության արժանի կետեր
Մեխանիկական հավաքման ընթացքում ուշադրության արժանի կետեր
Մեխանիկական հավաքման ընթացքում ուշադրության արժանի կետեր
Մեխանիկական հավաքման ընթացքում ուշադրության արժանի կետեր

Mini-Strandbeest- ն ունի բավականին լավ օգտագործման ձեռնարկ: Ձեռնարկին հետևելը և հավաքը ավարտելը հեշտ աշխատանք պետք է լինի: Ես բաց կթողնեմ այս բովանդակությունը և կարևորեմ մեր ուշադրության արժանի մի քանի հետաքրքիր կետեր:

Նկ. 1-ում, ռետինե մատները պահող անցքի մի կողմը 90 աստիճանի անկյուն է, իսկ մյուս կողմը `45 աստիճանի թեքություն, որը պաշտոնապես կոչվում է ճեղքվածք: Նման թեքությունը ուղղորդում է ռետինե մատը պլաստիկ ոտքի մեջ տեղավորվելու համար: Փորձեք ոտքի մատները տեղադրել կողքից, տես նկ. 2, այնուհետև փորձեք մյուս կողմը: Տարբերությունը շատ նկատելի է: Նկ. 3 -ի աջ կողմը մեր Stranbeest- ի պտույտն է: Այն շատ նման է շարժիչի, մեքենայի շարժիչի, մոտոցիկլետների շարժիչի պտույտին, բոլորը կիսում են նույն կառուցվածքը: Strandbeest- ում, երբ պտույտը պտտվում է, ոտքերը շարժում է: Շարժիչի համար այն պտույտի շարժումն է, որը պտտեցնում է պտույտը: Շրջանակի մեջ նման 120-աստիճան անջատումը նույնպես հանգեցնում է եռաֆազ շարժիչի կամ գեներատորի, էլեկտրական հզորությունը 120 աստիճանի միջև է, ինչպես ցույց է տրված նկ. 4-ում: Ձախ և աջ կողերի մարմինների մեխանիկական մասերի հավաքումից հետո մենք սկսում ենք աշխատել Strandbeest- ին ավելացրած մասերի վրա, տե՛ս նկ. 5: Նկար 6-ը այն քայլն է, որով մենք օգտագործում ենք 3-D տպագիր շարժիչի սեղմիչը `շարժիչը 3-D տպագիր շասսիին ամրացնելու համար: Այս քայլում հնարքն այն է, որ պտուտակներից ոչ մեկը չպետք է խստացվի, մինչև շարժիչի դիրքը կարգավորվի այնպես, որ շասսիի կողային մակերեսը նույնը լինի, ինչ շարժիչի մակերեսը: Երբ մենք բավարարված ենք դասավորվածությամբ, կարող ենք սեղմել բոլոր պտուտակները: Անցեք նկ. 7 -ին, մենք աշխատում ենք եզրային կցորդիչի տեղադրման վրա `շարժիչի ելքը միացնելով պտուտակին: Շարժիչի կողմն ավելի դժվար է տեղադրվում, քան պտույտի կողային կապը, տես Նկար 8: Հետևաբար, մենք առաջին հերթին միացնում ենք շարժիչի կողային եզրը: Երկու շարժիչների ֆլանզային կցորդիչը տեղադրվելուց հետո, ինչպես ցույց է տրված Նկ. 9 -ում, մենք օգտագործում ենք 2 մմ տրամագծով ածխածնի ձողերի երկու կտոր `շասսիի և ձախ/աջ քայլող կառույցը միացնելու համար: Դա տեղի է ունենում նկ.10 -ում: Ընդհանուր առմամբ, մենք օգտագործում ենք 3 կտոր ածխածնի ձողեր `այս սուբյեկտները միացնելու համար: Բայց այս քայլում մենք կապում ենք դրանցից միայն երկուսը, քանի որ մենք պետք է պտտենք պտույտը և տեղավորենք եզրն ու պտույտը կապը: Եթե ածխածնի ձողերի 3 կտոր տեղում է եղել, ապա հարաբերական դիրքը կարգավորելը և դրանք միացնելը ավելի դժվար կլինի: Ի վերջո, մենք ունենք վերջնական հավաքված մեխանիկական համակարգ ՝ նկ. 11 -ում: Հաջորդ քայլը ՝ եկեք աշխատենք էլեկտրոնիկայի վրա:

Քայլ 3: Էլեկտրական միացում

Էլեկտրական միացում
Էլեկտրական միացում
Էլեկտրական միացում
Էլեկտրական միացում
Էլեկտրական միացում
Էլեկտրական միացում

Բոլոր էլեկտրոնային համակարգերը սնուցման կարիք ունեն: Մենք կարող ենք 1-բջջային մարտկոց տեղադրել հարմար վայրում, օրինակ ՝ Նկար 1-ում տպատախտակի տակ: Էներգամատակարարման բևեռականությունն այնքան կարևոր է, որ այն արժանի է քննարկման նվիրված գործչի: Նկար 2 -ը լուսավորում է մարտկոցի միացումը: Կառավարիչի տախտակում բևեռականությունը նշվում է «+» և «GND» նշաններով, տես նկ. 3: Երբ մարտկոցը սպառվում է, մարտկոցը լիցքավորելու համար օգտագործվում է USB մալուխ, տես նկ. 4: «Լիցքավորման գործընթացում» նշող LED- ն ինքնաբերաբար կանջատվի, երբ մարտկոցը նորից լիցքավորվի: Վերջին քայլը շարժիչի վարդակների միացումն է հսկիչ տախտակի շարժիչի միակցիչներին: Գոյություն ունեն 3 շարժիչի միակցիչներ, որոնք նշված են Նկար 3 -ում 16 համարով: Նկ. 5 -ում, ձախ շարժիչը միացված է PWM12 պիտակով ձախ ձախ միակցիչին, իսկ աջ շարժիչը միացված է միջին միակցիչին: Ներկայումս տանկը (դիֆերենցիալ մեքենա) ձախ շրջելը դժվար կոդավորված է, քանի որ շարժիչի մուտքային հզորության նվազում `կապված PWM12 շարժիչային նավահանգստի հետ: Հետևաբար, PWM12 նավահանգստին միացված շարժիչը պետք է քշի ձախ ոտքերը: Հետագայում ես կփոխարկեմ խառնուրդի բոլոր գործառույթները `օգտագործողի կողմից կարգավորելի: ինչպես շարժիչի միակցիչի ընտրությունը փոխելով, այնպես էլ շարժիչի միակցիչի ուղղությունը հակադարձելով, մենք կարող ենք լուծել այն խնդիրը, ինչպիսին է Strandbeest- ը հետ շարժվելը, երբ հրամայվում է առաջ շարժվել, շրջել սխալ ուղղությունը, հիշել, որ DC շարժիչը փոխում է իր պտտման ուղղությունը, եթե մուտքային մետաղալարն է միացված է կառավարման հզորությանը հակառակ կարգով:

Քայլ 4: Հավելվածի կարգավորումներ և գործարկում

Հավելվածի կարգավորումներ և շահագործում
Հավելվածի կարգավորումներ և շահագործում
Հավելվածի կարգավորումներ և շահագործում
Հավելվածի կարգավորումներ և շահագործում
Հավելվածի կարգավորումներ և շահագործում
Հավելվածի կարգավորումներ և շահագործում
Հավելվածի կարգավորումներ և շահագործում
Հավելվածի կարգավորումներ և շահագործում

Մենք նախ ներբեռնում ենք Android ծրագիր Google Play Store- ից, տե՛ս Նկար 1: Այս հավելվածն ունի բազմաթիվ այլ գործառույթներ, որոնք մենք չենք կարող լուսաբանել այս ուսանելի ծրագրում, մենք կկենտրոնանանք միայն Strandbeest- ի անմիջականորեն առնչվող թեմաների վրա:

Միացրեք ապարատային Bluetooth վերահսկիչը, այն կհայտնվի հայտնագործման սարքերի ցանկում: Երկար կտտոցը մեզ կհասցնի օդային ներբեռնման հնարավորությանը ՝ հետագայում «հրահանգավորվելու» համար: Նախքան կտտացնելը և վերահսկողությունը սկսելը, եկեք նախ որոշ կազմաձևեր կատարենք ՝ կտտացնելով «Կարգավորումներ» վերին աջ անկյունը: Նկար 2 -ում այն թաքնված է… պատկերակի տակ: Նկար 3 -ը ցույց է տալիս մի քանի կարգավորման կատեգորիաներ: Այս կարգավորումները, որոնք կազմաձևված են Հավելվածում, գործի են դրվում երեք եղանակով. Նրանք ապրում են Հավելվածում: Հետագա որոշ հրահանգներում մենք ցույց կտանք, թե ինչպես ենք դրանք փոխարինում մեր Python/Java ծրագրերով: 2) որոշ պարամետրեր ուղարկվում են ապարատին ՝ որպես օդում հսկիչ արձանագրության մաս, ինչպես օրինակ ՝ անմիջական կառավարման (սերվոն շրջում է ճիշտ թեքված անկյունը) և մետաղալարով թռիչքի միջև փոխարկումը (ներկառուցված ինքնավար վերահսկիչի գործառույթի մոդուլը գործում է սերվոյի միջև: ալիք ՝ ըստ օգտագործողի հրամանի և ընթացիկ վերաբերմունքի) 3) որոշ պարամետրեր կուղարկվեն ոչ-անկայուն հիշողությանը ապարատային վերահսկիչում: Այսպիսով, ապարատը հետևելու է այս պարամետրերին ամեն անգամ, երբ այն միացված է ՝ առանց կազմաձևվելու: Օրինակ կլինի սարքի bluetooth հեռարձակման անունը: Այս կարգավորումներին ուժի մեջ մտնելու համար անհրաժեշտ է էներգիայի ցիկլ: Առաջին կատեգորիան, որին մենք սուզվում ենք, «Գլխավոր կարգավորումներ» է Նկար 4 -ում: Նկ. 5 -ում տեղադրված «Հավելվածների կառավարման գործառույթը» սահմանում է, թե ինչ դեր է խաղում այս ծրագիրը ՝ սարք, որը վերահսկում է ապարատային սարքը ՝ անմիջական bluetooth կապի միջոցով. կամուրջ ինտրանետի/ինտերնետի վրա ՝ հեռուստատեսության վերահսկման համար; և այլն: Հաջորդը, նկ. 6 -ում «HW type» էջը պատմում է հավելվածին, որ աշխատում եք դիֆերենցիալ մեքենայով, ուստի անհրաժեշտ է ընտրել «տանկ» ռեժիմը: Մենք ունենք ընդհանուր 6 PWM ելք: Strandbeest- ի համար մենք պետք է կազմաձևենք 1 -ից 4 -րդ ալիքը ՝ համաձայն Նկար 7 -ի: PWM- ի յուրաքանչյուր ալիք գործում է հետևյալ ռեժիմներից մեկում. 1) servo normal. շարժիչը կամ ինչ-որ էներգիայի էլեկտրական սարք, կարող են գործել աշխատանքային ցիկլի ռեժիմում, 0% -ը անջատված է, 100% -ը միշտ միացված է: 4) DC շարժիչի աշխատանքային ցիկլի հակադարձում. Կրկին վերահսկիչը կշրջի օգտվողի հսկողությունը իր ելքի համար: Քանի որ մենք օգտագործում ենք DC շարժիչ և հոգում ենք շարժիչի պտտման ուղղությունը ապարատային լարերի միացման կարգով, մենք 1 -ին ալիքի համար կընտրենք «DC շարժիչային աշխատանքի ցիկլ»: 4, տես Նկար 8: Մենք նաև պետք է միացնենք 2 PWM ալիք դեպի 1 H կամուրջ, որպեսզի հնարավոր լինի երկկողմանի վերահսկողություն: Այս քայլը ներկայացված է Նկ. 9 -ում: «2 PWM ալիք դեպի 1 H- կամուրջ» ռեժիմում 1, 3 և 5 ալիքները օգտագործվում են երկու կապակցված ալիքները վերահսկելու համար: Այն ներմուծում է շնչափողի հսկողությունը վերափոխելու անհրաժեշտությունը, ջոյսթիկի վերև-ներքև կառավարումը իր կանխադրված 2-րդ ալիքից դեպի 3-րդ ալիք: Դա հասնում է Նկար 10-ի պարամետրերին: Ինչպես ցույց է տրված Նկար 11 -ում, յուրաքանչյուր ալիք կազմաձևված է այնպես, որ վերցնի մեկ կամայական մուտքային աղբյուր:

Բինգո, այժմ մենք ավարտել ենք պահանջվող նվազագույն կազմաձևը և կարող ենք վերադառնալ տեսանելի bluetooth սարքը ցուցադրող էջին և միացնել այն: Նկար 12 -ում փորձեք նվագարկիչ խաղալ, և մենք կարող ենք զվարճանալ այս Strandbeest- ով: Փորձեք բարձրանալ որոշ թեքությամբ, հիշեք նյութի տեսակների միջև շփման վերլուծությունը և կարդացեք թռիչքի վերահսկիչի գնահատված վերաբերմունքը, որը ցուցադրվում է «RPY (deg)» պիտակով շարքում, այս շարքի չորս գրառումները գլորման, բարձրության, շեղման անկյուն են: գնահատված ինքնաթիռի գիրոսկոպով և արագացուցիչով; վերջին մուտքը թեքությամբ փոխհատուցվող կողմնացույցի ելքն է:

Հետագա աշխատանքներում. Հետևյալ հրահանգներում մենք աստիճանաբար կծածկենք նրա ծրագրավորման ինտերֆեյսը, կընտրենք ձեր նախընտրած Java կամ Python լեզուն Strandbeest- ի հետ շփվելու համար և այլևս բջջային հեռախոսի էկրանից չենք կարդա strandbeest կարգավիճակը: Մենք նաև կսկսենք ծրագրավորումը RaspberryPi տիպի Linux համակարգչում ՝ ծրագրավորման ավելի առաջադեմ թեմաների համար, տես վերջին նկարը: Ստուգեք https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ եռաչափ տպման մեխանիկական մասերի և https://github.com/xiapeiqing/m2robots.git SDK- ի և օրինակելի ծածկագրի համար, եթե ցանկանում եք անմիջապես սկսել. Տեղեկացրեք ինձ, թե որն է ձեր ցանկալի ծրագրավորման լեզուն, եթե ոչ Java կամ Python, ես կարող եմ ավելացնել SDK- ի նոր տարբերակ:

Funվարճացեք հակերության հետ և հետևեք հետևյալ հրահանգներին:

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