Мазмұны:
- Жабдықтар
- 1 -қадам: сигналды алу
- 2 -қадам: жеңілдетілген сигнал
- 3 -қадам: сигналды өңдеу
- 4 -қадам: Схемалар
- 5 -қадам: EMG датчиктерін орналастыру
- 6 -қадам: код
- 7 -қадам: Нәтижелер
Бейне: EMG көмегімен роботтық қолмен басқару: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бұл жоба бұлшықеттердің белсенділігін өлшеуге және өңдеуге арналған 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 датчиктерін орналастыру
Ақылға қонымды көрсеткіштерді алу үшін бұлшықеттердің белсенділігін тіркейтін uECG құрылғыларын дұрыс орынға қою маңызды. Бұл жерде әр түрлі нұсқалар мүмкін болса да, олардың әрқайсысы сигналды өңдеудің әр түрлі тәсілін қажет етеді, сондықтан менің кодымен менің фотосуреттеріме ұқсас орналасуды қолданған дұрыс, бұл қарсы интуитивті болуы мүмкін, бірақ саусақ бұлшықетінің сигналы қолдың қарама -қарсы жағында жақсы көрінеді сондықтан сенсорлардың бірі сол жаққа қойылады және олардың барлығы шынтаққа жақын орналасады (бұлшықеттер дененің көп бөлігін сол аймақта ұстайды, бірақ сіз өзіңіздің дәл қай жерде орналасқанын тексергіңіз келеді - жеке айырмашылық бар)
6 -қадам: код
Негізгі бағдарламаны іске қоспас бұрын, сізге белгілі бір uECG құрылғыларының бірлік идентификаторларын білу қажет (ол 101 желісін өшіру және құрылғыларды бір -бірлеп қосу арқылы жүзеге асады, сіз басқа құрылғылармен қатар ағымдағы құрылғының идентификаторын көресіз) және оларды толтырыңыз. unit_ids массиві (37 -жол). Бұдан басқа, сіз формула коэффициенттерімен (129-131 жолдар) ойнағыңыз келеді және роботтық қолға бекітпес бұрын оның сериялық плоттерге қалай көрінетінін тексергіңіз келеді.
7 -қадам: Нәтижелер
Шамамен 2 сағатқа созылған кейбір эксперименттердің арқасында мен сенімді операцияға қол жеткізе алдым (бейнеде әдеттегі жағдай көрсетілген). Ол өзін жақсы ұстамайды және бұл өңдеумен тек ашық және жабық саусақтарды ғана тани алады (және олардың әрқайсысы 5 бұлшықеттің 3 тобын ғана анықтайды: бас бармақ, көрсеткіш және орта, сақина мен кішкентай саусақтар бірге). Бірақ сигналды талдайтын «AI» мұнда 3 жолды қабылдайды және әр арнадан бір мәнді пайдаланады. Менің ойымша, компьютерде немесе смартфонда 32-контейнерлік спектрлік суреттерді талдау арқылы көп нәрсені жасауға болады. Сондай -ақ, бұл нұсқада тек 3 uECG құрылғысы қолданылады (EMG арналары). Басқа арналармен шын мәнінде күрделі үлгілерді тануға болады - бірақ бұл жобаның мәні, қызығушылық танытқандарға бастапқы нүктені ұсыну:) Қолмен басқару мұндай жүйеге арналған жалғыз қосымша емес.
Ұсынылған:
DC MOTOR қолмен қимылды басқару жылдамдығы мен бағытын Arduino көмегімен басқару: 8 қадам
DC MOTOR қолмен қимылдарды басқару жылдамдығы мен бағытын Arduino көмегімен басқару: Бұл оқулықта біз arduino мен Visuino көмегімен қолмен ыммен тұрақты ток қозғалтқышты басқаруды үйренеміз. Бейнені қараңыз
Қимылды басқару қаңқасы Bot - 4WD Hercules мобильді роботтық платформасы - Arduino IDE: 4 қадам (суреттермен)
Қимылмен басқару қаңқасы - 4WD Hercules мобильді роботтық платформасы - Arduino IDE: Seeedstudio Skeleton Bot - 4WD Hercules мобильді роботтық платформасы арқылы жасалған қимылды басқару құралы. Үйде коронарлық вирустың эпидемиясын басқару кезінде мен өте көңілді болдым. Менің досым маған 4WD Hercules мобильді роботтық платформасын жаңа ретінде берді
ESP8266 RGB LED STRIP WIFI басқару - NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде - RGB LED STRIP смартфонды басқару: 4 қадам
ESP8266 RGB LED STRIP WIFI басқару | NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде | Смартфонды RGB LED STRIP басқару: Сәлеметсіздер ме, балалар, бұл оқулықта біз nodemcu немесе esp8266 -ды RGB жарықдиодты жолағын басқару үшін инфрақызыл қашықтан басқару құралы ретінде қолдануды үйренеміз, ал Nodemcu смартфон Wi -Fi арқылы басқарылады. Негізінде сіз RGB LED STRIP -ті смартфонмен басқара аласыз
PS2 контроллерін қолдана отырып, Zio көмегімен роботты қолмен басқару: 4 қадам
PS2 контроллерін қолдана отырып, Zio көмегімен роботты қолмен басқарыңыз: Бұл блог Zio Robotics сериясының бөлігі болып табылады. Кіріспе - бұл «Зио көмегімен роботтық қолды басқару» жазбасының соңғы бөлімі. Бұл оқулықта біз роботтық қолдың тағы бір бөлігін қосамыз. Алдыңғы оқулықтарда база жоқ
Arduino негізіндегі роботтық қолмен қолжетімді баға шешімі: 19 қадам (суреттермен)
Arduino негізіндегі роботтық қолмен қол жетімді көзқарас шешімі: Біз машинаны көру туралы айтатын болсақ, ол бізге әрқашан қол жетімсіз болып көрінеді. Біз ашық көзбен демонстрация жасадық, оны бәріне оңай жасауға болады. Бұл бейнеде OpenMV камерасы бар, қызыл текше қай жерде болмасын, робот