THIẾT KẾ HỆ THỐNG MẠNG RC SERVOS CHO ROBOT DẠNG NGƯỜI
NỘI DUNG ĐỒ ÁN
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
I. Tên đề tài: Thiết kế hệ thống mạng RC servos cho robot dạng người.
II. Nhiệm vụ và nội dung:
- Tìm hiểu phương thức điều khiển động cơ RC servos, vi điều khiển AVR Atmega8, chuẩn giao tiếp RS-232.
- Thiết kế các module phần cứng điều khiển động cơ RC servos.
- Xây dựng mô hình mạng RC servos theo giao thức RS-232.
- Viết chương trình điều khiển cho Atmega8 bằng Codevision, viết chương trình giao diện điều khiển trên máy tính bằng GUI của Matlab.
LỜI CẢM ƠN
Qua thời gian làm đề tài, chúng em xin chân thành cảm ơn ThS. Lê Tấn Cường – Giảng viên bộ môn Cơ Điện Tử trường ĐH Sư Phạm Kỹ Thuật TP. HCM, thầy đã định hướng cho chúng em chọn đề tài này, chỉ dẫn và cung cấp tài liệu cho chúng em nghiên cứu, giúp đỡ và động viên tinh thần để cho chúng em có thể hoàn thành đồ án này.
Chúng em xin chân thành cảm ơn ThS. Phạm Bạch Dương- Giáo viên phản biện, thầy đã tận tình hướng dẫn, chỉnh sửa, góp ý, giúp chúng em hoàn chỉnh luận văn.
Chúng em cũng xin chân thành cảm ơn quý Thầy cô trong bộ môn Cơ Điện Tử của trường ĐH Sư Phạm Kỹ Thuật TP. HCM, quý Thầy cô trong khoa Cơ Khí Máy, và cũng như tất cả Thầy cô giáo trong nhà trường đã truyền đạt kiến thức cho chúng em, giúp chúng em có cơ sở kiến thức hoàn thành đề tài này.
Và cuối cùng chúng em cũng xin cảm ơn tất cả bạn bè cùng những người đã tạo điều kiện thuận lợi cho chúng em trong suốt quá trình làm đồ án tốt nghiệp.
TÓM TẮT ĐỒ ÁN
Đồ án thực hiện bao gồm các vấn đề sau:
- Thành phần thiết bị: giới thiệu về loại vi điều khiển sử dụng trong đề tài Atmega8, giới thiệu về động cơ RC servos, chuẩn RS-232 và mạng RS-232 xây dựng trong đề tài.
- Thiết kế phần cứng: thiết kế mạch điều khiển, sơ đồ khối, sơ đồ nguyên lý, chức năng các khối điều khiển và thi công mô hình.
- Thiết kế phần mềm: bao gồm giải thuật điều khiển, giao diện điều khiển và lưu đồ giải thuật.
- Kết luận: đánh giá về các kết quả đạt được, cũng như trình bày về hướng phát triển đề tài.
Nội dung đề tài bao gồm các chương sau:
Chương 1: Tổng quan
Chương 2: Giới thiệu thành phần thiết bị
Chương 3: Thiết kế phần cứng
Chương 4: Thiết kế phần mềm điều khiển
Chương 5: Kết luận và hướng phát triển đề tài
ABSTRACT
This plan consists of:
- Devices: Introduce AVR 8-bit microcontroller – Atmega8, RC servos, RS-232 standard and RS-232 network built in the plan.
- Hardware: Design Control circuits, block diagrams, schemata, functions of control blocks and implement the models.
- Software: Include flow charts and control interfaces.
- Conclusion: Estimate the achievements as well as developmental targets.
Contents of the thesis:
Chapter 1: Overview
Chapter 2: Introduction to the devices
Chapter 3: Hardware design
Chapter 4: Software design
Chapter 5: Conclusion
MỤC LỤC |
|
Trang bìa |
i |
Nhiệm vụ đồ án tốt nghiệp |
ii |
Nhận xét của giáo viên hướng dẫn |
iii |
Nhận xét của giáo viên phản biện |
iv |
Lời cảm ơn |
v |
Tóm tắt đồ án |
vi |
Abstract |
vii |
Mục lục |
viii |
Danh mục hình vẽ |
ix |
Danh mục bảng biểu |
xi |
|
|
CHƯƠNG 1: TỔNG QUAN |
1 |
1.1 Giới thiệu |
1 |
1.2 Tình hình nghiên cứu |
1 |
CHƯƠNG 2: GIỚI THIỆU THÀNH PHẦN THIẾT BỊ |
4 |
2.1 Vi điều khiển AVR Atmega8 |
5 |
2.2 Động cơ RC servos |
10 |
2.3 Chuẩn giao tiếp RS-232 |
16 |
2.4 Mạng truyền thông RS-232 cho RC servos |
19 |
CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG |
28 |
3.1 Mạch điện |
29 |
3.2 Mô hình |
33 |
CHƯƠNG 4: THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN |
34 |
4.1 Vi điều khiển |
35 |
4.2 Giao diện máy tính |
38 |
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI |
46 |
5.1 Kết luận |
46 |
5.2 Hướng phát triển |
46 |
Tài liệu tham khảo |
50 |
Phụ lục A: Sơ đồ tổng quát mạch điện |
51 |
Phụ lục B: Code chương trình vi điều khiển trong Codevision |
52 |
Phụ lục C: Code chương trình giao diện máy tính trong Matlab |
62 |
DANH MỤC HÌNH VẼ
Hình 1.1 Mạng động cơ Dynamixel AX-12 1
Hình 1.2 Bộ lắp ghép Robotis Bioloid Edutainment Robot Kit 2
Hình 1.3 Puppy robot có 16 RC servos, Spider robot có 15 RC servos 2
Hình 1.4 Dinosaur robot có 15 RC servos, humanoid robot gồm 22 động cơ RC servos 3
Hình 2.1 Sơ đồ khối vi điều khiển AVR Atmega8 6
Hình 2.2 Biểu đồ dạng sóng PWM nhanh 7
Hình 2.3 Biểu đồ dạng sóng PWM hiệu chỉnh pha 8
Hình 2.4 Biểu đồ dạng sóng PWM hiệu chỉnh pha và tần số 9
Hình 2.5 Ba loại động cơ servos dùng trong đồ án 10
Hình 2.6 Động cơ RC servo HS-945MG 12
Hình 2.7 Kích thước của động cơ RC servo HS-945MG 12
Hình 2.8 Bộ truyền bánh răng 13
Hình 2.9 Cấu tạo bên trong của RC servo HS-945MG 13
Hình 2.10 Chốt nhựa giới hạn trước và sau khi bị cắt 13
Hình 2.11 Tín hiệu điều khiển cho servo motors. Đường liền nét mô tả cho vị trí servos ở 0deg, đường chấm nét mô tả độ rộng xung tương ứng cho vị trí 14
Hình 2.12 Giản đồ xung kích RC servos 14
Hình 2.13 Khi vỏ phía sau servo motor được tháo rời, phía trong là mạch in của board điều khiển. (a) vị trí 3 điểm hàn kết nối board mạch với motor. Nếu board mạch được tháo rời thì có thể nhìn thấy biến trở, cung cấp tín hiệu hồi tiếp vị trí đến mạch điều khiển bên trong servo motor. Biến trở được đánh dấu trong hình (b) với vòng tròn màu đỏ 15
Hình 2.14 Giản đồ khung truyền ký tự A theo mã ASCII 16
Hình 2.15 Sơ đồ chân DB25 17
Hình 2.16 Sơ đồ chân DB9 17
Hình 2.17 Cấu trúc gói dữ liệu 19
Hình 2.18 Mạng truyền thông nhiều động cơ 19
Hình 3.1 Sơ đồ khối tổng thể một động cơ 29
Hinh 3.2 Module nguồn cung cấp 30
Hình 3.3 Sơ đồ khối LD1117 30
Hình 3.4 Hình dạng và sơ đồ chân LD1117 30
Hinh 3.5 Mạch ứng dụng tiêu biểu LD1117 31
Hình 3.6 Module vi điều khiển 31
Hình 3.7 Module giao tiếp ngoại vi 32
Hình 3.8 Module giao tiếp vi điều khiển với máy tính thông qua Max232 32
Hình 3.9 Mạch phần cứng vi điều khiển 33
Hình 3.10 Mô hình hoàn chỉnh gồm 3 động cơ kết nối theo mạng RS-232 33
Hình 4.1 Lưu đồ giải thuật chương trình main vi điều khiển 35
Hình 4.2 Lưu đồ giải thuật chương trình con hiệu chỉnh 36
Hình 4.3 Lưu đồ giải thuật chương trình interrupt vi điều khiển 37
Hình 4.4 Giao diện khởi động phần mềm 38
Hình 4.5 Giao diện kết nối cổng COM 38
Hình 4.6 Giao diện chương trình dùng giao tiếp phát triển mạng servos 39
Hình 4.7 Panel servo parameters 40
Hình 4.8 Panel error status 40
Hình 4.9 Control panel 41
Hình 4.10 Panel system write 42
Hình 4.11 Panel sync write control 42
Hình 4.12 Panel transmitter/receiver 43
Hình 4.13 Lưu đồ giải thuất nút connect/ Test RC SERVOS 43
Hình 4.14 Lưu đồ giải thuật hàm truyền chuỗi dữ liệu TxPacket(bID,bInstruction,bParameterLength) 44
Hình 4.15 Lưu đồ giải thuật hàm RxPacket(bRxPacketLength) 45
Hình 4.16 Lưu đồ giải thuật các nút đọc/ghi 45
Hình 5.1 Chuẩn kết nối giữa main board và các module ngoại vi của biped robot 46
Hình 5.2 Robot NX-25Q Humanoid Robot với 17 RC servos kết nối, không có đường hồi tiếp, tổng số dây điện là 17x3=51 47
Hình 5.3 Cấu trúc mô hình smart servos 47
Hình 5.4 Kết nối dây mạng RS485 từ servos về main board gồm 6 dây: +7.4V, +7.4V, A, B, GND, GND, trong đó đường nguồn dùng cáp đôi để đảm bảo đủ dòng 48
Hình 5.5 Thứ tự bố trí các smart servos trên robot 48
Hình 5.6 Mô hình robot hoàn chỉnh sau khi lắp các mạch điện 49
DANH MỤC BẢNG BIỂU
Bảng 2.1 Timer trong Atmega8 7
Bảng 2.2 Kết nối dây 10
Bảng 2.3 Các thông số đặc trưng cho HS-945MG và ES539 11
Bảng 2.4 Chức năng chân cổng COM 17
Bảng 2.5 Bảng mã lỗi giao tiếp 21
Bảng 2.6 Bảng qui định ý nghĩa thông số P_RETURN_LEVEL 22
Bảng 2.7 Bảng mã lệnh điều khiển động cơ 24
Bảng 4.1 Mã lỗi truyền nhận 40
CHƯƠNG 1
TỔNG QUAN
- Giới thiệu
Ngày nay, công nghệ robots đang phát triển nhanh chóng. Trong đó, các robots mô hình lắp ghép mà đặc biệt là robots dạng người đã đạt được những thành tựu vượt bậc. Những thành tựu trong công nghệ robots dạng người mang tính thực tiễn rất cao. Các robots đòi hỏi độ chính xác trong thao tác để tạo ra các sản phẩm chất lượng, hoạt động trong môi trường khắc nghiệt, nguy hiểm, trong các ngành khoa học khác như trong y khoa, và cả trong các đồ chơi công nghệ cao.
Trong các robots mô hình, các động cơ được sử dụng là các động cơ chuyên dùng điều khiển góc quay – các động cơ RC servos. Động cơ RC servos được sử dụng phổ biến trong các cơ cấu chấp hành được điều khiển bằng vi xử lý, vừa nhỏ gọn, vừa tiết kiệm năng lượng và rẻ tiền. Trong các robots mô hình lắp ghép, các RC servos được kết nối thành mạng và xây dựng một giao thức để quản lý điều khiển mạng này.
Việc nghiên cứu xây dựng mạng RC servos có ý nghĩa thiết thực để tiếp cận với công nghệ robots hiện đại trên thế giới.
1.2 Tình hình nghiên cứu
Các mô hình robots hiện nay trên thế giới được phát triển dưới dạng kết nối các động cơ RC servos thành một mạng lưới. Mạng động cơ RC servos bao gồm một bộ điều khiển trung tâm kết nối cho tất cả các động cơ có trong mô hình.
Khảo sát mạng động cơ RC servos của hãng Robotis Dynamixel AX-12, RX-10,CM-2…Mạng lưới này xây dựng một giao thức liên lạc giữa bộ điều khiển và từng module động cơ. Trong đó, bộ điều khiển kiểm soát tất cả các thông tin trạng thái của mỗi động cơ về vị trí, tốc độ, nhiệt độ…Giao thức kết nối có thể theo chuẩn RS485 hay chuẩn RS232.
|
Hình 1.1 Mạng động cơ Dynamixel AX-12 |
Khảo sát một số mô hình robot của hãng Robotis trong bộ lắp ghép Robotis Bioloid Edutainment Robot Kit.
|
Hình 1.2 Bộ lắp ghép Robotis Bioloid Edutainment Robot Kit |
Chẳng hạn mô hình Puppy robot có 16 RC servos. Mô hình Spider robot có 15 RC servos
|
|
Hình 1.3 Puppy robot có 16 RC Servos, Spider robot có 15 RC Servos |
Mô hình Dinosaur robot có 15 RC servos. Mô hình humanoid robot, ở đây là mạng gồm 22 động cơ RC servos, thể hiện được các hành động thao tác của con người.
|
|
Hình 1.4 Dinosaur robot có 15 RC servos, humanoid robot gồm 22 động cơ RC servos |
CHƯƠNG 2
GIỚI THIỆU THÀNH PHẦN THIẾT BỊ
Nội dung chương |
|
2.1 Vi điều khiển AVR Atmega8 |
5 |
2.1.1 Kiến trúc RISC |
5 |
2.1.2 Đặc điểm |
5 |
2.1.3 Sơ đồ khối |
6 |
2.1.4 Giới thiệu chức năng PWM |
6 |
2.2 Động cơ RC servos |
10 |
2.2.1 Giới thiệu động cơ RC servos |
10 |
2.2.2 Phân loại động cơ RC servos |
10 |
2.2.3 Kết nối dây |
10 |
2.2.4 Đặc tính kỹ thuật |
11 |
2.2.5 Cấu tạo RC servo HS-945MG |
12 |
2.2.6 Nguyên lý hoạt động RC servos |
14 |
2.2.7 Tạo đường hồi tiếp cho servo motors |
14 |
2.3 Chuẩn giao tiếp RS-232 |
16 |
2.3.1 Khái niệm chung |
16 |
2.3.2 Đặc tính kỹ thuật của chuẩn RS-232 |
16 |
2.3.3 Sơ đồ chân kết nối |
17 |
2.3.4 Nhóm chức năng các chân tín hiệu |
18 |
2.4 Mạng truyền thông RS-232 cho RC servos |
19 |
2.4.1 Gói dữ liệu |
19 |
2.4.2 Mạng truyền thông |
19 |
2.4.3 ID duy nhất |
20 |
2.4.4 Giao thức |
20 |
2.4.5 Gói lệnh |
20 |
2.4.6 Gói trạng thái (gói dữ liệu trả về) |
20 |
2.4.7 Phân bố vùng nhớ và bảng mã lệnh điều khiển |
21 |
2.4.8 Các ví dụ giao tiếp điều khiển servos |
24 |
Chương này giới thiệu các thành phần thiết bị như: vi điều khiển Atmega8, động cơ RC servos. Bên cạnh đó, cũng nhắc đến các khái niệm cơ sở để xây dựng một mạng truyền thông RC servos và nguyên lý điều khiển động cơ. Đây có thể xem là các định nghĩa quan trọng giúp dễ dàng hiểu các chương tiếp theo.
2.1 Vi điều khiển AVR Atmega8
2.1.1 Kiến trúc RISC
- 130 lệnh hầu hết thực hiện trong một chu kỳ xung đồng hồ.
- 32x8 thanh ghi làm việc đa năng.
- Các lệnh có chiều dài cố định.
- Kiến trúc đường ống lệnh kiểu hai tầng làm tăng tốc độ thực thi lệnh.
2.1.2 Đặc điểm
- 8k bộ nhớ Flash, 512 bytes EEPROM, 1k bytes SRAM.
- Hai bộ đếm/định thời 8 bit với chế độ so sánh và chia tần số tách biệt.
- Một bộ đếm/định thời 16 bit với chế độ so sánh và chế độ nạp lại, chia tần số tách biệt.
- Ba kênh PWM.
- Giao tiếp nối tiếp SPI master/Slave.
- USART nối tiếp lập trình được.
- Có bộ định thời Watchdog timer ngày trên chip và lập trình được với bộ dao động độc lập.
- Bộ so sánh Analog trên chip.
- Một bộ biến đổi ADC 10 bit có đến 8 kênh lối vào.
- Một giao diện TWI đồng bộ tương thích I2C.
- Bộ đếm thời gian thực với bộ dao động tách biệt.
- I/O: 32 đường I/O, trong đó có 23 đường I/O lập trình được.
- Điện áp hoạt động: 4.5 - 5.5V.
- Hoạt động với xung nhịp: 0 - 16 MHz.
2.1.3 Sơ đồ khối
|
Hình 2.1 Sơ đồ khối vi điều khiển AVR Atmega8 |
2.1.4 Giới thiệu chức năng PWM
PWM (Pulse Width Modulator) là module điều rộng xung.
Atmega8 có ba kênh điều rộng xung nằm ở Timer/Counter1, 2 và tương ứng có 3 chân PWM:
Bảng 2.1 Timer trong Atmega8
Tên gọi |
Vị trí |
Timer/Counter |
OC1A |
PIN15 |
TCNT1A |
OC1B |
PIN16 |
TCNT1B |
OC2 |
PIN17 |
TCNT2 |
Có 3 chế độ PWM:
- Chế độ PWM nhanh (fast PWM mode).
- Chế độ PWM hiệu chỉnh pha (Phase corect PWM mode).
- Chế độ PWM hiệu chỉnh pha và tần số (Phase and Frequency correct PWM mode).
a. Chế độ PWM nhanh
Fast PWM là chế độ tạo ra xung PWM có tần số cao. Timer đếm từ giá trị BOTTOM đến giá trị MAX và trở về đếm lại từ giá trị BOTTOM.
Biểu đồ dạng sóng:
|
Hình 2.2 Biểu đồ dạng sóng PWM nhanh |
Tần số PWM:
- Đối với TCNT1:
(2.1)
N = {1, 8, 64, 256, hoặc 1024}
- Đối với TCNT2:
(2.2)
N ={1, 8, 32, 64, 128, 256, hoặc 1024}
b. Chế độ PWM hiệu chỉnh pha
Đối với mode này, timer đếm từ giá trị BOTTOM lên đến giá trị MAX và sau đó đếm từ MAX xuống BOTTOM.
Chế độ Phase Correct PWM có tần số hoạt động thấp hơn so với chế độ Fast PWM. Tuy nhiên chế độ này thường được sử dụng để điều khiển động cơ do đặc tính đối xứng của nó.
Biểu đồ dạng sóng:
|
Hình 2.3 Biểu đồ dạng sóng PWM hiệu chỉnh pha |
Tần số PWM:
- Đối với TCNT1:
(2.3)
N={1, 8, 64, 256, hoặc 1024}
- Đối với TCNT2:
(2.4)
N ={1, 8, 32, 64, 128, 256, hoặc 1024}
c. Chế độ PWM hiệu chỉnh pha và tần số (chỉ có ở TCNT1):
Mode này gần giống với mode Phase Correct PWM. Sự khác biệt giữa 2 mode là thanh ghi OCR1x được cập nhật bởi thanh ghi đệm OCR1x Buffer Register.
Dạng sóng ngõ ra:
|
Hình 2.4 Biểu đồ dạng sóng PWM hiệu chỉnh pha và tần số |
Nhận xét: Chiều dài xung lên và xuống là như nhau. Ngõ ra luôn đối xứng trong mọi chu kỳ chính vì thế ta có thể điều chỉnh được tần số.
Tần số PWM:
(2.5)
N={1, 8, 64, 256, hoặc 1024}
2.2 Động cơ RC servos
2.2.1 Giới thiệu động cơ RC servos
|
|
|
HS-945MG |
S3001 |
ES539 |
Hình 2.5 Ba loại động cơ servos dùng trong đồ án |
Động cơ RC (Radio Control) servos đầu tiên được thiết kế để sử dụng trong điều khiển máy bay hoặc xe hơi. Về sau, động cơ này được sử dụng phổ biến trong các cơ cấu chấp hành được điều khiển bằng vi xử lý, vừa nhỏ gọn, vừa tiết kiệm năng lượng và rẻ tiền.
Động cơ RC servos có moment xoắn cao so với kích thước của nó, điều khiển vị trí góc chính xác bằng cách cung cấp xung theo phương thức điều biến độ rộng xung (PWM), độ rộng của xung sẽ quyết định vị trí góc của trục động cơ.
2.2.2 Phân loại động cơ RC servos
Có rất nhiều loại RC servos chúng khác nhau về độ chính xác, tốc độ điều khiển và tùy thuộc vào giá cả để bạn lựa chọn một động cơ thích hợp với ứng dụng của bạn.
Nhiều hãng sản xuất như: Airtronics, Cirrus, FMA Direct, Futaba, Hitec, Japan Radio (JR), Ko Propo, Multiplex, Tower Hobbies.
2.2.3 Kết nối dây
Như đã giới thiệu thì đối với mỗi hãng sản xuất có một quy định về màu dây khác nhau đối với chức năng. Tuy nhiên trên cơ sở kết nối có 3 dây: negative, positive và signal.
Bảng 2.2 Kết nối dây |
||||
Hãng |
Negative |
Positive |
signal |
|
Futaba |
Red, middle pin |
Black, outside pin |
White, inside pin |
|
Hitec |
Red, middle pin |
Black, outside pin |
Yellow, inside pin |
|
JR |
Red, middle pin |
Brown, outside pin |
Orange, inside pin |
|
Airtronics/Sanwa Z |
Red, middle pin |
Black, outside pin |
Blue or Yellow, inside pin |
|
Airtronics |
Red |
Black, middle pin |
Black, White, or Blue |
|
Trong đề tài nhóm sử dụng 3 loại động cơ của: JR, Futaba, Hitec.
2.2.4 Đặc tính kỹ thuật
Bảng 2.3 Các thông số đặc trưng cho HS-945MG và ES539
Thông số |
Hitec - HS-945MG |
JR - ES539 |
Điện áp hoạt động |
7.4V |
6V |
Dòng điện hoạt động |
380mA |
450mA |
Dòng điện giới hạn |
5.2A |
N/A |
Moment giữ |
2.9Nm |
0.92Nm |
Momen giới hạn |
2.8Nm |
N/A |
Tỉ lệ xung |
|
|
Tầm xung |
|
|
Điểm giữa Neutral |
|
|
Độ rộng vùng chết |
|
|
Tốc độ (không tải) |
|
|
Hướng quay thuận |
Chiều tăng xung |
Chiều tăng xung |
Loại vật liệu hộp giảm tốc |
Titanium |
Nhựa |
Trọng lượng |
62g |
55.2g |
2.2.5 Cấu tạo RC servo HS-945MG
|
Hình 2.6 Động cơ RC servo HS-945MG |
Động cơ RC servos cực kỳ tiện dụng trong lĩnh vực Robotics. Phần này chúng ta sẽ khảo sát cấu tạo động cơ RC servo HS-945MG của hãng HITEC (hình 2.6). Động cơ này khá nhỏ với kích thước: 41 x 20 x 36,5mm.
|
Hình 2.7 Kích thước của động cơ RC servo HS-945MG |
Bên trong động cơ có tích hợp mạch điều khiển, bộ truyền bánh răng (hình 2.8) và một thiết bị hồi tiếp là một biến trở xoay được nối với trục ngoài của động cơ (hình 2.9). Biến trở này có tác dụng theo dõi vị trí góc của trục động cơ thông qua cường độ dòng đưa vào. Nếu trục động cơ đạt được vị trí góc yêu cầu thì động cơ sẽ được tắt, ngược lại thì động cơ sẽ quay đến khi nào đạt được vị trí góc được quy định bởi độ rộng xung đưa vào.
|
Hình 2.8 Bộ truyền bánh răng |
Trục động cơ chỉ có thể quay một góc giới hạn là 180o hoặc 210o (tùy thuộc vào hãng sản xuất động cơ) là do có một chốt nhựa ở bên trong. Nếu muốn động cơ RC servos quay toàn vòng, ta phải cắt bỏ chốt này đi (hình 2.10).
Động cơ có 3 dây ra: 1 dây nguồn (đỏ), 1 dây mass (đen), 1 dây tín hiệu điều khiển (màu vàng/trắng).
|
Hình 2.9 Cấu tạo bên trong của RC servo HS-945MG |
|
Hình 2.10 Chốt nhựa giới hạn trước và sau khi bị cắt |
2.2.6 Nguyên lý hoạt động RC servos
Như đã nói ở trên vị trí góc của động cơ RC servos điều khiển dựa trên nguyên lý PWM. Để điều khiển động cơ RC servos ta sẽ cấp xung mỗi 50Hz ,nghĩa là 20ms một lần.
Đồ thị (hình 2.11) mô tả khe thời gian cho tín hiệu điều khiển vị trí servos. Vùng hoạt động của động cơ này được minh họa bằng đường chấm ở 700us và 2300us, tương ứng với +/- 90o. Tốc độ chỉnh tối đa, khi cấp nguồn 6V, là 5.24 rad/s.
|
Hình 2.11 Tín hiệu điều khiển cho servo motors. Đường liền nét mô tả cho vị trí servos ở 0deg, đường chấm nét mô tả độ rộng xung tương ứng cho vị trí |
,..........................................
xem PHỤ LỤC B)
4.2 Giao diện máy tính
4.2.1 Giao diện khởi động
Phần mềm được xây dựng dùng cho việc phát triển khi lập trình cho mạng rc servos. Phần mềm được viết bằng GUI của Mathlab7.2, hình 1 mô tả giao diện khởi động phần mềm.
Để có thể chạy chương trình trước hết các servos cần được được kết nối nhau trên một mạng và kết nối với PC qua mạch RS232. Sau đó chọn cổng COM và tốc độ kết nối trên máy tính mặc định là COM1, 57600bits/s.
|
Hình 4.4 Giao diện khởi động phần mềm |
Operation Status: hiển thị trạng thái kết nối giữa máy tính và bộ điều khiển.
Main Control:
- Connect: thiết lập thông số giao tiếp như cổng COM, tốc độ baud.
|
Hình 4.5 Giao diện kết nối cổng COM |
- Test RC SERVOS: vào giao diện chính của chương trình.
4.2.2 Giao diện chính chương trình
|
Hình 4.6 Giao diện chương trình dùng giao tiếp phát triển mạng servos |
Trong Control Panel của giao diện chọn ID của động cơ cần kiểm tra và nhấn lệnh PING, nếu động cơ có tồn tại trên mạng kết nối thì đèn Connectivity sẽ sáng, còn không lỗi sẽ báo tương ứng trên các đèn Error.
Khi việc kết nối động cơ thành công thì lúc này ta có thể điều chỉnh núm xoay Position để điều khiển servos đến các vị trí mong muốn, giá trị điều chỉnh đã được số hóa bằng số từ 0-320 tương ứng từ -90deg đến +90deg của servos. Bên cạnh đó, người dùng có thể thay đổi vận tốc quay trong ô Velocity hoặc dùng các lệnh ghi giá trị vị trí và vận tốc (WRITE) , đọc giá trị vị trí (READ), kiểm tra xem động cơ đang di chuyển hay không (READ MOVING), kiểm tra động cơ ở trạng thái hãm hay không (READ TORQUE), và lệnh ACTION dùng thực thi nhiều động cơ cùng một lúc ứng với lệnh đồng bộ ghi dữ liệu.
Trong System Write cũng có thể đọc và ghi các thông số hệ thống như giới hạn góc lớn nhất, nhỏ nhất, cũng như cho phép thay đổi ID servos.
Giao diện chính chia thành các phần pannels như sau: Error Status, Control Pannel, Servo parameters, System write, Sync write control, Receiver, Transmitter.
a. Servo Parameters
|
Hình 4.7 Panel servo parameters |
Điều chỉnh núm xoay để điều khiển servos đến vị trí mong muốn.
b. Error Status
|
Hình 4.8 Panel error status |
Error status bao gồm các mã lỗi như sau:
Bảng 4.1 Mã lỗi truyền nhận |
|
Lỗi |
Ý nghĩa |
RxD Timeout |
Nếu bộ điều khiển hỏi thiết bị mà thiết bị không trả lời lại thì sẽ báo lỗi này. |
Wrong Header |
Nếu 2 bytes đầu tiên khác 0xFF. |
TxID != RxID |
Khi số ID truyền khác với ID nhận được từ gói trạng thái. |
Wrong Length |
Ứng với mỗi lệnh gửi thì gói nhận sẽ có độ dài biết trước và nếu độ dài không phù hợp thì sẽ báo lỗi này. |
Wrong checksum |
Sau khi bộ điều khiển nhận được thông tin, sẽ tín checksum của gói nhận, nếu checksum tính được khác checksum được gửi trong gói nhận thì sẽ báo lỗi này. |
c. Control panel
|
Hình 4.9 Control panel |
Control pannel đóng vai trò điều khiển tốc độ, vị trí, moment…tương ứng với số ID.
- ID: chọn động cơ cần điều khiển ứng với giá trị ID.
- Velocity: tốc độ di chuyển.
- Connectivity: trạng thái kết nối với động cơ.
- Moving: trạng thái di chuyển động cơ.
- Reg Write: đồng bộ ghi dữ liệu.
- Torque Enable: cho phép moment.
- PING: kiểm tra động cơ có số ID trên có tồn tại hay không.
- WRITE: ghi giá trị xuống động cơ với ID.
- READ: đọc giá trị từ động cơ với ID.
- READ MOVING: đọc vị trí hiện tại của động cơ.
- ACTION: thực thi nhiều động cơ cùng một lúc ứng với lệnh đồng bộ ghi dữ liệu.
- EXIT: đóng cửa sổ giao diện và thoát khỏi chương trình
d. System write
|
Hình 4.10 Panel system write |
System write đọc và ghi thay đổi các thông số hệ thống trong vùng nhớ EEPROM.
- WRITE: ghi các thông số mới cho hệ thống.
- READ: đọc các thông số hiện tại của hệ thống và hiển thị giá trị tương ứng.
- NEW ID: giá trị ID mới cho động cơ.
- CW_ANG_LIMIT: góc giới hạn của động cơ theo chiều kim đồng hồ.
- CCW_ANG_LIMIT: góc giới hạn của động cơ theo ngược chiều kim đồng hồ.
- RETURN_LEVEL: giá trị yêu cầu trả về gói trạng thái từ động cơ.
e. Sync write control
|
Hình 4.11 Panel sync write control |
Ghi đồng bộ dữ liệu nhiều động cơ (ở đây 4) giá trị vị trí và vận tốc.
- ServoN Enable: cho phép ghi đến Servo tương ứng ID N.
- ID: số ID.
- Position: giá trị vị trí tương ứng.
- Velocity: giá trị vận tốc tương ứng.
- SYNC WRITE: ghi giá trị thông số cùng lúc nhiều động cơ.
f. Transmitter/Receiver
Hiển thị gói dữ liệu truyền và gói trạng thái nhận.
|
Hình 4.12 Panel transmitter/receiver |
4.2.3 Lưu đồ giải thuật cho các đối tượng tiêu biểu
a. Giao diện khởi động
|
|
Nút connect |
Nút Test RC SERVOS |
Hình 4.13 Lưu đồ giải thuật nút connect/ Test RC SERVOS |
b. Giao diện chính
|
Hình 4.14 Lưu đồ giải thuật hàm truyền chuỗi dữ liệu TxPacket(bID,bInstruction,bParameterLength) |
|
Hình 4.15 Lưu đồ giải thuật hàm RxPacket(bRxPacketLength) |
|
|
Nhóm lệnh đọc: READ, READ_MOVING, READ TORQUE |
Nhóm lệnh ghi: WRITE , ACTION |
Hình 4.16 Lưu đồ giải thuật các nút đọc/ghi |
4.2.4 Code chương trình (xem PHỤ LỤC C)
CHƯƠNG 5
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
5.1 Kết luận
Các vấn đề đã giải quyết trong đề tài:
5.1.1 Phần cứng
Hoàn thành mạch điện điều khiển chính cho động cơ.
Đã xây dựng được mô hình mạng RS-232 với 3 động cơ.
5.1.2 Phần mềm
Hoàn thành phần mềm điều khiển vị trí cho động cơ, đồng thời có khả năng liên kết theo mạng RS-232 cho vi điều khiển Atmega8.
Hoàn thành phần mềm giao diện trên máy tính dùng giám sát và điều khiển động cơ phát triển trong mạng.
5.2 Hướng phát triển
Mô hình thực hiện ở trên chỉ đơn giản là mạng 3 động cơ servos kết nối theo mạng RS-232.
Sau đây xin giới thiệu mạng RC servos ứng dụng trong robot dạng người bao gồm 21 smart servos kết nối với board mạch chính qua mạng truyền thông công nghiệp RS485 như sau:
|
Hình 5.1 Chuẩn kết nối giữa main board và các module ngoại vi của biped robot |
21 servo motors, mỗi servo có 3 dây: GND, PWM và VCC, thêm đường hồi tiếp vị trí gồm Signal và GND. Vậy tổng cộng số dây điện sẽ kéo về mainboard sẽ là: 21x5=105 sợi.
|
|
Hình 5.2 Robot NX-25Q Humanoid Robot với 17 RC servos kết nối, không có đường hồi tiếp, tổng số dây điện là 17x3=51 |
Việc nhiều dây điện trong kết nối sẽ ảnh hưởng đến các chuyển động của robot, khả năng hư hỏng cao. Thêm vào đó với các servos ở chân, các đường hồi tiếp sẽ tốn nhiều dây điện mới về đến mainboard để đo lường, như thế khả năng bị nhiễu rất cao. Ngoài ra, mỗi RC servo cần có 1 tín hiệu PWM với tần số 50Hz để điều khiển, như thế với mô hình sử dụng nhiều servos thì vấn đề trên sẽ chiếm dụng rất nhiều tài nguyên của bộ xử lý, như thế nó sẽ không còn thời gian để làm các công việc khác. Để khắc phục các nhược điểm trên, tác giả đã phát triển một mô hình smart servo. Hình 5.3 mô tả cấu trúc của một smart servo.
|
Hình 5.3 Cấu trúc mô hình smart servos |
Smart servo chính là một RC servo thông thường, nhưng chúng được gắn thêm bộ giao tiếp mạng, giúp nhiều động cơ có thể kết nối trên cùng một đường truyền, ngoài ra smart servo còn cho biết vị trí góc hiện tại và nhiều tính năng khác. Hạt nhân tạo nên smart servo là vi điều khiển ATMEGA8, có ADC 10bits để đo lường vị trí, giao tiếp với driver Max485 để truyền thông với mainboard qua mạng RS485. Từ khi áp dụng smart servo cho robot ta thấy số dây điện đưa về mainboard gồm 4 đường: VCC, A, B và GND điều khiển cho 21 servos. Hình 5.4 mô tả việc nối dây đến mainboard.