Përmbajtje:
- Furnizimet
- Hapi 1: Marrja e sinjalit
- Hapi 2: Sinjal i thjeshtuar
- Hapi 3: Përpunimi i sinjalit
- Hapi 4: Skemat
- Hapi 5: Vendosja e sensorëve EMG
- Hapi 6: Kodi
- Hapi 7: Rezultatet
Video: Kontrolli robotik i duarve me EMG: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
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
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ë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
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
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:
Dezinfektues automatik i duarve: 8 hapa
Dezinfektues automatik i duarve: Pandemia COVID-19 është bërë diçka që publiku e ka dëgjuar shumë shpesh gjatë vitit 2020. Çdo qytetar që dëgjon fjalën "COVID-19" do të mendojë menjëherë për fjalën "Rrezikshme", "Vdekjeprurëse", "Mbani Pastër”, Dhe fjalë të tjera. Ky COVID-19 gjithashtu ka
Dispenser DIY Automatik i Dezinfektuesit të Duarve: 6 Hapa
Dispenser DIY Automatik për Sanitizuesin e Duarve: Në këtë projekt, ne do të ndërtojmë një Dispenser Auto Dezinfektues të Duarve. Ky projekt do të përdorë Arduino, Sensor tejzanor, pompë uji dhe Dezinfektues të duarve. Një sensor tejzanor përdoret për të kontrolluar praninë e duarve nën daljen e makinës dezinfektuese.
Qarku i shpërndarësit të dezinfektuesit të duarve/DIY [Jo Kontakt]: 10 hapa
Qarku i shpërndarësit të dezinfektuesit të duarve/DIY [Jo Kontakt]: Nga Hesam Moshiri, [email protected] Karakteristika Qëndrueshmëri e lartë dhe mungesë ndjeshmërie ndaj dritës së ambientit Rrethimi akrilik (pleksiglas) i prerë me lazer Kapaciteti i kontrollit të rrjedhës me kosto efektive të dezinfektuesit të dorës /alkooli (efikasiteti)
Stacion i thjeshtë për bashkim /ndihmë të duarve: 4 hapa
Stacioni i thjeshtë i bashkimit /ndihmës së duarve: Këtu është marrëveshja. Ju shkuat duke shfletuar uebin për të mësuar se si të bëni një stacion saldimi /ndihme të duarve. Dhe ju zbritët në këtë sit. Faqja më e mirë e krijuar nga përdoruesi DIY në shfletuesin planet. Tani ju sugjeroj të kërkoni në mënyrë specifike në faqen e udhëzimeve për bashkim
Kontrolli i Ndriçimit Kontrolli LED i bazuar në PWM duke përdorur butona Push, Raspberry Pi dhe Scratch: 8 hapa (me fotografi)
Kontrolli i Ndriçimit PWM Bazuar në Kontrollin LED duke përdorur Butonat Push, Raspberry Pi dhe Scratch: Unë po përpiqesha të gjeja një mënyrë për të shpjeguar se si punonte PWM për studentët e mi, kështu që i vura vetes detyrën të përpiqesha të kontrolloja shkëlqimin e një LED duke përdorur 2 butona shtytës - një buton që rrit shkëlqimin e një LED dhe tjetri e zbeh atë. Për të përparuar