Hình 1: Cánh tay giả được phục vụ cho người khuyết tật Để có thể tiếp cận được vấn đề này, điều đầu tiên cần làm chính là hiểu được nguyên lý hoạt động của các bộ phận bó cơ, phương phá
Trang 11
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN
ĐIỀU KHIỂN ĐỘNG CƠ SERVO BẰNG VI ĐIỀU KHIỂN ARDUINO VÀ CẢM BIẾN CƠ BẮP EMG
Môn: Dung sai và kỹ thuật đo Giảng viên hướng dẫn: TS Trần Nguyên Duy Phương
Sinh viên thực hiện Mã số sinh viên
Tp Hồ Chí Minh, tháng 4 năm 2024
Trang 22
Mục lục
1 TỔNG QUAN VỀ ĐỀ TÀI 3
2 CƠ SỞ LÝ THUYẾT 3
2.1 Arduino Uno 3
2.1.1 Tổng quan 3
2.1.2 Thông số kỹ thuật – Uno R3 4
2.1.3 Sơ đồ cấu trúc Arduino UNO R3 5
2.1.4 Vi điều khiển 6
2.1.5 Giao diện IDE nạp code 7
2.2 Cảm biến EMG A10 – 09 8
2.2.1 Giới thiệu chung 8
2.2.2 Cách cơ bắp chuyển động 8
2.2.3 Cơ sở đo lường của cảm biến EMG 8
2.2.4 Nguyên lý hoạt động của cảm biến 9
2.2.5 Các ứng dụng trong đời sống: 12
2.3 Động cơ Servo 13
2.3.1 Giới thiệu 13
2.3.2 Thông số kỹ thuật 14
2.3.3 Cấu tạo 14
3 THỰC HIỆN MÔ HÌNH 19
3.1 Code lập trình cho Arduino 19
3.2 Sử dụng và nguyên lý hoạt động 20
4 TÀI LIỆU THAM KHẢO 22
Trang 33
1 TỔNG QUAN VỀ ĐỀ TÀI
Hiện nay, vấn đề liên quan về khắc phục, phục hồi hay tái tạo chức năng của các bộ phận tay, chân đã mất hoặc bị hư tổn của con người luôn là chủ đề rất được quan tâm và thu hút sự chú ý của các lĩnh vực khác nhau như y tế, cơ điện tử, Trên thị trường hiện nay đã có tồn tại thiết bị tay, chân giả mà có thể thực hiện được một số chức năng cơ bản như ban đầu vốn có như cầm, nắm, Thông qua bài tập lớn này, sinh viên có thể hiểu biết thêm về những kiến thức mới không những từ chuyên ngành mà còn có những lĩnh vực khác trong cuộc sống
Hình 1: Cánh tay giả được phục vụ cho người khuyết tật
Để có thể tiếp cận được vấn đề này, điều đầu tiên cần làm chính là hiểu được nguyên
lý hoạt động của các bộ phận bó cơ, phương pháp để có thể đọc được các tín hiệu mà
cơ hoạt động từ các cảm biến, từ đó thông qua bộ vi điều khiển để có thể thực hiện các hoạt động mong muốn theo các tín hiệu mà các bó cơ đã gửi Ở đề tài này, sinh viên sẽ đọc tín hiệu từ cảm biến EMG để điều khiển các động cơ servo thông qua board điều khiển Arduino Uno
2 CƠ SỞ LÝ THUYẾT
2.1 Arduino Uno
2.1.1 Tổng quan
Arduino Uno là một bo mạch vi điều khiển dựa trên chip Atmega328P Uno có 14
chân I/O digital ( trong đó có 6 chân xuất xung PWM), 6 chân Input analog, 1 thạch anh 16MHz, 1 cổng USB, 1 jack nguồn DC, 1 nút reset
Trang 44
2.1.2 Thông số kỹ thuật – Uno R3
Bảng 1: Bảng thông số kỹ thuật của Arduino UNO R3
Điện áp cấp (hoạt động tốt) 7 – 12 V
Điện áp cấp (giới hạn) 6 – 12 V
Chân I/O digital 14 ( có 6 chân xuất xung PWM)
Dòng điện mỗi chân I/O 20 mA
Trang 52.1.3 Sơ đồ cấu trúc Arduino UNO R3
Arduino Uno R3 được sử dụng vi điều khiển ATmega328, tương thích với hầu hết các loại Arduino Shield trên thị trường, có thể gắn thêm các module mở rộng để thực hiệ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
Sơ đồ chi tiết của Uno R3:
Hình 3: Sơ đồ cấu trúc Arduino Uno R3
Các chân vào/ra của Arduino Uno R3
Arduino Uno R3 có 14 chân digital dùng để đọc ghi dữ liệu Chúng chỉ hoạt động ở 2 mức điện áp 0V và 5V với các dòng vào/ra tối đa trên mỗi chân là 40 mA
Một số chân digital có chức năng đặc biệt như:
• Chân Serial: 0(RX) và 1(TX): dùng để gửi (transmit - TX) và nhận (Receive -
RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với các thiết bị khác thông qua 2 chân này, như gắn thêm màn hình LCD để hiển thị
Trang 66
• Chân PWM: 3, 5,6,9, 10 và 11: Cho phép bạn xuất xung PWM với độ phân giải
8 bit( giá trị từ 0 → 28 - 1 tương ứng với 0 - 5V
• Chân giao tiếp SPI: 10(SS), 11(MOSI), 12(MISO), 13(SCK) Ngoài chức năng
thông thường, 4 chân này có thể truyền phát dữ liệu bằng giao thức SPI tới các thiết bị khác
• LED 13: Trên arduino có 1 đèn led, khi bấm nút reset thì đèn led này sẽ nhấp
nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được sử dụng, đèn led sẽ sáng
• Chân Analog: Arduino Uno R3 có 6 chân analog (A0 - A5) cung cấp độ phân
giải 10 bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0 - 5V
• Arduino Uno còn có 2 chân A4(SDA) và A5(SCL) để hỗ trợ giao tiếp I2C/TWI với các thiết bị khác
2.1.4 Vi điều khiển
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,…
Hình 4: Sơ đồ chân của Atmega328
Trang 77
2.1.5 Giao diện IDE nạp code
Arduino IDE được viết tắt (Arduino Integrated Development Environment) là một trình soạn thảo văn bản, giúp bạn viết code để nạp vào bo mạch Arduino
Hình 5: Giao diện IDE
Bảng 2: Các lệnh cơ bản của giao diện IDE
Verify Kiểm tra lỗi và biên dịch code
Upload Dịch và upload code vào bo mạch đã được cài đặt
sẵn
Serial Monitor Mở serial monitor
Serial Monitor là thành phần của Arduino IDE, giúp bo mạch và máy tính có thể gửi
và nhận dữ liệu với nhay qua giao tiếp USB
Để mở màn hình Serial Monitor, chúng ta chọn Tool > Serial Monitor
Trang 88
2.2 Cảm biến EMG A10 – 09
2.2.1 Giới thiệu chung
EMG (điện cơ) ghi lại chuyển động của cơ bắp của chúng ta Nó dựa trên thực tế đơn giản là bất cứ khi nào một cơ co lại, một đợt hoạt động điện được tạo ra lan truyền qua các
mô và xương lân cận và có thể được ghi lại từ các vùng da lân cận
2.2.2 Cách cơ bắp chuyển động
Quá trình này bắt đầu trong não Các chuyển động của cơ kích hoạt bắt đầu ở vỏ não vận động, nơi hoạt động thần kinh (một loạt các điện thế hoạt động) truyền tín hiệu đến tủy sống và thông tin về chuyển động được truyền đến cơ liên quan thông qua các tế bào thần kinh vận động Điều này bắt đầu với các nơ-ron vận động phía trên, mang tín hiệu đến các nơ-ron vận động phía dưới
Các tế bào thần kinh vận động phía dưới chính là tác nhân thúc đẩy chuyển động của
cơ, vì chúng tập trung cơ trực tiếp tại điểm nối thần kinh cơ Sự tập trung này gây ra sự giải phóng các ion Canxi trong cơ, cuối cùng tạo ra sự thay đổi cơ học về độ căng của cơ Vì quá trình này liên quan đến quá trình khử cực (sự thay đổi gradient điện hóa), sự khác biệt
về dòng điện có thể được phát hiện bằng EMG
2.2.3 Cơ sở đo lường của cảm biến EMG
Hình 6: Một số dạng cơ trong cơ thể người
Trang 99
Hệ vận động của con người được chia thành hai phần: Phần thụ động bao gồm bộ xương và hệ liên kết các xương (khớp xương), trong khi phần vận động bao gồm hệ cơ, hoạt động hoàn toàn phụ thuộc vào hệ thần kinh Cơ thể con người có ba hệ cơ chính: cơ xương, cơ trơn và cơ tim
Trong phạm vi bài tập lớn, nhóm sẽ giới hạn thiết bị trong việc đo lường và xử lý tín hiệu cơ xương
2.2.4 Nguyên lý hoạt động của cảm biến
Nguyên lý hoạt động cụ thể của cảm biến cơ bắp EMG là tín hiệu EMG xuất phát từ hoạt động điện hoặc điện thế của các sợi cơ trong quá trình co bóp Khi cơ bắp hoạt động (co–dãn), có sự thay đổi cơ học về độ căng của cơ, tạo ra sự biến đổi về dòng điện có thể được cảm biến EMG phát hiện Mỗi khi cơ bắp được kích hoạt, các sợi cơ riêng lẻbên trong
nó sẽ phát sinh xung điện Vì hoạt động EMG (được đo bằng microvolt) tuyến tính liên quan đến lượng co cơ và số lượng cơ co lại - nói cách khác, càng mạnh sự co bóp, càng nhiều sợi cơ hoạt động cùng một lúc, giúp tăng độ điện áp ghi đo được của cảm biến và kích thích hoạt động điện lớn hơn
Cảm biến EMG sẽ tiến hành đo lọc và điều chỉnh hoạt động điện của cơ để thu được kích thước đầu ra tùy thuộc vào mức độ hoạt động cơ bắp được chọn Cảm biến cơ đọc sẽ
đo tổng số hoạt động, tạo ra một tín hiệu có độ nhiễu do bao gồm nhiều xung ngẫu nhiên, phát sinh từ hoạt động ngẫu nhiên của từng sợi cơ riêng lẻ, vì một số sợi có thể đang hoạt động trong khi một số khác ở trạng thái nghỉ
Lựa chọn cảm biến EMG và đấu nối:
a Chọn cảm biến: Nhóm sử dụng module cảm biến EMG A10-09 vì nó đã tích hợp
toàn các chức năng của một khối cảm biến trong 1 bộ mạch có kích thước nhỏ gọn, thẩm
mỹ và giá thành phù hợp
Trang 1111
c Đấu nối:
Hình 9: Kết nối EMG với Arduino UNO R3
- Kết nối nguồn điện ( 2 pin 9V )
Kết nối cực dương của pin 9V đầu tiên với chân +Vs trên cảm biến
Nối cực âm của pin 9V thứ nhất với cực dương của pin 9V thứ hai,sau đó kết nối với chân GND trên cảm biến
Kết nối cực âm của pin 9V thứ hai với chân –Vs của cảm biến
Đặt điện cực thứ ba lên phần xương hoặc phần không có cơ của cơ thể bạn gần
cơ mục tiêu, kết nối điện cực này với đầu nối nhanh của cáp màu đen
- Kết nối với vi điều khiển ( Arduino )
Kết nối chân SIG của cảm biến với chân analog trên Arduino (ví dụ: A0)
Kết nối chân GND của cảm biến với chân GND trên Arduino
Trang 1212
2.2.5 Các ứng dụng trong đời sống:
- Ứng dụng của cảm biến cơ rất đa dạng, trong đó nổi tiếng nhất là ứng dụng về làm
ra một cách tay giả sử dụng như cánh tay thật
- Điện cơ đồ cho biết mức độ hoạt động điện xảy ra tại cơ trong trạng thái nghỉ ngơi
và co cơ chủ động Đây là kỹ thuật xâm lấn tối thiểu, được sử dụng nhằm mục đích:
Chẩn đoán phân biệt các tổn thương cơ do thần kinh, do cơ hoặc do các bệnh
lý khác
Xác định các cơ tổn thương để điều trị chứng co cứng cơ
Chẩn đoán xác định vùng tổn thương trong hệ thần kinh và tiên lượng bệnh
Theo dõi thoái hóa thần kinh sau khi tổn thương
- Kết quả EMG giúp bác sĩ xác định nguyên nhân cơ bản của các triệu chứng này, như:
Rối loạn cơ (vd: loạn dưỡng cơ, viêm đa cơ)
Rối loạn ảnh hưởng đến khả năng kết nối giữa dây thần kinh và cơ (vd: nhược cơ)
Rối loạn dây thần kinh ngoại biên (vd: hội chứng ống cổ tay, bệnh thần kinh ngoại biên)
Rối loạn ảnh hưởng đến tế bào thần kinh vận động trong não hoặc tủy sống (vd: xơ cứng teo cơ một bên, bại liệt)
Rối loạn ảnh hưởng đến rễ thần kinh (vd: thoát vị đĩa đệm cột sống)
- Điều khiển ổn định robot đeo: Công nghệ được phát triển gần đây dự kiến sẽ cho phép đo EMG lâu dài và chất lượng cao vì nó sử dụng chất nền dẫn điện có khả năng co giãn và kết dính được tích hợp với mảng vi kim dễ dàng xuyên qua lớp sừng mà không gây khó chịu Thông qua hiệu suất tuyệt vời của nó, cảm biến được dự đoán là có thể điều khiển
ổn định robot đeo trong thời gian dài, bất kể tình trạng da thay đổi của người đeo và không cần bước chuẩn bị để loại bỏ mồ hôi và tế bào chết trên bề mặt da
- Ngoài ra còn các ứng dụng khác như:
Nguyên cứu đối xứng trong dáng đi
Xác định trạng thái khẻo mạnh hay mệt mỏi của cơ bắp
Trang 1313
Xác định sự hồi phục của người bị liệt cơ
Trong theo dõi hoạt động của các vật động viên thể thao
Trong giáo dục, y học, thú y,
2.3 Động cơ Servo
2.3.1 Giới thiệu
Servo là một dạng động cơ điện đặc biệt Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PWM) với góc quay nằm trong khoảng bất kì từ 0o - 180o Mỗi loại servo có kích thước, khối lượng
và cấu tạo khác nhau Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô mình), có loại thì sở hữu một momen lực lớn (vài chục N/m), hoặc có loại thì khỏe và nhông sắc chắc chắn,
Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín Tín hiệu ra của động
cơ được nối với một mạch điều khiển Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp
về mạch điều khiển này Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ,
cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ servo RC (radio-controlled) Trong thực tế, bản thân động cơ servo không phải được điều khiển bằng vô tuyến, nó chỉ nối với máy thu vô tuyến trên máy bay hay xe hơi Động cơ servo nhận tín hiệu từ máy thu này
Hình 10: Hình ảnh thực tế của động cơ Servo SG90
Trang 1414
Servo SG90 là một loại động cơ điện tử nhỏ và trọng lượng 9 gram Nó có thể quay
180 độ và có mô-men xoắn 1,8 kg-cm Servo SG90 hoạt động với điện áp 4,8V đến 5V và tiêu thụ dòng điện từ 100mA đến 150mA Độ phân giải góc của nó là 10 độ, nghĩa là nó có thể điều khiển vị trí quay với độ chính xác 10 độ Nhờ vào những đặc tính này, Servo SG90 được sử dụng rộng rãi để điều khiển các khớp nối và cánh tay của robot Nhờ khả năng kiểm soát chính xác vị trí và tốc độ quay, Servo SG90 giúp các robot có thể thực hiện các động tác linh hoạt và chính xác
Ưu điểm khi sử dụng động cơ Servo SG90:
- Kích thước nhỏ gọn: Động cơ Servo SG90 có kích thước rất nhỏ, phù hợp để
sử dụng trong các ứng dụng yêu cầu không gian chật hẹp
- Mô-men xoắn lớn: Với mô-men xoắn lên đến 1.8 kg-cm, động cơ này có thể
nâng và di chuyển các vật nặng hơn so với kích thước của nó
- Độ chính xác cao: Khả năng định vị chính xác và duy trì góc quay của động
cơ Servo SG90 rất phù hợp với các ứng dụng yêu cầu độ chính xác cao
- Giá thành hợp lý: So với các động cơ servo khác, Servo SG90 có giá thành rất hợp lý, phù hợp với các dự án nhỏ và ứng dụng giá rẻ
2.3.3 Cấu tạo
Cấu tạo bên trong động cơ Servo SG90 bao gồm:
- Động cơ DC: chịu trách nhiệm tạo ra chuyển động quay của trục đầu ra Điện
áp được cấp vào động cơ để tạo ra xoắn (lực) xoay
Trang 1515
- Hệ thống điều khiển: bao gồm bộ điều khiển và mạch phản hồi Bộ điều khiển
nhận tín hiệu điều khiển từ nguồn điều khiển (như Arduino) và điều chỉnh tín hiệu đầu vào để kiểm soát chuyển động của động cơ Mạch phản hồi (potentiometer) được gắn kết với trục đầu ra để cung cấp thông tin về vị trí hiện tại của động cơ
- Hệ thống giảm tốc: Động cơ Servo SG90 thường đi kè
Hình 11: Cấu tạo của động cơ Servo SG90
Nguyên lý hoạt động: Khi nhận được tín hiệu điều khiển từ vi điều khiển, mạch điều
khiển sẽ tạo ra một xung điều khiển để định vị trục động cơ về một vị trí xác định Việc điều khiển chính xác vị trí và góc quay của trục giúp động cơ servo có khả năng định vị và điều khiển chính xác
Trang 1616
Hình 12: Sơ đồ tuyến điều khiển của động cơ Servo SG90
Quá trình hoạt động của động cơ Servo SG90 như sau:
Nhận tín hiệu điều khiển: Tín hiệu điều khiển PWM (Pulse Width Modulation) được
cung cấp từ nguồn điều khiển, như Arduino Tín hiệu này có thể được điều chỉnh trong
khoảng từ 1 ms đến 2 ms và có chu kỳ là 20 ms
Điều chỉnh vị trí: Bộ điều khiển nhận tín hiệu điều khiển và so sánh nó với vị trí hiện
tại của động cơ được xác định bởi mạch phản hồi Dựa trên sự khác biệt giữa vị trí yêu cầu
Trang 1717
và vị trí hiện tại, bộ điều khiển điều chỉnh tín hiệu điều khiển để tạo ra chuyển động quay của động cơ
Phản hồi vị trí: Mạch phản hồi (potentiometer) gửi thông tin về vị trí hiện tại của
động cơ cho bộ điều khiển Bộ điều khiển sử dụng thông tin này để đảm bảo rằng động cơ đạt được vị trí yêu cầu và duy trì nó trong quá trình hoạt động
Điều chỉnh liên tục: Quá trình điều chỉnh vị trí và phản hồi được thực hiện liên tục
để duy trì độ chính xác và ổn định của vị trí đầu ra của động cơ
SƠ ĐỒ DÂY
Hình 13: Sơ đồ chân của động cơ Servo SG90
Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát xung của vi điều khiển Ở chân xung cấp một xung từ 1ms-2ms theo để điều khiển góc quay theo ý muốn