Mục lục:

Neopixel Led Strip phản ứng với Myoware Muscle Sensor: 6 bước
Neopixel Led Strip phản ứng với Myoware Muscle Sensor: 6 bước

Video: Neopixel Led Strip phản ứng với Myoware Muscle Sensor: 6 bước

Video: Neopixel Led Strip phản ứng với Myoware Muscle Sensor: 6 bước
Video: Use Addressable LED Strip with Arduino || Essential Engineering 2024, Tháng mười một
Anonim
Dải đèn LED Neopixel phản ứng với cảm biến cơ Myoware
Dải đèn LED Neopixel phản ứng với cảm biến cơ Myoware

Mục đích là cài đặt một cảm biến cơ với sự trợ giúp của Arduino và xử lý dữ liệu đến với Adafruit IO và truy xuất đầu ra bằng một bộ kích hoạt sao cho đèn te chuyển từ trắng sang đỏ trong một phút.

Cảm biến cơ là gì Cảm biến cơ đo hoạt động điện của cơ và tạo ra tín hiệu đầu ra tương tự mà bộ vi điều khiển có thể dễ dàng đọc được. Điện cơ (EMG) đo phản ứng của cơ hoặc hoạt động điện để đáp ứng với sự kích thích của dây thần kinh đối với cơ. Xét nghiệm được sử dụng để giúp phát hiện các bất thường về thần kinh cơ. Trong quá trình thử nghiệm, một hoặc nhiều kim nhỏ (còn gọi là điện cực) được đưa qua da vào cơ.

Đối với dự án này, bạn cần: -MyoWare cơ cảm biến-Điện cực NHEMG -NodeMCU (esp8266) - Dây bọc silicon-Cáp siêu nhỏ -USB-Dải đèn LED Neopixel

Các thư viện bạn sẽ cần: -Adafruit io Arduino (ít nhất là phiên bản 2.3.0) -Adafruit Neopixel (phiên bản 1.2.5) -Thư viện MQTT (1.0.3) -Arduino HttpClients (0.4.0) Nếu bạn không có te các thư viện đã được cài đặt. Sau đó vào Sketch> include Library> Manage Libraries… gõ: [tên thư viện bạn muốn cài đặt] vào trường tìm kiếm.

Bước 1: Kết nối Myoware Muscle Sensor (đặc biệt cho những người chưa từng làm việc với nó trước đây)

Nếu bạn chưa bao giờ làm việc với Cảm biến cơ Myoware, trước tiên bạn nên hiểu cách cảm biến này được kết nối và có thể đọc được trong màn hình nối tiếp trong Arduino. Thao tác này là một quy trình tiêu chuẩn trong nhiều sách hướng dẫn đã được mô tả. Nền tảng Adafruit có mô tả rõ ràng về cách hoạt động của điều này trong một vài bước:

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

Kiểm tra Nếu tất cả các bước này được thực hiện, bạn sẽ thấy trong màn hình nối tiếp của mình rằng các giá trị thay đổi khi bạn siết chặt cơ bắp của mình. Khi bạn nắm tay và siết cơ, các giá trị sẽ tăng lên và khi bạn thả lỏng cơ, các giá trị này sẽ lại giảm xuống.

Quan trọng Bước này chỉ để thiết lập cảm biến. Mã bạn đã sử dụng không cần thiết cho phần còn lại của sách hướng dẫn. Chỉ có cách bạn lắp đặt cảm biến là không thay đổi cho các bước sắp tới.

Bước 2: Thiết lập IO Adafruit

Thiết lập IO Adafruit
Thiết lập IO Adafruit
Thiết lập IO Adafruit
Thiết lập IO Adafruit
Thiết lập IO Adafruit
Thiết lập IO Adafruit

Bước đầu tiên là đăng nhập hoặc tạo tài khoản trong Adafruit IO, duyệt đến Adafruit IO. Adafruit IO là một nền tảng đám mây mà bạn có thể kết nối qua internet. Adafruit IO làm cho dữ liệu trở nên hữu ích với các kết nối dữ liệu.

Khi bạn ở trong tài khoản của mình:

Tạo Analog FeedNext, bạn sẽ cần tạo một nguồn cấp được gọi là Analog. Nếu bạn cần trợ giúp để bắt đầu tạo nguồn cấp dữ liệu trên Adafruit IO, hãy xem hướng dẫn Cơ bản về Nguồn cấp dữ liệu IO của Adafruit (Như trên ảnh 1 và 2).

Thêm Khối đo và BlockNext của biểu đồ đường, tạo một trang tổng quan mới và đặt tên nó như bạn muốn (hiển thị trong ảnh 3, 4 và 5 để tạo một trang tổng quan mới). Đảm bảo rằng bạn đã chọn nguồn cấp dữ liệu Analog làm nguồn dữ liệu.

Khi bạn đang ở trong bảng điều khiển, thêm một máng khối Gauge mới, hãy nhấp vào dấu cộng màu xanh lam ở góc trên cùng bên phải. Đặt tên cho khối là bất kỳ thứ gì bạn muốn (hiển thị trong ảnh 6 và 7) và đặt cho nó giá trị tối đa là 1024 và giá trị nhỏ nhất là 0 (các giá trị của cảm biến cơ).

Lặp lại tương tự với khối Biểu đồ đường (ảnh 8) như trên với khối Gauge.

Kiểm tra Nếu bạn đã làm ở trên, bạn phải có một màn hình tương tự như ảnh cuối cùng.

Bước 3: Đầu vào Arduino

Đầu vào Arduino
Đầu vào Arduino
Đầu vào Arduino
Đầu vào Arduino
Đầu vào Arduino
Đầu vào Arduino
Đầu vào Arduino
Đầu vào Arduino

Ở bước 1, bạn đã thực hiện xong việc thiết lập đấu dây chính xác cho cảm biến MyoWare Muscle. Bước này chúng ta sẽ đi sâu vào mã Arduino đi kèm với việc kết nối với bước 2 bảng điều khiển Adafruit IO. Khi kết thúc bước này, bạn sẽ thấy các giá trị đầu vào của cảm biến Myoware Muscle trong hai Khối mà bạn đã thiết lập.

Thiết lập Arduino

Đảm bảo rằng bạn đã cài đặt các thư viện được lưu ý ở trên trong phần giới thiệu.

Chúng ta sẽ làm việc với một bản phác thảo ví dụ. Vì vậy, hãy mở Tệp> Ví dụ> Adafruit IO Arduino> adafruitio_08_analog_in (ảnh 1). Tại sao lại là bản phác thảo này? bởi vì chúng tôi đang thiết lập phần đầu vào của sổ tay này lần đầu tiên. Cảm biến MyoWare Muscle sử dụng đầu ra analog. Nếu bạn muốn đi sâu hơn vào chủ đề về analog.

Cấu hình mạng Arduino Để định cấu hình cài đặt mạng, hãy nhấp vào tab config.h trong bản phác thảo. Bạn sẽ cần đặt tên người dùng Adafruit IO của mình trong định nghĩa IO_USERNAME và khóa IO Adafruit của bạn trong định nghĩa IO_KEY. Bạn có thể tìm thấy tên người dùng và khóa của mình ở phía trên bên phải màn hình trong IO Arduino của mình (ví dụ trên ảnh 2)

#define IO_USERNAME "your_username"

#define IO_KEY "your_key"

Cấu hình WiFi WiFi được bật theo mặc định trong config.h, vì vậy nếu bạn đang sử dụng một trong các bảng WiFi được hỗ trợ, bạn sẽ chỉ cần sửa đổi các tùy chọn WIFI_SSID và WIFI_PASS trong tab config.h.

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

Mã Arduino Nếu bạn có các thay đổi cài đặt ở trên, chúng ta có thể đi sâu hơn đến mã thực tế, adafruit_08_analog_in. Chân khử lỗi trong ví dụ này là trạng thái trên AO. Đây là chốt phù hợp vì bạn đã đặt cảm biến cơ của mình trên bảng ở bước 2.

Ví dụ này sử dụng cảm biến tế bào quang, vì chúng tôi sử dụng cảm biến cơ nên chúng tôi sẽ đổi tên này. Không quan trọng nếu bạn làm điều này, nó sẽ chỉ làm cho nó gọn gàng hơn về mặt ngữ nghĩa. Thay đổi PHOTOCELL_PIN thành MUSCLESENSOR_PIN thực hiện việc này ở hai vị trí của bản phác thảo.

/ ************************ Ví dụ bắt đầu tại đây ********************** ********* /

// chân tương tự 0 #define PHOTOCELL_PIN A0

Trong dòng mã cuối cùng có sự chậm trễ. Độ trễ này là 1 giây, chúng tôi sẽ đặt là 2 giây vì vậy 2000. Chúng tôi thực hiện điều này vì có giấy phép trên Adafruit IO có giới hạn dữ liệu, dưới hai giây bản phác thảo này vượt quá giới hạn dữ liệu đó và nó sẽ đưa ra CẢNH BÁO THẤP. Điều đó có nghĩa là không có bất kỳ giá trị nào đến. Đặt giá trị này thành hai giây sẽ ngăn chặn điều này.

// chờ một giây (1000 mili giây == 1 giây) delay (2000);

Đây là những gì bạn phải thay đổi trong bản phác thảo để làm cho nó hoạt động. Nếu bạn muốn biết chính xác toàn bộ mã hoạt động như thế nào. Bạn có thể tìm thấy nó trên Learn Adafruit, với giải thích về mọi khối mã.

Kiểm tra Tải bản phác thảo vào bảng của bạn và mở Màn hình nối tiếp Arduino. Bảng của bạn bây giờ sẽ kết nối với Adafruit IO.

bây giờ bạn có thể siết chặt cánh tay của mình và bạn sẽ thấy các giá trị thay đổi được gửi đến Adafruit IO (như trong ảnh 3). Nếu bạn không thấy bất kỳ giá trị nào trong Màn hình nối tiếp, hãy kiểm tra xem bạn đã đặt tốc độ Baud trong Màn hình nối tiếp thành 115200 chưa.

Adafruit IO Dashboard Kiểm tra trang tổng quan của bạn trên Adafruit IO, và bạn sẽ thấy thước đo và biểu đồ đường phản ứng với những thay đổi của giá trị MyoWare Muscle Sensor.

Bước 4: Thiết lập trình kích hoạt IO Adafruit

Thiết lập trình kích hoạt IO Adafruit
Thiết lập trình kích hoạt IO Adafruit
Thiết lập trình kích hoạt IO Adafruit
Thiết lập trình kích hoạt IO Adafruit

Cho đến nay, chúng tôi đã có thể đưa đầu vào từ cảm biến MyoWare Muscle để Adafruit IO hoạt động. Bây giờ chúng ta sẽ bắt đầu đọc thông tin này. Vì vậy, sau 5 lần giá trị trên X của cảm biến Cơ được phát hiện, một hành động sẽ được thực hiện bởi dải đèn LED Neopixel.

Phần này dành cho tôi, nơi tôi phải điều tra cách tôi có thể đọc lịch sử IO của Adafruit. Tôi đã làm việc với Nguồn cấp dữ liệu và Trang tổng quan trước đây, vì vậy tôi nghĩ rằng nguồn cấp dữ liệu và trang tổng quan đã được tạo có thể đọc điều này và tạo một hành động ở đây trong Arduino. Cho đến nay tôi vẫn chưa thành công. Sau rất nhiều nghiên cứu và Adafruit IO, tôi phát hiện ra rằng một hành động có thể được kích hoạt với chức năng Trigger trong Adafruit IO. Tìm hiểu thêm về Trình kích hoạt.

Một nguồn cấp dữ liệu bổ sung Trước khi chúng ta có thể tạo một Trigger, chúng ta phải tạo một nguồn cấp dữ liệu khác để chúng ta có thể đặt tên nó trong Arduino để có được kết quả đầu ra. Tạo nguồn cấp dữ liệu với tên AlertTriggered.

Tạo một TriggerNext cho tiêu đề Nguồn cấp dữ liệu và Bảng điều khiển là Trigger, hãy truy cập vào đây. Tạo một trình kích hoạt mới. Bạn sẽ được hỏi muốn tạo Trình kích hoạt phản ứng hay Trình kích hoạt lập lịch, chọn Trình kích hoạt phản ứng và nhấp vào tạo. Điều này là do bạn chỉ muốn kích hoạt điều gì đó khi có điều gì đó xảy ra (ảnh 1).

Một số thứ phải được thiết lập (Các bước tiếp theo cũng được hiển thị trong ảnh 2).- Chọn nguồn cấp dữ liệu analog ở If đầu tiên, vì vậy đầu vào sẽ được thực hiện từ đây.

-Có phải bạn chọn tuyệt vời hơn không, điều này bởi vì bạn muốn kích hoạt thứ gì đó khi giá trị vượt quá một số như vậy.

-Giá trị dấu sao bạn có thể nhập số bạn muốn để kích hoạt trình kích hoạt. Tôi đã làm 600 trong trường hợp này.

-Với arduino, bạn sẽ phải nhận phản hồi khi vượt quá 600: vì vậy tại Sau đó chọn xuất bản tin nhắn tới:.

-Sau đó, bạn có thể chọn Nguồn cấp dữ liệu thứ hai được tạo AlertTriggered.

Cuối cùng nhấp vào tạo.

Bước 5: Đầu ra Neopixel

Đầu ra Neopixel
Đầu ra Neopixel

Bước cuối cùng là tạo đầu ra. Hoàn tất trong bản phác thảo Arduino mà bạn đã chỉnh sửa, bằng cách gọi nguồn cấp dữ liệu AlertTriggered (mà bạn đã tạo ở bước trước).

Để có thể tạo ra đầu ra, trước tiên bạn phải kết nối dải đèn LED Neopixel với dây NodeMCU.- + 5v (trái) của dải đèn led trên dây 3v của dây NodeMCU- GND (phải) trên G của Node (G = GND) - Dây trung tâm DIN của đèn LED trên D5 (hoặc bất kỳ cổng D nào khác)

Tôi đã bao gồm toàn bộ bản phác thảo với các thay thế trong bước này dưới dạng tệp (có thể tìm thấy ở cuối bước này). Đây là bản phác thảo tương tự mà bạn đã làm việc trong vài bước trước nhưng bây giờ Bản phác thảo cuối cùng được bao gồm với các bước bạn phải làm để tạo đầu ra. tệp adafruitio_musclesensor_neopixel. Điều này hoạt động với config.h bạn đã đặt trước đó với dữ liệu của mình. Al các khối mã được bao gồm với các nhận xét để bạn có thể thấy những gì đang xảy ra.

Dữ liệu đầu ra nào đã được mã hóa Trong đoạn mã này, tôi đã tạo một trình kích hoạt, khi AlertTriggered (những gì chúng ta đã khai báo ở bước trước trên một giá trị lớn hơn 600) được kích hoạt hơn 5 lần. Điều này có nghĩa là khi nó được kích hoạt, dải đèn LED Neopixel được đặt từ màu trắng sang màu đỏ. Điều này sẽ xảy ra trong một phút và trạng thái màu đỏ sẽ mờ dần và chuyển sang trạng thái màu trắng một lần nữa.

Serial Monitor Để làm rõ hơn cho bạn với tư cách là một lập trình viên, bộ mã cuối cùng dành cho Serial Monitor. Giá trị là gì và khi nào bạn kích hoạt mức cảnh báo. Cùng với việc thêm giây khi trạng thái Cảnh báo đang bật, cho đến khi sau 60 giây, nó lại chuyển sang trạng thái Cảnh báo tắt. Do đó, phần này là tùy chọn.

// để hiển thị số giây đã trôi qua trong Serial Monitor khi alartstate nằm trên Serial.println ("Số giây đã qua:"); Serial.println (secondsPassed); } else {secondsPassed = 0; }

Kiểm tra Nếu bạn đã hoàn thành các bước hoặc đã nhận được tệp sketch adafruitio_musclesensor_neopixel với config.h của riêng bạn, bạn có thể tải nó lên NodeMCU của mình. Nếu hoàn tất, bạn phải thấy một cái gì đó tương tự như bên dưới trong Màn hình nối tiếp của bạn:

Đang kết nối với Adafruit IO…

Adafruit IO đã kết nối. Gửi -> 23 Gửi -> 78

Ảnh 1 là Màn hình nối tiếp khi nó ở Chế độ cảnh báo.

Nó không hoạt động? Kiểm tra những điều sau- Kiểm tra xem config.h có được đưa vào đúng cách không- Bạn đã đặt đúng Tên người dùng và Khóa IO Adafruit chưa- Bạn đã đặt đúng SSID và mật khẩu Wifi chưa- Bạn đã đặt dây MyoWare chưa Cảm biến cơ bên phải và từ dải đèn LED Neopixel

Hoặc kiểm tra các bước trước đó.

Bước 6: Kết quả

Hoan hô bạn đã hoàn thành! Để chứng minh và xem sản phẩm cuối cùng hoạt động, tôi đã đưa vào một video.

Đề xuất: