Myoware əzələ sensoruna reaksiya verən Neopixel Led Strip: 6 addım
Myoware əzələ sensoruna reaksiya verən Neopixel Led Strip: 6 addım
Anonim
Myoware Əzələ Sensoruna Reaksiya Verən Neopixel Led Şeridi
Myoware Əzələ Sensoruna Reaksiya Verən Neopixel Led Şeridi

Məqsəd, Arduinonun köməyi ilə bir əzələ sensoru qurmaq və daxil olan məlumatları Adafruit IO ilə işləmək və işığın bir dəqiqə ərzində ağdan qırmızıya çevrilməsi üçün tətiklə əldə etməkdir.

Əzələ Sensoru Nədir Əzələ Sensoru, bir əzələnin elektrik fəaliyyətini ölçür və bir mikrokontrolör tərəfindən asanlıqla oxuna bilən analoq bir çıxış siqnalı çıxarır. Elektromiyografi (EMG), sinirin əzələləri stimullaşdırmasına cavab olaraq əzələ reaksiyasını və ya elektrik fəaliyyətini ölçür. Test sinir -əzələ anormallıqlarını aşkar etmək üçün istifadə olunur. Test zamanı bir və ya daha çox kiçik iynə (elektrod da deyilir) dəridən əzələyə daxil edilir.

Bu layihə üçün sizə lazım olacaq: -MyoWare əzələ sensoru -EMG elektrodları -NodeMCU (esp8266) -Silikon örtük teli -USB mikro kabel -Neopixel led şeridi

Ehtiyacınız olan kitabxanalar: -Adafruit io Arduino (ən az 2.3.0 versiyası) -Adafruit Neopixel (versiya 1.2.5) -Adafruit MQTT kitabxanası (1.0.3) -Arduino HttpClients (0.4.0) kitabxanalar hələ quraşdırılmayıb. Sonra Sketch> Kitabxanaya daxil olun> Kitabxanaları İdarə edin … yazın: axtarış sahəsinə [yükləmək istədiyiniz kitabxana adı] yazın.

Addım 1: Myoware Əzələ Sensorunun Bağlanması (xüsusilə əvvəllər heç işləməyənlər üçün)

Əgər heç vaxt Myoware Muscle Sensor ilə işləməmisinizsə, əvvəlcə bu sensorun Arduino Serial monitorunda necə əlaqələndirildiyini və oxunacağını anlamaq yaxşıdır. Bu əməliyyat artıq təsvir edilmiş bir çox dərsliklərdə olan standart bir prosedurdur. Adafruit platforması bunun bir neçə addımda necə işlədiyini aydın şəkildə təsvir edir:

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

Bütün bu addımlar atılırsa, serial monitorunuzda əzələlərinizi sıxarkən dəyərlərin dəyişdiyini görəcəksiniz. Bir yumruq çəkib əzələnizi sıxanda dəyərlər yüksəlməli və əzələniz rahatladıqda bu dəyərlər yenidən aşağı düşməlidir.

Bu addım yalnız sensoru qurmaqdır. İstifadə etdiyiniz kod təlimatın qalan hissəsi üçün lazım deyil. Yalnız sensoru necə qoyacağınız, gələcək addımlar üçün eyni qalır.

Addım 2: Adafruit IO Quraşdırması

Adafruit IO Quraşdırması
Adafruit IO Quraşdırması
Adafruit IO Quraşdırması
Adafruit IO Quraşdırması
Adafruit IO Quraşdırması
Adafruit IO Quraşdırması

İlk addım Adafruit IO -ya daxil olmaq və ya bir hesab yaratmaqdır, Adafruit IO -ya göz atın. Adafruit IO, internet üzərindən qoşula biləcəyiniz bir bulud platformasıdır. Adafruit IO, məlumat əlaqələri ilə məlumatları faydalı edir.

Hesabınızda olduğunuz zaman:

Analog FeedNext yaradın, Analog adlı bir lent yaratmalısınız. Adafruit IO -da yem yaratmağa başlamaq üçün kömək lazımdırsa, Adafruit IO Feed Basics təlimatına baxın (şəkil 1 və 2 -də olduğu kimi).

Göstərici Blokunu və BlockNext Xətt qrafikini əlavə edərək, yeni bir tablosu yaradın və adını istədiyiniz kimi adlandırın (yeni bir tablosuna düzəltmək üçün 3, 4 və 5 -ci şəkillərdə göstərilmişdir). Məlumat mənbəyi olaraq Analog lentini seçdiyinizə əmin olun.

Tablosuna daxil olduğunuzda sağ üst köşedeki mavi artı üzərinə yeni bir Ölçer bloku əlavə edin. Bloku istədiyiniz kimi adlandırın (şəkillər 6 və 7 -də göstərilir) və ona maksimum 1024 və minimum dəyərə 0 (əzələ sensoru dəyərləri) verin.

Göstərici bloku ilə yuxarıdakı kimi Line chart bloku (şəkil 8) ilə eyni şeyi təkrarlayın.

Yoxlayın Yuxarıda bunu etmisinizsə, son fotoşəkilə bənzər bir ekrana sahib olmalısınız.

Addım 3: Arduino Giriş

Arduino Giriş
Arduino Giriş
Arduino Giriş
Arduino Giriş
Arduino Giriş
Arduino Giriş
Arduino Giriş
Arduino Giriş

1 -ci addımda, MyoWare Muscle sensorunun naqillərinin düzgün qurulmasını etdiniz. Bu addım, Adafruit IO tablosuna 2 -ci addıma qoşulmaqla gələn Arduino koduna girəcəyik. Bu addımın sonunda, qurduğunuz iki Blokda Myoware Muscle sensorunun giriş dəyərlərini görəcəksiniz.

Arduino quraşdırma

Girişdə yuxarıda qeyd olunan bütün kitabxanaların olduğundan əmin olun.

Bir nümunə eskizlə işləyəcəyik. Beləliklə, Fayl> Misal> Adafruit IO Arduino> adafruitio_08_analog_in açın (şəkil 1). Niyə bu eskiz? çünki əvvəlcə bu təlimatın giriş hissəsini qururuq. MyoWare Muscle sensoru analoq çıxışdan istifadə edir. Analog haqqında daha çox məlumat əldə etmək istəyirsinizsə.

Şəbəkə parametrlərini konfiqurasiya etmək üçün eskizdəki config.h sekmesini vurun. Adafruit IO istifadəçi adınızı IO_USERNAME təyinatında və Adafruit IO açarınızı IO_KEY -də təyin etməlisiniz. İstifadəçi adınızı və açarınızı ekranın sağ üst hissəsində Arduino IO -da tapa bilərsiniz (şəkil 2 -də nümunə)

#IO_USERNAME "istifadəçi adınızı" təyin edin

#IO_KEY "sənin açarını" təyin et

WiFi Config WiFi, config.h -də standart olaraq aktivdir, buna görə də dəstəklənən WiFi lövhələrindən birini istifadə edirsinizsə, yalnız config.h sekmesinde WIFI_SSID və WIFI_PASS seçimlərini dəyişdirməlisiniz.

#WIFI_SSID "sənin_sid" ini təyin et#WIFI_PASS "sənin_ keçidini" təyin et

Yuxarıdakı parametrlərdə dəyişiklikləriniz varsa, adafruit_08_analog_in koduna keçə bilərik. Bu nümunədəki varsayılan pin, AO'daki statetdir. 2 -ci addımda əzələ sensorunuzu lövhəyə yerləşdirdiyiniz üçün bu doğru pindir.

Bu nümunədə bir fotosel sensoru istifadə olunur, çünki bir əzələ sensoru istifadə etdiyimiz üçün bu adı dəyişəcəyik. Bunu etməyinizin əhəmiyyəti yoxdur, yalnız semantik baxımdan səliqəli hala gətirəcək. PHOTOCELL_PIN -i MUSCLESENSOR_PIN olaraq dəyişdirin, bunu eskizin iki yerində edin.

/************************ Nümunə Buradan Başlar ********************** *********/

// analog pin 0 #define PHOTOCELL_PIN A0

Son kod xəttində bir gecikmə var. Bu gecikmə 1 saniyədir, 2000 -ci ili 2 saniyəyə təyin edəcəyik. Bunu Adafruit IO -da məlumat limiti olan bir lisenziya olduğu üçün edirik, iki saniyənin altında bu eskiz həmin məlumat limitini aşıb və BÖLGƏ XƏBƏRDARLIĞI verəcək. Bu, heç bir dəyərin gəlməməsi deməkdir. Bunu iki saniyəyə təyin etmək bunun qarşısını alır.

// bir saniyə gözlə (1000 milisaniyə == 1 saniyə) gecikmə (2000);

İşləmək üçün eskizdə dəyişdirməli olduğunuz şey budur. Bütün kodun necə işlədiyini dəqiq bilmək istəyirsinizsə. Bunu hər kod blokunun izahı ilə Adafruit öyrənməkdə tapa bilərsiniz.

Eskizi lövhənizə yükləyin və Arduino Serial Monitorunu açın. Lövhəniz indi Adafruit IO -ya qoşulmalıdır.

indi qolunuzu sıxa bilərsiniz və dəyişən dəyərlərin Adafruit IO -ya göndərildiyini görməlisiniz (şəkil 3 -də olduğu kimi). Serial monitorda heç bir dəyər görmürsənsə, Serial monitorda Baud sürətini 115200 olaraq təyin edib etmədiyinizi yoxlayın.

Adafruit IO tablosuna Adafruit IO -da tablonuzu yoxlayın və ölçü və xətt diaqramının MyoWare Muscle Sensor dəyərlərindəki dəyişikliklərə cavab verdiyini görməlisiniz.

Addım 4: Adafruit IO Trigger Quraşdırması

Adafruit IO Tetikleyici Quraşdırma
Adafruit IO Tetikleyici Quraşdırma
Adafruit IO Tetikleyici Quraşdırma
Adafruit IO Tetikleyici Quraşdırma

İndiyə qədər MyoWare Muscle sensorundan işləyən Adafruit IO -ya daxil ola bildik. İndi bu məlumatları oxumağa başlayacağıq. Əzələ sensoru X -dən 5 dəfə yüksək bir dəyər aşkar edildikdən sonra Neopixel led şeridi ilə bir hərəkət edilir.

Bu bölmə mənim üçün idi, Adafruit IO tarixini necə oxuya biləcəyimi araşdırmalıydım. Daha əvvəl Feeds və Dashboards ilə işləmişəm, buna görə yaradılan lentin və tablosunun bunu oxuya biləcəyini və burada Arduinoda bir hərəkət yarada biləcəyini düşündüm. İndiyə qədər uğur qazana bilməmişəm. Çox araşdırmalardan və Adafruit IO -dan sonra Adafruit IO -da Trigger funksiyası ilə bir hərəkətin tetiklenebileceğini kəşf etdim. Trigger haqqında daha çox məlumat əldə edin.

Əlavə bir FeedBeig bir Tetikleyici etməzdən əvvəl başqa bir yem yaratmalıyıq ki, çıxışı əldə etmək üçün onu Arduinoda adlandıraq. AlertTriggered adlı bir lent yaradın.

Bir Tetikleyici yaradınBaşlıqların başında Feed və Tablosunda Trigger var, bura gedin. Yeni bir tetikleyici yaradın. Reaktiv Tetikleyici və ya Cədvəl Tetikleyicisi yaratmaq istəsəniz, Reaktiv Tetikleyicini seçin və yarat düyməsini vurun. Bunun səbəbi, yalnız bir şey olanda bir şeyi tetiklemek istədiyinizdir (şəkil 1).

Bir sıra şeylər təyin olunmalıdır (Sonrakı addımlar şəkil 2-də də göstərilmişdir).- İlk olaraq analog yemi seçin, onda giriş buradan alınacaq.

-Daha böyük birini seçirsiniz, çünki dəyər belə bir rəqəmi keçəndə bir şeyi işə salmaq istəyirsiniz.

Tətiyi aktivləşdirmək üçün istədiyiniz nömrəni daxil edə bilərsiniz. Bu vəziyyətdə 600 etdim.

-Arduino ilə 600 -dən artıq olduqda geribildirim almalı olacaqsınız: buna görə də Seçin bir mesaj dərc edin:.

-Ondan sonra AlertTriggered tərəfindən yaradılmış ikinci Feedinizi seçə bilərsiniz.

Nəhayət, yaratmaq düyməsini basın.

Addım 5: Neopixel Çıxışı

Neopixel Çıxış
Neopixel Çıxış

Son addım çıxışı yaratmaqdır. Düzəltdiyiniz Arduino eskizində, AlertTriggered lentini (əvvəlki addımda yaratdığınız) çağıraraq yerinə yetirdiniz.

Çıxış əldə edə bilmək üçün əvvəlcə Neopixel LED şeridini NodeMCU-ya bağlamalısınız.- NodeMCU- GND (sağda) telinizin 3v-də Lode zolağınızın + 5v (sol) telini G-də (G = GND))- D5-də (və ya hər hansı digər D portunda) LED-in mərkəzi teli DIN

CodeI, bütün eskizi bu addıma alternativlərlə bir fayl olaraq daxil etdim (bu addımın alt hissəsində tapa bilərsiniz). Bu, son bir neçə addımda çalışdığınız eyni eskizdir, lakin indi son Sketch, çıxışı yaratmaq üçün etməli olduğunuz addımlara daxildir. adafruitio_musclesensor_neopixel faylı. Bu, əvvəllər məlumatlarınızla təyin etdiyiniz config.h ilə işləyir. Kod blokları şərhlərə daxil edilir, buna görə nə baş verdiyini görə bilərsiniz.

Bu kodda AlertTriggered (əvvəlki addımda 600 -dən böyük bir dəyər üzərində elan etdiyimiz) 5 dəfədən çox tetiklendiğinde bir tetikleyici yaratdım. Bu o deməkdir ki, tetiklendiğinde Neopixel led şeridi ağdan qırmızıya dəyişir. Bu bir dəqiqə baş verəcək və qırmızı vəziyyət solmağa başlayacaq və yenidən ağ vəziyyətə salınacaq.

Bir proqramçı olaraq sizin üçün daha aydın olması üçün son kod dəsti Serial Monitor üçündür. Dəyərlər nədir və nə vaxt xəbərdarlıq səviyyəsini tetikler. Alert vəziyyəti açıldıqda saniyə əlavə etməklə birlikdə 60 saniyə sonra yenidən Alert vəziyyətinə keçər. Bu səbəbdən bu hissə isteğe bağlıdır.

// alartstate Serial.println ("Saniyələr keçdi:") olduqda Serial Monitorda keçən saniyələri göstərmək üçün; Serial.println (saniyəPassed); } başqa {secondsPassed = 0; }

Etdiyiniz addımları yerinə yetirirsinizsə və ya adafruitio_musclesensor_neopixel faylını öz konfiqurasiyanızla əldə edirsinizsə, onu NodeMCU -a yükləyə bilərsiniz. Bitirsə, Serial Monitorunuzda aşağıda oxşar bir şey görməlisiniz:

Adafruit IO -ya qoşulur…

Adafruit IO bağlıdır. Göndərmək -> 23 Göndərmək -> 78

Şəkil 1, Alertmode rejimində olduqda Serial Monitordur.

İşə yaramır? Aşağıdakıları yoxlayın- config.h-nin düzgün şəkildə daxil olub-olmadığını yoxlayın- Doğru Adafruit IO İstifadəçi Adını və Açarını qoymusunuzmu- Doğru SSID-ə Wifi şifrəsini qoymusunuzmu- MyoWare-in naqillərini yerləşdirmisinizmi? Əzələ Sensoru sağda və Neopixel Led Strip -dən

Və ya əvvəlki addımları yoxlayın.

Addım 6: Nəticələr

Vay, işiniz bitdi! Son məhsulu nümayiş etdirmək və görmək üçün bir video əlavə etdim.

Tövsiyə: