Мазмұны:

EMG көмегімен роботтық қолмен басқару: 7 қадам
EMG көмегімен роботтық қолмен басқару: 7 қадам

Бейне: EMG көмегімен роботтық қолмен басқару: 7 қадам

Бейне: EMG көмегімен роботтық қолмен басқару: 7 қадам
Бейне: ⚠️9 Vitamin B12 Deficiency WARNING Signs! [B12 Foods vs. B12 Shots?] 2024, Қараша
Anonim
Image
Image
Сигналды алу
Сигналды алу

Бұл жоба бұлшықеттердің белсенділігін өлшеуге және өңдеуге арналған 3 opensource uECG құрылғысымен (electromyogram, EMG) роботты қолмен басқаруды көрсетеді (opensource hand inMoov көмегімен). Біздің команданың ұзақ тарихы бар, олардың қолында және олардың бақылауында, бұл дұрыс бағыттағы жақсы қадам:)

Жабдықтар

3x uECG құрылғылары1x Arduino (мен Nano қолданамын, бірақ басқалары жұмыс істейді) 1x nRF24 модулі (кез келген жалпыға ортақ) 1x PCA9685 немесе соған ұқсас серво драйвы1x inMoov hand5x үлкен серво (үйлесімді түрлерге арналған inMoov нұсқаулығын қараңыз) 1х 5В қуат көзі 5А немесе одан да көп ток

1 -қадам: сигналды алу

Бақылау ЭМГ - бұлшықеттердің электрлік белсенділігіне негізделген. ЭМГ сигналын үш уЭЦГ құрылғысы алады (білемін, бұл ЭКГ мониторы болуы керек, бірақ ол жалпы ADC -ге негізделгендіктен, ол кез келген биосигналды, оның ішінде ЭМГ өлшей алады). EMG өңдеу үшін uECG арнайы режимі бар, ол 32-спектрлік спектрлік деректерді жібереді және «бұлшықет терезесі» орташа (75-тен 440 Гц аралығындағы спектрдің орташа қарқындылығы). Спектрлік суреттер уақыт өте келе өзгеретін көк-жасыл өрнектерге ұқсайды. Бұл жерде жиілік вертикаль осьте (3 учаскенің әрқайсысында, төменгі жиілігі төменде, жоғарғы жағында - 0 -ден 488 Гц -ке дейін ~ 15 Гц қадаммен), уақыт көлденеңде (сол жақтағы ескі деректер) экранда шамамен 10 секунд). Қарқындылық түспен кодталған: көк - төмен, жасыл - орташа, сары - жоғары, қызыл - одан да жоғары.

2 -қадам: жеңілдетілген сигнал

Оңайлатылған сигнал
Оңайлатылған сигнал

Қимылды сенімді тану үшін компьютерде осы спектрлік кескіндерді дұрыс өңдеу қажет. Робот қол саусақтарын қарапайым қосу үшін 3 арнаның орташа мәнін қолдану жеткілікті - uECG оны белгілі бір пакеттік байттарда ыңғайлы қамтамасыз етеді, сондықтан Arduino эскизі оны талдай алады. Бұл мәндер әлдеқайда қарапайым көрінеді - мен Arduino сериялық плоттерінің шикі мәндерінің кестесін тіркедім. Қызыл, жасыл, көк диаграммалар - бұл бас бармақты, сақинаны және ортаңғы саусақтарды сығып жатқанда, бұлшықеттердің әр түрлі топтарындағы 3 uECG құрылғысының бастапқы мәндері. Біздің көзіміз үшін бұл жағдайлар әр түрлі, бірақ біз бұл мәндерді «саусақ ұпайына» айналдыруымыз керек, осылайша бағдарлама қол серверлеріне мәндер шығара алады. Мәселе мынада, бұлшықет топтарының сигналдары «аралас»: бірінші және үшінші жағдайда көк сигналдың қарқындылығы шамамен бірдей, бірақ қызыл мен жасыл әр түрлі. 2 -ші және 3 -ші жағдайда жасыл сигналдар бірдей, бірақ көк және қызыл түсті.

3 -қадам: сигналды өңдеу

Сигналды өңдеу
Сигналды өңдеу

Бұл сигналдарды «араластыру» үшін мен қарапайым формуланы қолдандым:

S0 = V0^2 / ((V1 * a0 +b0) (V2 * c0 +d0))), мұндағы S0 - 0, V0, V1, V2 арналары үшін ұпай - 0, 1, 2 және а арналары үшін шикі мәндер, 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 (чипті қосу) - Arduino D9nRF24 түйреуіш 4 (SPI: CS) - Arduino D8nRF24 түйреуіш 5 (SPI: SCK) - Arduino D13nRF24 түйреуіш 6 (SPI: MOSI) - Arduino D11nRF24 түйреуіші 7 (SPI: MISO) - Arduino D12PCA9685 SDA - Arduino A4PCA9685 SCL - Arduino 55PNDAA9685 VCD - Arduino 5vPCAA9685 GND - 5GPPCA9685 PCA арналары 0-4, менің бас бармағымда - 0 арна, сұқ саусақ - 1 арна т.б.

5 -қадам: EMG датчиктерін орналастыру

EMG датчиктерінің орналасуы
EMG датчиктерінің орналасуы
EMG датчиктерінің орналасуы
EMG датчиктерінің орналасуы

Ақылға қонымды көрсеткіштерді алу үшін бұлшықеттердің белсенділігін тіркейтін uECG құрылғыларын дұрыс орынға қою маңызды. Бұл жерде әр түрлі нұсқалар мүмкін болса да, олардың әрқайсысы сигналды өңдеудің әр түрлі тәсілін қажет етеді, сондықтан менің кодымен менің фотосуреттеріме ұқсас орналасуды қолданған дұрыс, бұл қарсы интуитивті болуы мүмкін, бірақ саусақ бұлшықетінің сигналы қолдың қарама -қарсы жағында жақсы көрінеді сондықтан сенсорлардың бірі сол жаққа қойылады және олардың барлығы шынтаққа жақын орналасады (бұлшықеттер дененің көп бөлігін сол аймақта ұстайды, бірақ сіз өзіңіздің дәл қай жерде орналасқанын тексергіңіз келеді - жеке айырмашылық бар)

6 -қадам: код

Негізгі бағдарламаны іске қоспас бұрын, сізге белгілі бір uECG құрылғыларының бірлік идентификаторларын білу қажет (ол 101 желісін өшіру және құрылғыларды бір -бірлеп қосу арқылы жүзеге асады, сіз басқа құрылғылармен қатар ағымдағы құрылғының идентификаторын көресіз) және оларды толтырыңыз. unit_ids массиві (37 -жол). Бұдан басқа, сіз формула коэффициенттерімен (129-131 жолдар) ойнағыңыз келеді және роботтық қолға бекітпес бұрын оның сериялық плоттерге қалай көрінетінін тексергіңіз келеді.

7 -қадам: Нәтижелер

Шамамен 2 сағатқа созылған кейбір эксперименттердің арқасында мен сенімді операцияға қол жеткізе алдым (бейнеде әдеттегі жағдай көрсетілген). Ол өзін жақсы ұстамайды және бұл өңдеумен тек ашық және жабық саусақтарды ғана тани алады (және олардың әрқайсысы 5 бұлшықеттің 3 тобын ғана анықтайды: бас бармақ, көрсеткіш және орта, сақина мен кішкентай саусақтар бірге). Бірақ сигналды талдайтын «AI» мұнда 3 жолды қабылдайды және әр арнадан бір мәнді пайдаланады. Менің ойымша, компьютерде немесе смартфонда 32-контейнерлік спектрлік суреттерді талдау арқылы көп нәрсені жасауға болады. Сондай -ақ, бұл нұсқада тек 3 uECG құрылғысы қолданылады (EMG арналары). Басқа арналармен шын мәнінде күрделі үлгілерді тануға болады - бірақ бұл жобаның мәні, қызығушылық танытқандарға бастапқы нүктені ұсыну:) Қолмен басқару мұндай жүйеге арналған жалғыз қосымша емес.

Ұсынылған: