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

Wallace ինքնավար ռոբոտ - Մաս 4 - Ավելացրեք IR հեռավորություն և «ուժեղացուցիչ» տվիչներ ՝ 6 քայլ
Wallace ինքնավար ռոբոտ - Մաս 4 - Ավելացրեք IR հեռավորություն և «ուժեղացուցիչ» տվիչներ ՝ 6 քայլ

Video: Wallace ինքնավար ռոբոտ - Մաս 4 - Ավելացրեք IR հեռավորություն և «ուժեղացուցիչ» տվիչներ ՝ 6 քայլ

Video: Wallace ինքնավար ռոբոտ - Մաս 4 - Ավելացրեք IR հեռավորություն և «ուժեղացուցիչ» տվիչներ ՝ 6 քայլ
Video: Learn French While You Sleep - A2 - French Conversation 2024, Նոյեմբեր
Anonim
Image
Image
Ավելացնել օժանդակ շրջան (MCP3008)
Ավելացնել օժանդակ շրջան (MCP3008)

Բարև, այսօր մենք սկսում ենք Ուոլեսի կարողությունների կատարելագործման հաջորդ փուլը: Մասնավորապես, մենք փորձում ենք բարելավել ինֆրակարմիր հեռավորության սենսորների միջոցով խոչընդոտներ հայտնաբերելու և խուսափելու ունակությունը, ինչպես նաև օգտվել Roboclaw շարժիչ-վերահսկիչի `հոսանքը վերահսկելու և այն վիրտուալ (ծրագրային)« սենսոր »դարձնելու հնարավորությունից: Վերջապես, մենք կնայենք, թե ինչպես է նավարկվում առանց SLAM- ի (միաժամանակյա տեղադրում և քարտեզագրում) (առայժմ), քանի որ ռոբոտը դեռ չունի IMU (իներցիայի չափման միավոր) կամ ToF (թռիչքի ժամանակ) տվիչներ:

Նավիգացիայի միջոցով սկզբնական շրջանում դա կլինի ընդամենը երկու հիմնական նպատակ.

  1. խուսափել խոչընդոտներից
  2. ճանաչել, երբ այն ինչ -որ տեղ խրված է և ոչ մի առաջընթաց չի ունենում: («առաջընթաց» նշանակում է, որ այն առաջ գնաց որևէ նշանակալի հեռավորության վրա)
  3. հնարավոր 3 -րդ նպատակը կարող է լինել այն, որ նա փորձի իրեն հավասարեցնել պատին:

Այս նախագիծը սկսվեց ռոբոտների հավաքածուով և ստեղնաշարի և ssh կապի միջոցով աշխատելու հիմնական շարժումներով:

Երկրորդ փուլը պետք է ավելացներ բավարար օժանդակ սխեմաներ `պատրաստելու բազմաթիվ սենսորների ավելացմանը:

Նախորդ Instructable- ում մենք իսկապես ավելացրել ենք մի քանի HCSR04 ձայնային տվիչներ, և ռոբոտը այժմ կարող է խուսափել խոչընդոտներից, երբ շարժվում է բնակարանում:

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

Բարելավումներից մեկը կարող է լինել տիպիկ շարժիչ հոսանքներին հետևելը, և եթե արժեքները ցատկեն, ապա ռոբոտը պետք է ինչ-որ բանի հարվածած լինի: Դա լավ «պլան B» կամ նույնիսկ C. բայց դա իսկապես չի օգնում նրան նավարկելու ճաշասենյակի շուրջը:

(Թարմացում. Փաստորեն, առայժմ ընթացիկ մոնիտորինգը պլան A- ն է, երբ շրջվում է, քանի որ ժամանակավորապես հեռացրել եմ և հետևից սենսորներ):

Այս բաժնի տեսանյութը հանդիսանում է խոչընդոտներից խուսափելու տվիչների վերջին փուլը:

Տեսանյութում տեսածը վեց դիմային HCSR04 ձայնային տվիչ է և երկու սուր IR սենսոր: Տեսահոլովակում IR սենսորները շատ չեն խաղացել: Նրանց առավելությունը հիմնականում այն է, երբ ռոբոտը հայտնվում է սեղանի և աթոռի ոտքերի առջև կանգնած ճաշասենյակում:

Բացի սենսորներից, ընթացիկ-մոնիտորը խաղաց հատկապես հետադարձ ընթացքի դեպքում, եթե այն բախվի ինչ-որ բանի:

Ի վերջո, այն օգտագործում է վերջին 100 քայլերի պատմությունը և մի քանի հիմնական վերլուծություն ՝ մեկ հարցին պատասխանելու համար.

«Արդյո՞ք վերջերս իրական առաջընթաց է գրանցվել (կամ դա խրված է ինչ -որ կրկնվող պարի մեջ)»:

Այսպիսով, տեսանյութում, երբ տեսնում եք, որ կրկնվում է հետընթացը, այնուհետև պտտվում է, նշանակում է, որ նա ճանաչել է առաջընթացը, հետևաբար փորձում է այլ բան:

Versionրագրաշարի այս տարբերակի միակ ծրագրավորված նպատակը եղել է շարունակական առաջընթաց գրանցելու և խոչընդոտներից խուսափելու փորձը:

Քայլ 1: Ավելացնել օժանդակ շրջան (MCP3008)

Ավելացնել օժանդակ շրջան (MCP3008)
Ավելացնել օժանդակ շրջան (MCP3008)
Ավելացնել օժանդակ շրջան (MCP3008)
Ավելացնել օժանդակ շրջան (MCP3008)
Ավելացնել օժանդակ շրջան (MCP3008)
Ավելացնել օժանդակ շրջան (MCP3008)

Նախքան IR սենսորների ավելացումը, մեզ անհրաժեշտ կլինի նրանց և Raspberry Pi- ի միջև միջերեսային սխեման:

Մենք կավելացնենք MCP3008 անալոգային-թվային փոխարկիչ: Կան բազմաթիվ առցանց ռեսուրսներ, թե ինչպես կարելի է այս չիպը միացնել Raspberry Pi- ին, այնպես որ ես այստեղ դրան շատ չեմ անդրադառնա:

Ըստ էության, մենք ընտրություն ունենք: Եթե IR սենսորների տարբերակը գործում է 3V- ով, կարող է աշխատել նաև MCP3008- ը, և մենք կարող ենք անմիջապես միանալ ազնվամորիին:

[3V IR տվիչ] - [MCP3008] - [Raspberrry Pi]

Իմ դեպքում, սակայն, ես աշխատում եմ հիմնականում 5V- ով, այնպես որ դա նշանակում է երկկողմանի մակարդակի փոփոխություն:

[5V IR տվիչ]-[MCP3008]-[5V-to-3V երկկողմանի ավտոբուս]-[Raspberry Pi]

Նշում. IR սենսորից կա միայն մեկ ազդանշան: Այն անցնում է անմիջապես MCP3008- ի մուտքային անալոգային ազդանշանային գծերից մեկին: MCP3008- ից կա 4 տվյալների տող, որոնք մենք պետք է միացնենք (երկկողմանի ավտոբուսի միջոցով) Raspberry Pi- ին:

Այս պահին մեր ռոբոտը պատրաստվում է աշխատել միայն երկու IR սենսորով, բայց մենք կարող ենք հեշտությամբ ավելացնել ավելին: MCP3008 ութ անալոգային մուտքային ալիք:

Քայլ 2: Տեղադրեք IR տվիչներ

Mount IR սենսորներ
Mount IR սենսորներ
Mount IR սենսորներ
Mount IR սենսորներ
Mount IR սենսորներ
Mount IR սենսորներ
Mount IR սենսորներ
Mount IR սենսորներ

Sharp- ն արտադրում է մի քանի տարբեր IR սենսորներ, և դրանք ունեն տարբեր տիրույթներ և ծածկույթի տարածք: Ես պատահաբար պատվիրեցի GP2Y0A60SZLF մոդելը: Ձեր ընտրած մոդելը կազդի սենսորի տեղադրման և կողմնորոշման վրա: Ի դժբախտություն ինձ, ես իրականում չեմ ուսումնասիրել, թե կոնկրետ որ սենսորները ձեռք բերեմ: Դա ավելի շատ «որը ես կարող եմ ստանալ ողջամիտ ժամանակում և գնով հեղինակավոր աղբյուրից, իրենց առաջարկածներից» որոշում էր:

(Թարմացում. Այնուամենայնիվ, դա կարող է նշանակություն չունենալ, քանի որ այս սենսորը կարծես շփոթված է ներքին միջավայրի լուսավորությամբ: Ես դեռ ուսումնասիրում եմ այդ հարցը)

Այս սենսորները ռոբոտի վրա տեղադրելու առնվազն երեք եղանակ կա:

  1. Տեղադրեք դրանք ֆիքսված դիրքում, առջևում, միմյանցից մի փոքր հեռու:
  2. Տեղադրեք դրանք servo- ի վրա, առջևում, միմյանցից մի փոքր հեռու:
  3. Տեղադրեք դրանք ֆիքսված դիրքում, առջևի մասում, բայց ամենահեռավոր և ամենահեռավոր անկյուններում ՝ միմյանց նկատմամբ թեքված:

Ընտրությունը #1 -ի և #3 -ի ընտրության հետ համեմատելիս ես կարծում եմ, որ թիվ 3 -ը ավելի շատ ծածկելու է բախման տարածքը: Եթե նայեք պատկերներին, ապա թիվ 3 ընտրությունը կարող է կատարվել ոչ միայն այնպես, որ սենսորային դաշտերը համընկնեն, այլև դրանք կարող են ծածկել ռոբոտի կենտրոնը և դրա արտաքին լայնությունը:

Թիվ 1 ընտրության դեպքում, որքան ավելի շատ են սենսորները իրարից թեքված, այնքան կենտրոնում կույր կետ է:

Մենք կարող ենք անել թիվ 2 -ը, (ես որպես հնարավորություն ավելացրել եմ servo- ի հետ մի քանի պատկեր) և հանձնարարել դրանք ավլել, և ակնհայտ է, որ դա կարող է ընդգրկել առավելագույն տարածքը: Այնուամենայնիվ, ես ցանկանում եմ որքան հնարավոր է հետաձգել սերվոյի օգտագործումը ՝ առնվազն երկու պատճառով.

  • Մենք կօգտագործենք PWM հաղորդակցության ուղիներից մեկը Raspberry Pi- ում: (Հնարավոր է բարձրացնել սա, բայց դեռ…)
  • Սերվոյի հետ ընթացիկ խաղարկությունը կարող է նշանակալի լինել
  • Այն ավելացնում է ապարատային և ծրագրային ապահովումը

Ես կցանկանայի թողնել servo տարբերակը հետագայում, երբ ավելացնեմ ավելի կարևոր տվիչներ, ինչպիսիք են Time-of-Flight (ToF) կամ գուցե տեսախցիկ:

Թիվ 2 ընտրության մեկ այլ հնարավոր առավելություն կա, որն անհնար է մյուս երկու ընտրության դեպքում: Այս IR սենսորները կարող են շփոթվել `կախված լուսավորությունից: Կարող է պատահել, որ ռոբոտը կարդում է այն օբյեկտի ընթերցումը, որն անխուսափելիորեն մոտ է, երբ իրականում չկա մոտակա օբյեկտ: Ընտրություն թիվ 3 -ով, քանի որ դրանց դաշտերը կարող են համընկնել, երկու սենսորները կարող են գրանցել միևնույն օբյեկտը (տարբեր տեսանկյուններից):

Այսպիսով, մենք գնում ենք տեղակայման #3 ընտրությամբ:

Քայլ 3: Փորձարկման ժամանակը

Image
Image

Այն բանից հետո, երբ մենք կապեր հաստատեցինք Raspberry Pi- ի, MCP3008 ADC- ի և Sharp IR սենսորների միջև, ժամանակն է փորձարկել: Պարզապես մի պարզ թեստ `համոզվելու համար, որ համակարգը աշխատում է նոր սենսորների հետ:

Ինչպես նախորդ Instructables- ում, ես հնարավորինս օգտագործում եմ wiringPi C գրադարանը: Հեշտացնում է գործերը: Մի բան, որն այնքան էլ ակնհայտ չէ wiringPi կայքի վերանայումից, այն է, որ MCP3004/3008- ի համար ուղղակի աջակցություն կա:

Նույնիսկ առանց դրա, դուք կարող եք պարզապես օգտագործել SPI ընդլայնումը: Բայց պետք չէ: Եթե ուշադիր նայեք Գորդոնի git պահոցը wiringPi- ի համար, ապա կհանդիպեք աջակցվող չիպերի ցանկին, որոնցից մեկը MCP3004/3008- ի համար է:

Ես որոշեցի ծածկագիրը կցել որպես ֆայլ, քանի որ չկարողացա այն ճիշտ ցուցադրել այս էջում:

Քայլ 4. Վիրտուալ սենսոր - AmpSensor

Որքան ավելի շատ տարբեր եղանակներով կարող եք ռոբոտին տեղեկատվություն ստանալ արտաքին աշխարհի մասին, այնքան լավ:

Ռոբոտը ներկայումս ունի ութ HCSR04 ձայնային սոնարային սենսոր (դրանք այս Instructable- ի ուշադրության կենտրոնում չեն), և այժմ այն ունի երկու Sharp IR հեռավորության տվիչ: Ինչպես արդեն նշվեց, մենք կարող ենք օգտվել մեկ այլ բանից `Roboclaw- ի շարժիչ հոսանքների զգայարանային հատկությունից:

Մենք կարող ենք այդ հարցման զանգը շարժիչ-վերահսկիչին փաթաթել C ++ դասի մեջ և այն անվանել AmpSensor:

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

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

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

Քայլ 5: Նավիգացիա

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

Այն չունի կոդավորող շարժիչներ և չունի IMU (իներցիոն-չափիչ-միավոր), ուստի ավելի դժվար է դառնում իմանալ, արդյոք այն իսկապես շարժվում է, թե պտտվում, և որքանով:

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

Ես միտումնավոր ընտրեցի Չօգտագործել միկրոհսկիչ, ինչպիսին է Arduino- ն, քանի որ ա) ինձ դուր չի գալիս psuedo-C ++ միջավայրը, բ) և որ չափազանց զարգացումը կկորցնի կարդալու-գրելու հիշողությունը (?), Եվ որ ես մշակման համար անհրաժեշտ կլինի հյուրընկալող համակարգիչ (?): Կամ գուցե ես պարզապես պատահում եմ, ինչպես Raspberry Pi- ն:

Raspbian- ով աշխատող Pi- ն, սակայն, իրական ժամանակի ՕՀ չէ, այնպես որ այս սենսորների անկայունությունների և ՕՀ-ի միջև ամեն անգամ չկարդալու միջև ես զգացի, որ այդ սենսորների նպատակը ավելի հարմար է խոչընդոտներից խուսափելու և ոչ իրական հեռավորության չափում:

Այդ մոտեցումը թվում էր բարդ և ոչ այնքան օգուտ, երբ մենք կարող ենք օգտագործել ավելի լավ ToF (թռիչքի ժամանակ) տվիչներ (ավելի ուշ) այդ նպատակով (SLAM):

Մեկ մոտեցում, որը մենք կարող ենք օգտագործել, այն է, որ ինչ-որ կերպ հետևենք, թե ինչ շարժման հրամաններ են տրվել վերջին X վայրկյանների ընթացքում կամ հրամաններ:

Որպես օրինակ ՝ ասեք, որ ռոբոտը խրված է անկյունագծով կանգնած անկյունով: Սենսորների մի շարք ասում են, որ այն շատ մոտ է մեկ պատին, ուստի պտտվում է, բայց հետո սենսորների մյուս հավաքածուն ասում է, որ այն չափազանց մոտ է մյուս պատին: Այն ավարտվում է պարզապես կրկնելով կողք կողքի օրինակը:

Վերոնշյալ օրինակը ընդամենը մեկ շատ պարզ դեպք է: Որոշ խելացիներ ավելացնելը կարող է պարզապես բարձրացնել կրկնվող օրինակը նոր մակարդակի, բայց ռոբոտը մնում է անկյունում խրված:

Օրինակ ՝ տեղում պտտվելու փոխարեն, այն պտտվում է մեկ ուղղությամբ, կատարում է ակնթարթային հակադարձում (որն այնուհետև մաքրում է կրիտիկական հեռավորության ցուցումները), և նույնիսկ եթե պտտվում է մյուս ուղղությամբ, այնուամենայնիվ որոշակի անկյունով առաջ է գնում դեպի անկյունը: կրկնելով էապես նույն բանի ավելի բարդ ակնարկը:

Դա նշանակում է, որ մենք իսկապես կարող ենք օգտագործել հրամանների պատմությունը և դիտել, թե ինչպես օգտագործել և օգտագործել այդ տեղեկատվությունը:

Ես կարող եմ մտածել շարժման պատմությունից օգտվելու երկու շատ հիմնական (տարրական) եղանակների մասին:

  • վերջին X թվով շարժումների համար դրանք համապատասխանու՞մ են Y- ի նախշին: Մի պարզ օրինակ կարող է լինել (և դա տեղի ունեցավ) «ԱՌԱARD, ԱՆՎԱՐ, ԱՌԱARD, ԱՆՎԱՐ,…..»: Այսպիսով, կա այս համապատասխան գործառույթը, որը վերադարձնում է կամ TRUE (օրինակը գտնված է) կամ FALSE (չի գտնվել): Եթե TRUE- ն է, ծրագրի նավիգացիոն հատվածում, փորձեք շարժման այլ հաջորդականություններ:
  • վերջին X թվով շարժումների համար կա՞ ընդհանուր կամ զուտ առաջ շարժում: Ինչպե՞ս կարելի է որոշել, թե որն է իրական առաջ շարժումը: Դե.. մեկ հեշտ համեմատություն այն է, որ վերջին X շարժումների դեպքում «ԱՌԱARD» -ը տեղի է ունենում ավելի շատ, քան «ԱՆՎԱՐ»: Բայց պարտադիր չէ, որ դա միակը լինի: Ինչ կասեք այս մասին. Այդ դեպքում ռոբոտը պետք է ճիշտ շրջադարձեր կատարի անկյունից դուրս գալու համար, կամ քանի որ այն պատին անկյան տակ է մոտեցել, դա կարելի է համարել իրական առաջընթաց: Մյուս կողմից, «ՁԱT, ԱIGH, ՁԱEF, Ա …Ի… …» չի կարող համարվել իրական առաջընթաց: Այսպիսով, եթե «IGHԻՇՏ» -ը տեղի է ունենում ավելի շատ, քան «ԱՌԱ», կամ «ՁԱԽԸ ավելի շատ է, քան« IGHԻՇՏ »-ը, ապա դա կարող է իրական առաջընթաց լինել:

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

Քայլ 6: Վերջնական մտքեր, հաջորդ փուլ…

Հուսով եմ, որ այս Instructable- ը որոշ գաղափարներ տվեց:

Լրացուցիչ սենսորների ավելացումը որոշ առավելություններ և մարտահրավերներ է բերում:

Վերոնշյալ դեպքում բոլոր ձայնային սենսորները լավ էին աշխատում, և դա բավականին ուղիղ էր ծրագրային ապահովման հետ:

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

Եվ այսպես, մարտահրավերն այն էր, թե ինչ անել, եթե ակուստիկ սենսորը մեզ ասում է, որ խոչընդոտ չկա, բայց IR սենսորն է:

Առայժմ, փորձարկումներից և սխալներից հետո, ամեն ինչ ավարտվեց այս առաջնահերթությամբ.

  1. ուժեղացուցիչի զգացում
  2. IR- զգայունացում
  3. ակուստիկ-զգայուն

Եվ այն, ինչ ես արեցի, այն էր, որ նվազեցնեի IR սենսորների զգայունությունը, այնպես որ նրանք կարող էին հայտնաբերել միայն շատ մոտ օբյեկտներ (օրինակ ՝ աթոռի մոտալուտ ոտքերը)

Մինչ այժմ կարիք չի եղել ինչ-որ թելերով կամ ընդհատումներով աշխատող ծրագրեր կատարել, չնայած երբեմն հանդիպում եմ Raspberry Pi- ի և Roboclaw շարժիչ-վերահսկիչի միջև վերահսկողության կորստի (սերիական հաղորդակցության կորուստ):

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

Ի վերջո, ամենայն հավանականությամբ, անհրաժեշտ կլինի բազմաշերտ թելեր:

Հաջորդ քայլերը…

Շնորհակալություն այսքան հեռու հասնելու համար:

Ես ձեռք եմ բերել VL53L1X IR լազերային ToF սենսորներ (թռիչքի ժամանակ), ուստի դա, ամենայն հավանականությամբ, հաջորդ Instructable- ի թեման է ՝ սերվոյի հետ միասին:

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