Мазмуну:

Neopixel Led Strip Myoware булчуң сенсоруна жооп берет: 6 кадам
Neopixel Led Strip Myoware булчуң сенсоруна жооп берет: 6 кадам

Video: Neopixel Led Strip Myoware булчуң сенсоруна жооп берет: 6 кадам

Video: Neopixel Led Strip Myoware булчуң сенсоруна жооп берет: 6 кадам
Video: Homemade Iron Man Inspired Blaster Glove with LED board, Neopixel Ring, Flex Sensor, and Arduino 2024, Ноябрь
Anonim
Neopixel Led Strip Myoware булчуң сенсоруна жооп берет
Neopixel Led Strip Myoware булчуң сенсоруна жооп берет

Максат - булчуң сенсорун Arduino жардамы менен орнотуу жана келген маалыматтарды Adafruit IO менен иштетүү жана жарык бир мүнөттө актан кызылга айлануусу үчүн триггер менен чыгаруу.

Булчуң сенсору булчуңдун электрдик активдүүлүгүн өлчөйт жана аналогдук сигнал чыгарат, аны микроконтроллер оңой окуй алат. Электромиография (EMG) булчуңдун нервинин стимулуна жооп катары булчуңдун реакциясын же электрдик активдүүлүгүн өлчөйт. Тест нейромускулярдык аномалияларды аныктоого жардам берүү үчүн колдонулат. Сыноо учурунда булчуңга тери аркылуу бир же бир нече кичинекей ийнелер (электроддор деп да аталат) киргизилет.

Бул долбоор үчүн сизге төмөнкүлөр керек: -MyoWare булчуң сенсору -ЭМГ электроддору -NodeMCU (esp8266) -Силикон капкагы зымы -USB микро кабели -Неопикселди алып келген тилке

Китепканалар сизге керек болот: -Adafruit io Arduino (жок дегенде 2.3.0 версиясы) -Adafruit Neopixel (1.2.5 версиясы) -Adafruit MQTT китепканасы (1.0.3) -Arduino HttpClients (0.4.0) китепканалар азырынча орнотула элек. Андан кийин Sketch> Китепкананы кошуу> Китепканаларды башкаруу… бөлүмүнө өтүңүз: издөө талаасына: [сиз орноткуңуз келген китепкананын атын] териңиз.

1 -кадам: Myoware булчуң сенсорун туташтыруу (өзгөчө буга чейин эч качан иштебегендер үчүн)

Эгерде сиз эч качан Myoware Muscle Sensor менен иштебеген болсоңуз, анда бул сенсор Arduinoдогу сериялык монитордо кантип туташып, окула турганын түшүнгөнүңүз жакшы. Бул операция буга чейин сүрөттөлгөн көптөгөн колдонмолордо болгон стандарттык жол -жобо. Adafruit платформасында анын бир нече этапта кандайча иштээри жөнүндө так сүрөттөмө бар:

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

Эгерде бардык бул кадамдар жасалган болсо, анда сиз сериялы мониторуңузда булчуңдарды чыңдаганыңызда маанилердин өзгөрүп турганын көрөсүз. Сиз муштумуңузду булчуңуңузга тартканыңызда баалуулуктар жогорулашы керек, ал эми булчуңуңуз бошогондо бул баалуулуктар кайра төмөндөшү керек.

Маанилүү Бул кадам сенсорду орнотуу үчүн гана. Сиз колдонгон код колдонмонун калган бөлүгүндө керек эмес. Сенсорду өзүңүздүн коюу ыкмаңыз гана алдыдагы кадамдар үчүн ошол бойдон калат.

2 -кадам: Adafruit IO орнотуусу

Adafruit IO орнотуусу
Adafruit IO орнотуусу
Adafruit IO орнотуусу
Adafruit IO орнотуусу
Adafruit IO орнотуусу
Adafruit IO орнотуусу

Биринчи кадам - Adafruit IOдо каттоо эсебин түзүү же түзүү, Adafruit IOго өтүү. Adafruit IO булут платформа, сиз интернет аркылуу туташа аласыз. Adafruit IO маалымат байланыштары менен маалыматты пайдалуу кылат.

Сиз каттоо эсебиңизде болгондо:

Analog FeedNext түзүңүз, аналог деп аталган түрмөктү түзүшүңүз керек болот. Эгерде сизге Adafruit IOдо канал түзүүнү баштоодо жардам керек болсо, Adafruit IO Feed Basics колдонмосун караңыз (1 жана 2 -сүрөттөгүдөй).

Ченегич блогун жана сызык диаграммасын кошуу BlockNext, жаңы тактаны түзүп, аны каалагандай атагыла (жаңы панель жасоо үчүн 3, 4 жана 5 -сүрөттөрдө көрсөтүлгөн). Маалымат булагы катары аналогдук түрмөктү тандаганыңызды текшериңиз.

Башкаруу тактасында жүргөнүңүздө, жогорку оң бурчтагы көк плюска жаңы өлчөө блогун кошуңуз. Блокко каалаган нерсеңизди коюңуз (6 жана 7 -сүрөттөрдө көрсөтүлгөн) жана 1024 максималдуу маанисин жана 0 минималдуу маанисин бериңиз (булчуң сенсорунун мааниси).

Жогоруда көрсөтүлгөндөй, Диаграмма блогу менен (фото 8) кайталаңыз.

Эгерде сиз жогоруда айткандай кылсаңыз, сизде акыркы сүрөткө окшош экран болушу керек.

3 -кадам: Arduino киргизүү

Arduino киргизүү
Arduino киргизүү
Arduino киргизүү
Arduino киргизүү
Arduino киргизүү
Arduino киргизүү
Arduino киргизүү
Arduino киргизүү

1 -кадамда сиз MyoWare Muscle сенсорунун зымын туура орноттуңуз. Бул кадам биз Adafruit IO панелинин 2 -кадамына туташуу менен келген Arduino кодуна киребиз. Бул кадамдын аягында, сиз орноткон эки блоктон Myoware Muscle сенсорунун кирүү маанилерин көрөсүз.

Arduino орнотуу

Киришүүдө жогоруда белгиленген бардык китепканаларыңыз бар экенин тактаңыз.

Биз мисал эскиз менен иштейбиз. Ошентип, Файл> Мисал> Adafruit IO Arduino> adafruitio_08_analog_in ачыңыз (сүрөт 1). Эмне үчүн бул эскиз? анткени биз биринчи кезекте бул колдонмонун кириш бөлүгүн орнотуп жатабыз. MyoWare Muscle сенсору аналогдук чыгарууну колдонот. Эгерде сиз аналог жөнүндө көбүрөөк билгиңиз келсе.

Тармак орнотууларын конфигурациялоо үчүн, эскиздеги config.h өтмөгүн чыкылдатыңыз. Сиз Adafruit IO колдонуучу атын IO_USERNAME аныктамасына жана Adafruit IO ачкычыңызды IO_KEY аныктамасына коюшуңуз керек болот. Колдонуучу атыңызды жана ачкычты экрандын жогорку оң жагында Arduino IOдон таба аласыз (2 -сүрөттөгү мисал)

#аныктоо IO_USERNAME "сиздин_колдонуучу"

#аныктоо IO_KEY "сиздин_клайды"

WiFi Config WiFi демейки боюнча config.hде иштетилген, ошондуктан сиз колдоого алынган WiFi такталарынын бирин колдонуп жатсаңыз, config.h өтмөгүндөгү WIFI_SSID жана WIFI_PASS параметрлерин гана өзгөртүүңүз керек болот.

#WIFI_SSID "your_ssid"#WIFI_PASS "your_pass" дегенди аныктаңыз

Эгерде сизде жогоруда орнотууларды өзгөртсөңүз, анда биз чыныгы кодго, adafruit_08_analog_in дагы кире алабыз. Бул мисалда демейки пин AO боюнча statet болуп саналат. Бул 2 -кадамда булчуң сенсорун тактага койгонуңузда, бул туура пин.

Бул мисалда фотоэлемент сенсору колдонулат, анткени булчуң сенсорун колдонуп, биз бул атты өзгөртөбүз. Муну жасасаңыз деле мааниге ээ эмес, бул аны семантикалык жактан иретке келтирет. PHOTOCELL_PINди MUSCLESENSOR_PIN кылып өзгөртүңүз, муну эскиздин эки жеринде жасаңыз.

/************************ Мисал ушул жерден башталат ********************** *********/

// аналогдук пин 0 #fine PHOTOCELL_PIN A0

Акыркы коддо кечигүү бар. Бул кечигүү 1 секунд, биз 2 секундага 2000ге коюуну чечтик. Биз муну жасайбыз, анткени Adafruit IOдо маалыматтын чеги бар, эки секунддун ичинде бул эскиз маалымат чегинен ашат жана ал ТАРТУУ ЭСКЕРТҮҮСҮН берет. Мунун мааниси эч кандай мааниге ээ эмес. Муну эки секундга коюу муну алдын алат.

// бир секунд күт (1000 миллисекунд == 1 секунд) кечигүү (2000);

Бул эскизде иштеши үчүн аны өзгөртүү керек болчу. Эгерде сиз бүт коддун кантип иштээрин так билгиңиз келсе. Сиз муну Adafruit үйрөнүүдөн таба аласыз, ар бир блок блокторун түшүндүрүп берүү менен.

Текшерүү Эскизди тактаңызга жүктөп, Arduino Serial Monitorду ачыңыз. Сиздин такта азыр Adafruit IO менен туташышы керек.

сиз азыр колуңузду бекемдей аласыз жана өзгөрүп жаткан баалуулуктар Adafruit IOго жөнөтүлүшү керек (3 -сүрөттөгүдөй). Эгерде сиз сериялык монитордо эч кандай баалуулуктарды көрбөсөңүз, сериялык монитордогу Baud ылдамдыгын 115200 деп койгонуңузду текшериңиз.

Adafruit IO панелин текшериңиз, жана өлчөгүчтү жана сызык диаграммасын MyoWare Muscle Sensor баалуулуктарынын өзгөрүшүнө жооп берүүсүн көрүшүңүз керек.

4 -кадам: Adafruit IO Trigger орнотуусу

Adafruit IO Trigger орнотуусу
Adafruit IO Trigger орнотуусу
Adafruit IO Trigger орнотуусу
Adafruit IO Trigger орнотуусу

Ушул убакка чейин биз Adafruit IO иштөө үчүн MyoWare Muscle сенсорунан маалымат киргизе алдык. Эми биз бул маалыматты окуй баштайбыз. Ошентип, булчуң сенсорунун Xтен 5 эсе чоң мааниси аныкталгандан кийин, иш Neopixel лед тилкеси тарабынан аткарылат.

Бул бөлүм мен үчүн болду, анда мен Adafruit IO тарыхын кантип окуй алаарымды изилдөөм керек болчу. Мен буга чейин Түрмөктөр жана Таблицалар менен иштечүмүн, ошондуктан түзүлгөн каналдар жана такталар муну окуп, бул жерде Ардуинодо аракет түзө алат деп ойлогом. Азырынча ийгиликке жете элекмин. Көптөгөн изилдөөлөрдөн жана Adafruit IOдон кийин, мен Adafruit IOдогу Trigger функциясы менен бир аракетти баштоого болорун билдим. Triggers жөнүндө көбүрөөк билүү.

Кошумча FeedBeig биз Trigger жасоодон мурун, биз башка түрмөктү түзүшүбүз керек, андыктан аны чыгаруу үчүн Arduinoдо аталышы мүмкүн. AlertTriggered аты менен түрмөк түзүңүз.

Триггер түзүү Feed жана Башкаруу тактасы Trigger деген аталыштардан кийин бул жакка өтүңүз. Жаңы триггерди түзүңүз. Сизден реактивдүү триггерди же графикти иштетүүнү кааласаңыз, реактивдүү триггерди тандап, түзүүнү чыкылдатыңыз. Себеби, бир нерсе болгондо гана бир нерсени козгогусу келет (фото 1).

Бир катар нерселерди орнотуу керек (Кийинки кадамдар 2-сүрөттө да көрсөтүлгөн).- Аналогдук берүүнү биринчиден If тандаңыз, ошондо киргизүү ушул жерден алынат.

-Сиз чоңураакты тандадыңызбы, себеби, эгерде мааниси мындай сандан ашып кетсе, бир нерсени иштеткиңиз келет.

-Комперион мааниси, триггерди иштетүү үчүн каалаган номериңизди киргизе аласыз. Мен бул учурда 600 кылдым.

-Arduino менен сиз 600дөн ашканда пикир алышыңыз керек болот: андыктан анда билдирүүнү жарыялоону тандаңыз:.

-Андан кийин AlertTriggered түзүлгөн экинчи Feed тандап алсаңыз болот.

Акыры түзүүнү чыкылдатыңыз.

5 -кадам: Neopixel Output

Neopixel Output
Neopixel Output

Акыркы кадам - өндүрүштү түзүү. Сиз түзөткөн Arduino эскизинде, AlertTriggered түрмөгүнө чалуу менен (мурунку кадамда түзгөн) аткарылды.

Чыгарууну өндүрө алуу үчүн, адегенде Neopixel LED тилкесин NodeMCU менен туташтырышыңыз керек.- + 5v (сол) зымыңыздын NodeMCU- GND (оң жактагы) 3v түйүнүнүн G түйүнүнөн (G = GND))- D5 боюнча LEDдин борбордук зымы DIN (же башка D порту)

CodeI бул эскизге альтернатива катары бүт эскизди киргизди (бул кадамдын ылдый жагында табууга болот). Бул сиз акыркы бир нече этапта иштеген эскиз, бирок азыр акыркы эскиз өндүрүштү жаратуу үчүн жасалышы керек болгон кадамдарга камтылган. adafruitio_musclesensor_neopixel файлы. Бул мурда дайындарыңыз менен орнотулган config.h менен иштейт. Код блоктору комментарийлерге киргизилген, андыктан эмне болуп жатканын көрө аласыз.

Бул коддо мен AlertTriggered (мурунку кадамда 600дөн чоң мааниге ээ болгон нерсени жарыялаганбыз) 5 эседен ашык иштетилгенде триггерди түздүм. Бул иштетилгенде, Neopixel LED тилкеси актан кызылга чейин орнотулганын билдирет. Бул бир мүнөткө созулат жана кызыл абал жоголуп, кайра ак абалга айланат.

Программист катары сизге түшүнүктүү кылуу үчүн коддун акыркы топтому Сериялык Мониторго арналган. Кандай маанилер жана качан сиз эскертүү деңгээлин иштетет. Эскертүү абалы күйгүзүлгөндө секунддарды кошуу менен бирге, 60 секунддан кийин кайра Эскертүү абалына өтөт. Бул бөлүк ошондуктан милдеттүү эмес.

// alartstate Serial.println күйүп турганда Сериалдык Монитордо өткөн секунддарды көрсөтүү үчүн ("Seconds өттү:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

Эгерде сизде жасалган кадамдар болсо же эскиз adafruitio_musclesensor_neopixel файлын өзүңүздүн конфигурацияңыз менен алсаңыз.h сиз аны NodeMCUго жүктөй аласыз. Эгер ал аткарылса, төмөндөгү Сериалдык Мониторго окшош нерсени көрүшүңүз керек:

Adafruit IO менен туташууда…

Adafruit IO туташты. Жөнөтүү -> 23 Жөнөтүү -> 78

Сүрөт 1 сериялык монитор, ал Alertmode режиминде.

Бул иштебейби? Төмөнкү нерселерди текшериңиз- config.h туура жолго киргизилгенин текшериңиз- Сиз туура Adafruit IO колдонуучу атын жана ачкычын киргиздиңиз беле- Сиз туура SSIDге Wifi сырсөзүн киргиздиңизби- MyoWare зымдарын койгонсузбу? Muscle Sensor оңго жана Neopixel Led Stripтен

Же мурунку кадамдарды текшериңиз.

6 -кадам: Жыйынтыктар

Ураа, бүттүң! Көрсөтүү жана акыркы продуктту иш жүзүндө көрүү үчүн мен видеону коштум.

Сунушталууда: