Բովանդակություն:
- Պարագաներ
- Քայլ 1. Ազդանշանի ձեռքբերում
- Քայլ 2: Պարզեցված ազդանշան
- Քայլ 3: Ազդանշանի մշակում
- Քայլ 4: Սխեմաներ
- Քայլ 5. EMG տվիչների տեղադրում
- Քայլ 6: Կոդ
- Քայլ 7: Արդյունքներ
Video: Ռոբոտային ձեռքի կառավարում EMG- ով `7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս նախագիծը ցույց է տալիս ռոբոտային ձեռքի վերահսկում (օգտագործելով բացօթյա ձեռքը in Moov) 3 openource uECG սարքերով, որոնք օգտագործվում են մկանների գործունեության չափման և մշակման համար (էլեկտրոմիոգրաֆիա, ԷՄԳ): Մեր թիմը երկար պատմություն ունի ձեռքերով և նրանց վերահսկողությամբ, և սա լավ քայլ է ճիշտ ուղղությամբ:)
Պարագաներ
3x uECG սարքեր 1x Arduino (ես օգտագործում եմ Nano- ն, բայց մյուսները կաշխատեն) 1x nRF24 մոդուլ (ցանկացած ընդհանուր տարբերակ) 1x PCA9685 կամ նման սերվերի վարորդ 1x inMoov hand5x մեծ սպասարկում (տե՛ս inMoov հրահանգները համատեղելի տեսակների համար) 1x 5V սնուցման սարք, որը կարող է 5 Ա կամ ավելի ընթացիկ
Քայլ 1. Ազդանշանի ձեռքբերում
Վերահսկումը հիմնված է EMG- ի վրա `մկանների էլեկտրական ակտիվության վրա: EMG ազդանշանը ստացվում է uECG- ի երեք սարքերով (գիտեմ, ենթադրվում է, որ դա ԷՍԳ մոնիտոր է, բայց քանի որ այն հիմնված է ընդհանուր ADC- ի վրա, այն կարող է չափել ցանկացած բիոազդանշաններ `ներառյալ EMG): ԷՄԳ-ի մշակման համար uECG- ն ունի հատուկ ռեժիմ, որում այն ուղարկում է 32-բեն սպեկտրի տվյալներ և «մկանային պատուհան» միջին (միջին սպեկտրալ ինտենսիվությունը 75-ից 440 Հց-ի միջև): Սպեկտրի պատկերները նման են կապույտ-կանաչ նախշերի, որոնք փոխվում են ժամանակի ընթացքում: Այստեղ հաճախականությունը գտնվում է ուղղահայաց առանցքի վրա (3 սյուժեներից յուրաքանչյուրի վրա, ներքևում ՝ ցածր հաճախականություն, վերևում ՝ բարձր ՝ 0 -ից մինչև 488 Հց ~ 15 Հց քայլերով), ժամանակը հորիզոնական է (հին տվյալները ՝ ձախից այստեղ էկրանին մոտ 10 վայրկյան է): Ինտենսիվությունը կոդավորված է գույնով `կապույտ` ցածր, կանաչ `միջին, դեղին` բարձր, կարմիր `նույնիսկ ավելի բարձր:
Քայլ 2: Պարզեցված ազդանշան
Ureեստերի հուսալի ճանաչման համար պահանջվում է այս սպեկտրալ պատկերների համապատասխան համակարգչային մշակում: Բայց ռոբոտային ձեռքի մատների պարզ ակտիվացման համար բավական է պարզապես օգտագործել միջինը միջին արժեքը 3 ալիքների վրա. Այս արժեքները շատ ավելի պարզ տեսք ունեն. Ես կցել եմ Arduino- ի Serial Plotter- ի հում արժեքների գծապատկեր: Կարմիր, կանաչ, կապույտ գծապատկերները հում արժեքներ են 3 uECG սարքերից ՝ մկանների տարբեր խմբերի վրա, երբ ես համապատասխանաբար սեղմում եմ բութ, մատանի և միջին մատները: Մեր աչքի համար այս դեպքերը ակնհայտորեն տարբերվում են, բայց մենք պետք է ինչ -որ կերպ այդ արժեքները վերածենք «մատների միավորի», որպեսզի ծրագիրը կարողանա արժեքներ մատուցել սպասարկողներին: Խնդիրն այն է, որ մկանային խմբերի ազդանշանները «խառնվում են». 1 -ին և 3 -րդ դեպքում կապույտ ազդանշանի ինտենսիվությունը մոտավորապես նույնն է, բայց կարմիրն ու կանաչը տարբեր են: Երկրորդ և երրորդ դեպքերում կանաչ ազդանշանները նույնն են, բայց կապույտն ու կարմիրը տարբեր են:
Քայլ 3: Ազդանշանի մշակում
Այս ազդանշանները «խառնելու» համար ես օգտագործել եմ համեմատաբար պարզ բանաձև.
S0 = V0^2 / ((V1 * a0 +b0) (V2 * c0 +d0)), որտեղ S0 - հաշիվ 0 ալիքի համար, V0, V1, V2 - 0, 1, 2 և a ալիքների հում արժեքներ, b, c, d - գործակիցներ, որոնք ես ձեռքով ճշգրտել եմ (a և c- ը 0.3 -ից 2.0 -ի, b- ն և d- ի 15 -ը և 20 -ն են, դուք, այնուամենայնիվ, պետք է դրանք փոխեք ՝ ձեր սենսորների որոշակի տեղակայման համար ամեն դեպքում հարմարվելու համար): Նույն հաշիվը հաշվարկվել է 1 -ին և 2 -րդ ալիքների համար: Դրանից հետո գծապատկերները գրեթե կատարյալ տարանջատվեցին: Նույն ժեստերի համար (այս անգամ մատանի, միջնամատ, ապա բութ մատ) ազդանշանները պարզ են և կարող են հեշտությամբ թարգմանվել սերվո շարժումների ՝ պարզապես շեմի հետ համեմատելով
Քայլ 4: Սխեմաներ
Սխեմաները բավականին պարզ են, ձեզ հարկավոր են միայն nRF24 մոդուլ, PCA9685 կամ նման I2C PWM վերահսկիչ և բարձր ամպ 5 Վ էլեկտրամատակարարում, որը բավական կլինի միանգամից այս բոլոր սերվերը տեղափոխելու համար (ուստի կայուն աշխատանքի համար պահանջվում է առնվազն 5 Ա անվանական հզորություն):
Միացումների ցանկ. NRF24 կապ 1 (GND) - Arduino- ի GNDnRF24 կապ 2 (Vcc) - Arduino- ի 3.3vnRF24 փին 3 (Chip Enable) - Arduino's D9nRF24 pin 4 (SPI: CS) - Arduino's D8nRF24 pin 5 (SPI: SCK) - Arduino's D13nRF24 pin 6 (SPI: MOSI) - Arduino's D11nRF24 pin 7 (SPI: MISO) - Arduino's D12PCA9685 SDA - Arduino's A4PCA9685 SCL - Arduino's A5PCA9685 Vcc - Arduino's 5vPCA9685 GndP998585 - GDP998585 - A5P998585 - A5P998585 PCA ալիքներ 0-4, իմ նշման բութ մատում `ալիք 0, ցուցամատ` ալիք 1 և այլն:
Քայլ 5. EMG տվիչների տեղադրում
Խելամիտ ընթերցումներ ստանալու համար կարևոր է uECG սարքերը, որոնք գրանցում են մկանների ակտիվությունը, ճիշտ վայրերում: Թեև այստեղ շատ տարբեր տարբերակներ են հնարավոր, յուրաքանչյուրը պահանջում է ազդանշանի մշակման տարբեր մոտեցում, ուստի իմ ծածկագրով ավելի լավ է օգտագործել իմ լուսանկարներին նման տեղադրություն: Դա կարող է հակաինտուիտիվ լինել, բայց բութ մատի ազդանշանն ավելի լավ է երևում թևի հակառակ կողմում, այնպես որ սենսորներից մեկը տեղադրված է այնտեղ, և բոլորը տեղադրված են արմունկի մոտ (մկաններն իրենց մարմնի մեծ մասն ունեն այդ հատվածում, բայց դուք ուզում եք ստուգել, թե կոնկրետ որտեղ են ձերոնք գտնվում. անհատական բավականին մեծ տարբերություն կա)
Քայլ 6: Կոդ
Մինչև հիմնական ծրագիրը գործարկելը, ձեզ հարկավոր է պարզել ձեր uECG- ի առանձին սարքերի միավորների ID- ները (դա արվում է 101 -րդ տողը չմեկնաբանելով և սարքերը մեկ առ մեկ միացնելով, ի միջի այլոց կտեսնեք ընթացիկ սարքի ID- ն) և դրանք լրացնելով unit_ids զանգված (տող 37): Բացի դրանից, դուք ցանկանում եք խաղալ բանաձևի գործակիցներով (տողեր 129-131) և ստուգել, թե ինչ տեսք ունի այն սերիական գծագրիչի վրա ՝ նախքան այն ռոբոտային ձեռքին ամրացնելը:
Քայլ 7: Արդյունքներ
Մոտ 2 ժամ տևած որոշ փորձերի արդյունքում ես կարողացա բավականին հուսալի վիրահատություն կատարել (տեսանյութը ցույց է տալիս տիպիկ դեպք): Այն իրեն անթերի է պահում և այս մշակումով կարող է ճանաչել միայն բաց և փակ մատները (և նույնիսկ 5 -ից ոչ մեկը, այն հայտնաբերում է ընդամենը 3 մկանային խումբ ՝ բութ, ցուցիչ և միջին միասին, մատանի և փոքր մատները միասին): Բայց ազդանշանը վերլուծող «AI» - ն այստեղ վերցնում է 3 տող կոդ և օգտագործում է մեկ արժեք յուրաքանչյուր ալիքից: Կարծում եմ, որ շատ ավելին կարելի է անել ՝ համակարգչի կամ սմարթֆոնի վրա տեղադրված 32-աղբանոց սպեկտրալ պատկերները վերլուծելով: Բացի այդ, այս տարբերակը օգտագործում է ընդամենը 3 uECG սարք (EMG ալիքներ): Ավելի շատ ալիքներով պետք է հնարավոր լինի ճանաչել իսկապես բարդ նախշեր, բայց դե, սա է ծրագրի նպատակը, ինչ -որ ելակետ տրամադրել բոլոր ցանկացողներին:) Ձեռքերի կառավարումը հաստատ նման համակարգի միակ կիրառումը չէ:
Խորհուրդ ենք տալիս:
Ռոբոտի ձեռքի կառավարում TLV493D- ով, Joystick And, Arduino- ով ՝ 3 քայլ
Robot Arm- ը TLV493D, Joystick And, Arduino- ով. Ձեր ռոբոտի այլընտրանքային վերահսկիչ `TLV493D սենսորով, մագնիսական տվիչ` 3 աստիճանի ազատությամբ (x, y, z) դրանցով կարող եք վերահսկել ձեր նոր նախագծերը ձեր I2C հաղորդակցության միջոցով: միկրոկառավարիչներ և էլեկտրոնային տախտակ, որոնք Bast P
Խելացի ռոբոտային ձեռքի ժամանումը. 3 քայլ
Խելացի ռոբոտային ձեռքի ժամանումը. Հյուրերի հետ ձեռք սեղմելը, բաներ խոսելը, ուտելը և այլն: Իմ նշած որոշ հատուկ մարդիկ հաշմանդամներ են, ովքեր կորցրել են
ESP8266 RGB LED STRIP WIFI Կառավարում - NODEMCU Որպես IR հեռակառավարիչ ՝ առաջնորդվող ժապավենի համար, որը վերահսկվում է WiFi- ով - RGB LED STRIP սմարթֆոնի կառավարում ՝ 4 քայլ
ESP8266 RGB LED STRIP WIFI Կառավարում | NODEMCU Որպես IR հեռակառավարիչ ՝ առաջնորդվող ժապավենի համար, որը վերահսկվում է WiFi- ով | RGB LED STRIP սմարթֆոնի վերահսկում. Բարև տղերք, այս ձեռնարկում մենք կսովորենք, թե ինչպես օգտագործել nodemcu կամ esp8266 որպես IR հեռակառավարիչ ՝ RGB LED ժապավենը կառավարելու համար, և Nodemcu- ն սմարթֆոնի միջոցով կառավարվելու է wifi- ով: Այսպիսով, հիմնականում դուք կարող եք վերահսկել RGB LED STRIP- ը ձեր սմարթֆոնի միջոցով
Պարզ ռոբոտային թև, որը վերահսկվում է ձեռքի իրական շարժման վրա. 7 քայլ (նկարներով)
Պարզ ռոբոտային թև, որը վերահսկվում է ձեռքի իրական շարժման վրա. Սա շատ պարզ մեկ DOF ռոբոտային թև է սկսնակների համար: Ձեռքը վերահսկվում է Arduino- ով: Այն միացված է սենսորով, որը ամրացված է օպերատորի ձեռքին: Հետևաբար, օպերատորը կարող է վերահսկել թևի արմունկը ՝ ծալելով սեփական արմունկի շարժումը: …ամը
Bluetooth հեռակառավարվող ռոբոտային ձեռքի ափ ՝ 4 քայլ
Bluetooth- ի հեռակառավարվող ռոբոտային ձեռքի ափ Եթե ցանկանում եք, այն կարող եք հետագայում զարգացնել ՝ դառնալով մի ամբողջ ռոբոտացված ձեռք: