Përmbajtje:

Kontrolli robotik i duarve me EMG: 7 hapa
Kontrolli robotik i duarve me EMG: 7 hapa

Video: Kontrolli robotik i duarve me EMG: 7 hapa

Video: Kontrolli robotik i duarve me EMG: 7 hapa
Video: КАК НАСТРОИТЬ L4D2 2024, Korrik
Anonim
Image
Image
Marrja e Sinjalit
Marrja e Sinjalit

Ky projekt tregon kontrollin e dorës robotike (duke përdorur dorën me burim të hapur në Moov) me 3 pajisje uECG me burim të hapur të përdorur për matjen dhe përpunimin e aktivitetit të muskujve (elektromiogram, EMG). Ekipi ynë ka një histori të gjatë me duart dhe kontrollin e tyre, dhe ky është një hap i mirë në drejtimin e duhur:)

Furnizimet

Pajisje 3x uECG1x Arduino (Unë jam duke përdorur Nano por shumica e të tjerëve do të punonin) 1x modul nRF24 (çdo gjë e përgjithshme do të bënte) 1x PCA9685 ose shofer servo të ngjashëm1x inMoov hand5x servos të mëdhenj (shih udhëzimet inMoov për llojet e pajtueshme) 1x 5V energji të aftë 5A ose më shumë aktuale

Hapi 1: Marrja e sinjalit

Kontrolli bazohet në EMG - aktivitetin elektrik të muskujve. Sinjali EMG merret nga tre pajisje uECG (e di, supozohet të jetë një monitor EKG, por meqenëse bazohet në një ADC gjenerike, ai mund të masë çdo biosignale - përfshirë EMG). Për përpunimin e EMG, uECG ka një mënyrë të veçantë në të cilën dërgon të dhëna të spektrit 32-kosh, dhe mesatare "dritare muskulore" (intensiteti mesatar spektral midis 75 dhe 440 Hz). Imazhet e spektrit duken si modele blu-jeshile që ndryshojnë me kalimin e kohës. Këtu frekuenca është në një aks vertikal (në secilën prej 3 komploteve, frekuencë e ulët në fund, e lartë në krye - nga 0 në 488 Hz me hapa ~ 15 Hz), koha është në një horizontale (të dhënat e vjetra në të majtë në përgjithësi këtu është rreth 10 sekonda në ekran). Intensiteti është i koduar me ngjyrë: blu - e ulët, jeshile - e mesme, e verdhë - e lartë, e kuqe - edhe më e lartë.

Hapi 2: Sinjal i thjeshtuar

Sinjal i thjeshtuar
Sinjal i thjeshtuar

Për një njohje të besueshme të gjesteve, kërkohet një përpunim i duhur i PC i këtyre imazheve spektrale. Por për aktivizimin e thjeshtë të gishtërinjve robotikë të dorës, mjafton të përdorni vetëm vlerën mesatare në 3 kanale - uECG e siguron atë në mënyrë të përshtatshme në disa bajt pako, në mënyrë që skica Arduino ta analizojë atë. Këto vlera duken shumë më të thjeshta - kam bashkangjitur një tabelë të vlerave të papërpunuara nga Komplotuesi Serial i Arduino. Tabelat e kuqe, jeshile, blu janë vlera të papërpunuara nga 3 pajisje uECG në grupe të ndryshme të muskujve kur unë shtrëngoj gishtin e madh, unazën dhe gishtat e mesit në mënyrë korresponduese. Për syrin tonë, këto raste janë qartë të ndryshme, por ne duhet t'i kthejmë ato vlera në "rezultatin e gishtit" disi, në mënyrë që një program të mund të nxjerrë vlera për servot e dorës. Problemi është se sinjalet nga grupet e muskujve janë "të përzier": në rastin e parë dhe të tretë intensiteti i sinjalit blu është pothuajse i njëjtë - por e kuqja dhe jeshilja janë të ndryshme. Në rastet 2 dhe 3 sinjalet jeshile janë të njëjta - por blu dhe të kuqe janë të ndryshme.

Hapi 3: Përpunimi i sinjalit

Përpunimi i sinjalit
Përpunimi i sinjalit

Për të "përzier" këto sinjale, kam përdorur një formulë relativisht të thjeshtë:

S0 = V0^2 / ((V1 * a0 +b0) (V2 * c0 +d0)), ku S0 - rezultati për kanalin 0, V0, V1, V2 - vlerat e papërpunuara për kanalet 0, 1, 2 dhe a, b, c, d - koeficientët të cilët i kam rregulluar me dorë (a dhe c ishin nga 0.3 në 2.0, b dhe d ishin 15 dhe 20, ju do të keni nevojë t'i ndryshoni ato për t'i rregulluar gjithsesi për vendosjen e veçantë të sensorit tuaj). E njëjta pikë u llogarit për kanalet 1 dhe 2. Pas kësaj, tabelat u ndanë pothuajse në mënyrë perfekte. Për të njëjtat gjeste (këtë herë gishti unazor, mesi dhe pastaj gishti i madh) sinjalet janë të qarta dhe mund të përkthehen lehtësisht në lëvizje servo vetëm duke u krahasuar me pragun

Hapi 4: Skemat

Skematike
Skematike

Skemat janë mjaft të thjeshta, ju nevojitet vetëm moduli nRF24, PCA9685 ose kontrollues i ngjashëm I2C PWM, dhe furnizim me energji të lartë me amp 5V që do të ishte e mjaftueshme për të lëvizur të gjithë këto servos menjëherë (kështu që kërkon të paktën 5A fuqi të vlerësuar për funksionim të qëndrueshëm).

Lista e lidhjeve: nRF24 pin 1 (GND) - Arduino's GNDnRF24 pin 2 (Vcc) - Arduino's 3.3vnRF24 pin 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 GNDPCA9685 GNDPCA9685 Kanalet PCA 0-4, në gishtin tim të madh të shënimit - kanali 0, gishti tregues - kanali 1 etj.

Hapi 5: Vendosja e sensorëve EMG

Vendosja e sensorëve EMG
Vendosja e sensorëve EMG
Vendosja e sensorëve EMG
Vendosja e sensorëve EMG

Për të marrë lexime të arsyeshme, është e rëndësishme të vendosni pajisjet uECG, të cilat regjistrojnë aktivitetin e muskujve, në vendet e duhura. Ndërsa shumë opsione të ndryshme janë të mundshme këtu, secila kërkon qasje të ndryshme të përpunimit të sinjalit - kështu që me kodin tim është më mirë të përdorni vendosje të ngjashme me fotot e mia. Mund të jetë kundër -intuitive, por sinjali i muskujve të gishtit të madh është më mirë i dukshëm në anën e kundërt të krahut, kështu që një nga sensorët është vendosur atje, dhe të gjithë ata janë vendosur afër bërrylit (muskujt kanë pjesën më të madhe të trupit të tyre në atë zonë, por ju doni të kontrolloni se ku ndodhen saktësisht tuajat - ka një ndryshim mjaft të madh individual)

Hapi 6: Kodi

Para se të ekzekutoni programin kryesor, do t'ju duhet të zbuloni ID -të e njësive të pajisjeve tuaja të veçanta uECG (kjo bëhet duke mos komentuar rreshtin 101 dhe duke i ndezur pajisjet një nga një, ndër të tjera do të shihni ID -në e pajisjes aktuale) dhe t'i plotësoni ato vargu unit_ids (rreshti 37). Përveç kësaj, ju doni të luani me koeficientët e formulës (rreshtat 129-131) dhe të kontrolloni se si duket në komplotuesin serik para se ta lidhni me dorën robotike.

Hapi 7: Rezultatet

Me disa eksperimente që zgjatën rreth 2 orë, unë isha në gjendje të bëja një operacion mjaft të besueshëm (video tregon një rast tipik). Ai nuk sillet në mënyrë perfekte dhe me këtë përpunim mund të njohë vetëm gishtat e hapur dhe të mbyllur (dhe as secili nga 5, ai zbulon vetëm 3 grupe muskujsh: gishtin e madh, indeksin dhe mesin së bashku, unazën dhe gishtat e vegjël së bashku). Por "AI" që analizon sinjalin merr 3 rreshta kod këtu dhe përdor një vlerë të vetme nga secili kanal. Unë besoj se më shumë mund të bëhet duke analizuar imazhe spektrale 32-bin në PC ose smartphone. Gjithashtu, ky version përdor vetëm 3 pajisje uECG (kanale EMG). Me më shumë kanale duhet të jetë e mundur të njihen modele vërtet komplekse - por mirë, kjo është pika e projektit, për të siguruar një pikënisje për këdo që është i interesuar:) Kontrolli i dorës nuk është padyshim aplikimi i vetëm për një sistem të tillë.

Recommended: