1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn môn dung sai và kỹ thuật Đo Đề tài mô hình cánh tay robot sinh học (bionic hand)

21 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Hình Cánh Tay Robot Sinh Học (Bionic Hand)
Tác giả Nguyễn Minh Hoàng
Người hướng dẫn Ts. Trần Nguyên Duy Phương
Trường học Đại học Quốc gia TP Hồ Chí Minh
Chuyên ngành Dung sai và kỹ thuật đo
Thể loại bài tập lớn
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 2,08 MB

Nội dung

Giới thiệu cảm biến EMG Điện cơ đồ EMG Electromyography là một kỹ thuật y học để đánh giá và ghi lạihoạt động điện được tạo ra bởi cơ xương, nhằm phát hiện các bất thường, mức độ kíchhoạ

Trang 1

ĐẠI HỌC BÁCH KHOA



BÀI TẬP LỚN MÔN DUNG SAI VÀ KỸ THUẬT ĐO

ĐỀ TÀI: MÔ HÌNH CÁNH TAY ROBOT SINH HỌC (BIONIC

Trang 2

1.1 Giới thiệu cảm biến EMG 1

1.2 Cơ sở sinh học của bộ cảm biến EMG 2

1.3 Chọn lựa cảm biến EMG 3

2 Arduino uno R3 4

2.1 Sơ lược về Arduino Uno R3 4

2.2 Ứng dụng của Arduino Uno R3 6

2.3 Thông số kỹ thuật 7

3 DC SERVO 7

3.1 Tổng quan về DC SERVO AF-2941 7

3.2 Thông số kỹ thuật 8

3.3 Mạch điều khiển 8

4 Adapter, breadboard và hệ thống dây nối 9

4.1 Hệ thống dây nối 9

4.2 Nguồn adapter 9V 2A 9

4.3 Breadboard: 10

5 Sơ đồ đấu dây và thuật toán điều khiển 11

5.1 Sơ đồ đấu dây 11

5.2 Thuật toán và giải thích 12

6 Code Arduino 12

7 Thử nghiệm và kết Luận 18

7.1 Thử nghiệm 18

7.2 Kết Luận 18

Trang 3

1 Cảm biến EMG

1.1 Giới thiệu cảm biến EMG

Điện cơ đồ EMG (Electromyography) là một kỹ thuật y học để đánh giá và ghi lạihoạt động điện được tạo ra bởi cơ xương, nhằm phát hiện các bất thường, mức độ kíchhoạt hoặc để phân tích cơ chế sinh học chuyển động của con người hay động vật.EMG, hay Electromyography, là một công nghệ quan trọng trong y học và nghiêncứu cơ thể con người Nó ghi lại và phân tích các tín hiệu điện sinh ra từ hoạt động cơbắp trong quá trình co giãn Tín hiệu này là một biểu hiện điện của sự kích thích vàhoạt động của cơ bắp, mô tả các thay đổi về biên độ, tần số và pha trong thời gian xảyra

Mỗi đợt tín hiệu EMG phản ánh hành động của các đơn vị vận động (MU) - cácđơn vị cơ bắp cơ bản nhất - được điều khiển bởi hệ thống thần kinh Bộ não phát raxung thần kinh, truyền qua dây thần kinh đến các đơn vị vận động, gửi kích thích để

cơ bắp co bóp Trong trường hợp của những động tác cần độ chính xác và nhỏ, chỉmột số MU được kích hoạt Ngược lại, khi cần lực lượng lớn hơn, nhiều MU lớn hơnđược kích hoạt đồng thời

Tín hiệu EMG có thể được thu thập trên bề mặt da, dưới da và cung cấp các mứcthông tin khác nhau Nó được coi là bộ khuếch đại sinh học của các xung thần kinh,mang lại tỷ lệ tín hiệu trên tạp âm được cải thiện Trong vài thập kỷ qua, đã có nhữngtiến bộ công nghệ đáng kể, bao gồm thu nhỏ cảm biến và các thuật toán xử lý tín hiệutiên tiến Sự phát triển này đã giúp các cảm biến EMG và các tín hiệu EMG liên quan

có thể tìm thấy các ứng dụng trong nhiều lĩnh vực Trong y học điện chẩn đoán(EDX), EMG thường được sử dụng để bao phủ toàn bộ phổ kỹ thuật EDX bằng cách

sử dụng điện cực kim để ghi lại hoạt động điện của cơ

Tín hiệu EMG không chỉ ghi lại hoạt động cơ bắp mà còn chứa thông tin về sự traođổi hóa học trong cơ thể, như các ion kali và natri, tạo ra tiềm năng hành động (AP)trong các đơn vị cơ bắp

Điều này không chỉ mang lại thông tin về sự hoạt động cơ bắp, mà còn giúp hiểu

rõ hơn về cách não và hệ thần kinh tương tác, điều khiển các động tác vận động, và

Trang 4

1.2 Cơ sở sinh học của bộ cảm biến EMG

Hệ vận động của con người bao gồm hai phần: Phần thụ động bao gồm hệ xương

và hệ liên kết các xương (khớp xương), trong khi phần vận động liên quan đến hệ cơ

và hoạt động được điều khiển hoàn toàn bởi hệ thần kinh Cơ thể con người có ba hệ

cơ chính và được minh họa ở hình bên dưới: cơ vân (hay cơ xương), cơ vận động nộitạng (cơ trơn hoặc cơ tạng), và cơ vận động tim (cơ tim)

Hình 1:Các hệ cơ chính của cơ thể người

Trang 5

- Cơ xương được các gân và xương gắn vào và được tác động đến chuyển động của xương

- Cơ trơn có ở trong thành của các cơ quan và cấu trúc như thực quản, dạ dày, ruột, phế quản, tử cung, niệu đạo, bàng quang, mạch máu, v.v

- Cơ tim (myocardium) có cấu trúc giống cơ xương và tìm thấy ở tim

1.3 Chọn lựa cảm biến EMG

EMG A10-09 là một mạch cảm biến cơ bắp rất dễ sử dụng, dùng để đo hoạt động

cơ bắp trong nghiên cứu y tế bằng các tín hiệu điện cơ (EMG) Cảm biến sẽ đo lọc,chỉnh lưu hoạt động điện của đầu ra cơ 0-VS Volts để lấy kích thước đầu ra tùy thuộcvào lượng hoạt động cơ bắp được chọn Dây và cảm biến có thể được sử dụng cho các

hệ thống điều khiển khác nhau

Trang 6

2 Arduino uno R3

2.1 Sơ lược về Arduino Uno R3

Hình 3: Arduino UnoArduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các dự án điện

tử Arduino bao gồm cả bảng mạch lập trình (thường được gọi là vi điều khiển) vàmột phần mềm ( IDE ) được sử dụng để lập trình viết và tải mã máy tính lên bo mạch.Arduino Uno R3 được sử dụng vi điều khiển ATmega328, tương thích với hầu hếtcác loại Arduino Shield trên thị trường, có thể gắn thêm các module mở rộng để thựchiện thêm các chức năng như điều khiển motor, kết nối wifi hay các chức năng khác

Trang 7

Sử dụng ngôn ngữ lập trình bắt nguồn từ C,C++ trên phần mềm riêng cho lập trìnhArduino IDE.

Arduino Uno R3 được kết nối trực tiếp với máy tính thông qua USB để giao tiếpvới phần mềm lập trình IDE, tương thích với Windows, MAC hoặc Linux Systems,tuy nhiên, Windows thích hợp hơn để sử dụng

Các chân nguồn

Arduino Uno R3 được cấp nguồn 5V qua cáp usb hoặc cấp nguồn ngoài thông quaAdaptor chuyển đổi , với điện áp khuyên dùng là khoảng 6-9V Có thể cấp nguồn từmáy tính qua cổng usb về

Các chân 5V, 3.3V là chân dùng để cấp nguồn đầu ra cho các thiết bị chứ khôngphải chân cấp nguồn vào

- Vin(Voltage Input): Dùng để cấp nguồn ngoài cho Arduino Uno, nối dươngcực vào chân nà và cực âm vào chân GND

- GND(Ground): Cực âm của nguồn điện cấp cho Arduino Uno Khi sử dụng cácthiết bị sử dụng những nguồn điện riêng biệt thì phải nối các chân này

- IOREF: Điện áp hoạt động của Arduino, có mức điện áp là 5V Không được sửdụng để lấy nguồn từ chân này

- RESET: Việc nhấn nút RESET trên mạch arduino tương tự như khi nối chânRESET với GND qua điện trở 10KΩ

Trang 8

Hình 4: hình ảnh kết nối Arduino Uno R3

2.2 Ứng dụng của Arduino Uno R3

Aruino Uno R3 được sử dụng phổ biến trong việc tự thiết kế ra các mạch điện tử như điều khiển led, gửi dữ liệu lên lcd, điều khiển motor, hay được gắn thêm cácShield để kết nối nhiều module cảm biến khác để thực hiện thêm nhiều chức năng mở rộng như gửi dữ liệu qua wifi

Ngoài ra, trên thị trường còn có nhiều biến thể của Arduino Uno để thực hiện thêm các tính năng chuyên dụng, ví dụ như mCore, Orion trên mBot được chuyên dụng với việc dễ dàng phân biệt các loại module nào có thể sử dụng cắm vào trên các cổng để

dễ dàng sử dụng

Trang 9

2.3 Thông số kỹ thuật

3.1 Tổng quan về DC SERVO AF-2941

Động cơ DC này không phải là servo Nó giống như một động cơ DC cùng với bộtruyền động bánh răng bằng nhựa trong hộp Nó không phải là một động cơ siêumạnh, nó sẽ hoạt động tốt như một bánh xe robot nhỏ Nó cũng rẻ hơn rất nhiều so vớimicro servo (liên tục hoặc không liên tục) vì không có bảng điều khiển bên trong.Việc kiểm soát tốc độ được thực hiện bằng cách điều khiển các dây dẫn nguồn vàbằng cách điều khiển xung điện, hướng điều khiển được thực hiện bằng cách hoán đổicực nguồn - giống như bất kỳ động cơ DC có chổi than nào Chạy từ 4-6VDC Loạiđộng cơ này không thể điều khiển trực tiếp từ chân vi điều khiển Mà phải có cầu Hnhư L293D, TB6612 hoặc Tấm chắn động cơ, HAT động cơ hoặc Động cơ DC +Cánh lông bước Động cơ đi kèm với 2x ốc vít và 2x đai ốc để gắn vào khung máy.Không có mặt bích

Trang 10

hoặc sừng - nó được thiết kế để gắn với các bánh xe nhỏ, có một ốc vít để gắn vào khichúng được cắm vào nhau.

Hình 5: Động cơ DC SERVO AF-2941

3.2 Thông số kỹ thuật

Kích thước: 32,3mm x 12,3mm x 29,9mm / 1,3" x 0,49" x 1,2"

Trọng lượng: 8,4g

Tốc độ không tải: 110RPM (4.8v) / 130RPM (6v)

Dòng điện chạy (khi không tải): 100mA (4.8v) / 120mA

(6v) Mô-men xoắn cực đại (4,8v): 1,3 kg/cm / 18,09 oz/in

Mô-men xoắn cực đại (6v): 1,5 kg/cm / 20,86 oz/in

3.3 Mạch điều khiển

Điều khiển động cơ servo với thư viện Arduino servo khá dễ dàng, nhưng mỗiđộng cơ đều tiêu tốn một chân pin quý giá - chưa kể đến sức mạnh xử lý của Arduino.Trình điều khiển servo qua 16 kênh PCA9685 sẽ điều khiển tối đa 16 servo qua I2Cchỉ với 2 chân Bộ điều khiển PLC trên bo mạch sẽ điều khiển đồng thời tất cả 16kênh mà không cần thêm chi phí xử lý Arduino

PCA9685 hoạt động với dải điện áp cung cấp là 2,3 V đến 5,5 V và đầu vào và đầu

ra có khả năng chịu được 5,5 V PCA9685 cho phép thời gian bật và tắt đầu ra của các

Trang 11

chân so le để giảm thiểu xung dòng điện Thời gian trễ bật và tắt được lập trình độclập cho từng kênh trong số 16 kênh PCA9685 có bộ đếm gộp trước có thể lập trình đểđiều chỉnh độ rộng xung của nhiều thiết bị PCA9685 có chân đầu vào đồng hồ bênngoài sẽ chấp nhận đồng hồ do người dùng cung cấp (tối đa 50 MHz) thay cho bộ daođộng 25 MHz bên trong Tính năng này cho phép đồng bộ hóa nhiều thiết bị.PCA9685 cũng được tích hợp sẵn bộ tạo dao động để điều khiển PLC Tuy nhiên, tần

số được sử dụng để điều khiển PWM trong PCA9685 có thể điều chỉnh từ khoảng 24

Trang 12

THÔNG SỐ KĨ THUẬT Adapter 9V 2A

- Điện áp đầu vào: AC100-240V 50/60HZ

- Đầu vào nguồn AC: chuẩn Hoa Kỳ

Breadboard là một công cụ hay thiết bị trong lĩnh vực điện tử, thường được sử dụng

để xây dựng mô hình nguyên mẫu của mạch điện tử mà không cần hàn hoặc sử dụngcác kết nối cố định Breadboard được thiết kế để giúp người làm việc trong lĩnh vựcđiện tử dễ dàng tạo và thay đổi mạch điện mà không cần sử dụng các kỹ thuật làmmạch cố định

Hình 8: Breadboard

Trang 13

5 Sơ đồ đấu dây và thuật toán điều khiển

5.1 Sơ đồ đấu dây

9685

Ngu

ồn 9v

Ngu

ồn 5v

Trang 14

Thiết lập các thư viện cần thiết, xác định độ dài xung tối thiểu (xung PPM), xác

định các chân pin nối các cảm biến EMG.

#include <Wire.h>

#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver mod_1 = Adafruit_PWMServoDriver(0x40);

#define SERVOMIN 90 //độ dài xung tối thiểu; xung PPM

5V-5.2 Thuật toán và giải thích

Giải thích thuật toán, do tín hiệu đọc từ cảm biếm EMG thông qua câu lệnhAnalog.read có độ nhiễu quá cao Bởi thế các hàm getStdDev sẽ lấy giá trị độ lệchchuẩn của các giá trị cảm biến đồng thời làm giảm độ nhiễu của cảm biến, khiến choviệc đọc giá trị và xác định ngưỡng kích hoạt dễ dàng hơn

Các hàm thuộc thư viện <Adafruit_PWMServoDriver.h>, sẽ cho phép ta điều khiểnnhiều servo cùng lúc Hàm handhold() và handlease() sẽ tiến hành xoay các servo mộtgóc 170 độ tương ứng với bàn tay nắm lại, hàm handlease() sẽ xoay các servo về lạigóc ban đầu tương ứng với bàn tay thả lỏng ra

Do cảm biến EMG sẽ cho ra các tín hiệu khác nhau ứng với từng người, từng vị tríkhác nhau, nên trước khi bắt đầu điều khiển servo ta tiến hành xác định ngưỡng kíchhoạt của các servo bằng cách tiến hành đo đạt giá trị độ lệch chuẩn của 6 Servo tại vịtrí ban đầu, sau đó tiến hành nắm tay lại để đo các ngưỡng kích hoạt của cảm biến,đây có thể gọi là giai đoạn setup và đặt ngưỡng

6 Code Arduino

Trang 15

for (int i = 0; i < numReadings; i++)

{ total = total + val[i];

}

float avg = total/(float)numReadings;

return avg;

Trang 16

/*

* Get the standard deviation from an array of ints

*/

float getStdDev(int * val, int numReadings)

{ float avg = getMean(val, numReadings);

long total = 0;

for (int i = 0; i < numReadings; i++) {

total = total + (val[i] - avg) * (val[i] - avg);

}

float variance = total/(float)numReadings;

float stdDev = sqrt(variance);

Trang 17

float std1 = getStdDev(analogVals1, numReadings);

float std2 = getStdDev(analogVals2, numReadings);

float std3 = getStdDev(analogVals3, numReadings);

float std4 = getStdDev(analogVals4, numReadings);

float std5 = getStdDev(analogVals5, numReadings);

float std6 = getStdDev(analogVals6, numReadings);

Serial.print("Standard deviation: ");

Serial.println(std1);

Trang 20

Tuy nhiên thiết bị còn tồn tại một số hạn chế về độ chính xác cao do chất lượnglinh kiện đi kèm theo giá thành Vướng mắc về sai số trong quá trình thu thập dữ liệu

đo đạc như: dung sai của các linh kiện điện tử, nhiễu do môi trường bên ngoài và cácthành phần bên trong mạch điện tử, sai số khi điện cực gắn trên da (da không đồngnhất về độ dày, mỏng, da khô hay khi đổ mồ hôi, v.v)

Trang 21

1 Dây breadboard là gì?, truy cập từ: la-gi.

http://arduino.vn/reference/day-breadboard-2 Nguyễn Sỹ Hiệp & Vũ Thị Nguyệt, “Nghiên Cứu Và Thiết Kế Bộ Thu NhậnTín Hiệu Điện Cơ EMG”, truy cập từ:

Ngày đăng: 03/12/2024, 21:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w