Mundarija:

Miyovare mushak sensori uchun javob beradigan neopikselli chiziqli chiziq: 6 qadam
Miyovare mushak sensori uchun javob beradigan neopikselli chiziqli chiziq: 6 qadam

Video: Miyovare mushak sensori uchun javob beradigan neopikselli chiziqli chiziq: 6 qadam

Video: Miyovare mushak sensori uchun javob beradigan neopikselli chiziqli chiziq: 6 qadam
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Noyabr
Anonim
Miyovar mushaklar sezgichiga ta'sir qiladigan neopikselli chiziqli chiziq
Miyovar mushaklar sezgichiga ta'sir qiladigan neopikselli chiziqli chiziq

Maqsad - Arduino yordamida mushak sensori o'rnatish va kiruvchi ma'lumotlarni Adafruit IO yordamida qayta ishlash va yorug'lik bir daqiqaga oqdan qizilga aylanishi uchun tetik bilan chiqish.

Mushak sensori nima? Muskul sensori mushakning elektr faolligini o'lchaydi va mikrokontroller tomonidan osongina o'qilishi mumkin bo'lgan analog chiqish signalini ishlab chiqaradi. Elektromiyografiya (EMG) mushaklarning asab stimulyatsiyasiga javoban mushaklarning javobini yoki elektr faolligini o'lchaydi. Sinov asab -mushak anormalliklarini aniqlashga yordam beradi. Sinov paytida bir yoki bir nechta mayda ignalar (elektrodlar deb ham ataladi) teri orqali mushak ichiga kiritiladi.

Ushbu loyiha uchun sizga kerak bo'ladi: -MyoWare mushak sensori -EMG elektrodlari -NodeMCU (esp8266) -Silikon qopqoqli simi -USB mikro kabeli -Neopikselli LED tasmasi

Sizga kerak bo'lgan kutubxonalar: -Adafruit io Arduino (kamida 2.3.0 versiyasi) -Adafruit Neopixel (1.2.5 versiyasi) -Adafruit MQTT kutubxonasi (1.0.3) -Arduino HttpClients (0.4.0) kutubxonalar hali o'rnatilmagan. Keyin Sketch> Kutubxonani qo'shish> Kutubxonalarni boshqarish … bo'limiga o'ting, qidirish maydoniga: [o'rnatmoqchi bo'lgan kutubxona nomi] ni kiriting.

1 -qadam: Myoware mushak sensori ulanishi (ayniqsa ilgari u bilan ishlamaganlar uchun)

Agar siz hech qachon Myoware mushaklari sensori bilan ishlamagan bo'lsangiz, avval bu sensorning Arduino seriyali monitorida qanday ulanganini va o'qilishini tushunganingiz ma'qul. Bu operatsiya standart qo'llanma bo'lib, u allaqachon ko'plab qo'llanmalarda tasvirlangan. Adafruit platformasida bu bir necha bosqichda qanday ishlashi aniq tasvirlangan:

learn.adafruit.com/getting-started-with-my…

Agar bularning barchasi bajarilgan bo'lsa, siz ketma -ket monitoringizda mushaklaringizni siqsangiz, qiymatlar o'zgarishini ko'rasiz. Agar mushtingizni muskulni qisib qo'ysangiz, qadriyatlar ko'tarilishi kerak va siz bo'shashganingizda bu qiymatlar yana pasayishi kerak.

Muhim, bu qadam faqat sensorni o'rnatishdir. Qo'llanmaning qolgan qismi uchun siz ishlatgan kod kerak emas. Sensorni qanday qo'yish kerakligi, keyingi qadamlar uchun o'zgarishsiz qoladi.

2 -qadam: Adafruit IO ni sozlash

Adafruit IO ni sozlash
Adafruit IO ni sozlash
Adafruit IO ni sozlash
Adafruit IO ni sozlash
Adafruit IO ni sozlash
Adafruit IO ni sozlash

Birinchi qadam - Adafruit IO -ga kirish yoki hisob yaratish, Adafruit IO -ni ko'rib chiqish. Adafruit IO - bu bulutli platforma, uni Internet orqali ulash mumkin. Adafruit IO ma'lumot ulanishlari bilan ma'lumotlarni foydali qiladi.

Hisobingizda bo'lganingizda:

Analog FeedNext -ni yarating, siz Analog deb nomlangan tasma yaratishingiz kerak bo'ladi. Agar sizga Adafruit IO -da tasmalar yaratishni boshlash uchun yordam kerak bo'lsa, Adafruit IO Feed asoslari qo'llanmasini ko'rib chiqing (1 va 2 -rasmdagi kabi).

O'lchagichlar bloki va BlockNext chizig'ini qo'shib, yangi asboblar panelini yarating va uni xohlaganingizcha nomlang (3, 4 va 5 -rasmlarda ko'rsatilgandek). Ma'lumot manbai sifatida Analog tasmasini tanlaganingizga ishonch hosil qiling.

Boshqaruv panelida bo'lganingizda, yangi o'lchagich blokini qo'shing, o'ng yuqori burchakdagi ko'k rangni bosing. Blokni xohlaganingizcha nomlang (6 va 7 -rasmlarda ko'rsatilgan) va unga maksimal qiymat 1024 va minimal qiymat 0 (mushak sensori qiymatlari).

Xuddi shu narsani Gauge bloki bilan yuqoridagi kabi, chiziqli grafiklar bloki (8 -rasm) bilan takrorlang.

Agar siz yuqorida aytilganlarni bajargan bo'lsangiz, sizda oxirgi rasmga o'xshash ekran bo'lishi kerak.

3 -qadam: Arduino kiritish

Arduino usuli
Arduino usuli
Arduino usuli
Arduino usuli
Arduino usuli
Arduino usuli
Arduino usuli
Arduino usuli

1 -bosqichda siz MyoWare Muscle sensorining simini to'g'ri o'rnatgansiz. Bu qadamda biz Adafruit IO boshqaruv panelining 2 -bosqichiga ulanish bilan birga keladigan Arduino kodiga o'tamiz. Ushbu qadam oxirida siz o'rnatgan ikkita blokda siz Myoware Muscle sensorining kirish qiymatlarini ko'rasiz.

Arduino -ni sozlash

Kirish qismida yuqorida ko'rsatilgan barcha kutubxonalar o'rnatilganligiga ishonch hosil qiling.

Biz namunali eskiz bilan ishlaymiz. Fayl> Misol> Adafruit IO Arduino> adafruitio_08_analog_in -ni oching (1 -rasm). Nega bu eskiz? chunki biz birinchi navbatda ushbu qo'llanmaning kirish qismini o'rnatamiz. MyoWare Muscle sensori analog chiqishni ishlatadi. Agar siz analog haqida ko'proq ma'lumotga ega bo'lishni istasangiz.

Arduino Network Config Tarmoq sozlamalarini sozlash uchun eskizdagi config.h yorlig'ini bosing. IO_USERNAME ta'rifida Adafruit IO foydalanuvchi nomini va IO_KEY ta'rifida Adafruit IO kalitini o'rnatishingiz kerak bo'ladi. Siz foydalanuvchi nomingiz va kalitingizni ekranning yuqori o'ng burchagida Arduino IO -da topishingiz mumkin (2 -rasmdagi misol)

#IO_USERNAME "foydalanuvchi nomingiz" ni aniqlang

#IO_KEY "kalitingizni" belgilang

WiFi Config Wi -Fi sukut bo'yicha config.h -da yoqilgan, shuning uchun agar siz qo'llab -quvvatlanadigan Wi -Fi platalaridan birini ishlatsangiz, faqat config.h ko'rinishidagi WIFI_SSID va WIFI_PASS parametrlarini o'zgartirishingiz kerak bo'ladi.

#WIFI_SSID "sizning_ssid" ni belgilang

Agar sizda yuqoridagi sozlamalarga o'zgartirishlar kiritilgan bo'lsa, biz haqiqiy kodga o'tishimiz mumkin, adafruit_08_analog_in. Ushbu misolda standart pin AO da statet. Bu to'g'ri pin, chunki siz 2 -qadamda mushak sensori taxtasiga joylashtirdingiz.

Bu misolda fotosel sensori ishlatiladi, chunki biz mushak sensori yordamida bu nomni o'zgartiramiz. Agar buni qilsangiz muhim emas, bu faqat semantik jihatdan tartibli bo'ladi. PHOTOCELL_PIN -ni MUSCLESENSOR_PIN -ga o'zgartiring, buni eskizning ikki joyida qiling.

/************************ Misol shu erda boshlanadi ********************** *********/

// analog pin 0 #define PHOTOCELL_PIN A0

Oxirgi kod chizig'ida kechikish bor. Bu kechikish 1 soniya, biz 2000 soniyani 2 soniya qilib belgilaymiz. Biz buni qilamiz, chunki Adafruit IOda ma'lumotlar cheklangan litsenziyasi bor, ikki soniya ichida bu eskiz bu ma'lumot chegarasidan oshib ketadi va u OG'IZLIK OGOHLANTIRISHini beradi.. Bu shuni anglatadiki, hech qanday qiymat kelmaydi. Buni ikki soniya qilib qo'yish bunga to'sqinlik qiladi.

// bir soniya kuting (1000 millisekund == 1 soniya) kechikish (2000);

Buni eskizda o'zgartirish kerak edi. Agar siz butun kod qanday ishlashini aniq bilishni istasangiz. Siz uni Adafruit -da topishingiz mumkin, har bir kod blokining izohi bilan.

Eskizni taxtangizga yuklang va Arduino Serial monitorini oching. Sizning taxtangiz endi Adafruit IO ga ulanishi kerak.

endi qo'lingizni tortishingiz mumkin va siz o'zgaruvchan qiymatlarni Adafruit IOga yuborilishini ko'rishingiz kerak (3 -rasmda bo'lgani kabi). Agar siz seriyali monitorda hech qanday qiymat ko'rmasangiz, ketma -ket monitorda Baud tezligini 115200 ga o'rnatganingizni tekshiring.

Adafruit IO asboblar panelidagi boshqaruv panelini tekshiring, shunda siz o'lchagich va chiziqli jadval MyoWare Muscle Sensor qiymatlarining o'zgarishiga javob berishini ko'rasiz.

4 -qadam: Adafruit IO Trigger -ni sozlash

Adafruit IO Trigger o'rnatish
Adafruit IO Trigger o'rnatish
Adafruit IO Trigger o'rnatish
Adafruit IO Trigger o'rnatish

Hozirgacha biz MyoWare Muscle sensoridan Adafruit IO ishiga kirish imkoniyatiga ega bo'ldik. Endi biz ushbu ma'lumotni o'qishni boshlaymiz. Shunday qilib, mushak sensori X -dan 5 barobar katta qiymat aniqlangandan so'ng, Neopixel chizig'i chizig'i harakat qiladi.

Bu bo'lim men uchun edi, men Adafruit IO tarixini qanday o'qishni o'rganishim kerak edi. Men ilgari tasmalar va boshqaruv paneli bilan ishlaganman, shuning uchun yaratilgan tasma va asboblar paneli buni o'qishi va bu erda Arduino -da harakat yaratishi mumkin deb o'yladim. Hozircha muvaffaqiyatga erishganim yo'q. Ko'p tadqiqotlar va Adafruit IOdan so'ng, men Adafruit IO -da Trigger funktsiyasi yordamida harakatni boshlash mumkinligini aniqladim. Triggerlar haqida ko'proq bilib oling.

Qo'shimcha FeedBeig biz Trigger qilishdan oldin, biz boshqa tasma yaratishimiz kerak, shuning uchun uni Arduino -da chiqarish mumkin. AlertTriggered nomi bilan tasma yarating.

Trigger yaratish Feed sarlavhalari yonida va boshqaruv panelida Trigger bor, bu erga o'ting. Yangi tetik yaratish. Sizdan reaktiv tetik yoki jadvalni ishga tushirishni xohlaysizmi, deb so'raladi, reaktiv tetikni tanlang va yaratish -ni bosing. Buning sababi shundaki, siz faqat biror narsa sodir bo'lganda biror narsani ishga solishni xohlaysiz (1 -rasm).

Bir qator narsalarni sozlash kerak (Keyingi qadamlar 2-rasmda ham ko'rsatilgan).- Agar birinchi bo'lsa analog tasmasini tanlang, shuning uchun kirish shu erdan olinadi.

-Siz bundan kattaroqini tanlaysizmi, chunki qiymat bunday sondan oshib ketganda biror narsani ishga tushirishni xohlaysiz.

-Tergovni faollashtirish uchun siz kerakli raqamni kiritishingiz mumkin. Men bu holatda 600 qildim.

-Arduino bilan siz 600 dan oshganda fikr -mulohaza olishingiz kerak bo'ladi, shuning uchun Xabarni nashr etishni tanlang:.

-Shundan so'ng siz AlertTriggered -ning ikkinchi tasmasini tanlashingiz mumkin.

Oxirida yaratish tugmasini bosing.

5 -qadam: Neopixel chiqishi

Neopixel chiqishi
Neopixel chiqishi

Yakuniy bosqich - bu mahsulotni ishlab chiqarish. Siz tahrir qilgan Arduino eskizida AlertTriggered tasmasini chaqirib (oldingi bosqichda yaratgan) bajarildi.

Chiqish hosil qilish uchun avval NodeMCU Neopixel chizig'ini ulashingiz kerak.- + 5v (chapda) simi chizig'ining NodeMCU- GND (o'ngdagi) 3v simidagi G tuguniga (G = GND).)- D5 diodli LEDning markaziy sim DIN (yoki boshqa D port)

CodeI bu eskizning barcha bosqichlarini fayl sifatida kiritdi (bu qadamning pastki qismida joylashgan). Bu siz oxirgi bir necha bosqichda ishlagan eskiz, lekin hozir yakuniy eskiz chiqishni yaratish uchun bajarishingiz kerak bo'lgan qadamlarga kiritilgan. adafruitio_musclesensor_neopixel fayli. Bu avval ma'lumotlar bilan o'rnatgan config.h bilan ishlaydi. Kod bloklari izohlarga kiritilgan, shuning uchun nima bo'layotganini ko'rishingiz mumkin.

Ushbu kodda men AlertTriggered (oldingi bosqichda 600 dan yuqori qiymatda e'lon qilganimiz) 5 martadan ko'proq ishga tushirilganda, tetik yaratdim. Bu shuni anglatadiki, u ishga tushirilganda, Neopixel LED chizig'i oqdan qizilgacha o'rnatiladi. Bu bir daqiqaga sodir bo'ladi va qizil holat yo'qoladi va yana oq holatga o'tadi.

Sizni dasturchi sifatida tushunarli qilish uchun kodning oxirgi to'plami ketma -ket monitor uchun. Qaysi qiymatlar va qachon siz ogohlantirish darajasini ishga tushirasiz. Ogohlantirish holati yoqilganda soniya qo'shilishi bilan birga, 60 soniyadan keyin yana ogohlantirish holatiga o'tadi. Shuning uchun bu qism ixtiyoriy.

// alartstate Serial.println ("Sekundlar o'tdi:") yonib turganda, ketma -ket monitorda ketayotgan soniyalarni ko'rsatish uchun; Serial.println (soniya o'tdi); } boshqa {secondsPassed = 0; }

Agar tekshiring, agar sizda qadamlar bajarilgan bo'lsa yoki adafruitio_musclesensor_neopixel eskiz faylini o'zingizning config.h bilan oling, uni NodeMCU -ga yuklashingiz mumkin. Agar bu bajarilgan bo'lsa, siz ketma -ket monitoringizda quyida o'xshash narsani ko'rishingiz kerak:

Adafruit IO ga ulanmoqda…

Adafruit IO ulangan. Yuborish -> 23 Yuborish -> 78

1 -rasm - bu Alertmode rejimida ketma -ket monitor.

Bu ishlamayaptimi? Quyidagi narsalarni tekshiring- config.h to'g'ri kiritilganligini tekshiring- Siz to'g'ri Adafruit IO foydalanuvchi nomi va kalitini kiritdingizmi- Wifi parolini to'g'ri SSIDga kiritdingizmi- MyoWare simlarini joylashtirdingizmi? Mushaklar sensori o'ng va Neopixel Led chizig'idan

Yoki oldingi qadamlarni tekshiring.

6 -qadam: Natijalar

Xayr, ishingiz tugadi! Yakuniy mahsulotni namoyish qilish va amalda ko'rish uchun men video qo'shdim.

Tavsiya: