Talaan ng mga Nilalaman:

Neopixel Led Strip Reacting to Myoware Muscle Sensor: 6 Hakbang
Neopixel Led Strip Reacting to Myoware Muscle Sensor: 6 Hakbang

Video: Neopixel Led Strip Reacting to Myoware Muscle Sensor: 6 Hakbang

Video: Neopixel Led Strip Reacting to Myoware Muscle Sensor: 6 Hakbang
Video: 新しい筋トレの方法 : TouchDesigner, Arduino, MyoWare Muscle Sensor 2024, Nobyembre
Anonim
Ang Neopixel Led Strip Reacting sa Myoware Muscle Sensor
Ang Neopixel Led Strip Reacting sa Myoware Muscle Sensor

Ang layunin ay upang mai-install ang isang sensor ng kalamnan sa tulong ng Arduino at pagproseso ng papasok na data sa Adafruit IO at pagkuha ng output na may isang gatilyo upang ang ilaw ay lumiliko mula puti hanggang pula sa isang minuto.

Ano ang isang Sensor ng kalamnan Ang Muscle Sensor ay sumusukat sa aktibidad ng elektrikal ng isang kalamnan at gumagawa ng isang signal ng output ng analog na madaling mabasa ng isang microcontroller. Sinusukat ng Electromyography (EMG) ang tugon ng kalamnan o aktibidad ng elektrisidad bilang tugon sa pagpapasigla ng isang nerve ng kalamnan. Ang pagsubok ay ginagamit upang makatulong na makita ang mga abnormalidad ng neuromuscular. Sa panahon ng pagsubok, isa o higit pang maliliit na karayom (tinatawag ding electrodes) ay naipasok sa balat sa kalamnan.

Para sa proyektong ito kailangan mo: -MyoWare muscle sensor -EMG electrodes -NodeMCU (esp8266) -Silicone cover wire -USB micro cable -Neopixel led strip

Mga aklatan na kakailanganin mo: -Adafruit io Arduino (hindi bababa sa bersyon 2.3.0) -Adafruit Neopixel (bersyon 1.2.5) -Adafruit MQTT library (1.0.3) -Arduino HttpClients (0.4.0) Kung wala kang te naka-install na ang mga aklatan. Pagkatapos ay pumunta sa Sketch> isama ang Library> Pamahalaan ang Mga Aklatan… i-type: [ang pangalan ng library na nais mong i-install] sa patlang ng paghahanap.

Hakbang 1: Pagkonekta sa Myoware Muscle Sensor (lalo na para sa Mga Hindi Nagtrabaho Ng Ito Bago)

Kung hindi ka pa nakatrabaho sa isang Myoware Muscle Sensor, mabuting maunawaan muna kung paano nakakonekta at nababasa ang sensor na ito sa Serial monitor sa Arduino. Ang operasyon na ito ay isang karaniwang pamamaraan na nailarawan sa maraming mga manwal. Ang platform ng Adafruit ay may isang malinaw na paglalarawan kung paano ito gumagana sa ilang mga hakbang:

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

Kung ang lahat ng mga hakbang na ito ay ginawa, makikita mo sa iyong serial monitor na nagbabago ang mga halaga kapag hinihigpit mo ang iyong kalamnan. Kapag gumawa ka ng isang kamao at higpitan ang iyong kalamnan ang mga halaga ay dapat na tumaas at kapag pinahinga mo ang iyong kalamnan ang mga halagang ito ay dapat bumaba muli.

Mahalaga Ang hakbang na ito ay upang mai-set up lamang ang sensor. Ang code na ginamit mo ay hindi kinakailangan para sa natitirang manwal. Ang paraan mo lamang na mai-install ang sensor mismo ay mananatiling pareho para sa mga paparating na hakbang.

Hakbang 2: Pag-setup ng Adafruit IO

Pag-setup ng Adafruit IO
Pag-setup ng Adafruit IO
Pag-setup ng Adafruit IO
Pag-setup ng Adafruit IO
Pag-setup ng Adafruit IO
Pag-setup ng Adafruit IO

Ang unang hakbang ay mag-login o lumikha ng isang acount sa Adafruit IO, mag-browse sa Adafruit IO. Ang Adafruit IO ay isang cloud platform, na maaari kang kumonekta sa internet. Ginagawang kapaki-pakinabang ng Adafruit IO ang data sa mga koneksyon ng data.

Kapag nasa account ka:

Lumikha ng Analog FeedNext, kakailanganin mong lumikha ng isang feed na tinatawag na Analog. Kung kailangan mo ng tulong sa pagsisimula sa paglikha ng mga feed sa Adafruit IO, suriin ang gabay sa Mga Pangunahing Kaalaman sa Feed ng Adafruit IO (Tulad ng larawan 1 at 2).

Pagdaragdag ng Gauge Block at ang tsart ng Line BlockN Next, lumikha ng isang bagong dashboard at pangalanan ito ayon sa nais mong pangalanan (ipinakita sa mga larawan 3, 4 at 5 upang makagawa ng isang bagong dashboard). Tiyaking napili mo ang Analog feed bilang mapagkukunan ng data.

Kapag nasa dashboard ka, magdagdag ng isang bagong Gauge block trough click sa asul na plus sa kanang sulok sa itaas. Pangalanan ang bloke ng anumang nais mo (ipinakita sa mga larawan 6 at 7), at bigyan ito ng isang max na halaga ng 1024 at isang halagang min na 0 (mga halaga ng sensor ng kalamnan).

Ulitin ang pareho sa linya ng tsart ng tsart (larawan 8) tulad ng nasa itaas gamit ang Gauge block.

Suriin Kung nagawa mo na ang al sa itaas, dapat kang magkaroon ng isang katulad na screen tulad ng huling larawan.

Hakbang 3: Arduino Input

Input ng Arduino
Input ng Arduino
Input ng Arduino
Input ng Arduino
Input ng Arduino
Input ng Arduino
Input ng Arduino
Input ng Arduino

Sa hakbang 1 ay nagawa mo na ang pag-set up ng mga kable ng MyoWare Muscle sensor nang tama. Ang hakbang na ito ay sumisid kami sa Arduino code na kasama ng pagkonekta sa hakbang 2 sa Adafruit IO dashboard. Sa pagtatapos ng hakbang na ito, makikita mo ang mga halaga ng pag-input ng sensor ng Myoware Muscle sa dalawang Mga Block na na-set up mo.

Pag-setup ng Arduino

Tiyaking mayroon kang mga naka-install na aklatan na nabanggit sa itaas sa pagpapakilala.

Pupunta kami sa isang halimbawa ng sketch. Kaya buksan ang File> Halimbawa> Adafruit IO Arduino> adafruitio_08_analog_in (larawan 1). Bakit ang sketch na ito? dahil unang inaayos namin ang input na bahagi ng manwal na ito. Ginagamit ng sensor ng MyoWare na kalamnan ang output ng analog. Kung nais mong sumisid pa sa paksa tungkol sa analog.

Upang mai-configure ang mga setting ng network, i-click ang tab na config.h sa sketch. Kakailanganin mong itakda ang iyong username ng Adafruit IO sa IO_USERNAME tukuyin, at ang iyong Adafruit IO key sa IO_KEY tukuyin. Mahahanap mo ang iyong username at susi sa kanang itaas ng screen sa iyong Arduino IO (halimbawa sa larawan 2)

# tukuyin ang IO_USERNAME "iyong_username"

# tukuyin ang IO_KEY "your_key"

Ang WiFi Config WiFi ay pinagana bilang default sa config.h kaya kung gumagamit ka ng isa sa mga sinusuportahang WiFi board, kakailanganin mo lamang na baguhin ang mga pagpipiliang WIFI_SSID at WIFI_PASS sa tab na config.h.

#define WIFI_SSID "your_ssid" #define WIFI_PASS "your_pass"

Kung mayroon kang mga pagbabago sa mga setting sa itaas, maaari kaming pumunta sa karagdagang sa aktwal na code, adafruit_08_analog_in. Ang defeault pin sa halimbawang ito ay statet sa AO. Ito ang tamang pin habang inilagay mo ang iyong sensor ng kalamnan sa pisara sa hakbang 2.

Ang halimbawang ito ay gumagamit ng isang sensor ng photocell, dahil gumagamit kami ng isang sensor ng kalamnan babaguhin namin ang pangalang ito. Hindi mahalaga kung gagawin mo ito, gagawin lamang itong mas maayos. Palitan ang PHOTOCELL_PIN sa MUSCLESENSOR_PIN gawin ito sa dalawang lugar ng sketch.

/ ***** ********* /

// analog pin 0 #define PHOTOCELL_PIN A0

Sa huling codeline mayroong paglalagay ng isang pagkaantala. Ang pagkaantala na ito ay 1 segundo, itatakda namin ay hanggang 2 segundo kaya 2000. Ginagawa namin ito dahil mayroong isang lisensya sa Adafruit IO na may isang limitasyon sa data, sa ilalim ng dalawang segundo ang sketch na ito ay lumampas sa limitasyon ng data at magbibigay ito ng isang THROTTLE WARNING. Ano ang ibig sabihin na walang darating na anumang mga halaga. Ang pagtatakda nito sa dalawang segundo ay humahadlang dito.

// wait one segundo (1000 milliseconds == 1 segundo) pagkaantala (2000);

Ito ang kailangan mong baguhin sa sketch upang maisagawa ito. Kung nais mong malaman nang eksakto kung paano gumagana ang buong code. Maaari mo itong mahanap sa alamin ang Adafruit, na may paliwanag sa bawat mga bloke ng code.

Suriin I-upload ang sketch sa iyong board, at buksan ang Arduino Serial Monitor. Dapat kumonekta ang iyong board sa Adafruit IO.

maaari mo nang higpitan ang iyong braso, at dapat mong makita ang pagbabago ng mga halagang ipinapadala sa Adafruit IO (tulad ng larawan 3). Kung wala kang makitang anumang mga halaga sa Serial monitor, suriin kung itinakda mo ang rate ng Baud sa Serial monitor sa 115200.

Adafruit IO Dashboard Suriin ang iyong dashboard sa Adafruit IO, at dapat mong makita ang gauge at ang tsart ng linya na tumutugon sa mga pagbabago sa mga halaga ng MyoWare Muscle Sensor.

Hakbang 4: Pag-setup ng Adafruit IO Trigger

Pag-setup ng Adafruit IO Trigger
Pag-setup ng Adafruit IO Trigger
Pag-setup ng Adafruit IO Trigger
Pag-setup ng Adafruit IO Trigger

Hanggang ngayon nagawa naming gumawa ng input mula sa sensor ng MyoWare Muscle hanggang sa gumagana ang Adafruit IO. Ngayon ay magsisimula na kaming basahin ang impormasyong ito. Kaya't pagkatapos ng 5 beses ng isang halaga sa itaas ng X ng kalamnan sensor ay napansin, isang aksyon ay ginaganap ng Neopixel led strip.

Ang seksyong ito ay para sa akin kung saan kailangan kong mag-imbestiga kung paano ko mababasa ang kasaysayan ng Adafruit IO. Nakipagtulungan ako sa Mga feed at Dashboard dati, kaya naisip ko na ang feed at dashboard na nilikha ay maaaring basahin ito at lumikha ng isang aksyon dito sa Arduino. Sa ngayon hindi pa ako nagtagumpay. Matapos ang maraming pagsasaliksik at Adafruit IO, natuklasan ko na ang isang aksyon ay maaaring ma-trigger sa pagpapaandar ng Trigger sa Adafruit IO. Matuto nang higit pa tungkol sa Mga Trigger.

Isang labis na Feed Bago kami makagawa ng isang Trigger dapat kaming lumikha ng ibang feed upang mapangalanan namin ito sa Arduino upang makakuha ng output. Lumikha ng isang feed na may pangalang AlertTriggered.

Lumikha ng isang TriggerNext sa mga header feed at Dashboard ay Trigger, pumunta dito. Lumikha ng isang bagong gatilyo. Tatanungin ka kung nais mong lumikha ng isang Reactive Trigger o Iskedyul na Trigger, piliin ang Reactive Trigger at mag-click sa lumikha. Ito ay dahil nais mo lamang mag-trigger ng isang bagay kapag may nangyari (larawan 1).

Ang isang bilang ng mga bagay ay dapat itakda (Susunod na mga hakbang ay ipinapakita din sa larawan 2).- Piliin ang analog feed sa unang Kung, kaya ang pag-input ay makukuha mula dito.

-Napili mo ba ng mas malaki kaysa sa, ito dahil gusto mong mag-trigger ng isang bagay kapag lumagpas ang halaga sa naturang numero.

-Ng halaga ng Comperison maaari mong ipasok ang iyong ninanais na numero upang maisaaktibo ang gatilyo. Gumawa ako ng 600 sa kasong ito.

-May arduino kakailanganin mong makatanggap ng isang puna kapag lumampas ito sa 600: kaya sa Pagkatapos piliin ang mag-publish ng isang mensahe sa:.

-After kung saan maaari mong piliin ang iyong pangalawang feed na nilikha AlertTriggered.

Sa huling pag-click sa lumikha.

Hakbang 5: Neopixel Output

Neopixel Output
Neopixel Output

Ang pangwakas na hakbang ay upang makabuo ng output. Tapos na sa Arduino sketch na iyong naayos, sa pamamagitan ng pagtawag sa AlertTriggered feed (na nilikha mo sa nakaraang hakbang).

Upang makabuo ng output dapat mo munang ikonekta ang Neopixel led strip sa NodeMCU.- + 5v (kaliwa) wire ng iyong led strip sa 3v ng iyong NodeMCU- GND (kanan) wire sa G ng Node (G = GND) - Center wire DIN ng LED sa D5 (o anumang iba pang D port)

Kasama sa CodeI ang buong sketch na may mga kahalili sa hakbang na ito bilang isang file (maaaring matagpuan sa ilalim ng hakbang na ito). Ito ang parehong sketch na iyong nagtrabaho sa huling ilang mga hakbang ngunit ngayon ang huling Sketch ay kasama ng mga hakbang na dapat mong gawin upang makabuo ng output. adafruitio_musclesensor_neopixel file. Gumagana ito sa config.h na dati mong itinakda sa iyong data. Ang mga bloke ng code ay kasama ng mga komento upang makita mo kung ano ang nangyayari.

Anong data ng output ang na-code Sa code na ito lumikha ako ng isang pag-trigger, kapag ang AlertTriggered (kung ano ang idineklara namin sa nakaraang hakbang sa isang halagang higit sa 600) ay na-trigger nang higit sa 5 beses. Nangangahulugan ito na kapag ito ay na-trigger, ang Neopixel led strip ay itinakda mula puti hanggang pula. Mangyayari ito sa loob ng isang minuto at kaysa sa pulang estado ay mawawala at naikulong muli sa puting estado.

Serial Monitor Upang mas malinaw ito para sa iyo bilang isang programmer, ang huling hanay ng code ay para sa Serial Monitor. Ano ang mga halaga at kapag mayroon kang pag-trigger ng antas ng alerto. Kasama ang pagdaragdag ng mga segundo kapag nakabukas ang estado ng Alert, hanggang makalipas ang 60 segundo ay lumilipat ito muli sa estado ng Alert. Ang bahagi na ito samakatuwid ay opsyonal.

// upang ipakita ang lumilipas na mga segundo sa Serial Monitor kapag ang alartstate ay nasa Serial.println ("Seconds passed:"); Serial.println (segundoPassed); } iba pa {segundoPassed = 0; }

Suriin Kung mayroon kang mga hakbang na tapos o makuha ang sketch adafruitio_musclesensor_neopixel file gamit ang iyong sariling config.h maaari mo itong i-upload sa iyong NodeMCU. Kung tapos na dapat mong makita ang isang bagay na katulad sa ibaba sa iyong Serial Monitor:

Kumokonekta sa Adafruit IO…

Nakakonekta ang Adafruit IO. Pagpapadala -> 23 Pagpapadala -> 78

Ang Larawan 1 ay ang Serial Monitor kapag nasa Alertmode ito.

Hindi ito gumagana Suriin ang mga sumusunod na bagay- Suriin kung ang config.h ay kasama sa tamang paraan- Inilagay mo sa tamang Adafruit IO Username at Key- Inilagay mo ba sa tamang SSID ang isang Wifi password- Nailagay mo ba ang mga kable ng MyoWare Ang Sensor ng kalamnan ay kanan at mula sa Neopixel Led Strip

O suriin ang mga nakaraang hakbang.

Hakbang 6: Mga Resulta

Hooray tapos ka na! Upang maipakita at makita ang pagtatapos ng produkto sa aksyon nagsama ako ng isang video.

Inirerekumendang: