Բովանդակություն:
Video: Localino Tracks Roomba IRobot, Maps the Environment and Allows Control. 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
WiFi-UART կամուրջը կառուցելու համար կարող եք ստուգել այս github ռեպոն ՝
Այն գեղեցիկ հիմք ունի սկսելու համար: Համոզվեք, որ լավ եք կարդացել ուղեցույցը, քանի որ Roomba VCC- ն լիցքավորման ընթացքում ավելանում է մինչև 20 վոլտ: Եթե ավելացնեք ESP8266 առանց համապատասխան փոխարկիչի, որն աշխատում է նույնիսկ մինչև 20 Վ լարման և փոխարկվում է մինչև 3.3 Վ, ապա դուք կվնասեք ձեր ESP- ը:
Նաև համոզվեք, որ օգտագործեք մակարդակի փոխարկիչ (օրինակ ՝ լարման բաժանարարի միջոցով) 5V UART տրամաբանական մակարդակները Roomba- ից մինչև 3.3V, որոնք օգտագործվում են ESP- ի կողմից:
Մեկ այլ կարևոր մանրամասնություն այն է, որ կողպեքի փոխարկիչը պետք է ունենա 300 մԱ, բայց շատ ավելի քիչ կամ շատ ավելին (կախված բակի փոխարկիչից): Կան մի քանիսը, որոնք կարող են շատ ավելի ընթացիկ գործել, բայց առաջացնում են Roomba- ի խափանում, քանի որ գործարկման ընթացքում նրանք չափազանց մեծ հոսանք են քաշում: Մենք պարզեցինք, որ Pololu 3.3V, 300mA լարման կարգավորիչը (D24V3F3) աշխատում է պարզապես կատարյալ: Այլընտրանքային տարբերակները, որոնք ունեն 500mA / 600mA, հանգեցրել են Roomba UART ինտերֆեյսի խափանման: Հիմնականում Roomba- ն արձագանքում էր կոճակը սեղմելիս, բայց ոչ UART ինտերֆեյսի միջոցով հրահանգներին: Երբ դա տեղի ունեցավ, մենք ստիպված եղանք հեռացնել Roomba մարտկոցը և սառը վերագործարկել Roomba- ն ՝ կցված WiFi-UART կամուրջով: Այնուամենայնիվ, միայն D24V3F3- ը լավ աշխատեց:
Բացի այդ տեխնիկական մանրամասնությունից, դուք պետք է լրացուցիչ հրամաններ ավելացնեք ծածկագրին, որոնք կարող եք գտնել Roomba բաց ինտերֆեյսի բնութագրերում: Դուք պետք է ավելացնեք բոլոր հրամանները, որոնց կցանկանայիք արձագանքել ձեր roomba- ն (օրինակ ՝ հետընթաց, առաջ, արագություն և այլն):
օրինակներ arduino IDE- ում.
void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (գ); }
void goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }
void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print (գ); }
void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print (գ); }
եթե դուք գրում եք lua- ով, այն մի փոքր այլ տեսք ունի, ՁԱՅՆ շրջադարձի օրինակն այսպիսի տեսք կունենա.
եթե (_GET.pin == "ՁԱՅՆ") ապա տպել ('\ 137'); --VOR
tmr.delay (100);
տպել ('\ 00'); -Արագություն = 200 = 0x00C8 -> 0 և 200
tmr.delay (100);
տպել ('\ 200'); - Արագություն
tmr.delay (100);
տպել ('\ 254'); - Շառավիղ = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay (100);
տպել ('\ 12'); - Շրջվեք
վերջ
Համոզվեք, որ դուք պետք է շտկեք ձեր Roomba- ի բաց ինտերֆեյսի նկարագրությունը: Առկա է առնվազն երկու բաց ինտերֆեյսի բնութագիր:
Roomba 5xx շարքի համար ՝
Roomba 6xx շարքի համար ՝
Երբ դուք կառուցեք ձեր WiFi-UART կամուրջը և փորձարկեք ձեր կատարած մեծ քայլերը: Այս տեսանյութը ցույց է տալիս, որ կիրառումը և մոտեցումը գործում են: Մենք մի փոքր ծույլ էինք, վեբ ինտերֆեյսի վրա բացակայում են կառավարման մյուս բոլոր հրամանները ՝ առաջ, հետընթաց, արագություն, աջ, ձախ և այլն, բայց հրամանները կարող եք թողարկել http- ի միջոցով: Ինչևէ, դա պարզապես ապացույց է, որ Roomba- ի հեռակառավարման վահանակն աշխատում է հեշտ ապարատային և ծրագրային ապահովմամբ `օգտագործելով ESP8266- ը:
Այժմ, քանի որ կարող եք ձեր Roomba- ն հեռակա կարգով վերահսկել համակարգչի ծրագրից, միակ բանը, որ բացակայում է, ներքին տեղայնացումն է: Սա մեզ պետք է հետադարձ կապը փակելու համար, քանի որ մեր նպատակն էր ռոբոտին որոշակի ուղղությամբ տանել: Եկեք սա անենք:
Քայլ 3: Կարգավորեք ձեր ներքին տեղայնացման համակարգը
Հետադարձ կապը փակելու համար մենք օգտագործում ենք ներքին տեղայնացման համակարգ: Մենք դրա համար օգտագործում ենք Localino- ն: Localino համակարգը բաղկացած է «խարիսխներից» և «պիտակներից»: Խարիսխները տեղադրված են սենյակի ներսում հաստատված վայրերում և տեղադրում են շարժվող պիտակի դիրքը (որը տեղադրված է Roomba- ի վրա): Տեղադրության վերամշակումը կատարվում է ԱՀ ծրագրում: Դա մեծ առավելություն է, քանի որ դուք կարող եք նաև վերահսկել Roomba- ն նույն համակարգչից: Localinal կայքում առկա է անվճար աղբյուրի կոդ, գրված է python- ում և կա նաև իրական ժամանակի հոսք, որն առաջարկում է պիտակի XYZ կոորդինատները: Տվյալների հոսքը հասանելի է UDP ցանցի միջոցով, բայց կարող եք նաև ավելացնել MQTT կամ որևէ այլ շքեղ իրեր, որոնք ձեզ դուր են գալիս: Եթե գիտեք Python- ը, կան բազմաթիվ գրադարաններ, որոնք օգնում են ձեզ:
Այս տեսանյութում ցուցադրվում է Roomba- ի տեղայնացումը: Հետևաբար, մենք ունենք 4 խարիսխ, որոնք տեղադրված են սենյակում ֆիքսված վայրերում, որոնք թույլ են տալիս Roomba- ի եռաչափ դիրքավորում: Ընդհանուր առմամբ, մենք կպահանջենք ընդամենը 3 խարիսխ, քանի որ Roomba- ն, հավանաբար, չի շարժվի Z առանցքի վրա, հետևաբար 2D- ը բավարար կլինի: Բայց քանի որ խարիսխները տեղակայված են AC հիմնական խցանների բարձրության վրա (որը գտնվում է գետնից մոտ 30 սմ բարձրության վրա), երկկողմանի տեղադրումը կարող է փոքր սխալներ առաջացնել դիրքում: Այսպիսով, մենք որոշեցինք ունենալ 4 խարիսխ և տեղայնացնել 3D- ում:
Այժմ, երբ մենք ունենք Roomba- ի դիրքը, մեր հաջորդ քայլը նույն հավելվածից Roomba- ն վերահսկելն է: Գաղափարն այն է, որ օգտագործվի հիմնավոր ճշմարտությունը և գնահատվի կատարյալ մաքրման ուղի ռոբոտի համար: Localino- ի օգտագործմամբ մենք կարող ենք փակել հետադարձ կապը և վերահսկել ռոբոտը ԱՀ ծրագրից:
Կարգավորման դիտողություններ
Տեղադրեք Localino- ի խարիսխները սենյակի ներսում տարբեր x, y դիրքերից և դրանցից երեքը նույն z դիրքում: Տեղադրեք չորս խարիսխներից մեկը մեկ այլ սենյակում z տարբեր բարձրության վրա: Համոզվեք, որ լավ ծածկույթ կա Localino պիտակից, որը կշարժվի Roomba- ի հետ:
Բոլոր խարիսխներն ունեն եզակի խարիսխի ID, որը ցուցադրվում է Localino- ի շտրիխ կոդով և կարող է կարդալ «localino configuration» գործիքի միջոցով:
Նշեք X, Y, Z դիրքերը և խարիսխի ID- ները: Սա անհրաժեշտ է Localino Processor Software- ի համար և պետք է հարմարեցվի «localino.ini» ֆայլում ՝ «LocalinoProcessor» թղթապանակում:
Խարիսխները պետք է ուղղված լինեն վեր կամ վար Z- ով (երբ XY տարածքը ծածկված է), բայց ոչ ծածկված տարածքի ուղղությամբ: Խարիսխները չպետք է ծածկված լինեն մետաղով կամ որևէ այլ անլար ազդանշան խանգարող նյութով: Եթե դա հնարավոր չէ, ապա ցանկացած նյութի և խարիսխի միջև պետք է լինի նաև որոշակի օդային բաց:
… Ավելի շատ
Քայլ 4: Հարմարեցրեք Python ծրագրակազմը
մնացեք մեզ հետ. ավելի շատ է սպասվում:
Խորհուրդ ենք տալիս:
DIY Air Raid Siren with Resistors and Capacitors and Transistors: 6 քայլ (նկարներով)
DIY an Air Raid Siren with Resistors and Capacitors and Transistors: Այս մատչելի Air Raid Siren DIY նախագիծը հարմար է ինքնորոշման տատանումների սխեմայի հետազոտման համար, որը բաղկացած է պարզապես ռեզիստորներից և կոնդենսատորներից և տրանզիստորներից, որոնք կարող են հարստացնել ձեր գիտելիքները: Եվ դա հարմար է երեխաների համար ազգային պաշտպանական կրթության համար
IRobot Create-Mars Expedition Rover Mark I: 4 քայլ
IRobot Create-Mars Expedition Rover Mark I. Այս հրահանգը կսովորեցնի ձեզ, թե ինչպես ստեղծել iRobot Create- ը ՝ օգտագործելով MatLab կոդավորումը: Ձեր ռոբոտը հնարավորություն կունենա հանքանյութեր որոնել ՝ տարբերելով ձևերը, մանևրելու խորդուբորդ տեղանքը ժայռերի տվիչների միջոցով և կարողություն
Օգտագործելով IRobot Ստեղծեք հրամանի մոդուլը Linux- ով. 4 քայլ
Օգտագործելով IRobot Ստեղծեք հրամանի մոդուլը Linux- ով. Քանի որ iRobot- ը linux- ի օգտվողներին չի տրամադրել հրամանի մոդուլն օգտագործելու միջոց, ես ստիպված եղա ինքս դա պարզել: Մի վախեցեք, իրականում դա ամենևին էլ դժվար չէ: Մնում է մի քանի սցենար գործարկել: Եկեք սկսենք, այնպես չէ՞:
Ինչպես կատարել ինքնավար բասկետբոլ խաղացող ռոբոտ ՝ օգտագործելով IRobot- ը: Ստեղծեք հիմք. 7 քայլ (նկարներով)
Ինչպես դարձնել ինքնավար բասկետբոլ խաղացող ռոբոտ ՝ օգտագործելով IRobot- ը Ստեղծել որպես հիմք. Սա իմ մուտքն է iRobot Create մարտահրավերի: Ինձ համար այս ամբողջ գործընթացի ամենադժվարը որոշումն էր, թե ինչ է անելու ռոբոտը: Ես ուզում էի ցուցադրել Ստեղծման հիանալի հատկությունները ՝ միաժամանակ ավելացնելով ինչ -որ ռոբոյի տաղանդ: Իմ բոլոր
Light Up Bow from Saran Wrap and Hot Glue and LED Throwie: 6 քայլ (նկարներով)
Light Up Bow From Saran Wrap and Hot Glue and LED Throwie: Ստեղծեք գեղեցիկ, պայծառ, լուսավորված աղեղ ՝ սարանով, տաք սոսինձով և մի քանի փոփոխված լուսադիոդային թռիչքներ: Այո, դու ինձ լսեցիր … saran փաթեթավորեք և տաք սոսինձ: Դա կատարյալ տոնական արհեստ է մայրերի և դուստրերի համար միասին անելու, առանց ընդմիջման