Mục lục:
- Quân nhu
- Bước 1: Thu nhận tín hiệu
- Bước 2: Tín hiệu đơn giản hóa
- Bước 3: Xử lý tín hiệu
- Bước 4: Sơ đồ
- Bước 5: Vị trí cảm biến EMG
- Bước 6: Mã
- Bước 7: Kết quả
Video: Điều khiển bằng tay robot với EMG: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Dự án này cho thấy sự kiểm soát của bàn tay robot (sử dụng bàn tay nguồn mở trongMoov) với 3 thiết bị uECG nguồn mở được sử dụng để đo và xử lý hoạt động của cơ (điện cơ đồ, EMG). Nhóm của chúng tôi có một câu chuyện dài với bàn tay và sự kiểm soát của họ, và đây là một bước đi đúng hướng:)
Quân nhu
3x thiết bị uECG 1x Arduino (tôi đang sử dụng Nano nhưng hầu hết các thiết bị khác sẽ hoạt động) 1x mô-đun nRF24 (bất kỳ thiết bị chung nào sẽ làm được) 1x PCA9685 hoặc trình điều khiển servo tương tự1x trongMoov hand5x servo lớn (xem hướng dẫn inMoov để biết các loại tương thích) Nguồn điện 1x 5V có khả năng 5A trở lên hiện tại
Bước 1: Thu nhận tín hiệu
Kiểm soát dựa trên EMG - hoạt động điện của cơ bắp. Tín hiệu EMG được ba thiết bị uECG thu được (tôi biết, nó được cho là một màn hình ECG, nhưng vì nó dựa trên một ADC chung, nó có thể đo bất kỳ ký hiệu sinh học nào - bao gồm cả EMG). Đối với xử lý EMG, uECG có một chế độ đặc biệt trong đó nó gửi dữ liệu phổ 32-bin và trung bình "cửa sổ cơ" (cường độ phổ trung bình từ 75 đến 440 Hz). Hình ảnh phổ trông giống như các mẫu màu xanh lam thay đổi theo thời gian. Ở đây tần số nằm trên trục tung (trên mỗi ô trong số 3 ô, tần số thấp ở dưới cùng, tần số cao ở trên cùng - từ 0 đến 488 Hz với các bước ~ 15 Hz), thời gian theo chiều ngang (dữ liệu cũ ở bên trái tổng thể ở đây khoảng 10 giây trên màn hình). Cường độ được mã hóa bằng màu: xanh lam - thấp, xanh lá cây - trung bình, vàng - cao, đỏ - thậm chí cao hơn.
Bước 2: Tín hiệu đơn giản hóa
Để nhận dạng cử chỉ đáng tin cậy, cần có một PC xử lý thích hợp các hình ảnh quang phổ này. Nhưng để kích hoạt đơn giản các ngón tay robot, chỉ cần sử dụng giá trị trung bình trên 3 kênh là đủ - uECG cung cấp một cách thuận tiện nó ở các byte gói nhất định để Arduino sketch có thể phân tích cú pháp. Các giá trị này trông đơn giản hơn nhiều - Tôi đã đính kèm biểu đồ các giá trị thô từ Máy vẽ nối tiếp của Arduino. Biểu đồ màu đỏ, xanh lá cây, xanh lam là các giá trị thô từ 3 thiết bị uECG trên các nhóm cơ khác nhau khi tôi đang bóp ngón cái, đeo nhẫn và ngón giữa tương ứng. Đối với mắt của chúng tôi, các trường hợp này rõ ràng là khác nhau, nhưng chúng tôi cần phải biến những giá trị đó thành "điểm ngón tay" bằng cách nào đó để một chương trình có thể xuất giá trị tới các servo. Vấn đề là, các tín hiệu từ các nhóm cơ là "hỗn hợp": trong trường hợp thứ nhất và thứ ba, cường độ tín hiệu màu xanh lam là như nhau - nhưng màu đỏ và màu xanh lá cây khác nhau. Trong trường hợp thứ 2 và thứ 3, tín hiệu màu xanh lá cây giống nhau - nhưng màu xanh lam và màu đỏ khác nhau.
Bước 3: Xử lý tín hiệu
Để "bỏ trộn" những tín hiệu này, tôi đã sử dụng một công thức tương đối đơn giản:
S0 = V0 ^ 2 / ((V1 * a0 + b0) (V2 * c0 + d0)), trong đó S0 - điểm cho kênh 0, V0, V1, V2 - giá trị thô cho các kênh 0, 1, 2 và a, b, c, d - các hệ số mà tôi đã điều chỉnh theo cách thủ công (a và c là từ 0,3 đến 2,0, b và d là 15 và 20, bạn vẫn cần phải thay đổi chúng để điều chỉnh cho vị trí cảm biến cụ thể của mình). Điểm số tương tự cũng được tính cho kênh 1 và 2. Sau đó, các bảng xếp hạng gần như tách biệt hoàn hảo. Đối với các cử chỉ tương tự (lần này là ngón đeo nhẫn, giữa và sau đó là ngón cái), tín hiệu rõ ràng và có thể dễ dàng chuyển thành các chuyển động của servo chỉ bằng cách so sánh với ngưỡng
Bước 4: Sơ đồ
Sơ đồ khá đơn giản, bạn chỉ cần mô-đun nRF24, PCA9685 hoặc bộ điều khiển I2C PWM tương tự và nguồn điện 5V cường độ cao đủ để di chuyển tất cả các servo này cùng một lúc (vì vậy nó yêu cầu công suất định mức ít nhất 5A để hoạt động ổn định).
Danh sách kết nối: chân 1 nRF24 (GND) - chân 2 GNDnRF24 của Arduino (Vcc) - chân 3,3vnRF24 của Arduino 3 (Kích hoạt chip) - Chân D9nRF24 của Arduino 4 (SPI: CS) - Chân D8nRF24 của Arduino 5 (SPI: SCK) - của Arduino D13nRF24 pin 6 (SPI: MOSI) - Arduino's D11nRF24 pin 7 (SPI: MISO) - Arduino's D12PCA9685 SDA - Arduino's A4PCA9685 SCL - Arduino's A5PCA9685 Vcc - Arduino's 5V Các kênh PCA 0-4, trong ký hiệu ngón tay cái của tôi - kênh 0, ngón trỏ - kênh 1, v.v.
Bước 5: Vị trí cảm biến EMG
Để có được kết quả đọc hợp lý, điều quan trọng là phải đặt các thiết bị uECG, thiết bị ghi lại hoạt động của cơ, ở đúng vị trí. Mặc dù có nhiều tùy chọn khác nhau ở đây, nhưng mỗi tùy chọn yêu cầu cách tiếp cận xử lý tín hiệu khác nhau - vì vậy với mã của tôi, tốt nhất nên sử dụng vị trí tương tự như ảnh của tôi., do đó, một trong các cảm biến được đặt ở đó và tất cả chúng đều được đặt gần khuỷu tay (các cơ có phần lớn cơ thể của chúng ở khu vực đó, nhưng bạn muốn kiểm tra chính xác vị trí của mình - có một sự khác biệt khá lớn)
Bước 6: Mã
Trước khi chạy chương trình chính, bạn sẽ cần phải tìm ID đơn vị của các thiết bị uECG cụ thể của mình (nó được thực hiện bằng cách bỏ ghi chú dòng 101 và bật từng thiết bị, bạn sẽ thấy ID của thiết bị hiện tại trong số những thứ khác) và điền chúng vào mảng unit_ids (dòng 37). Khác với điều này, bạn muốn chơi với các hệ số công thức (dòng 129-131) và kiểm tra nó trông như thế nào trên máy vẽ nối tiếp trước khi gắn nó vào tay robot.
Bước 7: Kết quả
Với một số thử nghiệm mất khoảng 2 giờ, tôi đã có thể có được hoạt động khá đáng tin cậy (video cho thấy một trường hợp điển hình). Nó hoạt động không hoàn hảo và với quá trình xử lý này chỉ có thể nhận ra các ngón tay mở và đóng (và thậm chí không phải từng ngón tay trong số 5, nó chỉ phát hiện 3 nhóm cơ: ngón cái, trỏ và giữa, ngón đeo nhẫn và ngón út với nhau). Nhưng "AI" phân tích tín hiệu lấy 3 dòng mã ở đây và sử dụng một giá trị duy nhất từ mỗi kênh. Tôi tin rằng có thể làm được nhiều hơn thế bằng cách phân tích hình ảnh quang phổ 32-bin trên PC hoặc điện thoại thông minh. Ngoài ra, phiên bản này chỉ sử dụng 3 thiết bị uECG (kênh EMG). Với nhiều kênh hơn, có thể nhận ra các mẫu thực sự phức tạp - nhưng tốt, đó là điểm của dự án, để cung cấp một số điểm khởi đầu cho bất kỳ ai quan tâm:) Điều khiển bằng tay chắc chắn không phải là ứng dụng duy nhất cho hệ thống như vậy.
Đề xuất:
Điều khiển bằng cử chỉ đơn giản - Điều khiển đồ chơi RC của bạn bằng chuyển động của cánh tay: 4 bước (có hình ảnh)
Điều khiển bằng cử chỉ đơn giản - Điều khiển đồ chơi RC của bạn bằng chuyển động của cánh tay: Chào mừng bạn đến với 'ible' # 45 của tôi. Cách đây một thời gian, tôi đã tạo một phiên bản RC hoàn chỉnh của BB8 bằng cách sử dụng các phần Lego Star Wars … https://www.instructables.com/id/Whats-Inside-My-R…Khi tôi thấy nó thú vị như thế nào Force Band do Sphero tạo ra, tôi nghĩ: " Ok, tôi c
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Điều khiển cánh tay robot với Zio bằng bộ điều khiển PS2: 4 bước
Điều khiển cánh tay robot bằng Zio bằng bộ điều khiển PS2: Bài đăng trên blog này là một phần của Series Zio Robotics. Giới thiệu Đây là phần cuối cùng của bài đăng 'Điều khiển cánh tay robot bằng Zio'. Trong hướng dẫn này, chúng tôi sẽ thêm một bộ phận khác vào Cánh tay robot của chúng tôi. Các hướng dẫn trước đây không bao gồm cơ sở cho
Bảng điều khiển cầm tay với bộ điều khiển và cảm biến không dây (Arduino MEGA & UNO): 10 bước (có hình ảnh)
Bảng điều khiển cầm tay với bộ điều khiển và cảm biến không dây (Arduino MEGA & UNO): Những gì tôi đã sử dụng: - Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 " Màn hình cảm ứng TFT 320x480 HXD8357D- Buzzer- Loa 4Ohm 3W- Đèn LED 5mm- Máy in Ultimaker 2+ w / Black PLA Filament- Lasercutter w / MDF wood- Phun sơn đen (cho gỗ) - 3x nRF24
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu