Arduino-ի վրա հիմնված չորս ոտանի ռոբոտ. Ինքներդ արեք Arduino ռոբոտ Ինչպիսի ռոբոտներ կարելի է հավաքել arduino-ից

Արդյունքը բավականին զվարճալի ռոբոտ է, որը կարող է տեսնել իր առջև գտնվող խոչընդոտները, վերլուծել իրավիճակը և հետո, ընտրելով միայն լավագույն երթուղին, ավելի հեռուն է գնում։ Ռոբոտը շատ մանևրելու հնարավորություն ստացավ։ Այն ունակ է պտտվել 180 աստիճանով, իսկ ճոճման անկյունը 45 և 90 աստիճան է։ Հեղինակը որպես հիմնական վերահսկիչ օգտագործել է Iteaduino-ն, որը նման է Arduino-ին:

Ռոբոտի պատրաստման նյութեր և գործիքներ.
- միկրոկառավարիչ (Arduino կամ նմանատիպ Iteaduino);
- ուլտրաձայնային սենսոր;
- մարտկոցի բռնակ;
- չինական խաղալիքներ անիվի բազա ստեղծելու համար (կարող եք գնել պատրաստի);
- խայթոցներ;
- սոսինձ;
- մետաղալարեր;
- շարժիչներ;
- մանրաթել;
- ոլորահատ սղոց;
- տրանզիստորներ (D882 P):

Ռոբոտների պատրաստման գործընթացը.

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

Մեքենաներ ընտրելիս ավելի լավ է սովորական անիվներով խաղալիքներ վերցնել, քանի որ, ըստ հեղինակի, իր նման հասկերով ռոբոտը ուժեղ ցատկում է։

Կա ևս մեկ նման պահ, երբ լարերը կհեռացվեն շարժիչներից, դրանցից մեկի վրա պետք է հիշել փոխել բևեռականությունը:


Քայլ երկու. Վերին ծածկույթի արտադրություն
Ռոբոտի վերին ծածկը պատրաստված է մանրաթելից, այդ նպատակով կարելի է օգտագործել նաև հաստ ստվարաթուղթ։ Կափարիչի վրա կարող եք տեսնել ուղղանկյուն անցք, այն պետք է տեղադրվի այնպես, որ սերվոյի առանցքը, որը տեղադրվելու է դրա մեջ, լինի սիմետրիկ: Ինչ վերաբերում է մեջտեղի անցքին, ապա դրա միջով լարեր են դուրս գալու:


Քայլ երրորդ. Լրացնելով ռոբոտը
Շասսիի միացման համար լավագույնն է օգտագործել առանձին էլեկտրամատակարարում, քանի որ կարգավորիչը 9 Վ է պահանջում կարգավորիչը սնուցելու համար, իսկ շարժիչների համար անհրաժեշտ է միայն 3 Վ: Ընդհանուր առմամբ, նման մեքենաների շասսիում արդեն ներկառուցված են մարտկոցների կրիչներ, պարզապես դրանք պետք է զուգահեռ միացվեն:








Շարժիչները միացված են կարգավորիչին D882 P տիպի տրանզիստորների միջոցով: Դրանք դուրս են բերվել հին մեքենայի կառավարման վահանակից: Լավագույնն է, իհարկե, օգտագործել TIP120B տիպի ուժային տրանզիստորները, բայց հեղինակն ընտրել է այն պարզապես հարմար բնութագրերի համար: Ամբողջ էլեկտրոնային մասը միացված է ըստ նշված սխեմայի։

Ռոբոտը լուսաբռնկելուց հետո այն պատրաստ կլինի փորձարկման: Որպեսզի ռոբոտը շրջվի որոշակի անկյան տակ, դուք պետք է ճիշտ ժամանակ ընտրեք շարժիչների համար:

Ինչ վերաբերում է սենսորներին, ապա ուլտրաձայնը պետք է միացված լինի միկրոկոնտրոլերի թվային 7-րդ ելքին։ Սերվո շարժիչը միանում է թվային մուտքային 3-ին, ձախ շարժիչի տրանզիստորի հիմքը միանում է 11-րդ պինին, իսկ աջ շարժիչի հիմքը միանում է 10-րդ կապին:

Եթե ​​Krona-ն օգտագործվում է որպես սնուցման աղբյուր, ապա մինուսը միացված է GND-ին, իսկ պլյուսը՝ VIN-ին: Դուք նաև պետք է միացնեք տրանզիստորի արտանետիչը և բացասական կոնտակտը ռոբոտի շասսիի սնուցման աղբյուրից GND-ին:

Ողջույն բոլորին. Այս հոդվածը կարճ պատմություն է այն մասին, թե ինչպես անելռոբոտ իրենց կողմից ձեռքով... Ինչու՞ պատմություն, դուք հարցնում եք: Այս ամենը պայմանավորված է նրանով, որ նման արտադրատեսակների արտադրության համար արհեստներանհրաժեշտ է օգտագործել գիտելիքների զգալի պաշար, որը շատ դժվար է ներկայացնել մեկ հոդվածում։ Մենք կանցնենք հավաքման գործընթացի միջով, մեկ աչքով կնայենք ծածկագրի մեջ և, ի վերջո, կվերակենդանացնենք Սիլիկոնային հովտի գաղափարը: Խորհուրդ եմ տալիս դիտել տեսանյութը՝ պատկերացում կազմելու համար, թե վերջում ինչ պետք է ստացվի։

Նախքան առաջ անցնելը, խնդրում ենք նշել հետևյալը, որ արտադրության ժամանակ արհեստներօգտագործվել է լազերային կտրիչ: Լազերային կտրիչը կարող է չօգտագործվել, եթե ձեր ձեռքերով բավարար փորձ ունեք: Ճշգրտությունը նախագիծը հաջողությամբ ավարտելու բանալին է:

Քայլ 1. Ինչպե՞ս է այն աշխատում:

Ռոբոտն ունի 4 ոտք, որոնցից յուրաքանչյուրի վրա կա 3 սերվո, ինչը թույլ է տալիս նրան շարժել վերջույթները 3 աստիճան ազատության պայմաններում։ Նա շարժվում է «սողացող քայլվածքով»։ Դա կարող է դանդաղ լինել, բայց ամենասահուններից մեկը:

Նախ պետք է ռոբոտին սովորեցնել շարժվել առաջ, հետ, ձախ և աջ, այնուհետև ավելացնել ուլտրաձայնային սենսոր, որը կօգնի հայտնաբերել խոչընդոտները և այնուհետև Bluetooth մոդուլը, որի շնորհիվ ռոբոտի կառավարումը նոր մակարդակի կհասնի: .

Քայլ 2. Պահանջվող մանրամասներ

Կմախքպատրաստված 2 մմ պլեքսիգլասից։

Տնական արտադրանքի էլեկտրոնային մասը բաղկացած կլինի.

  • 12 սերվո;
  • arduino nano (կարելի է փոխարինել ցանկացած այլ arduino տախտակով);

  • Վահան servo հսկողության համար;
  • էլեկտրամատակարարման միավոր (նախագծում օգտագործվել է PSU 5V 4A);

  • ուլտրաձայնային սենսոր;
  • hc 05 bluetooth մոդուլ;

Վահան պատրաստելու համար ձեզ հարկավոր է.

  • տպատախտակ (ցանկալի է ընդհանուր հոսանքի և վերգետնյա գծերով (ավտոբուսներ));
  • տախտակ-տախտակ փին միակցիչներ - 30 հատ;
  • slots մեկ տախտակի համար - 36 հատ;

  • մետաղալարեր.

Գործիքներ:

  • Լազերային կտրիչ (կամ հմուտ ձեռքեր);
  • Սուպեր սոսինձ;
  • Տաք հալեցնող սոսինձ:

Քայլ 3: կմախք

Կմախքի բաղադրիչները նկարելու համար օգտագործենք գրաֆիկական ծրագիր։

Դրանից հետո ցանկացած հասանելի եղանակով մենք կտրեցինք ապագա ռոբոտի 30 մասերը։

Քայլ 4. հավաքում

Կտրելուց հետո հանեք պաշտպանիչ թղթե ծածկը պլեքսիգլասից։

Հաջորդը, մենք սկսում ենք հավաքել ոտքերը: Կմախքի մասերի մեջ ներկառուցված ամրացումներ: Մնում է միայն կտորները միացնել իրար: Կապը բավականին ամուր է, բայց ավելի մեծ հուսալիության համար կարող եք մի կաթիլ սուպերսոսինձ քսել ամրացումների վրա:

Այնուհետև դուք պետք է փոփոխեք սերվոները (սոսնձեք պտուտակի վրա, որը գտնվում է սերվոյի լիսեռների դիմաց):

Այս կատարելագործմամբ մենք ռոբոտին ավելի կայուն կդարձնենք: Փոփոխությունը պետք է կատարվի միայն 8 սերվոյի համար, մնացած 4-ը կկցվեն անմիջապես մարմնին:

Մենք ոտքերը կապում ենք միացնող տարրին (կոր հատված), և դա իր հերթին մարմնի վրա գտնվող սերվոյին:

Քայլ 5. վահանի պատրաստում

Տախտակի արտադրությունը բավականին պարզ է, եթե հետևեք քայլում ներկայացված լուսանկարներին:

Քայլ 6. էլեկտրոնիկա

Եկեք ամրացնենք servos-ի քորոցները arduino տախտակի վրա: Կցորդները պետք է միացված լինեն ճիշտ հաջորդականությամբ, հակառակ դեպքում ոչինչ չի աշխատի:

Քայլ 7: Ծրագրավորում

Ժամանակն է վերադարձնել Ֆրանկենշտեյնը: Նախ բեռնեք legs_init ծրագիրը և համոզվեք, որ ռոբոտը գտնվում է նկարում պատկերված դիրքում։ Հաջորդը, բեռնեք quattro_test՝ ստուգելու համար, թե արդյոք ռոբոտը արձագանքում է հիմնական շարժումներին, ինչպիսիք են՝ առաջ, հետ, ձախ և աջ:

ԿԱՐԵՎՈՐ. Դուք պետք է լրացուցիչ գրադարան ավելացնեք arduino IDE ծրագրաշարին: Գրադարանի հղումը ներկայացված է ստորև.

Ռոբոտը պետք է անի 5 քայլ առաջ, 5 քայլ հետ, 90 աստիճանով շրջվի ձախ, 90 աստիճանով թեքվի աջ։ Եթե ​​Ֆրանկենշտեյնն ամեն ինչ ճիշտ է անում, մենք գնում ենք ճիշտ ուղղությամբ:

Պ. ՍՏեղադրեք ռոբոտը բաժակի վրա, ինչպես տակդիրի վրա, որպեսզի այն ամեն անգամ չվերադառնա իր սկզբնական կետին: Երբ թեստերը ցույց են տալիս, որ ռոբոտը նորմալ է աշխատում, մենք կարող ենք շարունակել փորձարկումը՝ այն դնելով գետնին/հատակին:

Քայլ 8. հակադարձ կինեմատիկա

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

Պարզ բառերով ասած, հակադարձ կինեմատիկան կամ հապավումը IR-ը եռանկյունաչափական հավասարումների «մասն» է, որը որոշում է ոտքի սուր ծայրի դիրքը, յուրաքանչյուր սերվոյի անկյունը և այլն, որոնք, ի վերջո, որոշում են մի զույգ նախնական կարգավորումներ: Օրինակ՝ ռոբոտի յուրաքանչյուր քայլի երկարությունը կամ այն ​​բարձրությունը, որով մարմինը տեղակայվելու է շարժման/հանգստի ժամանակ: Օգտագործելով այս նախապես սահմանված պարամետրերը, համակարգը կվերցնի այն քանակությունը, որով յուրաքանչյուր սերվոն պետք է տեղափոխվի՝ ռոբոտին կառավարելու համար՝ օգտագործելով տրված հրամանները:

Նրանք սկսում են սովորել Arduino՝ ստեղծելով պարզ ռոբոտներ։ Այսօր ես ձեզ կպատմեմ Arduino Uno-ի ամենապարզ ռոբոտի մասին, որը շան պես կհետևի ձեր ձեռքին կամ ինֆրակարմիր լույս արտացոլող ցանկացած այլ առարկայի։ Նաև այս ռոբոտը կզվարճացնի երեխաներին: 3 տարեկան եղբորս տղան ուրախ էր խաղալ ռոբոտի հետ :)

Ես կսկսեմ թվարկել այն մանրամասները, որոնք անհրաժեշտ կլինեն կառուցելիս - Arduino UNO;

Ինֆրակարմիր հեռաչափեր;

- 3 վոլտ շարժիչներ փոխանցման տուփերով և անիվներով;

- միակցիչներ 3A մարտկոցների համար;

- մարտկոց (եթե բավարար մարտկոցներ չկան);

- Շարժիչների կառավարման ռելեներ;

Դե, և այլ նյութեր, որոնք անհրաժեշտ կլինեն ստեղծման գործընթացում:
Նախ, մենք հիմք ենք դնում: Ես որոշեցի այն պատրաստել փայտից։ Ես սղոցեցի փայտե տախտակն այնպես, որ շարժիչները հիանալի տեղավորվում էին անցքերի մեջ


Այնուհետև փայտե սալիկով ես սեղմում եմ շարժիչները՝ պտուտակելով այս բարը

Այնուհետև, պատյանի վրա, ես դրեցի arduino, ռելե, բրեդբորդ, հեռաչափեր, իսկ շասսիի հիմքի տակ՝ պտտվող

Այժմ մենք ամեն ինչ կապում ենք սխեմայի համաձայն

Վերջապես, բեռնեք հետևյալ ուրվագիծը arduino-ում.

Const int R = 13; // կապում, որին միացված են IR հեռաչափերը const L = 12; int motorL = 9; // կապում, որոնց ռելեը միացված է int motorR = 11; int buttonState = 0; void setup () (pinMode (R, INPUT); pinMode (L, INPUT); pinMode (motorR, OUTPUT); pinMode (motorL, OUTPUT);) void loop () ((buttonState = digitalRead (L); եթե (buttonState) == ԲԱՐՁՐ) (digitalWrite (motorR, HIGH);) այլ (digitalWrite (motorR, LOW);)) ((buttonState = digitalRead (R); if (buttonState == HIGH) (digitalWrite (motorL, HIGH);) այլ կերպ (թվային գրել (motorL, LOW);))))

Գործողության սկզբունքը շատ պարզ է. Ձախ հեռաչափը պատասխանատու է աջ անիվի համար, իսկ աջը՝ ձախ

Ավելի պարզ դարձնելու համար կարող եք դիտել տեսանյութ, որը ցույց է տալիս ռոբոտի ստեղծման և գործողությունների ընթացքը։

Այս ռոբոտը շատ պարզ է, և յուրաքանչյուրը կարող է այն պատրաստել: Դա կօգնի ձեզ հասկանալ, թե ինչպես են աշխատում մոդուլները, ինչպիսիք են ռելեները և IR հեռաչափերը, և ինչպես լավագույնս օգտագործել դրանք:

Հուսով եմ, որ ձեզ դուր է եկել այս տնական արտադրանքը, հիշեք, որ տնական արտադրանքը հիանալի է:

Լավ օր! Ձեր առջև, սիրելիներս, արվեստի ռոբոտ, որը կարող է նկարել տարբեր գնդաձև կամ ձվաձև առարկաներ՝ 4-ից 9 սմ չափսերով։

Այն պատրաստելու համար անհրաժեշտ է 3D տպիչ, ստանդարտ գործիքների հավաքածու + Arduino:

Նշում. Մի հրաժարվեք նախագծերից, որոնք օգտագործում են 3D տպիչ: Ցանկության դեպքում միշտ կարող եք գտնել մի տեղ կամ միջոց, որտեղ կարող եք պատվիրել նախագծի համար անհրաժեշտ մանրամասների տպագրությունը։

Քայլ 1. Մի փոքր ռոբոտի մասին

Գեղարվեստական ​​ռոբոտ՝ երկու առանցք տնականորը կարող է նկարել գնդաձև մակերեսների մեծ մասի վրա: Ռոբոտը հարմարվում է որոշակի տեսակի առարկայի (պինգ-պոնգի գնդակներ, ամանորյա զարդեր, լամպեր և ձվեր (բադ, սագ, հավ ...):

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

Քայլ 2. Պահանջվող մանրամասներ

Որպեսզի անել ինքդ արակարիք ունենք:

  • 2x առանցքակալներ 623;
  • Hairpin 3 մմ տրամագծով և 80-90 մմ երկարությամբ;
  • 1x զսպանակ (10 մմ երկարություն և 4,5 մմ տրամագծով);
  • 2x NEMA 17 stepper շարժիչներ (4,4 կգ / սմ ոլորող մոմենտ);
  • Շարժիչի մալուխներ (երկարությունը 14 + 70 սմ);
  • USB մալուխ;
  • 1x SG90 servo;
  • Արդուինո Լեոնարդո;
  • վահան JJRobots;

  • 2xA4988 stepper motor drivers;
  • Էլեկտրամատակարարում 12V / 2A;
  • 11x M3 6 մմ պտուտակներ;
  • 4x M3 16 մմ պտուտակներ;
  • 4x M3 ընկույզ;
  • 2 x 20 մմ ներծծող բաժակներ;
  • 1x թեւավոր ընկույզ M3;
  • 1x մարկեր;

Քայլ 3. Ընդհանուր սխեման

Դուք կարող եք օգտագործել այս սխեման որպես «խաբեության թերթիկ»:

Քայլ 4. Եկեք սկսենք:

Ռոբոտը շարժում է մանիպուլյատորը, որի վրա ամրացված է մարկեր, որը շարժվում է քայլային շարժիչով։ Մեկ այլ քայլային շարժիչ պատասխանատու է առարկայի պտտման համար, որի վրա կիրառվում է նկարը (ձու, գնդակ ...): Օբյեկտը տեղում պահելու համար օգտագործվում են երկու ներծծող բաժակներ՝ մեկը ամրացված է ստեպպերի շարժիչին, իսկ մյուսը՝ օբյեկտի հակառակ կողմում: Մի փոքրիկ զսպանակ կսեղմի ներծծող բաժակի վրա, որպեսզի օգնի նրան պահել իրը: SG90 servo-ն օգտագործվում է նշիչը բարձրացնելու / իջեցնելու համար:

Քայլ 5. մանիպուլյատոր

Տեղադրեք ընկույզը դրա համար պատրաստված անցքի մեջ և ամրացրեք 16 մմ պտուտակը: Եկեք նույնն անենք ապրանքի տիրոջ համար (վերևի նկարի աջ կողմում): Թեւի համար ծխնի ստեղծելիս օգտագործվել են 2 x 16 մմ պտուտակներ: Պտուտակները սեղմելուց հետո այս կրունկը պետք է ազատ պտտվի:

Քայլ 6. ներծծող բաժակներ

Ներծծող բաժակներից մեկը դրեք իրերի պահարանի անցքի ներսում:

Քայլ 7. ամրացրեք քայլային շարժիչները

Երկու քայլային շարժիչներն էլ ամրացրեք հիմնական շրջանակին 8 պտուտակով:

Քայլ 8. պտտման առանցք

Տեղադրեք բոլոր տարրերը, ինչպես ցույց է տրված վերևի նկարում:

  • Ծծող;
  • Պտուտակ;
  • Վերին մաս;
  • Գարուն;
  • առանցքակալ 623 (պետք է ներկառուցվի ձախ գավաթում);
  • Ձախ բաժակ;
  • Ազատ տարածք հիմնական շրջանակի համար;
  • Ճիշտ բաժակ;
  • առանցքակալ 623;
  • Spacer օղակ;
  • Թևի ընկույզ (M3):

Քայլ 9. ամեն ինչ դրեք իր տեղում

Տեղադրեք հավաքված մանիպուլյատորը քայլային շարժիչի առանցքի վրա:

Տեղադրեք ձախ հենարանը քայլային շարժիչի առանցքի վրա:

Մարկերն ու ձուն դրված են որպես օրինակ (հիմա դրանք տեղադրելու կարիք չկա):

ԾԱՆՈԹՈՒԹՅՈՒՆ. Սերվոն ճշգրտումների կարիք կունենա: Կալիբրացիայի գործընթացում ձեզ հարկավոր է նորից սահմանել դրա անկյունը:

Քայլ 10. էլեկտրոնիկա

Պտուտակներով ամրացրեք էլեկտրոնիկան հիմնական շրջանակի հետևի մասում (2-ը բավարար կլինի):

Եկեք միացնենք մալուխները:

Եթե ​​դուք փոխեք բևեռականությունները քայլային շարժիչները միացնելիս, նրանք պարզապես կպտտվեն հակառակ ուղղությամբ, բայց սերվոյի դեպքում իրավիճակն այնքան էլ անվնաս չի լինի: Հետևաբար, միանալուց առաջ կրկնակի ստուգեք բևեռականությունը:

Քայլ 11. Arduino Leonardo-ի ծրագրավորում

Եկեք ծրագրավորենք Arduino Leonardo-ն՝ օգտագործելով Arduino IDE (v 1.8.1):

  • Ներբեռնեք Arduino IDE (v 1.8.1) և տեղադրեք ծրագիրը;
  • Եկեք սկսենք ծրագրաշարը: «Tools-> board» ընտրացանկից ընտրեք Arduino Leonardo տախտակը և համապատասխան COM-PORT-ը;
  • Եկեք բացենք և ներբեռնենք Sphere-O-Bot կոդը։ Բացեք բոլոր ֆայլերը մեկ թղթապանակում և անվանեք այն «Ejjduino_ARDUINO»:

Քայլ 12. գեղարվեստական ​​ռոբոտը պատրաստ է ստեղծել արվեստի գործեր

Քայլ 13. կառավարել ռոբոտը

Ծրագրային ապահովում Inkscape.Ներբեռնեք և տեղադրեք Inkscape ծրագրակազմը (խորհուրդ է տրվում 0.91 կայուն տարբերակը):

Ներբեռնեք և տեղադրեք EggBot Control ընդլայնումը (2.4.0 տարբերակը լիովին փորձարկված է):

EggBot Control Extension-ը Inkscape-ի համար գործիք է, որը պետք է օգտագործվի EggBot-ը փորձարկելու և չափաբերելու և գծագրերը ձվի վրա փոխանցելիս: Նախ պետք է գործարկել Inkscape-ը: Inkscape-ը գործարկելուց հետո կհայտնվի «Extensions» ցանկը, որի մեջ պետք է ընտրել «Eggbot» ենթամենյուն։ Եթե ​​դուք չեք տեսնում Eggbot ենթամենյուն, ապա սխալ եք տեղադրել ընդլայնումները: Կրկնօրինակեք և ուշադիր հետևեք ընդլայնումները տեղադրելու հրահանգներին:

Այսքանը, շնորհակալություն ուշադրության համար:)

Arduino-ն շատ հեշտ է հեռակառավարմամբ, պարզ սենսորներով և տրամաբանությամբ տարբեր մեքենաներ պատրաստել։ Հետեւաբար, այս գիծը աներեւակայելի հայտնի է: Վաճառվում են բազմաթիվ սենսորներ և դրա հետ համատեղելի ընդլայնման քարտեր։ Համացանցը լցված է պատրաստի ծրագրային գրադարաններով և բաց կոդով նախագծերով բոլոր առիթների համար: Գրեթե բոլոր հարցերը, որոնք դուք կունենաք Arduino-ին տիրապետելու գործընթացում, արդեն տրվել են ինչ-որ մեկի կողմից, և դուք միշտ կգտնեք պատասխանը:

Սկսենք ինչ-որ բանի՞ց: Հիմնական հարցը վերահսկիչի ընտրությունն է։ Կան բազմաթիվ Arduino վերանայումներ, ինչպես նաև երրորդ կողմի կլոններ, որոնք կառուցված են այդ վերանայումների վրա: Ահա, հավանաբար, մեզ համար ամենահետաքրքիր երկու դասերը.

  • Arduino Uno-ն սկսնակների համար լավագույն ընտրությունն է, ամենապարզ, մատչելի և սովորական տախտակը: Այն հիմնված է ATmega328 չիպի վրա՝ 16 ՄՀց ժամացույցի արագությամբ, 32 ԿԲ ֆլեշ հիշողություն, 2 ԿԲ RAM և 1 ԿԲ EEPROM: Uno-ն ունի 14 թվային I/O, որոնք կարող են օգտագործվել սենսորների և սերվոների և այլ սարքերի կառավարման համար;
  • Arduino Mega / Mega 2560-ը տախտակ է, որը հարմար է, երբ նախօրոք գիտեք, որ նախագիծը դժվար է լինելու: Հիմնական տարբերությունը մուտքերի / ելքերի ավելի մեծ քանակն է (48 Mega-ում, 54 Mega 2560-ում): Կա նաև շատ ավելի շատ հիշողություն՝ 8 ԿԲ RAM, 4 ԿԲ EEPROM և ֆլեշ հիշողություն՝ 128 և 256 ԿԲ (համապատասխանաբար Mega և Mega 2560): Տախտակները տարբերվում են նաև չիպով, USB արագությամբ և որոշ այլ բնութագրերով։

Կա, իհարկե, Arduino Pro, Arduino LilyPad և շատ ավելին: Բայց առայժմ կենտրոնանանք առաջին երկու մոդելների վրա։ Մեր դեպքում ամեն ինչ բավականին պարզ է՝ Mega-ն անհրաժեշտ է մեծ թվով ոտքեր ունեցող ռոբոտի համար։

Առաջին կոդը

Նախ, եկեք տեղադրենք Arduino IDE-ը (arduino.cc)՝ բազմպլատֆորմային անվճար զարգացման միջավայր: Այժմ, եթե միացնենք մեր Arduino-ն, կարող ենք փորձել գրել առաջին կոդը՝ օգտագործելով ամենապարզ օրինակը՝ LED թարթող ծրագիրը: Arduino կարգավորիչների մեծ մասն ունի այն և միացված է 13-րդ փինին: Ի դեպ, Arduino աշխարհում ծրագրերը սովորաբար կոչվում են էսքիզներ: Ահա էսքիզի տեքստը մեկնաբանություններով.

// Այս փինին տվեք LED անունը՝ const int LED = 13; void setup () (// Նախաձեռնել թվային փին // ելքի համար՝ pinMode (LED, OUTPUT);) void loop () (// Տրամաբանությունը սնուցել մեկ մակարդակով // 13-րդ մատին (լուսադիոդը վառել): digitalWrite (LED): , HIGH) ; // Դադարեցրեք էսքիզի կատարումը // վայրկյանով. ուշացում (1000); // Ուղարկեք տրամաբանական զրոյական մակարդակ // 13-րդ կետին (անջատեք լուսադիոդը). թվային գրեք (LED, LOW);/ / Կրկին մի վայրկյան դադարեցրեք էսքիզի կատարումը. հետաձգում (1000);)

Ուշադրություն դարձրեք տեղադրման և հանգույցի գործառույթներին: Նրանք պետք է ներկա լինեն Arduino-ի ցանկացած էսքիզում: Կարգավորումը կանչվում է մեկ անգամ միացման ժամանակ կամ կարգավորիչի վերագործարկումից հետո: Եթե ​​ցանկանում եք, որ կոդը գործարկվի միայն մեկ անգամ, այն պետք է տեղադրվի այստեղ: Ամենից հաճախ սրանք բոլոր տեսակի ընթացակարգերն են ինչ-որ բան սկզբնավորելու համար: Մեր էսքիզը բացառություն չէ. Arduino թվային կապերը կարող են գործել որպես մուտքեր և ելքեր: Կարգավորման գործառույթում մենք ասում ենք, որ 13-րդ քորոցը կգործի որպես թվային ելք կարգավորիչի վրա:

Setup ֆունկցիան ավարտելուց հետո ավտոմատ կերպով բացվում է փակ հանգույց, որի ներսում կկանչվի հանգույց ֆունկցիան։ Մեզնից պահանջում են գրել, թե ինչ ենք ուզում անել այնտեղ։ Եվ մենք ուզում ենք տրամաբանական միավորի մակարդակը (5 Վ) սնուցել 13-ին, այսինքն՝ միացնել լուսադիոդը, ապա սպասել մեկ վայրկյան (1000 միլիվայրկյաններով), ապա կիրառել տրամաբանական զրոյական մակարդակը (0 Վ) և նորից սպասել։ մեկ վայրկյան. Հաջորդ զանգը դեպի հանգույց կկրկնի ամեն ինչ:

Այժմ մենք «լցնում ենք» մեր ուրվագիծը վերահսկիչի մեջ: Ոչ, մեզ ծրագրավորող պետք չէ։ Arduino կարգավորիչները, բացի մեր էսքիզներից, պարունակում են հատուկ ծրագիր՝ bootloader, որը, մասնավորապես, վերահսկում է կոդի ներբեռնումը համակարգչից։ Այսպիսով, էսքիզը վերբեռնելու համար մեզ անհրաժեշտ է միայն USB մալուխ և Arduino IDE-ի մենյուի տարրը File → Upload (Ctrl + U):

Հիմնական հարց

Քանի՞ ոտք է մեզ իրականում անհրաժեշտ: Եկեք սահմանենք մի շարք կոնֆիգուրացիաներ քայլող ռոբոտների համար: Ոտքերի քանակով.

  • երկոտանի - երկոտանի (մարդու նախատիպ);
  • չորքոտանի - չորս ոտանի (նախատիպ - կաթնասունների մեծ մասը);
  • hexapod - վեց ոտանի (նախատիպ - միջատների մեծ մասը);
  • ութոտնուկ - ութոտանի (նախատիպ - սարդեր, կարիճներ, խեցգետիններ և այլ հոդվածոտանիներ):

Բացի ոտքերի քանակից, կարևոր է նաև յուրաքանչյուրի կոնֆիգուրացիան։ Ոտքի հիմնական բնութագիրը ազատության աստիճանների կամ ազատության չափերի քանակն է (DOF): Ազատության աստիճանը մեկ առանցքի շուրջ պտտվելու կամ թեքվելու ունակությունն է (ավելի հաճախ՝ աստիճանաբար շարժվել դրա երկայնքով): Ակնհայտ է, որ եթե ազատության աստիճանը մեկն է, ապա այդպիսի ոտքի վրա հեռու չես գնա։ Ազատության երկու աստիճան ունեցող ոտքերը (2DOF) արդեն թույլ են տալիս բազմոտանի ռոբոտներին շարժվել, չնայած 2DOF-ը թույլ է տալիս ոտքի ծայրին ազատ շարժվել միայն մեկ հարթությունում: Իսկ 3DOF ոտքը շարժում է «ոտքը» 3D տարածության մեջ (եթե, իհարկե, բոլոր երեք առանցքները զուգահեռ չեն): Կան նաև 4DOF ոտքեր, որոնք պարզապես մեծացնում են ոտքի ճկունությունը և շարժման շրջանակը։ Միջատներն ամենից հաճախ ունենում են 4DOF թաթեր։

Ի՞նչ է սա նշանակում մեզ համար: Էժան սիրողական ռոբոտներում ազատության յուրաքանչյուր աստիճան իրականացվում է մեկ շարժիչով, ավելի ճիշտ՝ սերվո դրայվով կամ սերվերով: Ոտքի կոնֆիգուրացիան եզակիորեն որոշում է, թե այս սերվոներից քանիսն են անհրաժեշտ: Օրինակ, 3DOF hexapod-ի համար կպահանջվի 18 servos, իսկ 4DOF spider-ի համար՝ 32: Մի անհանգստացեք թվից, փոքր սերվոները, որոնք օգտագործվում են հոբբիիստական ​​RC մոդելներում, շատ էժան են: Դրանք կարելի է գտնել առցանց խանութներում միկրո սերվոյի խնդրանքով:

Սերվոները ծրագրավորելու համար բավական է իմանալ, որ նրանք արդեն ունեն կարգավորիչ, որը կատարում է հիմնական աշխատանքը։ Եվ այն ամենը, ինչ անհրաժեշտ է, էներգիա մատակարարելն է և թվային ազդանշան, որը վերահսկիչին տեղեկացնում է, թե որ դիրքի վրա ենք ուզում պտտել շարժիչի լիսեռը: Նրանց դիզայնի մասին տեղեկություններ գտնելը հեշտ է։ Նրանց արձանագրությունն ամենապարզն է բոլոր թվային կապի արձանագրություններից՝ զարկերակային լայնության մոդուլյացիան՝ PWM (անգլերեն՝ PWM): Բոլոր պարզ սերվոներն ունեն երեք փին միակցիչ՝ հող, +5 Վ (լարումը կարող է տարբեր լինել՝ կախված չափից և հզորությունից) և ազդանշանի մուտքագրում: Arduino կարգավորիչները կարող են նման ազդանշան ստեղծել երկու տարբեր եղանակներով: Առաջինը ապարատային PWM-ն է, որն ինքնին չիպն ի վիճակի է թողարկել իր թվային I/O մի քանի փինների վրա: Երկրորդը ծրագրային ապահովումն է: Ծրագրային ապահովումը թույլ է տալիս միաժամանակ ստանալ ավելի շատ տարբեր PWM ազդանշաններ, քան ապարատային: Դրա համար նախատեսված է հարմար փաթաթան Arduino-ի տակ՝ Servo գրադարանը: Այն թույլ է տալիս միաժամանակ օգտագործել 12 սերվոներ փոքր չափի կարգավորիչների մեծ մասի վրա (Uno, Due, Nano) և 48 սերվոներ Arduino Mega-ում և այլն: Սերվոյի ազդանշանային կապը միանում է Arduino-ի թվային կապին: Հող և ուժ - ակնհայտորեն գետնին և ուժին, դրանք կարող են ընդհանուր լինել բոլոր ծառայությունների համար: Եռալար սերվո օղակներում սևը կամ շագանակագույնը հիմքն է, մեջտեղում սովորաբար +5 Վ կարմիր և վերջապես սպիտակ կամ դեղին ազդանշանն է: Ծրագրային ապահովման տեսանկյունից վերահսկումը չափազանց պարզ է.

Servo myservo; // Servo on Arduino pin 9 myservo.attach (9); // Պտտեցնել 90º դիրքի myservo.write (90);

Շատ սերվոներ կարող են լիսեռը պտտել 180 °, իսկ նրանց համար 90 ° միջին դիրքն է: Կան մի շարք լուծումներ, որոնք հեշտացնում են սերվոները Arduino տախտակին միացնելը: Ամենա խորհրդանշականը Sensors Shield-ն է: Տեղադրելով այն Uno-ի վրա և տերմինալներին սերվոների էներգիա մատակարարելով՝ դուք կարող եք միացնել դրանց միակցիչները անմիջապես դրա մեջ:

Մարտկոց

Մեկ այլ կարևոր խնդիր սնուցումն է։ Եթե ​​դուք ունեք առաջադեմ տախտակ, որը թույլ է տալիս ամբողջ համակարգը մատակարարել մեկ հոսանքի գիծ (և սերվո շարժիչները չեն խանգարի վերահսկիչի աշխատանքին), ապա կարող եք յոլա գնալ մեկ աղբյուրից: Ընտրությունը հսկայական է, ամենալավը, իհարկե, Li-Ion / Li-Po բրիկետները ռադիո մոդելների համար: Բայց նրանց անհրաժեշտ են նաև համապատասխան լիցքավորիչներ։ Եթե ​​դուք ունեք ավելի պարզ կարգավորիչ (Uno / Due / Nano), ապա այն կարող եք սնուցել առանձին, օրինակ 9 վոլտանոց «Crown»-ով և միացնել սերվոները հիմնական հզոր մարտկոցին: Այսպիսով, սերվոները հաստատ կունենան բավարար հզորություն: Լիթիումային մարտկոցների դեպքում անհրաժեշտ է սովորականից ավելի ուշադիր վերահսկել լարումը, որպեսզի ավելորդ լիցքաթափում չլինի (թույլատրելի լարումները պետք է հստակեցվեն կոնկրետ տեսակի մարտկոցի համար): Դա անելու համար փոքր թվային վոլտմետրը նույնպես պտուտակված է Sleipnir ռոբոտի վրա, որը կքննարկվի հետագա:

«Ինքներդ արեք ռոբոբ»:

Հավաքածու

  • Arduino Uno կարգավորիչ՝ 1150 p.
  • Երեք սերվոշարժիչ. Ես օգտագործել եմ HXT500, 200 p. մի կտոր
  • «Crown»-ի մարտկոցի խցիկ՝ անջատիչով՝ 50 ռ.
  • Մարտկոց «Krona»՝ 145 ռուբլի:
  • IR ընդունիչ՝ 90 p.
  • Մոտավորապես 1,5 մմ տրամագծով պողպատե մետաղալար: Օրինակ, ես օգտագործում էի ջարդված հարել ձվերը հարելու համար:

Ընդամենը` 2035 p.

ԴմիտրիՁզ.Ես ուզում եմ առաջարկել, որ Arduino Uno կարգավորիչի հիման վրա պատրաստեք փոքր հեռակառավարվող վեցոտանի ռոբոտ: Թաթերը կունենան մեկ աստիճան ազատություն, կառավարումը տեղի կունենա հեռուստացույցի սովորական հեռակառավարման վահանակի միջոցով։

Ասեմ, որ սրանք մոսկովյան թանկարժեք խանութների գներն են։ Չինական առցանց խանութներում այս ամենը կարժենա կես գնով։ Հաշվի առնելով առաքումը: Ճիշտ է, իմ փորձով, դուք պետք է սպասեք երկու շաբաթից երեք ամիս:

Ավելի հեշտ միջոց է կոնստրուկտորային հավաքածու վերցնելը, քանի որ առաջին քայլերում մեկ կարգավորիչը բավարար չի լինի։ Շատ խանութներ այժմ առաջարկում են այս հավաքածուները: Օրինակ, կա մի հրաշալի առցանց խանութ «Ամպերկա»: Այստեղ ձեզ կառաջարկվեն մի քանի նմանատիպ կոնստրուկտորներ, որոնք տարբերվում են լրիվությամբ և, իհարկե, գնով։ Ամենապարզ «Մատրյոշկա X»-ն ինձ միանգամայն բավական էր։ Այն ներառում է Arduino Uno կարգավորիչ, USB մալուխ՝ համակարգչին միանալու համար, նախատիպային տախտակ (անփոխարինելի բան!), Թռիչքների, LED-ների, ռեզիստորների և այլ մանրուքներ։

Նույն խանութում կա «Վիքի» բաժինը, որտեղ նույնիսկ կարող եք գտնել ռուսերեն թարգմանված հրաշալի կարճ վիդեո ձեռնարկներ։ Համոզվեք, որ ստուգեք դրանք: Եվ իհարկե, կա մի ֆորում, որտեղ նրանք հավանաբար կփորձեն օգնել ձեզ:

Ինչ է անհրաժեշտ գործիքներից.

  • զոդման երկաթ և այն ամենը, ինչ անհրաժեշտ է զոդման համար: Պետք չէ շատ զոդել, և ձեզ հատուկ հմտություն պետք չէ.
  • տաք սոսինձ ատրճանակ և դրա վրա ձողեր;
  • տափակաբերան աքցան մետաղալարով աշխատելու համար.

Եթե ​​ամեն ինչ հավաքել եք, եկեք սկսենք:

Վերահսկողություն

Անցնենք առաջին քայլին՝ մենք պետք է սովորենք, թե ինչպես փոխազդել հեռակառավարման վահանակի հետ և պարզել դրա որոշ կոճակներ սեղմելու կոդերը։ Այս կոդերը այնուհետև հարմար կլինեն ռոբոտի կառավարման ուրվագծի համար:

Այս փուլում ձեզ կպահանջվի ևս մեկ IR ընդունիչ և լավ կլինի ունենալ նախատիպային տախտակ: IR հեռակառավարման սարքերի ճնշող մեծամասնությունը գործում է 36 կՀց, 38 կՀց կամ 40 կՀց կրիչի հաճախականությամբ (Panasonic, Sony): Բացառություն են Sharp (56 կՀց), Bang & Olufsen (455 կՀց) հեռակառավարիչները և գուցե ավելի էկզոտիկ մեկը: Հետևաբար, ցանկացած IR ընդունիչ 36, 38 կամ 40 կՀց հաճախականությամբ լավ է: Հաճախականությունը կարող է ճշգրիտ չհամընկնել ազդանշանի կրիչի հաճախականության հետ: Այս դեպքում ստացողի զգայունությունը կնվազի, բայց գործնականում ես ոչ մի անհանգստություն չեմ նկատել TSOP2136 IR ընդունիչից (36 կՀց - վերջին երկու նիշերը հաճախականությունն են) և Sony հեռակառավարման վահանակից (40 կՀց):

Այսպիսով, հեռակառավարման սարքերի մեծ մասի համար հարմար են IR ընդունիչները TSOP21xx, TSOP22xx, TSOP312xx: Վերջին երկու նիշերը կարող են լինել 36, 37, 38 կամ 40: Նախքան IR ընդունիչը միացնելը, նշեք դրա կոնտակտների լարերը. դրանցից միայն երեքն է՝ + 5V (սնուցման աղբյուր), GND (հող), Vs (ելք): ): Եկեք հավաքենք շղթան, ինչպես նկարում (լարեր TSOP2136-ի համար):


Ինչպես տեսնում եք, մենք IR ստացողի ելքը միացրել ենք A0 կարգավորիչի անալոգային մուտքին:

Ահա թե ինչ տեսք ունի էսքիզային ծածկագիրը.

#include «IRremote.h» // Կարգավորիչի անալոգային մուտքագրում // որին միացված է IR ընդունիչը՝ const int IR_PIN = A0; // Ստեղծեք IR ստացողի օբյեկտ՝ IRrecv irrecv (IR_PIN); void setup () (Serial.begin (9600); Serial.println («պատրաստ»); // Սկսեք լսել IR ազդանշանները // irrecv.enableIRIn ();) void loop () (// Նկարագրեք արդյունքների կառուցվածքը, / / որի մեջ կտեղադրվեն // ստացված և վերծանված // IR հրամանները. decode_results results; // Եթե IR հրամանն ընդունվի և // հաջողությամբ վերծանվի, ապա մենք դուրս ենք բերում // ստացված կոդը // սերիական պորտին: վերահսկիչ. if (irrecv.decode (& results)) (Serial.println (results.value); irrecv.resume ();))

Էսքիզում օգտագործվում է IRremote.h հատուկ գրադարան, որը վերծանում է IR հեռակառավարման տարբեր սարքերի ազդանշանները: Այս գրադարանը բաց կոդով նախագիծ է, այն կարող եք ներբեռնել https://github.com/shirriff/Arduino-IRremote-ից: Իսկ այն մեր նախագծին միացնելու համար անհրաժեշտ է կատարել երեք քայլ.

  • պատճենեք գրադարանի գրացուցակը գրադարանների գրացուցակում, որն, իր հերթին, գտնվում է Arduino IDE տեղադրման գրացուցակում.
  • վերագործարկել IDE;
  • ավելացրեք #include «IRremote.h» տողը մեր էսքիզի սկզբին:

Ինֆրակարմիր ապակոդավորման գործառույթներն այժմ հասանելի կլինեն էսքիզում: Բայց ստացված կոդերը տեսնելու համար մենք կօգտագործենք նաև Serial օբյեկտը։ Նրա օգնությամբ մենք կոդերը համակարգչին կփոխանցենք սերիական պորտի միջոցով (միևնույն USB մալուխը): Setup ֆունկցիայի մեջ մենք սկզբնավորում ենք Serial օբյեկտը: «9600»-ը 9600 բուդ է. այն արագությունը, որը կօգտագործվի տվյալների փոխանցման համար: Նախաստորագրումից հետո մենք կարող ենք գրել սերիական պորտին` օգտագործելով println ֆունկցիան: Այս ելքի արդյունքը համակարգչի վրա Arduino IDE-ում դիտելու համար ընտրեք «Գործիքներ» → «Սերիական մոնիտոր» ընտրացանկի տարրը (Ctrl + Shift + M): Պարզապես համոզվեք, որ այն սահմանված է 9600 baud:

Այսպիսով, կարգավորիչը սնուցվում է USB մալուխի միջոցով և փոխանցում է տվյալները դրա միջոցով: Բեռնեք էսքիզը, գործարկեք Serial Monitor-ը և սկսեք սեղմել հեռակառավարման վահանակի կոճակները: Կոդերը պետք է հայտնվեն Serial Monitor պատուհանում: Հեռակառավարման արձանագրությունները տարբեր են, երբեմն այն կարող է լինել մեկ կոդ, երբեմն՝ մի քանի։ Ամեն դեպքում, դուք միշտ կարող եք ընդգծել այն կոդերը, որոնք եզակի են հեռակառավարման վահանակի յուրաքանչյուր կոճակի համար:

Մեզ անհրաժեշտ է 13 կոճակ հեռակառավարման վահանակի վրա: Ես օգտագործել եմ հետևյալը.

  • 1 - սահուն շրջադարձ դեպի ձախ;
  • 2 - առաջ շարժում;
  • 3 - հարթ շրջադարձ դեպի աջ;
  • 4 - տեղում թեքվեք ձախ;
  • 5 - կանգառ;
  • 6 - տեղում թեքվեք աջ;
  • 7 - հետընթաց շարժում՝ աջ շրջադարձով;
  • 8 - հետընթաց շարժում;
  • 9 - հետընթաց շարժում դեպի ձախ շրջադարձով;
  • կապույտ կոճակ - շատ դանդաղ;
  • դեղին - դանդաղ;
  • կանաչ - արագ;
  • կարմիր - շատ արագ:

Գրեք այս կոճակների կոդերը, դրանք ձեզ ավելի ուշ պետք կգան ռոբոտի կառավարման ուրվագծի համար:

Շարժման ալգորիթմ

Ռոբոտի կառավարման ուրվագիծը հասանելի է մեր նախագծի էջում (bit.ly/1dEwNDC): Մի մոռացեք փոխել հեռակառավարման սեղմված կոճակների կոդերի հաստատունների արժեքները ձեր հեռակառավարման կոդերի (IR_COMMAND_XXX_CODES հաստատունները ir_command_codes.h ֆայլում):

Էսքիզը մանրամասն չենք վերլուծելու, կարծում եմ օրենսգրքում բավականաչափ մեկնաբանություններ կան, բայց մի հարց դեռ արժե դիտարկել.

Միջատների շարժումները շատ հետաքրքիր են։ Եվ չնայած այս բոլոր բզեզները շատ մոտ են գետնին ընկնելուն, ինչ-ինչ պատճառներով նրանք միշտ կայուն են. ցանկացած պահի առնվազն երեք ոտք (երկուսը մի կողմից, մեկը մյուս կողմից) կանգնած են մակերեսի վրա: Եվ մինչ այս ոտքերը քաշում են բզեզին դեպի մեկ թիրախ, մյուս երեքը վեր են քաշում՝ կրկնելու այս շարժումը: Մեր խնդիրն է նման բան անել։

Մեր ռոբոտ-բզեզն ունի երեք սերվոհարժիչ, որոնք դասավորված են շարժմանը ուղղահայաց անընդմեջ: Ձախ և աջ սերվոմարատորների համար լիսեռի առանցքն ուղղված է դեպի վեր, իսկ կենտրոնականի համար՝ առաջ։ Օրինակ, ձախ սերվոյի խնդիրն է միանգամից երկու ոտք ճոճել՝ ձախ առջևը և ձախ հետևը: Ի դեպ, դրանք կոշտ միացված են միմյանց և սոսնձված այս սերվոյի ճոճաթոռին։ Կենտրոնական սերվոյի խնդիրն է բարձրացնել բզեզի ձախ կողմը, ապա աջը: Ուստի կենտրոնական ձախ և աջ ոտքերը ամրացված են այս շարժիչի ճոճաթոռին, որոնք մեկ U-աձև մաս են։

Էսքիզը պետք է ապահովի ռոբոտի շարժումը առաջ, ետ, սահուն պտույտներ շարժման մեջ և շրջադարձերը տեղում: Եվ ես կցանկանայի նաև վերահսկել բզեզի արագությունը: Այս շարժումները ծրագրային կերպով նկարագրելու համար մեզ պետք է մաթեմատիկա: Նայեք դիագրամին.


Կապույտ շրջանակները ցույց են տալիս մակերեսին կանգնած ռոբոտ-բզեզի ոտքերը, իսկ սպիտակները՝ օդում: Խնդրում ենք նկատի ունենալ, որ առաջ կամ հետ շարժվելիս ձախ և աջ սերվոմարտորները պետք է շարժվեն ճիշտ նույնը: Իսկ տեղում շրջվելիս շարժիչները պետք է պտտվեն տարբեր ուղղություններով (սիմետրիկ): Հետաքրքիր է նաև, որ առաջ և հետընթաց շարժումը տարբերվում է միայն կենտրոնական սերվո շարժիչի փուլում։

Այսպիսով, ինչպես է դա իրականացվում: Մենք հիշում ենք, որ կարգավորիչը անընդհատ կանչում է հանգույց ֆունկցիան: Այսպիսով, այս գործառույթում մենք պետք է տեղադրենք ծածկագիրը, որը որոշում է սերվոմարատորների ընթացիկ դիրքը և դրանք դնում այս դիրքում: Յուրաքանչյուր սերվո շարժիչ պետք է տատանվի: Մենք կարող ենք հաշվարկել servomotor-ի դիրքը t ժամանակում՝ օգտագործելով հետևյալ բանաձևը.

X = մեղք (2πt / T),

որտեղ X-ը սերվոմոտորի ցանկալի դիրքն է, A-ն տատանման ամպլիտուդն է, T-ը տատանման ժամանակաշրջանն է:

Այսպիսով, կախված t ժամանակի պահից, մենք ստանում ենք X-ի արժեքի փոփոխությունը –A-ից + A միջակայքում: Սերվոմարատորները կարող են տեղադրվել 0-ից մինչև 180 °: Հետևաբար, մեզ համար ավելի լավ է տատանվել «զրոյական» դիրքի շուրջ 90 °: Եվ եթե մենք ուզում ենք տատանումներ տրամադրել 1 վ ժամանակահատվածով 90 ° դիրքի շուրջ 30 ° ամպլիտուդով, ապա բանաձևը փոխակերպվում է հետևյալ ձևի.

X = 90 + 30 մեղք (2πt / 1000),

որտեղ t-ը տատանումների սկզբից ի վեր տատանման ժամանակն է միլիվայրկյաններով: Ռոբոտ-բզեզի շարժման արագությունը վերահսկելու համար մենք կարող ենք փոխել տատանման շրջանը։ Որքան մեծ է այն, այնքան ցածր է արագությունը:

Հիմա նորից վերադառնանք մեր գծապատկերին, քանի որ վերը գրված բանաձեւը դեռ ամբողջական չէ։ Ինչպե՞ս ապահովել ձախ և աջ սերվոմոտորի այդ սինխրոն, իսկ հետո հակառակ շարժումը։ Ինչպե՞ս փոխել կենտրոնական սերվո շարժիչի փուլը: Մենք պետք է տատանման փուլ ավելացնենք մեր բանաձևին: Սինուսի արգումենտը π-ով տեղափոխելը, օրինակ, աջ շարժիչի համար կստիպի այն աշխատել հակաֆազային ձախից, այսինքն՝ մեզ անհրաժեշտ է, որ այն պտտվի տեղում: Ահա թե ինչպիսին կլինի մեր բանաձևը հիմա.

X = 90 + 30 մեղք (2πt / 1000 + Φ),

որտեղ Φ-ը տատանման փուլն է, արժեքը 0-ից 2π է:

Նայեք աղյուսակին՝ հասկանալու համար, թե ինչպիսին պետք է լինեն տատանումների փուլերը սերվոմարատորների համար յուրաքանչյուր տեսակի շարժման համար:

ժողով

Այժմ եկեք ռոբոտը դնենք նախատիպային տախտակի վրա և լրացնենք կառավարման ուրվագիծը:

Սա շատ կարևոր քայլ է հավաքվելուց առաջ: Փորձեք անջատել USB մալուխը և միացնել հացատախտակը Krona մարտկոցից: Ստուգեք շարժման բոլոր փուլերը և համոզվեք, որ ամեն ինչ աշխատում է: Ռոբոտը հավաքելուց հետո ինչ-որ բան փոխելը (օրինակ՝ անգործունյա սերվոմոտորի փոխարինումը) ավելի կդժվարանա։


Հիմա եկեք անցնենք բուն ժողովին: Հիմնական կրիչը մարտկոցի խցիկն է: Խորհուրդ եմ տալիս օգտագործել փակ կուպե և միշտ անջատիչով:

Բզեզի մասերը ամրացնելու ամենահեշտ ձևը տաք հալեցնող սոսինձն է։ Սկսեք սերվո շարժիչներից: Հեռացրեք ավելորդ ամրացնող ականջները և միացրեք մեքենաները: Այնուհետև մարտկոցի կափարիչի վրա կպցրեք երեք սերվոյի այս հավաքածուն: Հիշեք, որ մարտկոցը փոխելու համար մարտկոցի խցիկը պետք է ազատ բացվի:

Կարգավորիչը ամենահեշտն է կպչում խցիկին, բայց ինձ այդքան էլ դուր չի գալիս այս տարբերակը, քանի որ ես ստիպված կլինեմ ընդմիշտ բզեզին տալ Arduino Uno-ն: Հետևաբար, դուք կարող եք դժվարացնել ձեր կյանքը և օգտագործել Arduino միակցիչներ մարտկոցի խցիկը ամրացնելու համար: Խցիկի ներքևի մասում կպցրեք պտուտակի միակցիչը՝ 2,54 մմ անկյունագծով կապումների միջև: Այն պետք է տեղադրվի այնպես, որ տեղավորվի կարգավորիչի վարդակից 8-11 թվային կապիչների շուրջ: Դրանք առայժմ մեզ պետք չեն լինի։ Եթե ​​միակցիչը ձեռքի տակ չէ, U-աձև թեքված թղթի սեղմակը կգործի:

Մարտկոցի խցիկի լարերը պետք է միացված լինեն Vin-ին և հարակից GND-ին: Մի խառնեք բևեռականությունը: Գումարած «Crowns» Vin-ի վրա, մինուս GND-ի վրա: Լարերի հուսալի շփումը Arduino միակցիչների հետ ապահովելու համար դուք կարող եք պարզապես ոռոգել մետաղալարերի ծայրը ավելի հաստով, բայց ես որպես խրոցակ օգտագործեցի թղթի սեղմակի կարճ կտոր: Իսկ եռակցման տեղը փակեցի ջերմաքծվող խողովակով։


Սերվո օղակներից միակցիչները պետք է կտրվեն, հոսանքի լարերը (+5 V - սովորաբար կարմիր և GND - սև կամ շագանակագույն) պետք է միացվեն և բերվեն 5V վարդակներին և կարգավորիչի հարակից GND-ին: Մենք կկապվենք մի փոքր ուշ: Հսկիչ ազդանշանի լարերը (սովորաբար դեղին) դուրս են գալիս կարգավորիչի թվային ելքերից՝ ձախ սերվոմոտորը՝ 2-րդ կապին, կենտրոնականը՝ 4-րդ, աջը՝ 7:

IR ընդունիչի «+» և «-»-ները պարզապես կարող են միացվել Arduino միակցիչին (5V և հարակից GND): Ճիշտ է, կիսով չափ թեքվելով, կրկնապատկելով դրանց հաստությունը: Մենք սերվո շարժիչների նախկինում միացված հոսանքի լարերը զոդում ենք IR ընդունիչի նույն հոսանքի ոտքերին: IR ստացողի ազդանշանի ելքը դժվար թե հասնի A0 կարգավորիչի անալոգային մուտքին, և դուք ստիպված կլինեք այն կառուցել մետաղալարով:

Ոտքեր պատրաստելու մի քանի խորհուրդ. Նախ պատրաստեք ձախ և աջ առջևի հետևի ոտքերը: Համոզվեք, որ դրանք սիմետրիկ են (ուշադրություն դարձրեք թեքությունների երկարություններին և անկյուններին): Սկսեք սոսնձել ոտքերը միայն այն բանից հետո, երբ համոզվեք, որ սերվոմարատորները դրված են «զրոյական» դիրքում (90 °):

Տեղադրեք միջին զույգ ոտքերը վերջինը: Խորհուրդ եմ տալիս սկզբում երկարացնել միջին ոտքերը, իսկ հետո տեղադրելուց հետո դրանք կտրել ցանկալի երկարությամբ։ «Զրո» դիրքում բոլոր վեց ոտքերը պետք է լինեն մակերեսի վրա: 15 ° ամպլիտուդով միջին ոտքերի ճոճանակը չպետք է խանգարի առջևի հետևի շրջադարձերին:

Ի՞նչ է հաջորդը:

Robobug-ը պատրաստի բջջային հարթակ է, որը հիմնված է ամենահայտնի և մատչելի կարգավորիչներից մեկի վրա։ Բաց նախագիծ՝ https://github.com/beetle-ringo/arduino: Fork (պատառաքաղ) GitHub-ում և ավելացրեք ձեր սեփական ֆունկցիոնալությունը: Սանձազերծեք ձեր երևակայությունը. ավելացրեք IR LED և ռոբոտը պատրաստ է ռոբոտային մարտերի: Միացրեք հեռաչափերը, շոշափելի սենսորները, գիրոսկոպը ... Սովորեցրեք ձեր ռոբոտին խուսափել խոչընդոտներից կամ քայլել գծի երկայնքով, փորձեք դրա վրա տեղադրել վեբ-տեսախցիկ: Կարող է լինել միլիոն գաղափար, և միշտ կարող ես ընտրել ամենահետաքրքիրը:

Robot Sleipnir

Հավաքածու

  • Arduino Uno Dagu Spider Robot կարգավորիչ՝ 2530 p.
  • Servos SG90 9g (16 հատ) 1150 ռուբ.
  • LiPo մարտկոցի փաթեթ, 7.4 V, 1800 mAh 490 ռ.
  • Ռադիո մոդուլ 4 փին Bluetooth RF հաղորդիչ 270 р.
  • Լարման ցուցիչ (ըստ ցանկության) DC 3.3–30 V Red LED Panel Meter 100 р.
  • Ալյումինե անկյուն. Մոտակա շենքի շուկայում 135 ռուբլի:
  • Հեղույսներ և ընկույզներ: Մոտակա մոլի շուկայում 35 p.

Ընդհանուր՝ 4710 p.

*Բաղադրիչները գնվել են տարբեր ժամանակներում, և շատ դիրքեր կարելի է օպտիմալացնել

poconoco:Փորձենք հավաքել ոչ ստանդարտ կոնֆիգուրացիա՝ ութ ոտանի 2DOF ռոբոտ: 2DOF ոտքերը շատ ավելի հեշտ են ծրագրավորվում, և ես պահեստում ունեմ չօգտագործված սերվոների մի փունջ: Եվ ամենակարևորը, այն հնարավոր կլինի անվանել ի պատիվ Օդին Սլեյպնիր աստծո ութոտանի ձիու (միշտ երազած!):

Մեր Sleipnir-ը յուրաքանչյուր կողմում կունենա չորս ոտք՝ երկու ծխնիներով: Յուրաքանչյուր առանցք մի servo է, ինչը նշանակում է, որ յուրաքանչյուր կողմում կա ութ սերվո: Պարզության համար ձիու մի կողմի բոլոր ութ հոդերը կպտտվեն նույն հարթության վրա: Չնայած դա ամենևին էլ անհրաժեշտ չէ։ Ավելին, եթե ոտքերդ մի կողմ դնես մի փոքր «շաշկի» այնպես, որ իրար կպած երկու ոտքեր չկարողանան դիպչել, ավելի լավ կլինի, ավելի լայն քայլ անել ու խարխափել։


Կոկիկ և ֆունկցիոնալ, բայց ամենաէժան լուծումից հեռու է օգտագործել հատուկ կարգավորիչ տախտակ, որը օպտիմիզացված է մեծ թվով սերվոներ միացնելու համար: Ես հանդիպեցի Dagu Spider Robot Controller-ին. սա նույն Arduino Mega-ն է, բայց նախապես միացված 3-փին միակցիչներով տախտակի վրա, որտեղ դուք կարող եք անմիջապես միացնել նույն 48 սերվոները՝ առանց որևէ վահանի: Իդեալական է մի քանի ոտանի Arduino ռոբոտների համար:

Վերահսկողություն

Մենք կվերահսկվենք Bluetooth-ի միջոցով։ Դրա համար կան տարբեր ապարատային լուծումներ: Սրանք վահաններ և առանձին տախտակներ են UART սերիական ինտերֆեյսով (ինչպես սովորական com port, միայն 5 V ազդանշանի մակարդակով): Ինձ թվում էր, որ ամենապրակտիկը UART ինտերֆեյսով փոքրիկ տախտակն էր: Միանում է Arduino պորտի համապատասխան UART / սերիական կապերին: Նկատենք երկու նրբերանգ՝ Uno / Due / Nano և այլնի վրա կա միայն մեկ այդպիսի պորտ, և այն օգտագործվում է նաև USB-ի միջոցով թարթելու համար։ Հետևաբար, թարթելիս կարող է անհրաժեշտ լինել անջատել Bluetooth մոդուլը: Եվ երկրորդ նրբերանգը. մի մոռացեք, որ մոդուլի RX-pin-ը միացված է Arduino-ի TX-pin, իսկ TX-ը՝ RX-pin-ին: Նման բաները UART-ում են։

Bluetooth ծրագրավորումն ավելի բարդ չէ, քան սերվոները, տվյալները կարելի է կարդալ բայթ առ բայթ, որը մենք կօգտագործենք.

Char cmd; Serial.begin (9600); if (Serial.available ()) cmd = Serial.read ();

Եթե ​​Arduino Mega-ն օգտագործվում է, իսկ Bluetooth-ը միացված է երկրորդ պորտին, ապա Serial-ի փոխարեն գրվում է Serial1: Հատկանշական է, որ դուք չեք կարող օգտվել Bluetooth-ից, այլ կառավարել ռոբոտը անմիջապես USB-ի միջոցով։ Եվ վերը նշված ծածկագրում ոչինչ չի փոխվի: Այն պարզապես աշխատում է սերիական պորտով, և կարևոր չէ, թե արդյոք այնտեղ կախված է BT հաղորդիչ, թե USB սերիական փոխարկիչ:

Bluetooth-ի մյուս կողմը

Միացման ամենահարմար տարբերակը Linux-ի ստանդարտ կոմունալ ծառայություններն են: Աշխատելու համար մեզ անհրաժեշտ են sdptool, rfcomm կոմունալ ծառայություններ (ներառված են Ubuntu-ի պահոցների bluez փաթեթում), ինչպես նաև minicom (փաթեթը այդպես է կոչվում): Այս կոմունալ ծառայություններից օգտվելու հրահանգները կարելի է գտնել համացանցում:

Շարժման ալգորիթմ


Hexapod-ի համար ամենապարզ քայլվածքը կլինի սա. ոտքերը բաժանված են երեք ոտքերի երկու խմբի, և խմբերից մեկն ամբողջությամբ գետնին է, մյուսը՝ օդում, վերադասավորվում է առաջ: Սա հեռու է միակ հնարավոր քայլվածքից։ Դուք կարող եք օդում պահել միայն երկու թաթ, կամ նույնիսկ մեկը, իսկ մյուս չորս-հինգը գետնին: Ութոտանի համար կան նաև բազմաթիվ քայլվածքներ: Մենք կվերցնենք ամենապարզը, նաև չորս ոտքից բաղկացած երկու խումբ։

Այսպիսով, ի՞նչ պետք է անենք 16 սերվոյի և ընտրված քայլվածքով աշխատելու համար: Ճիշտ պատասխանն է՝ կարդալ հակադարձ կինեմատիկայի (ԻԿ) մասին: Հոդվածի ծավալը թույլ չի տալիս թեման լայնորեն ընդլայնել, սակայն համացանցում կան բազմաթիվ նյութեր։ Կարճ ասած, IR-ը լուծում է անհրաժեշտ կառավարման ազդանշաններ գտնելու խնդիրը, որպեսզի համակարգը գրավի ցանկալի դիրքը տարածության մեջ: Ոտքի համար սա նշանակում է, որ ըստ այն կետի կոորդինատների, որտեղ պետք է գնա ոտքը, դուք պետք է որոշեք սերվոյի անկյունները, որոնք դուք պետք է սահմանեք դրա համար: Իսկ վերահսկելով ոտքերի կոորդինատները՝ կարող եք վերահսկել մարմնի դիրքը։ Մենք ունենք 2DOF ոտքեր, առանցքները զուգահեռ են, ուստի ոտքը միշտ շարժվում է նույն հարթության վրա։ IR առաջադրանքն այս դեպքում կրճատվում է մինչև 2D տարածություն, ինչը մեծապես հեշտացնում է այն:

Թող յուրաքանչյուր ոտքի համար O-ի կոորդինատների տեղական ծագումը լինի վերին սերվոյի առանցքը, այսինքն՝ ազդրը: Եվ մենք ունենք A կետի կոորդինատները, որտեղ պետք է գնա ոտքը: Այնուհետև հեշտ է տեսնել, որ դուք պետք է լուծեք երկու շրջանագծերի հատման կետերը գտնելու խնդիրը (տե՛ս մի կողմի ոտքերի գծապատկերը, այնտեղ այն պատկերված է ամենաաջ ոտքի վրա): Գտնելով շրջանագծերի հատման B կետը (ընտրելով դրանցից որևէ մեկը), հեշտ է հաշվարկել պահանջվող անկյունները՝ օգտագործելով թարգմանությունը դեկարտյան կոորդինատներից դեպի բևեռային կոորդինատներ: Կոդում այս խնդրի լուծումն ունի հետևյալ տեսքը.

Բոց A = -2 * x; բոց B = -2 * y; float C = sqr (x) + sqr (y) + sqr (hipLength) - sqr (shinLength); բոց X0 = -A * C / (sqr (A) + sqr (B)); բոց Y0 = -B * C / (sqr (A) + sqr (B)); բոց D = sqrt (sqr (hipLength) - (sqr (C) / (sqr (A) + sqr (B)))); float mult = sqrt (sqr (D) / (sqr (A) + sqr (B))); float ax, ay, bx, by; կացին = X0 + B * մուլտ; bx = X0 - B * մուլտ; ay = Y0 - A * մուլտ; ըստ = Y0 + A * մուլտ; // կամ bx հատման մեկ այլ կետի համար float jointLocalX = կացին; // կամ հատման մեկ այլ կետի համար float jointLocalY = ay; float hipPrimaryAngle = polarAngle (jointLocalX, jointLocalY); float hipAngle = hipPrimaryAngle - hipStartAngle; float shinPrimaryAngle = polarAngle (x - jointLocalX, y - jointLocalY); float shinAngle = (shinPrimaryAngle - hipAngle) - shinStartAngle;

որտեղ x և y-ն այն կետի կոորդինատներն են, որտեղ դուք պետք է հասնեք ձեր ոտքով. hipStartAngle - անկյունը, որով «ազդրը» սկզբնապես պտտվում է (սերվոյի միջին դիրքում), ինչպես shinStartAngle: Ի դեպ, այս հաշվարկներում անկյուններն ակնհայտորեն ռադիաններով են, բայց դրանք պետք է աստիճաններով փոխանցվեն Servo օբյեկտներին։ Գործող որոնվածի ամբողջական կոդը՝ ներառյալ այս հատվածը, տեղադրված է GitHub-ում, տես հոդվածի վերջում գտնվող հղումը: Սա IC-ի մի մասն է, բայց բացի դրանից, ձեզ հարկավոր է մի փոքր ավելի պարզ կոդ՝ այս IC-ը բոլոր ոտքերի վրա օգտագործելու համար (տես legsReachTo (), legWrite () գործառույթները): Ձեզ անհրաժեշտ կլինի նաև կոդ, որն իրականում իրականացնում է քայլվածքը՝ ոտքերի մի խմբի շարժումը «ետ» (այնպես, որ ռոբոտը շարժվի առաջ), մինչդեռ ոտքերի մյուս խումբը բարձրացվում է և վերադասավորվում առաջ՝ հաջորդ քայլի համար, տես քայլ առաջ։ () ֆունկցիա: Նա մեկ քայլ է կատարում տրված պարամետրերով: Ի դեպ, այս պարամետրերով դուք կարող եք մի քայլ հետ գնալ՝ չնայած ֆունկցիայի անվանմանը։ Եթե ​​այս ֆունկցիան կանչվում է օղակում, ապա ռոբոտը առաջ կգնա:

Այժմ ստանալով հրամաններ և մեկնաբանելով դրանք: Ծրագրին ավելացնենք վիճակ.

Enum State (STOP, FORWARD, BACKWARD, FORWARD_RIGHT, FORWARD_LEFT);

Եվ կատարման հիմնական հանգույցում () մենք կնայենք ընթացիկ վիճակին (state variable) և կքաշենք stepForward (), եթե շարժվենք առաջ (շրջվելով կամ առանց), և կրկին stepForward (), բայց բացասական xamp արգումենտով, եթե մենք պետք է հետ գնանք... Շրջադարձները կկատարվեն legWrite (), իսկ աջ շրջադարձի դեպքում աջ կողմի ոտքերը կմնան տեղում (մինչ ձախերը թիավարում են): Ահա այսպիսի ձիու տանկ։ Դաժան, բայց շատ պարզ և աշխատում է: Սահուն շրջադարձ կարելի է անել միայն 3DOF ոտքերով, դրա օրինակը կարելի է տեսնել buggybug-ի պահոցում:

Անջատիչ (վիճակ) (դեպքը FORWARD. դեպքը FORWARD_RIGHT. դեպքը FORWARD_LEFT. քայլ առաջ (h, dh, xamp, xshift); ընդմիջում; գործը BACKWARD. քայլ առաջ (h, dh, - xamp, xshift); ընդմիջում;)

Char հրամանը; while (Serial1.available ()) հրաման = Serial1.read (); անջատիչ (հրաման) («w» դեպք՝ վիճակ = FORWARD; ընդմիջում; դեպք «s»: վիճակ = BACKWARD; ընդմիջում; դեպք «d»: վիճակ = FORWARD_RIGHT; ընդմիջում; դեպք «a»: վիճակ = FORWARD_LEFT; ընդմիջում; լռելյայն վիճակ = STOP;)

Սրա վերաբերյալ որոնվածի հիմնական կետերն ավարտվել են, մնացածը բոլորը մանրուքներ են: Թեև կա ևս մեկ, թերևս, կարևոր կետ՝ սերվոները լավ կարգավորելու ունակությունը: Նույնիսկ ամենաճշգրիտ հավաքման դեպքում, եթե բոլոր սերվոներին հրամայված է պտտվել 90 °, դրանցից մի քանիսը դեռևս կստացվեն մի փոքր տապալված անկյունով: Հետեւաբար, ձեզ անհրաժեշտ է այն հարմարեցնելու ունակությունը: Ինչպես ես դա արեցի, դուք կարող եք տեսնել hipsWrite () և shinsWrite () մեթոդներում և hipsTune և shinsTune նուրբ կարգավորումների զանգվածներում:

ժողով

Նման կառույցների համար առանձնահատուկ ոչինչ պետք չէ. մասերը կտրելու համար հարմար հաստության պլեքսիգլասի թերթիկ (մոտակա կենցաղային լու շուկայից) և ոլորահատ սղոց կամ սղոց: Եվ, իհարկե, գայլիկոն՝ անցքեր փորելու համար: Պլեքսիգլասի փոխարեն կարելի է օգտագործել նրբատախտակ (այնուհետև վերջնական կառուցվածքի վրա կարող եք նաև հուշագիր անել այրիչով)։ Կարող են օգտագործվել նաև ալյումինե թիթեղներ կամ անկյուններ։ Sleipnir-ով ես գնացի 1 սմ կողերով ալյումինե անկյուն օգտագործելու ճանապարհով (այն գնել եմ ինչ-որ տեղ շինարարական սուպերմարկետում):


Հիմքը կլինի ուղղանկյուն շրջանակ: Վերջույթներ - 4 սմ շերտեր: Արժե նաև համալրել շատ փոքր պտուտակներ, ընկույզներ: Անկյունը կտրեցինք անհրաժեշտ կտորների մեջ, կտրեցինք ակոսները սերվոյի համար, անցքեր փորեցինք մոնտաժային պտուտակների և պտուտակների համար: Ավելի լավ է դիզայնը ցույց տալ, քան նկարագրել: Չափերը կարող են լինել ցանկացած, ռոբոտները պետք է լինեն բազմազան: Բայց հիշեք. որքան երկար լինեն ոտքերը, այնքան ավելի շատ լծակ պետք է մղի սերվոն, և այնքան ավելի մեծ սթրես կլինի դրա վրա: Մինչև շրջվելու և նույնիսկ կոտրվելու անհնարինությունը։ Բայց 4–5 սմ - խնդիր չկա:

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

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

Ի՞նչ է հաջորդը:

Ամբողջ նախագիծը հասանելի է https://github.com/poconoco/sleipnir կայքում: Ես նկարագրել եմ ամենաանգործնական կոնֆիգուրացիաներից մեկը՝ բազմաթիվ 2DOF ոտքեր, բարձրահասակ, նեղ, հեշտությամբ կողք ընկնող: Փորձեք ավելի լավ ռոբոտ պատրաստել 3DOF ոտքերով: 4DOF ոտքերով: Ճանկերով կամ ծնոտներով: Որպես 3DOF հակադարձ կինեմատիկայի օրինակ, կարող եք դիմել buggybug-ի պահեստին. կա hexapod որոնվածը: Կարող եք նաև ոչ կառավարվող, այլ խելացի ռոբոտներ պատրաստել, Bluetooth-ի փոխարեն տեղադրելով հեռավորության սենսորներ, սովորեցնել ռոբոտին խուսափել պատերից և խոչընդոտներից։ Եթե ​​դուք նման սենսոր դնեք servo drive-ի վրա և պտտեք այն, կարող եք սկանավորել տարածքը, գրեթե սոնարով: