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

Ռոբոտային ձեռքի կառավարում EMG- ով `7 քայլ
Ռոբոտային ձեռքի կառավարում EMG- ով `7 քայլ

Video: Ռոբոտային ձեռքի կառավարում EMG- ով `7 քայլ

Video: Ռոբոտային ձեռքի կառավարում EMG- ով `7 քայլ
Video: SERob3 ռոբոտի կառավարում ստեղնաշարով 2024, Նոյեմբեր
Anonim
Image
Image
Ազդանշանի ձեռքբերում
Ազդանշանի ձեռքբերում

Այս նախագիծը ցույց է տալիս ռոբոտային ձեռքի վերահսկում (օգտագործելով բացօթյա ձեռքը 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 տվիչների տեղադրում

EMG սենսորների տեղադրում
EMG սենսորների տեղադրում
EMG սենսորների տեղադրում
EMG սենսորների տեղադրում

Խելամիտ ընթերցումներ ստանալու համար կարևոր է uECG սարքերը, որոնք գրանցում են մկանների ակտիվությունը, ճիշտ վայրերում: Թեև այստեղ շատ տարբեր տարբերակներ են հնարավոր, յուրաքանչյուրը պահանջում է ազդանշանի մշակման տարբեր մոտեցում, ուստի իմ ծածկագրով ավելի լավ է օգտագործել իմ լուսանկարներին նման տեղադրություն: Դա կարող է հակաինտուիտիվ լինել, բայց բութ մատի ազդանշանն ավելի լավ է երևում թևի հակառակ կողմում, այնպես որ սենսորներից մեկը տեղադրված է այնտեղ, և բոլորը տեղադրված են արմունկի մոտ (մկաններն իրենց մարմնի մեծ մասն ունեն այդ հատվածում, բայց դուք ուզում եք ստուգել, թե կոնկրետ որտեղ են ձերոնք գտնվում. անհատական բավականին մեծ տարբերություն կա)

Քայլ 6: Կոդ

Մինչև հիմնական ծրագիրը գործարկելը, ձեզ հարկավոր է պարզել ձեր uECG- ի առանձին սարքերի միավորների ID- ները (դա արվում է 101 -րդ տողը չմեկնաբանելով և սարքերը մեկ առ մեկ միացնելով, ի միջի այլոց կտեսնեք ընթացիկ սարքի ID- ն) և դրանք լրացնելով unit_ids զանգված (տող 37): Բացի դրանից, դուք ցանկանում եք խաղալ բանաձևի գործակիցներով (տողեր 129-131) և ստուգել, թե ինչ տեսք ունի այն սերիական գծագրիչի վրա ՝ նախքան այն ռոբոտային ձեռքին ամրացնելը:

Քայլ 7: Արդյունքներ

Մոտ 2 ժամ տևած որոշ փորձերի արդյունքում ես կարողացա բավականին հուսալի վիրահատություն կատարել (տեսանյութը ցույց է տալիս տիպիկ դեպք): Այն իրեն անթերի է պահում և այս մշակումով կարող է ճանաչել միայն բաց և փակ մատները (և նույնիսկ 5 -ից ոչ մեկը, այն հայտնաբերում է ընդամենը 3 մկանային խումբ ՝ բութ, ցուցիչ և միջին միասին, մատանի և փոքր մատները միասին): Բայց ազդանշանը վերլուծող «AI» - ն այստեղ վերցնում է 3 տող կոդ և օգտագործում է մեկ արժեք յուրաքանչյուր ալիքից: Կարծում եմ, որ շատ ավելին կարելի է անել ՝ համակարգչի կամ սմարթֆոնի վրա տեղադրված 32-աղբանոց սպեկտրալ պատկերները վերլուծելով: Բացի այդ, այս տարբերակը օգտագործում է ընդամենը 3 uECG սարք (EMG ալիքներ): Ավելի շատ ալիքներով պետք է հնարավոր լինի ճանաչել իսկապես բարդ նախշեր, բայց դե, սա է ծրագրի նպատակը, ինչ -որ ելակետ տրամադրել բոլոր ցանկացողներին:) Ձեռքերի կառավարումը հաստատ նման համակարգի միակ կիրառումը չէ:

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