สารบัญ:

Neopixel Led Strip ตอบสนองต่อ Myoware Muscle Sensor: 6 ขั้นตอน
Neopixel Led Strip ตอบสนองต่อ Myoware Muscle Sensor: 6 ขั้นตอน

วีดีโอ: Neopixel Led Strip ตอบสนองต่อ Myoware Muscle Sensor: 6 ขั้นตอน

วีดีโอ: Neopixel Led Strip ตอบสนองต่อ Myoware Muscle Sensor: 6 ขั้นตอน
วีดีโอ: การควบคุม LED Strip ด้วย Arduino Ep.1 คำสั่งเบื้่องต้นทดสอบการสั่งงาน 2024, พฤศจิกายน
Anonim
Neopixel Led Strip ตอบสนองต่อ Myoware Muscle Sensor
Neopixel Led Strip ตอบสนองต่อ Myoware Muscle Sensor

เป้าหมายคือการติดตั้งเซ็นเซอร์กล้ามเนื้อด้วยความช่วยเหลือของ Arduino และประมวลผลข้อมูลขาเข้าด้วย Adafruit IO และดึงเอาต์พุตด้วยทริกเกอร์เพื่อให้แสงจากสีขาวเป็นสีแดงเป็นเวลาหนึ่งนาที

Muscle Sensor คืออะไร Muscle Sensor วัดกิจกรรมทางไฟฟ้าของกล้ามเนื้อและสร้างสัญญาณเอาต์พุตแบบอะนาล็อกที่ไมโครคอนโทรลเลอร์สามารถอ่านได้ง่าย Electromyography (EMG) วัดการตอบสนองของกล้ามเนื้อหรือกิจกรรมทางไฟฟ้าเพื่อตอบสนองต่อการกระตุ้นกล้ามเนื้อของเส้นประสาท การทดสอบนี้ใช้เพื่อช่วยตรวจหาความผิดปกติของระบบประสาทและกล้ามเนื้อ ในระหว่างการทดสอบ เข็มขนาดเล็กหนึ่งเข็มหรือมากกว่า (หรือที่เรียกว่าอิเล็กโทรด) จะถูกสอดเข้าไปในกล้ามเนื้อผ่านผิวหนัง

สำหรับโครงการนี้ คุณต้องการ: -เซ็นเซอร์กล้ามเนื้อ MyoWare -อิเล็กโทรด EMG -NodeMCU (esp8266) -สายครอบซิลิโคน -สายเคเบิลไมโคร USB -แถบไฟ LED Neopixel

ไลบรารีที่คุณต้องการ: -Adafruit io Arduino (อย่างน้อยเวอร์ชัน 2.3.0) -Adafruit Neopixel (เวอร์ชัน 1.2.5) - ไลบรารี Adafruit MQTT (1.0.3) -Arduino HttpClients (0.4.0) หากคุณไม่มี te ติดตั้งไลบรารี่แล้ว จากนั้นไปที่ Sketch> include Library> Manage Libraries … พิมพ์: [ชื่อไลบรารีที่คุณต้องการติดตั้ง] ในช่องค้นหา

ขั้นตอนที่ 1: เชื่อมต่อ Myoware Muscle Sensor (โดยเฉพาะสำหรับผู้ที่ไม่เคยใช้งานมาก่อน)

หากคุณไม่เคยใช้งาน 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 คุณจะต้องสร้างฟีดที่เรียกว่า Analog หากคุณต้องการความช่วยเหลือในการเริ่มต้นสร้างฟีดบน 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 อย่างถูกต้องแล้ว ขั้นตอนนี้เราจะเจาะลึกไปที่โค้ด Arduino ที่มาพร้อมกับการเชื่อมต่อกับขั้นตอนที่ 2 แดชบอร์ด Adafruit IO เมื่อสิ้นสุดขั้นตอนนี้ คุณจะเห็นค่าอินพุตของเซ็นเซอร์ Myoware Muscle ในบล็อกทั้งสองที่คุณตั้งค่าไว้

การตั้งค่า Arduino

ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารีทั้งหมดที่ระบุไว้ข้างต้นในบทนำ

เราจะทำงานกับภาพร่างตัวอย่าง ดังนั้นให้เปิดไฟล์> ตัวอย่าง> Adafruit IO Arduino> adafruitio_08_analog_in (ภาพที่ 1) ทำไมต้องร่างนี้? เนื่องจากเรากำลังตั้งค่าส่วนป้อนเข้าของคู่มือนี้ก่อน เซ็นเซอร์ MyoWare Muscle ใช้เอาต์พุตแบบอะนาล็อก หากคุณต้องการดำน้ำในหัวข้อเกี่ยวกับแอนะล็อกให้มากขึ้น

Arduino Network Configหากต้องการกำหนดการตั้งค่าเครือข่าย ให้คลิกที่แท็บ config.h ในแบบร่าง คุณจะต้องตั้งชื่อผู้ใช้ Adafruit IO ของคุณในการกำหนด IO_USERNAME และคีย์ Adafruit IO ของคุณในการกำหนด IO_KEY คุณสามารถค้นหาชื่อผู้ใช้และคีย์ของคุณที่ด้านบนขวาของหน้าจอใน Arduino IO ของคุณ (ตัวอย่างในรูปภาพ 2)

#define IO_USERNAME "ชื่อผู้ใช้ของคุณ"

#define IO_KEY "your_key"

การกำหนดค่า WiFi WiFi ถูกเปิดใช้งานโดยค่าเริ่มต้นใน config.h ดังนั้นหากคุณใช้หนึ่งในบอร์ด WiFi ที่รองรับ คุณจะต้องแก้ไขตัวเลือก WIFI_SSID และ WIFI_PASS ในแท็บ config.h เท่านั้น

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

รหัส Arduino หากคุณมีการเปลี่ยนแปลงการตั้งค่าข้างต้น เราสามารถไปที่โค้ดจริงเพิ่มเติม adafruit_08_analog_in พินเริ่มต้นในตัวอย่างนี้คือระบุไว้ใน AO นี่คือพินที่ถูกต้องเมื่อคุณวางเซ็นเซอร์กล้ามเนื้อไว้บนกระดานในขั้นตอนที่ 2

ตัวอย่างนี้ใช้เซ็นเซอร์ตาแมว เนื่องจากเราใช้เซ็นเซอร์กล้ามเนื้อ เราจะเปลี่ยนชื่อนี้ ไม่สำคัญว่าคุณจะทำเช่นนี้ แต่จะทำให้เป็นระเบียบเรียบร้อยมากขึ้นเท่านั้น เปลี่ยน PHOTOCELL_PIN เป็น MUSCLESENSOR_PIN ทำในสองที่ของภาพร่าง

/************************ ตัวอย่างเริ่มต้นที่นี่ ********************** *********/

// พินอนาล็อก 0 #define PHOTOCELL_PIN A0

ในโค้ดไลน์สุดท้ายมีความล่าช้า การหน่วงเวลานี้คือ 1 วินาที เราจะตั้งค่าเป็น 2 วินาที ดังนั้น 2000 เราทำเช่นนี้เพราะมีใบอนุญาตใน Adafruit IO ที่มีขีดจำกัดข้อมูล ภายใต้สองวินาทีร่างนี้เกินขีดจำกัดข้อมูลนั้น และจะให้คำเตือน THROTTLE. หมายความว่าไม่มีค่าเข้ามา การตั้งค่านี้เป็นสองวินาทีจะป้องกันสิ่งนี้

// รอหนึ่งวินาที (1,000 มิลลิวินาที == 1 วินาที) ล่าช้า (2000);

นี่คือสิ่งที่คุณต้องเปลี่ยนในภาพร่างเพื่อให้ใช้งานได้ หากคุณต้องการทราบว่าโค้ดทั้งหมดทำงานอย่างไร คุณสามารถค้นหาได้ใน Learn Adafruit พร้อมคำอธิบายของบล็อคโค้ดทุกอัน

ตรวจสอบอัปโหลดภาพร่างไปยังบอร์ดของคุณ แล้วเปิด Arduino Serial Monitor บอร์ดของคุณควรเชื่อมต่อกับ Adafruit IO แล้ว

ตอนนี้คุณสามารถกระชับแขนของคุณ และคุณควรเห็นค่าที่เปลี่ยนไปที่ถูกส่งไปยัง Adafruit IO (ดังในรูปที่ 3) หากคุณไม่เห็นค่าใดๆ ในมอนิเตอร์แบบอนุกรม ให้ตรวจสอบว่าคุณได้ตั้งค่าอัตราบอดในมอนิเตอร์แบบอนุกรมเป็น 115200 หรือไม่

แดชบอร์ด Adafruit IO ตรวจสอบแดชบอร์ดของคุณบน Adafruit IO และคุณควรเห็นมาตรวัดและแผนภูมิเส้นตอบสนองต่อการเปลี่ยนแปลงค่า MyoWare Muscle Sensor

ขั้นตอนที่ 4: การตั้งค่าทริกเกอร์ Adafruit IO

การตั้งค่าทริกเกอร์ Adafruit IO
การตั้งค่าทริกเกอร์ Adafruit IO
การตั้งค่าทริกเกอร์ Adafruit IO
การตั้งค่าทริกเกอร์ Adafruit IO

จนถึงขณะนี้ เราสามารถป้อนข้อมูลจากเซ็นเซอร์ MyoWare Muscle ไปยัง Adafruit IO ได้ ตอนนี้เราจะเริ่มต้นอ่านข้อมูลนี้ ดังนั้นหลังจากตรวจพบค่า X ของเซ็นเซอร์ Muscle ที่สูงกว่า 5 เท่า แถบนำ Neopixel จะดำเนินการดำเนินการ

ส่วนนี้มีไว้สำหรับฉันที่ฉันต้องตรวจสอบว่าฉันสามารถอ่านประวัติ Adafruit IO ได้อย่างไร ฉันเคยทำงานกับฟีดและแดชบอร์ดมาก่อน ดังนั้นฉันคิดว่าฟีดและแดชบอร์ดที่สร้างขึ้นสามารถอ่านสิ่งนี้และสร้างการดำเนินการที่นี่ใน Arduino จนถึงตอนนี้ฉันยังไม่ประสบความสำเร็จ หลังจากการวิจัยและ Adafruit IO เป็นจำนวนมาก ฉันพบว่าสามารถทริกเกอร์การดำเนินการได้ด้วยฟังก์ชันทริกเกอร์ใน Adafruit IO เรียนรู้เพิ่มเติมเกี่ยวกับทริกเกอร์

ฟีดพิเศษ ก่อนที่เราจะสามารถสร้างทริกเกอร์ได้ เราต้องสร้างฟีดอื่นเพื่อให้เราสามารถตั้งชื่อมันใน Arduino เพื่อรับเอาต์พุต สร้างฟีดที่มีชื่อ AlertTriggered

สร้างทริกเกอร์ถัดจากส่วนหัวฟีดและแดชบอร์ดคือทริกเกอร์ ไปที่นี่ สร้างทริกเกอร์ใหม่ คุณจะถูกถามว่าคุณต้องการสร้าง Reactive Trigger หรือ Schedule Trigger เลือก Reactive Trigger และคลิกที่สร้าง เนื่องจากคุณต้องการทริกเกอร์บางสิ่งเมื่อมีบางอย่างเกิดขึ้นเท่านั้น (ภาพที่ 1)

ต้องตั้งค่าหลายอย่าง (ขั้นตอนถัดไปแสดงในภาพที่ 2).-เลือกการป้อนอนาล็อกในครั้งแรก ถ้าดังนั้นอินพุตจะถูกนำมาจากที่นี่

- คุณเลือกมากกว่านั้นหรือไม่ เพราะคุณต้องการทริกเกอร์บางสิ่งเมื่อค่าเกินจำนวนดังกล่าว

- ค่าเปรียบเทียบคุณสามารถป้อนหมายเลขที่คุณต้องการเพื่อเปิดใช้งานทริกเกอร์ ฉันทำ 600 ในกรณีนี้

- ด้วย arduino คุณจะต้องได้รับคำติชมเมื่อเกิน 600: ดังนั้นที่ จากนั้นเลือกเผยแพร่ข้อความไปที่:.

-หลังจากนั้นคุณสามารถเลือกฟีดที่สองของคุณที่สร้าง AlertTriggered

ในที่สุดคลิกที่สร้าง

ขั้นตอนที่ 5: เอาต์พุต Neopixel

เอาต์พุตนีโอพิกเซล
เอาต์พุตนีโอพิกเซล

ขั้นตอนสุดท้ายคือการสร้างผลลัพธ์ เสร็จสิ้นใน Arduino Sketch ที่คุณแก้ไขโดยการเรียก AlertTriggered feed (ที่คุณสร้างขึ้นในขั้นตอนที่แล้ว)

เพื่อให้สามารถสร้างเอาต์พุตได้ ก่อนอื่นคุณต้องเชื่อมต่อแถบ LED Neopixel กับสาย NodeMCU.- + 5v (ซ้าย) ของแถบไฟ LED ของคุณบน 3v ของสาย NodeMCU- GND (ขวา) บน G ของ Node (G = GND)) - สายกลาง DIN ของ LED บน D5 (หรือพอร์ต D อื่น ๆ)

CodeI ได้รวมภาพร่างทั้งหมดที่มีการสลับกันในขั้นตอนนี้เป็นไฟล์ (สามารถพบได้ที่ด้านล่างของขั้นตอนนี้) นี่เป็นแบบร่างเดียวกันกับที่คุณเคยทำงานด้วยในสองสามขั้นตอนสุดท้าย แต่ตอนนี้ Sketch สุดท้ายรวมอยู่ในขั้นตอนที่คุณต้องทำเพื่อสร้างผลลัพธ์ ไฟล์ adafruitio_musclesensor_neopixel ใช้งานได้กับ config.h ที่คุณได้ตั้งค่าไว้ก่อนหน้านี้กับข้อมูลของคุณ บล็อกโค้ดทั้งหมดรวมอยู่ในความคิดเห็นเพื่อให้คุณเห็นว่าเกิดอะไรขึ้น

ข้อมูลผลลัพธ์ใดที่ได้รับการเข้ารหัสในรหัสนี้ ฉันได้สร้างทริกเกอร์ เมื่อ AlertTriggered (สิ่งที่เราประกาศในขั้นตอนก่อนหน้าเหนือค่าที่มากกว่า 600) ถูกทริกเกอร์มากกว่า 5 ครั้ง ซึ่งหมายความว่าเมื่อมีการทริกเกอร์ แถบ LED Neopixel จะถูกตั้งค่าจากสีขาวเป็นสีแดง สิ่งนี้จะเกิดขึ้นเป็นเวลาหนึ่งนาทีและกว่าที่สถานะสีแดงจะจางลงและวนกลับมาเป็นสถานะสีขาวอีกครั้ง

Serial Monitor เพื่อให้ชัดเจนยิ่งขึ้นสำหรับคุณในฐานะโปรแกรมเมอร์ รหัสชุดสุดท้ายสำหรับ Serial Monitor ค่าคืออะไรและเมื่อใดที่คุณทริกเกอร์ระดับการแจ้งเตือน ร่วมกับการเพิ่มวินาทีเมื่อเปิดสถานะ Alert จนกระทั่ง 60 วินาทีเปลี่ยนเป็นปิดสถานะ Alert อีกครั้ง ส่วนนี้จึงเป็นทางเลือก

//เพื่อแสดงวินาทีที่ผ่านไปใน Serial Monitor เมื่อ alartstate อยู่บน Serial.println("Seconds pass:"); Serial.println (วินาทีผ่านไป); } อื่น ๆ { secondsPassed = 0; }

ตรวจสอบหากคุณทำตามขั้นตอนเสร็จแล้วหรือได้รับไฟล์สเก็ตช์ adafruitio_musclesensor_neopixel ด้วย config.h ของคุณเอง คุณสามารถอัปโหลดไปยัง NodeMCU ของคุณได้ หากเสร็จแล้ว คุณต้องเห็นสิ่งที่คล้ายกันด้านล่างใน Serial Monitor ของคุณ:

กำลังเชื่อมต่อกับ Adafruit IO…

เชื่อมต่อ Adafruit IO แล้ว กำลังส่ง -> 23 กำลังส่ง -> 78

ภาพที่ 1 คือ Serial Monitor เมื่ออยู่ใน Alertmode

มันไม่ทำงาน? ตรวจสอบสิ่งต่อไปนี้ - ตรวจสอบว่า config.h รวมอยู่ในวิธีที่ถูกต้องหรือไม่ - คุณใส่ชื่อผู้ใช้และรหัส Adafruit IO ที่ถูกต้องแล้วหรือยัง - คุณใส่ SSID ที่ถูกต้องและรหัสผ่าน Wifi หรือไม่ - คุณได้วางสายไฟของ MyoWare ไว้หรือไม่ เซ็นเซอร์กล้ามเนื้อด้านขวาและจาก Neopixel Led Strip

หรือตรวจสอบขั้นตอนก่อนหน้านี้

ขั้นตอนที่ 6: ผลลัพธ์

ไชโยคุณทำเสร็จแล้ว! เพื่อสาธิตและดูการทำงานของผลิตภัณฑ์ขั้นสุดท้าย ฉันได้รวมวิดีโอไว้

แนะนำ: