Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pagkuha ng Signal
- Hakbang 2: Pinasimple na Signal
- Hakbang 3: Pagpoproseso ng Signal
- Hakbang 4: Mga Skematika
- Hakbang 5: Pagkalalagay ng Mga Sensor ng EMG
- Hakbang 6: Code
- Hakbang 7: Mga Resulta
Video: Robotic Hand Control Sa EMG: 7 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Ipinapakita ng proyektong ito ang kontrol ng robotic hand (gamit ang opensource hand inMoov) na may 3 mga aparato ng opensource uECG na ginamit para sa pagsukat at pagproseso ng aktibidad ng kalamnan (electromyogram, EMG). Ang aming koponan ay may mahabang kwento sa mga kamay at sa kanilang kontrol, at ito ay isang mahusay na hakbang sa isang tamang direksyon:)
Mga gamit
3x uECG aparato1x Arduino (Gumagamit ako ng Nano ngunit ang karamihan sa iba ay gagana) 1x nRF24 module (anumang generic na gagawin) 1x PCA9685 o katulad na servo driver1x inMoov hand5x malaking servos (tingnan ang mga tagubilin saMoov para sa mga katugmang uri) 1x 5V power supply na may kakayahang 5A o higit pang kasalukuyang
Hakbang 1: Pagkuha ng Signal
Ang kontrol ay batay sa EMG - aktibidad ng kuryente ng mga kalamnan. Ang signal ng EMG ay nakuha ng tatlong mga aparato ng uECG (alam ko, ito ay dapat na isang monitor ng ECG, ngunit dahil batay ito sa isang pangkaraniwang ADC, masusukat nito ang anumang mga biosignal - kabilang ang EMG). Para sa pagpoproseso ng EMG, ang uECG ay may isang espesyal na mode kung saan nagpapadala ito ng 32-bin spectrum data, at average na "window ng kalamnan" (average na spectral intensity sa pagitan ng 75 at 440 Hz). Ang mga imahe ng spectrum ay mukhang asul-berdeng mga pattern na nagbabago sa paglipas ng panahon. Narito ang dalas ay nasa isang patayong axis (sa bawat isa sa 3 mga lagay ng lupa, mababang dalas sa ilalim, mataas sa tuktok - mula 0 hanggang 488 Hz na may ~ 15 Hz na mga hakbang), ang oras ay nasa isang pahalang (lumang data sa kaliwa sa pangkalahatan dito ay tungkol sa 10 segundo sa screen). Ang intensidad ay naka-encode ng kulay: asul - mababa, berde - daluyan, dilaw - mataas, pula - kahit na mas mataas.
Hakbang 2: Pinasimple na Signal
Para sa isang maaasahang pagkilala sa kilos, kinakailangan ng tamang pagproseso ng PC ng mga spectral na imahe. Ngunit para sa simpleng pag-aktibo ng mga robotic na daliri ng kamay, sapat na itong gamitin lamang ang average na halaga sa 3 mga channel - maginhawang ibibigay ito ng uECG sa ilang mga byte ng packet upang ma-parse ito ng Arduino sketch. Ang mga halagang ito ay mukhang mas simple - Nag-attach ako ng isang tsart ng mga hilaw na halaga mula sa Serial Plotter ng Arduino. Ang pula, berde, asul na mga tsart ay hilaw na halaga mula sa 3 mga aparato ng uECG sa iba't ibang mga grupo ng kalamnan kapag pinipiga ko ang hinlalaki, singsing at gitnang mga daliri nang naaayon. Para sa aming mata ang mga kasong ito ay malinaw na magkakaiba, ngunit kailangan naming buksan ang mga halagang iyon sa "marka ng daliri" sa paanuman upang ang isang programa ay maaaring maglabas ng mga halaga sa mga servo ng kamay. Ang problema ay, ang mga signal mula sa mga pangkat ng kalamnan ay "halo-halong": sa ika-1 at ika-3 na kaso ang asul na signal intensity ay halos pareho - ngunit ang pula at berde ay magkakaiba. Sa ika-2 at ika-3 mga kaso ang mga berdeng signal ay pareho - ngunit ang asul at pula ay magkakaiba.
Hakbang 3: Pagpoproseso ng Signal
Upang "ma -mixmix" ang mga signal na ito, gumamit ako ng medyo simpleng formula:
S0 = V0 ^ 2 / ((V1 * a0 + b0) (V2 * c0 + d0)), kung saan ang S0 - iskor para sa channel 0, V0, V1, V2 - mga hilaw na halaga para sa mga channel 0, 1, 2, at a, b, c, d - mga coefficients na kung saan ay inayos ko nang manu-mano (a at c ay mula sa 0.3 hanggang 2.0, b at d ay 15 at 20, kakailanganin mong baguhin ang mga ito upang maiayos para sa iyong partikular na pagkakalagay ng sensor). Ang parehong marka ay kinakalkula para sa mga channel 1 at 2. Pagkatapos nito, ang mga tsart ay halos perpektong pinaghiwalay. Para sa parehong mga galaw (oras na ito singsing daliri, gitna, at pagkatapos ay hinlalaki) mga signal ay malinaw at maaaring madaling isalin sa mga paggalaw ng servo sa pamamagitan lamang ng paghahambing sa threshold
Hakbang 4: Mga Skematika
Napakaliit ng schema, kailangan mo lamang ng nRF24 module, PCA9685 o katulad na I2C PWM controller, at mataas na suplay ng kuryente na 5V na sapat upang ilipat ang lahat ng mga servos na ito nang sabay-sabay (kaya nangangailangan ito ng hindi bababa sa 5A na na-rate na lakas para sa matatag na operasyon).
Listahan ng mga koneksyon: 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) - Ar12ino's D12PCA9685 SDA - Arduino's A4PCA9685 SCL - Arduino's A5PCA9685 Vcc - Arduino's 5vPCA9685 GNN - + Arduino's GV - Arduino's Ang mga channel ng PCA 0-4, sa aking hinlalaki na notasyon - channel 0, hintuturo - channel 1 atbp.
Hakbang 5: Pagkalalagay ng Mga Sensor ng EMG
Upang makakuha ng makatuwirang pagbabasa, mahalagang maglagay ng mga uECG device, na nagtatala ng aktibidad ng kalamnan, sa mga tamang lugar. Habang maraming iba't ibang mga pagpipilian ang posible dito, ang bawat isa ay nangangailangan ng iba't ibang diskarte sa pagpoproseso ng signal - kaya sa aking code mas mainam na gumamit ng pagkakalagay na katulad ng aking mga larawan. Maaaring ito ay kontra-intuitive, ngunit ang signal ng thumb muscle ay mas nakikita sa tapat ng braso., kaya ang isa sa mga sensor ay inilalagay doon, at lahat ng mga ito ay inilalagay malapit sa siko (ang mga kalamnan ay may karamihan ng kanilang katawan sa lugar na iyon, ngunit nais mong suriin kung saan eksaktong lokasyon mo - mayroong isang malaking pagkakaiba-iba ng indibidwal)
Hakbang 6: Code
Bago patakbuhin ang pangunahing programa, kakailanganin mong malaman ang mga unit ID ng iyong partikular na mga aparato ng uECG (ginagawa ito sa pamamagitan ng pag-unsmenting linya 101 at pag-on isa-isang ang mga aparato, makikita mo ang ID ng kasalukuyang aparato bukod sa iba pang mga bagay) at punan ang mga ito unit_ids array (linya 37). Maliban dito, nais mong maglaro kasama ang mga coefficients ng pormula (mga linya 129-131) at suriin kung paano ito nakikita sa serial plotter bago ilakip ito sa robotic hand.
Hakbang 7: Mga Resulta
Sa ilang mga eksperimento na tumagal ng halos 2 oras, nakakuha ako ng lubos na maaasahang operasyon (nagpapakita ang video ng isang karaniwang kaso). Ito ay kumikilos na hindi perpekto at sa pagproseso na ito ay makikilala lamang ang bukas at sarado na mga daliri (at hindi kahit na ang bawat isa sa 5, nakakakita lamang ito ng 3 mga grupo ng kalamnan: hinlalaki, index at gitna na magkakasama, magkakasamang singsing at maliit na daliri). Ngunit ang "AI" na sumusuri sa signal ay tumatagal ng 3 mga linya ng code dito at gumagamit ng isang solong halaga mula sa bawat channel. Naniniwala ako na higit na magagawa sa pag-aaral ng 32-bin spectral na mga imahe sa PC o smartphone. Gayundin, ang bersyon na ito ay gumagamit lamang ng 3 mga uECG device (mga EMG channel). Sa maraming mga channel dapat posible na makilala ang talagang kumplikadong mga pattern - ngunit mabuti, iyon ang punto ng proyekto, upang magbigay ng ilang panimulang punto para sa sinumang interesado:) Ang kontrol sa kamay ay tiyak na hindi lamang ang application para sa naturang system.
Inirerekumendang:
Control ng Boses Robotic Hand: 4 na Hakbang
Control ng Boses Robotic Hand: Lumikha ako ng isang robotic arm na gagana sa iyong utos ng boses. Ang braso ng robot ay kinokontrol ng natural na konektadong input ng pagsasalita. Pinapayagan ng input ng wika ang isang gumagamit na makipag-ugnay sa robot sa mga term na pamilyar sa karamihan ng mga tao. Ang advan
ASL Robotic Hand (Kaliwa): 9 Hakbang (na may Mga Larawan)
ASL Robotic Hand (Kaliwa): Ang proyekto ngayong semestre ay upang lumikha ng isang 3-D na naka-print na kaliwang kamay na may kakayahang ipakita ang alpabeto ng American Sign Language para sa mga taong bingi at pandinig sa isang setting ng silid-aralan. Ang kakayahang maipakita ang mga American Sign Langu
Wave Your Hand to Control OWI Robotic Arm Walang Kalakip na Mga String: 10 Hakbang (na may Mga Larawan)
Wave Your Hand to Control OWI Robotic Arm … Walang Mga Kalakip na Kalakip: ANG IDEA: Mayroong hindi bababa sa 4 pang mga proyekto sa Instructables.com (hanggang Mayo 13, 2015) sa paligid ng pagbabago o pagkontrol sa OWI Robotic Arm. Hindi nakakagulat, dahil ito ay tulad ng isang mahusay at murang robotic kit upang i-play. Ang proyektong ito ay pareho sa s
Apir! - isang Robotic Hand: 5 Hakbang
Apir! - isang Robotic Hand: Isang araw, sa aming klase ng Mga Prinsipyo ng Engineering, nagtakda kami upang magtayo ng mga compound machine mula sa mga bahagi ng VEX. Habang sinimulan naming buuin ang mga mekanismo, nagpupumilit kaming pamahalaan ang maraming mga kumplikadong sangkap na kailangang tipunin. Kung ilan lamang
Malayuang Kinokontrol ng Bluetooth ang Robotic Hand Palm: 4 na Hakbang
Malayuang Kinokontrol ng Bluetooth na Robotic Hand Palm ng Bluetooth: Sa tutorial na ito ay dadaan kami sa mga mataas na detalye at ibibigay ang lahat ng kinakailangang impormasyon upang mabuo ang iyong sariling Bluetooth na malayuang kinokontrol na robotic hand palm. Maaari mo pa itong paunlarin upang maging isang buong robotic arm, kung nais mo … Th