Mundarija:

EMG yordamida robot qo'lini boshqarish: 7 qadam
EMG yordamida robot qo'lini boshqarish: 7 qadam

Video: EMG yordamida robot qo'lini boshqarish: 7 qadam

Video: EMG yordamida robot qo'lini boshqarish: 7 qadam
Video: Joystick Robot | Best Arduino Project #shorts 2024, Noyabr
Anonim
Image
Image
Signal olish
Signal olish

Ushbu loyiha mushaklarning faolligini o'lchash va qayta ishlash uchun ishlatiladigan 3 ta ochiq manbali uECG qurilmalari (elektromiyogram, EMG) yordamida robot qo'lini (opensource hand inMoov yordamida) boshqarishini ko'rsatadi. Bizning jamoamizning uzoq hikoyasi bor, ular qo'llar va ularni boshqaradi, bu to'g'ri yo'nalishdagi yaxshi qadam:)

Ta'minotlar

3x uECG qurilmalari 1x Arduino (men Nanodan foydalanayapman, lekin ko'pchilik boshqalar ishlaydi) 1x nRF24 moduli (har qanday umumiy) 1x PCA9685 yoki shunga o'xshash servo drayver 1x inMoov hand5x katta servo (mos keladigan turlar uchun inMoov ko'rsatmalariga qarang) 1x 5V quvvat manbai 5A yoki undan yuqori oqim

1 -qadam: signal olish

Nazorat EMG - mushaklarning elektr faolligiga asoslangan. EMG signalini uchta uECG qurilmasi oladi (bilaman, bu EKG monitori bo'lishi kerak, lekin u umumiy ADCga asoslanganligi sababli, u har qanday biosignallarni, shu jumladan EMG ni ham o'lchashi mumkin). EMGni qayta ishlash uchun uECG maxsus rejimga ega bo'lib, u 32 ta spektrli ma'lumotlarni uzatadi va "mushak oynasi" o'rtacha (75 dan 440 Gts gacha bo'lgan o'rtacha spektral intensivligi). Spektrli tasvirlar vaqt o'tishi bilan o'zgarib turadigan ko'k-yashil naqshlarga o'xshaydi. Bu erda chastota vertikal o'qda (har bir uchastkada past chastotada, pastda yuqori - 0 dan 488 Gts gacha ~ 15 Gts), vaqt gorizontalda (eski ma'lumotlar bu erda, chapda) ekranda taxminan 10 soniya). Zo'rlik rang bilan kodlangan: ko'k - past, yashil - o'rta, sariq - yuqori, qizil - undan ham yuqori.

2 -qadam: soddalashtirilgan signal

Soddalashtirilgan signal
Soddalashtirilgan signal

Ishorani ishonchli aniqlash uchun ushbu spektral tasvirlarni kompyuterda to'g'ri qayta ishlash talab qilinadi. Robotik qo'l barmoqlarini oddiy ishga tushirish uchun 3 kanalda o'rtacha qiymatdan foydalanish kifoya - uECG uni ma'lum paketli baytlarda qulay tarzda taqdim etadi, shuning uchun Arduino eskizi uni tahlil qila oladi. Bu qiymatlar ancha sodda ko'rinadi - men Arduino Serial Plotter -dan xom qiymatlar jadvalini biriktirdim. Qizil, yashil, ko'k jadvallar - bu bosh barmog'ini, halqasini va o'rta barmoqlarini mos ravishda siqib chiqarganimda, turli mushak guruhlari uchun 3 ta uECG qurilmasining xom qiymati. Bizning ko'zimiz uchun bu holatlar aniq farq qiladi, lekin biz bu qiymatlarni qandaydir tarzda "barmoq skoriga" aylantirishimiz kerak, shuning uchun dastur qo'lda servolarga qiymatlarni chiqarishi mumkin. Muammo shundaki, mushak guruhlaridan kelgan signallar "aralash": birinchi va uchinchi holatda ko'k signal intensivligi taxminan bir xil bo'ladi, lekin qizil va yashil farq qiladi. Ikkinchi va uchinchi holatlarda yashil signallar bir xil bo'ladi, lekin ko'k va qizil rang farq qiladi.

3 -qadam: signallarni qayta ishlash

Signalni qayta ishlash
Signalni qayta ishlash

Bu signallarni "aralashtirish" uchun men nisbatan oddiy formuladan foydalandim:

S0 = V0^2 / ((V1 * a0 +b0) (V2 * c0 +d0))), bu erda S0 - kanal 0, V0, V1, V2 uchun bal - 0, 1, 2 va a kanallar uchun xom qiymatlar, b, c, d - men qo'lda sozlagan koeffitsientlar (a va c 0,3 dan 2,0 gacha, b va d 15 va 20 edi, siz ularni sensorni joylashishiga moslashtirish uchun o'zgartirishingiz kerak bo'ladi). Xuddi shu ko'rsatkich 1 va 2 -kanallar uchun ham hisoblab chiqilgan. Shundan so'ng jadvallar deyarli bir -biridan ajralgan. Xuddi shu imo -ishoralar uchun (bu safar barmog'i, o'rta, keyin bosh barmog'i) signallar aniq va chegara bilan taqqoslaganda servo harakatlarga osonlikcha tarjima qilinadi.

4 -qadam: sxemalar

Sxemalar
Sxemalar

Sxemalar juda oddiy, sizga faqat nRF24 moduli, PCA9685 yoki shunga o'xshash I2C PWM tekshirgichi va 5V yuqori quvvat manbai kerak, bu bir vaqtning o'zida barcha servolarni harakatlantirish uchun etarli bo'ladi (shuning uchun barqaror ishlash uchun kamida 5A nominal quvvat talab qilinadi).

Ulanishlar ro'yxati: nRF24 pin 1 (GND) - Arduino GNDnRF24 pin 2 (Vcc) - Arduino 3.3vnRF24 pin 3 (Chip yoqilgan) - Arduino D9nRF24 pin 4 (SPI: CS) - Arduino D8nRF24 pin 5 (SPI: SCK) - Arduino D13nRF24 pin 6 (SPI: MOSI) - Arduino D11nRF24 pin 7 (SPI: MISO) - Arduino D12PCA9685 SDA - Arduino A4PCA9685 SCL - Arduino ning A5PCA9685 Vcc - Arduino -ning 5vPDCA9685 GND -A55 -GD5A -G95 -GD5A -G9A56 -GD5A -G95A PCA kanallari 0-4, mening bosh barmog'imda - 0 -kanal, ko'rsatkich barmog'i - 1 -kanal va boshqalar.

5 -qadam: EMG sensorlarini joylashtirish

EMG sensorlarini joylashtirish
EMG sensorlarini joylashtirish
EMG sensorlarini joylashtirish
EMG sensorlarini joylashtirish

O'qish oqilona bo'lishi uchun mushaklarning faolligini qayd etuvchi uECG qurilmalarini to'g'ri joylarga joylashtirish muhim. Bu erda har xil variantlar bo'lishi mumkin bo'lsa -da, har biri signalni qayta ishlashning har xil yondashuvini talab qiladi, shuning uchun mening kodim bilan rasmlarimga o'xshash joylashuvdan foydalanish yaxshidir. Bu sezgir bo'lmasligi mumkin, lekin bosh barmog'i mushaklari signallari qo'lning qarama -qarshi tomonida yaxshiroq ko'rinadi. Shunday qilib, sensorlardan biri u erga joylashtirilgan va ularning hammasi tirsagiga yaqin joylashtirilgan (mushaklar tananing ko'p qismini shu sohada joylashgan, lekin siz aynan sizniki qayerda joylashganligini tekshirmoqchisiz - individual farq juda katta)

6 -qadam: kod

Asosiy dasturni ishga tushirishdan oldin siz uECG qurilmalaringizning identifikatorlarini bilib olishingiz kerak bo'ladi (bu 101 -qatorni o'chirish va qurilmalarni birma -bir yoqish orqali amalga oshiriladi, siz boshqa qurilmalar qatorida joriy qurilmaning identifikatorini ko'rasiz) va ularni to'ldiring. unit_ids qatori (37 -qator). Bundan tashqari, siz formulali koeffitsientlar bilan o'ynashni xohlaysiz (129-131-qatorlar) va uni robot qo'liga ulashdan oldin uning ketma-ket chizgichda qanday ko'rinishini tekshiring.

7 -qadam: Natijalar

Taxminan 2 soat davom etgan ba'zi tajribalar yordamida men juda ishonchli operatsiyani bajara oldim (videoda odatiy holat ko'rsatilgan). U o'zini mukammal tutmaydi va bu ishlov berish yordamida faqat ochiq va yopiq barmoqlarni taniy oladi (va har 5 ta emas, faqat 3 mushak guruhini aniqlaydi: bosh barmog'i, ko'rsatkich va o'rtasi birgalikda, halqa va kichik barmoqlari birgalikda). Ammo signalni tahlil qiladigan "AI" bu erda 3 qatorli kodni oladi va har bir kanaldan bitta qiymatdan foydalanadi. Ishonamanki, kompyuterda yoki smartfonda 32 ta spektrli tasvirlarni tahlil qilish orqali ko'proq narsani qilish mumkin. Bundan tashqari, ushbu versiyada faqat 3 ta uECG qurilmasi (EMG kanallari) ishlatiladi. Ko'proq kanallar bilan chindan ham murakkab naqshlarni tanib olish mumkin - lekin loyihaning maqsadi, qiziqqan har bir kishiga boshlang'ich nuqtani taqdim etishdir:) Qo'l bilan boshqarish, albatta, bunday tizim uchun yagona dastur emas.

Tavsiya: