LỜI NÓI ĐẦU
Ngày nay, robotic đã đạt được những thành tựu to lớn trong sản xuất công nghiệp
cũng như trong đời sống. Sản xuất robot là ngành công nghiệp trị giá hàng tỷ USD và
ngày càng phát triển mạnh. Robot có thể di chuyển với tốc độ và độ chính xác cao để
thực hiện những động tác lặp đi lặp lại như hàn hay sơn. Trong công nghiệp điện tử,
các robot đặt các linh kiện với độ siêu chính xác, tạo nên các thiết bị tinh vi như điện
thoại di động hay máy tính.
Trong các họ robot, chúng ta không thể không nhắc tới mobile robot với những
đặc thù riêng mà các loại robot khác không có. Các tay máy cố định chỉ hoạt động
trong một không gian bị giới hạn quanh vị trí của nó. Ngược lại, mobile robot có thể
di chuyển, do đó tạo nên không gian hoạt động rất lớn và cho đến nay nó đã dần
khẳng định vai trò quan trọng không thể thiếu trong nhiều lĩnh vực, thu hút được rất
nhiều sự đầu tư nghiên cứu.
Trong mobile robot cũng có thể phân chia thành nhiều chủng loại , chủ yếu là
theo cách thức chúng vận hành (mobile robot dùng bánh, dùng chân, dùng xích).Dưới
sự hướng dẫn của Th.s Đặng Bảo Lâm và Th.s Nguyễn Hải Sơn, nhóm chúng em đã
chọn đề tài nghiên cứu và thiết kế mobile robot dùng xích.
Chúng em xin chân thành cảm ơn sự giúp đỡ tận tình của các thầy.
TỔNG QUAN VỀ ĐỒ ÁN TỐT NGHIỆP
Chương I: “Tổng quan về mobile robot” sẽ nêu những điểm khái quát chung về
lịch sử phát triển, sự phân loại mobile robot trên thế giới.
Chương II: “Vấn đề cứu hộ và mobile robot dùng xích ” sẽ nêu các vấn đề hạn chế
trong công tác cứu hộ và những phân tích đánh giá ưu nhược điểm, phạm vi ứng dụng
của mobile robot dùng xích đối với một số robot khác, đồng thời sẽ đưa ra những yêu
cầu nhiệm vụ cụ thể để thiết kế mobile robot dùng xích trong đồ án này.
Chương III : “ Động học và động lực học” là những tính toán động học, động lực
học tổng quát cho mô hình chung của mobile robot dùng xích.
Để quan tâm tới những vấn đề của một robot thực tế và để thiết kế một kết cấu di
động ưu việt thì sự nghiên cứu phải có những tham khảo trong những kết cấu liên
quan đã có trên thế giới.Vấn đề này sẽ được trình bày ở chương IV: “Kết cấu
robot”.Các loại xích(đai) với hình dáng kết cấu khác nhau sẽ được trình bày chi tiết
trong phần này.
Chương V: “Thiết kế hệ thống điều khiển và xây dựng phần mềm điều khiển
robot” . Phần này sẽ tập trung vào tính toán thiết kế về mạch điện tử, điều khiển, phần
mềm hỗ trợ để hoàn thiện robot theo yêu cầu đặt ra.
Chương VI: “Kết luận” đưa ra những đánh giá về quá trình nghiên cứu và khả
năng phát triển cho robot trong tương lai.
MỤC LỤC . 1
MỤC LỤC HÌNH VẼ . 4
LỜI NÓI ĐẦU 4
TỔNG QUAN VỀ ĐỒ ÁN TỐT NGHIỆP . 5
CHƯƠNG I . 6
TỔNG QUAN VỀ MOBILE ROBOT 6
1.1. Giới thiệu 6
1.2. Lịch sử phát triển của mobile robot 7
1.3. Phân loại mobile robot . 9
1.4. Một số dạng điều khiển mobile robot . 10
1.4.1. Điều khiển từ xa bằng tay . 10
1.4.2. Rôbốt điều khiển từ xa tự bảo vệ 10
1.4.3. Rôbốt theo lộ trình . 10
1.4.4. Rôbốt ngẫu nhiên hoạt động độc lập . 10
1.5. Ứng dụng của mobile robot . 10
1.6. Các loại chuyển động của Mobile robot 14
1.6.1. Chuyển động bằng chân(legged mobile robot) . 14
1.6.2. Chuyển động bằng xích (tracked mobile robot) . 15
1.6.3. Di chuyển bằng bánh xe. (wheeled mobile robot) 16
CHƯƠNG II 18
VẤN ĐỀ CỨU HỘ VÀ MOBLE ROBOT DÙNG XÍCH . 18
2.1. Vấn đề cứu hộ và hướng tiếp cận bằng robot 18
2.2. Ưu nhược điểm của Mobile robot dùng xích . 18
2.2.1. Về cấu tạo . 18
2.2.2. Về điều khiển 19
2.2.3. Về khả năng linh động 19
2.3. Yêu cầu,nhiệm vụ nghiên cứu . 19
2.3.1. Yêu cầu . 19
2.3.2. Phạm vi nghiên cứu 20
CHƯƠNG III . 21
ĐỘNG HỌC VÀ ĐỘNG LỰC HỌC . 21
3.1. Giới thiệu chung . 21
3.2. Mô hình động học 21
3.3. Động lực học 25
CHƯƠNG IV . 27
KẾT CẤU ROBOT . 27
4.1 Giới thiệu 27
4.2 Vấn đề điều khiền phương tiện sử dụng xích 29
4.3 Các kết cấu mắt xích . 29
4.4 Cách bố trí xích . 32
4.5 Hệ thống căng xích . 36
4.6 Các kết cấu của hệ thống xích . 40
4.6.2 Bộ truyền động điều khiển 2 xích 41
4.6.3 Bộ truyền động 2 xích với các hệ thống thiết bị lái riêng rẽ 42
4.6.4 Các bộ truyền động có 4 nhánh xích điều khiển. 43
4.6.5 Các bộ truyền động có 6 bánh xích. . 45
4.7 Phương án thiết kế . 46
4.7.1 Ý tưởng chung . 46
4.7.2 Kích thước và hình dáng tổng thể của robot. . 46
4.7.3 Kết cấu đai được lựa chọn . 48
4.7.4 Kết cấu nhánh chính . 50
4.7.4.1 Nhiệm vụ . 50
4.7.4.2 Bánh đai dẫn động 50
4.7.4.3 Trục trước . 53
4.7.4.4 Bánh đai theo. . 53
4.7.4.5 Khung 54
4.7.4.6 Thanh tăng cứng cho khung 54
4.7.4.7 Bánh căng đai dưới . 55
4.7.4.8 Bánh căng đai trên. . 55
4.7.5 Kết cấu nhánh tay quay 56
4.7.5.1 Nhiệm vụ . 56
4.7.5.2 Bánh đai lớn 56
4.7.5.3 Bánh đai nhỏ . 56
4.7.5.4 Tấm tay đỡ 57
4.7.5.5 Cấu tạo cụm chi tiết 57
4.8 Tính chọn động cơ 59
4.8.1 Động cơ phía sau 59
4.8.2 Động cơ phía trước 60
4.9 Khả năng hoạt động của robot 60
THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN VÀ XÂY DỰNG PHẦN MỀM ĐIỀU
KHIỂN ROBOT . 62
5.1 Cơ cấu chấp hành 62
5.2 Giới thiệu về bộ vi điều khiển 8 bit 62
5.2.1 Khái niệm về bộ vi điều khiển . 63
5.2.2 Các yêu cầu để lựa chọn một bộ vi điều khiển 63
5.2.3 Các tiêu chuẩn lựa chọn một bộ vi điều khiển . 63
5.3 Bộ vi điều khiển 8bit PIC16F876A 64
5.3.1 Các đặc tính nổi bật của bộ vi điều khiển 64
5.3.2 So sánh với bộ vi điều khiển 8051 . 66
5.3.3 Giới thiệu các module được ứng dụng vào dự án 68
5.3.3.1 Giới thiệu về các cổng vào/ra (I/O ports) . 68
5.3.3.2 Truyền nhận dữ liệu đồng bộ và không đồng bộ 75
5.3.3.3 Chuẩn giao tiếp nối tiếp hai dây (I2C Mode) . 87
5.3.3.4 Module điều xung (PWM Module) . 97
5.4 Ứng dụng IC điều khiển động cơ L298 100
5.4.1 Giới thiệu . 100
5.4.2 Ứng dụng IC L298 vào dự án 102
5.5 Thiết kế mạch điều khiển Robot . 103
5.5.1 Nhiệm vụ thiết kế . 103
5.5.2 Các module cơ bản . 104
5.5.2.1 Module truyền/nhận hình ảnh từ robot . 104
5.5.2.2 Module truyền/nhận tín hiệu điều khiển tới robot 105
5.5.2.3 Module điều khiển và công suất cho động cơ . 107
5.6 Thiết kế phần mềm điều khiển Robot . 114
CHƯƠNG VI 118
KẾT LUẬN . 118
TÀI LIỆU THAM KHẢO . 119
PHỤ LỤC BẢN VẼ CÁC CHI TIẾT . 121
121 trang |
Chia sẻ: banmai | Lượt xem: 2380 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Tracked mobile robot, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
4kbytes vùng nhớ mã ngoài (ROM ngoài).
- Có 64kbytes vùng nhớ dữ liệu ngoài (RAM ngoài).
- Xử lý Boolean (hoạt động trên bit đơn).
- Có 210 vị trí nhớ có thể định vị bit.
- Có 5 ngắt.
- 4us cho hoạt động nhân hoặc chia.
- Dùng nguồn dao động ngoài.
- Dùng điện áp 5v để chip hoạt động.
Hình5. 3 Sơ đồ khối của VĐK 8051
Như vậy ta có thể thấy dòng VĐK PIC16F876A có đặc tính kỹ thuật hơn hẳn so
với dòng VĐK 8051 trong khi độ phức tạp và không gian chiếm lại nhỏ hơn nhiều, cụ
thể như sau:
Bảng so sánh VĐK8051 và VĐK PIC16F876A
Đặc tính Số lượngVĐK 8051 VĐK PIC16F876A
Chân của chip 32 28
ROM nội 4 kbytes 8 kbytes
RAM nội 128 bytes 368 bytes
Bộ định thời 2 3
Cổng nối tiếp 1 2
67
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Nguồn ngắt 5 14
Ngoài những đặc điểm trên thì VĐK PIC16F876A còn có một số đặc điểm hơn
hẳn VĐK 8051 là:
- Có 10bits chuyển đổi A/D, điều này sẽ giúp cho người thiết kế hệ thống không
phải mất một bộ chuyển đổi A/D (việc phải mắc thêm một bộ chuyển đổi sẽ
dẫn đến hệ thống phức tạp hơn).
- Có bộ dao động chủ trên chíp, điều này sẽ tránh được những sai số không cần
thiết trong việc tạo xung dao động.
- Có khả năng tự Reset bằng bộ WDT.
- Có thêm 256bytes EEPROM.
- Và có khă năng chống nhiễu tốt hơn trong ứng dụng điều khiển từ xa so với
8051.
5.3.3 Giới thiệu các module được ứng dụng vào dự án
5.3.3.1 Giới thiệu về các cổng vào/ra (I/O ports)
Vi điều khiển PIC16F876A có 3 cổng vào/ra đó là PortA, PortB và PortC. Tất cả
các chân được thiết kế với chức năng làm chân vào ra tuy nhiên một số chân được tích
hợp các chức năng khác để phù hợp với các thiết bị ngoại vi. Nói chung khi các thiết
bị ngoại vi hoạt động, các chân có thể không được sử dụng với mục đích làm chân
vào/ra.
a. Cổng A và thanh ghi TRISA
Cổng A là cổng hai chiều với độ rộng đường truyền là 6 bit và để điều khiển việc
truy xuất dữ liệu trên cổng này người ta sử dụng thanh ghi TRISA. Nếu set bit
TRISA=1 thì chân tương ứng của cổng A sẽ làm nhiệm vụ của một ngõ vào và ngược
lại nếu xóa bit TRISA=0 thì chân tương ứng đó sẽ làm nhiệm vụ của một ngõ ra.
Việc đọc cổng A chính là đọc trạng thái của các chân, nhưng ngược lại việc ghi
phải thông qua việc ghi lên các chôt của cổng.
Các chân của cổng A chủ yếu được sử dụng với mục đích chính là nhận tín hiệu
tương tự hoặc các chân vào ra. Riêng chân RA4 có thể đa hợp với chân vào bộ Timer
0 và khi đó nó trở thành chân RA4/T0CKI, chân này như một đầu vào của Schmitt
Trigger và nó mở đầu ra. Các chân khác của cổng A là chân vào với bộ TTL. Việc
điều khiển các chân này thông qua việc đặt hay xóa các bit của thanh ghi ADCON1.
Thanh ghi TRISA điều khiển trực tiếp các chân của cổng A, và khi sử dụng các chân
này để nhận tín hiệu tương tự vào ta phải chắc chắn rằng các bit của thanh ghi TRISA
đã được đặt rồi.
68
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Dưới đây là sơ đồ khối các chân của cổng A:
Hình 5. 4 Sơ đồ khối của các chân RA0:RA3
69
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 5 Sơ đồ khối của các chân RA4/T0CKI
Hình 5. 6 Sơ đồ khối của các chân RA5
70
Đồ Án Tốt Nghiệp Tracked Mobile Robot
b. Cổng B và thanh ghi TRISB
Cổng B là cổng hai chiều với độ rộng đường truyền là 8 bit và để điều khiển việc
truy xuất dữ liệu trên chân này ta sử dụng thanh ghi TRISB. Nếu set bit TRISB=1 thì
chân tương ứng của cổng B sẽ làm nhiệm vụ của một ngõ vào và ngược lại nếu xóa bit
TRISB=0 thì chân tương ứng đó sẽ làm nhiệm vụ của một ngõ ra.
Có ba chân của cổng B có thể tích hợp với các chức năng vận hành với điện áp
thấp đó là các chân: RB3/PGM, RB6/PGC, RB7/PGD.
Mỗi chân của cổng B có một khả năng kéo lên bên trong yếu. Một bit điều khiển
đơn có thể bật tất cả khả năng kéo lên đó, điều này được miêu tả bởi việc xóa bit
(OPTION_REG). Khả năng dừng này sẽ tự động được tắt đi khi các chân
của cổng được định nghĩa là đầu ra và khi ta Reset. Bốn chân của cổng B, từ chân
RB4:RB7 có đặc tính là ngắt khi thay đổi trạng thái. Chỉ những chân được định dạng
là đầu vào thì ngắt này mới tồn tại. Một vài chân RB4:RB7 được định dạng như chân
ra, nó thi hành ngắt trên sự so sánh thay đổi. Chân vào RB4:RB7 được so sánh với giá
trị cũ của chốt ở lần đọc cuối cùng của cổng B. Sự ghép đôi không khớp chân ra của
RB4:RB7 bằng lệnh OR làm phát sinh ra ngắt với cờ bit RBIF của thanh ghi
INTCON. Ngắt này có thể khởi động thiết bị từ trạng thái SLEEP.
Dưới đây là sơ đồ khối các chân của cổng B:
71
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 7 Sơ đồ khối của các chân RB0:RB3
72
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 8 Sơ đồ khối của các chân RB4:RB7
c. Cổng C và thanh ghi TRISC
Cổng C là cổng hai chiều với độ rộng đường truyền là 8 bit và tương ứng với việc
điều khiển nó là thanh ghi TRISC. Nếu đặt bit TRISC=1 thì chân tương ứng với nó
làm nhiệm vụ của một đầu vào và ngược lại nếu xóa bit TRISC=0 thì chân tương ứng
đó làm nhiệm vụ của một đầu ra. Cổng C đa hợp với việc vận hành thiết bị ngoại vi và
chân của cổng C thông qua bộ đệm Schmitt Trigger đầu vào.
Khi chế độ I2C hoạt động, các chân cổng PORTC có thể được sắp xếp với
mức I2C thường hoặc với mức SMBUS bằng cách sử dụng bit CKE (SSPSTAT).
Khi các chức năng ngoại vi đang hoạt động, điều quan tâm là cần xác định bit
TRIS của mỗi chân cổng C. Một số phần phụ có thể ghi đè lên bit TRIS làm cho chân
này trở thành chân ra, trong khi đó thì một số phần phụ khác lại ghi đè lên bit TRIS
làm cho chân này trở thành chân vào. Từ khi sự ghi đè bit TRIS có hiệu quả trong khi
73
Đồ Án Tốt Nghiệp Tracked Mobile Robot
thiết bị ngoại vi được cho phép, những lệnh đọc- sửa-ghi(BSF,BCF,XORWF) với
thanh ghi TRISC như là nơi gửi tơi sẽ được tránh. Người sử dụng nên đề cập tới việc
phân chia kết nối các thiết bị ngoại vi để set chính xác các bit TRIS.
Dưới đây là sơ đồ khối các chân của cổng C:
Hình 5. 9 Sơ đồ khối của các chân RC0:RC2 và RC5:RC7
74
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 10 Sơ đồ khối của các chân RC3:RC4
5.3.3.2 Truyền nhận dữ liệu đồng bộ và không đồng bộ
Khi sử dụng truyền thông đồng bộ và không đồng bộ chúng ta phải sử dụng bit
SPEN của thanh ghi RCSTA và hai bit số 6 và 7 của thanh ghi TRISC để định dạng
cho các chân RC6/TX/CK và RC7/RX/DT. Bộ truyền thông đồng bộ và dị bộ có thể
được định dạng ở các chế độ sau:
- Song công toàn phần (không đồng bộ).
- Bán song công (đồng bộ chính và đồng bộ phụ).
Tiếp theo chúng ta sẽ giới thiệu qua các đặc điểm của hai chế độ.
a. Tốc độ truyền (baud rate)
75
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Tốc độ truyền được cung cấp cho cả hai chế độ (truyền thông đồng bộ và không
đồng bộ) là thanh ghi SPBRG điều khiển chu kì chạy 8 bit của timer. Trong chế độ
không đồng bộ, bit BRGH của thanh ghi TXSTA được dùng để điều khiển tốc độ
truyền còn ở trong chế độ đồng bộ nó không được sử dụng.
Công thức tính tốc độ truyền như sau:
SYNC BRGH=0 (Low Speed) BRGH=1 (High Speed)
0 Không đồng bộBaud Rate = FOSC/(64*(X+1))
Đồng bộ
Baud Rate = FOSC/(16*(X+1))
1 Đồng bộBaud Rate = FOSC/(4*(X+1)) Không sử dụng
Ở đây X là giá trị nạp vào thanh ghi SPBRG, FOSC là tần số giao động.
Ví dụ: Khi muốn truyền với tốc độ là 9600 sử dụng thạch anh 20MHZ khi
RBGH = 1 thì cần nạp giá trị X vào thanh ghi SPRBG là:
X = 20.000.000/(16*9600) – 1 = 129.
Ở trạng thái truyền và nhận được quyết định bởi thanh ghi điều khiển và thanh
ghi trạng thái.
- Trạng thái truyền và thanh ghi điều khiển:
bit 7 CSR: bit lựa chọn xung clock chỉ dùng trong chế độ đồng bộ
1 = Master mode clock từ BRG
0 = Slave mode clock từ bên ngoài
bit 6 TX9: cho phép truyền 9 bit
1 = truyền 9 bit
0 = truyền 8 bit
bit 5 TXEN: bit cho phép truyền
1 = cho phép truyền
0 = không cho phép truyền
76
Đồ Án Tốt Nghiệp Tracked Mobile Robot
bit 4 SYNC: lựa chọn chế độ USART
1 = chế độ đồng bộ
0 = chế độ không đồng bộ
bit 3 không sử dụng
bit 2 BRGH: bit lựa chọn tốc độ cao
1 = tốc độ cao
0 = tốc độ thấp
bit 1 TRMT: cho trạng thái thanh ghi dịch TSR
1 = TSR rỗng
0 = TSR đầy
bit 0 TX9D: dữ liệu bit thư 9 truyền đi, có thể là bit Parity
Chú ý:
R = bit cho phép đọc W = bit cho phép ghi U = bit không dùng
-n = giá trị ở POR -1 = bit được set -0 = bit bị xóa -x = bit chưa rõ
- Trạng thái nhận và thanh ghi điều khiển:
bit 7 SPEN: bit cho phép cổng nối tiếp (định hình các chân RC6/TX/CK và
RC7/RX/DT như chân cổng nối tiếp)
1 = cho phép hoạt động
0 = không cho phép hoạt động
bit 6 RX9: cho phép nhận 9 bit
1 = nhận 9 bit
0 = nhận 8 bit
77
Đồ Án Tốt Nghiệp Tracked Mobile Robot
bit 5 SREN: bit cho phép nhận riêng rẽ (chỉ có chế độ đồng bộ chủ bit nay
mới được sử dụng)
1 = cho phép nhận riêng rẽ
0 = không cho phép nhận riêng rẽ
bit 4 CREN: cho phép tiếp tục nhận
- Chế độ không đồng bộ:
1 = cho phép tiếp tục nhận
0 = không cho phép tiếp tục nhận
- Chế độ đồng bộ:
1 = cho phép tiếp tục nhận đến khi bit CREN bị xóa
0 = không cho phép tiếp tục nhận
bit 3 ADDEN:cho phép đánh địa chỉ trong chế độ không đồng bộ truyền 9 bit
(RX9=1)
1 = cho phép đánh địa chỉ, cho phép ngắt và tải vào bộ đệm nhận khi
RSR được set
0 = cho phép đánh địa chỉ, tất cả các byte được trả về và bit thứ 9 có thể
được sử dụng như bit chẵn lẻ (parity bit)
bit 2 FERR: bit lỗi khung truyền
1 = có lỗi
0 = không có lỗi
bit 1 OERR: bit lỗi tràn
1 = có lỗi tran
0 = không có lỗi tràn
bit 0 RX9D: bit thứ 9 của dữ liệu được nhận
Chú ý:
R = bit cho phép đọc W = bit cho phép ghi U = bit không dùng
78
Đồ Án Tốt Nghiệp Tracked Mobile Robot
-n = giá trị ở POR -1 = bit được set -0 = bit bị xóa -x = bit chưa rõ
b. Chế độ truyền thông không đồng bộ
Chế độ truyền không đồng bộ được định dạng như sau: bắt đầu với bit START,
tiếp theo là 8 hay 9 bit dữ liệu và kết thức bởi bit STOP. Thông thường thì dữ liệu
được định dạng với 8 bit. Việc truyền và nhận dữ liệu được tiến hành với những bit
thấp trước rồi đến các bit cao, việc truyền và nhận có thể tiến hành độc lập nhau. Khi
sử dụng chế độ truyền không đồng bộ thì chúng ta cần thiết lập tốc độ truyền và số bit
định dạng dữ liệu. Truyền thông không đồng bộ dừng khi ở chế độ SLEEP.
- Truyền dữ liệu:
Việc truyền dữ liệu thì thang ghi TSR đóng vai trò quan trọng, dữ liệu của nó có
thể được đọc hay ghi thông qua bộ đệm là thanh ghi TXREG. Thanh ghi TSR không
được nạp giá trị cho tới khi bit STOP của lần truyền trước chuyển đi. Khi bit STOP
chuyển đi nó sẽ nạp giá trị mới tới thanh ghi TSR từ thanh ghi TXREG. Nếu thanh ghi
TXREG rỗng nó sẽ set cờ bit TXIF của thanh ghi PIR1. Trong khi cờ bit TXIF cho
biết trạng thái của thanh ghi TXREG thì bit TRMT cho biết trạng thái của thanh ghi
TSR. Bit trạng thái TRMT chỉ dùng để đọc, nó được set khi thanh ghi TSR rỗng. Việc
truyền dữ liệu hoạt động khi ta set bit TXEN của thanh ghi TXSTA. Việc truyền dữ
liệu chỉ hoạt động khi dữ liệu đã được nạp tới thanh ghi TXREG và tốc độ truyền đã
được sản sinh từ xung đồng hồ. Khi việc truyền dữ liệu bắt đầu lần đầu tiên thì thanh
ghi TSR lúc đó rỗng. Ngay lập tức dữ liệu được truyền từ thanh ghi TXREG tới thanh
ghi TSR, sau đó thanh ghi TXREG rỗng và công việc này được lặp lại.
Để truyền 9 bit dữ liệu đi thì bit truyền TX9 của thanh ghi TXSTA phải được set
và bit dữ liệu thứ 9 truyền đi sẽ được ghi tới bit TX9D. Bit thứ 9 này phải được ghi
trước trước khi chuyển 8 bit dữ liệu tới thanh ghi TXREG bởi vì dữ liệu ghi lên thanh
ghi TXREG ngay lập tức được chuyển đến thanh ghi TSR.
Hình 5. 11 Sơ đồ khối của chế độ truyền USART
79
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 12 Truyền không đồng bộ một từ
Hình 5. 13 Truyền không đồng bộ hai từ nối tiếp
Hình 5. 14 Thanh ghi cho phép truyền trong chế độ không đồng bộ
- Nhận dữ liệu:
Trong chế độ không đồng bộ, việc nhận dữ liệu được kích hoạt bằng cách set bit
CREN (RCSTA).
80
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Đóng vai trò quan trọng trong việc nhận dữ liệu là thanh ghi RSR. Sau khi đã
nhận xong bit STOP, dữ liệu từ thanh ghi RSR được chuyển tới thanh ghi RCREG
nếu thanh ghi này trống. Nếu việc truyền nhận được hoàn thành thì cờ bit RCIF
(PIR1) sẽ được set và có thể ngắt hoạt động của nó bằng việc set bit RCIE
(PIE1). Cờ bit RCIF chỉ được dùng để đọc, nó được xóa bởi phần cứng, nó được
xóa khi thanh ghi RCREG được đọc là trống. Thanh ghi RCREG là một thanh ghi có
bộ đệm đôi, nó có khả năng nhận hai byte dữ liệu và truyền tới thanh ghi RCREG
FIFO và khi đó byte thứ 3 sẽ truyền tới thanh ghi RSR. Nếu phát hiện bit STOP của
byte thứ 3 mà thanh ghi RCREG vẫn đầy thì bit báo lỗi OERR (RCSTA) sẽ được
set. Bit báo lỗi chỉ được xóa bằng phần mềm. Nếu bit OERR được set thì việc truyền
dữ liệu từ thanh ghi RSR tới thanh ghi RCREG bị ngăn cấm và dữ liệu không được
nhận. Bit báo lỗi tạo khung FERR (RCSTA) sẽ được set khi bit STOP được phát
hiện đã bị xóa. Bit FERR và bit RX9D (RCSTA) được lưu trong bộ đệm giống
như dữ liệu nhận. Khi đang đọc thanh ghi RCREG thì sẽ nạp giá trị mới cho các bit
RX9D và FERR, thành ra, đó là điều thiết yếu để người dùng đọc thanh ghi RCSTA
trước khi sự đọc thanh ghi RCREG để không mất thông tin FERR và RX9D trước đó.
Hình 5. 15 Sơ đồ khối của chế độ nhận USART
81
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 16 Nhận không đồng bộ
Hình 5. 17 Thanh ghi cho phép nhận trong chế độ không đồng bộ
c. Chế độ truyền thông đồng bộ chính
Trong chế độ truyền này, dữ liệu được truyền nhận dưới dạng bán song công
(việc truyền và nhận dữ liệu không thể tiến hành đồng thời cùng một lúc được). Khi
đang truyền dữ liệu thì việc nhận dữ liệu bị ngăn cấm. Việc chọn chế độ truyền thông
đồng bộ được thiết lập bằng cách set bit SYNC (TXSTA), ngoài ra bit SPEN còn
được set để định dạng các chân vào ra RC6/TX/CK và RC7/RX/DT để làm đường
truyền xung clock (CK) và đường truyền dữ liệu (DT). Chế độ chủ còn được xác định
bằng cách set bit CSRC (TXSTA).
- Truyền dữ liệu:
Tương tự truyền thông không đồng bộ, truyền thông đồng bộ cũng cần có thanh
ghi TSR, thanh ghi này đọc và ghi dữ liệu thông qua bộ đệm là thanh ghi TCREG.
Thanh ghi TSR được nạp giá trị bằng phần mềm, nó sẽ không được nạp giá trị cho tới
khi đã truyền đi bit cuối cùng của lần truyền trước đó. Khi đã truyền hết bỉt cuối cùng
thì thanh ghi TSR sẽ được nạp giá trị mới từ thanh ghi TXREG. Nếu thanh ghi
82
Đồ Án Tốt Nghiệp Tracked Mobile Robot
TXREG rỗng thì bit cờ ngắt TXIF sẽ được set. Cờ ngắt này hoạt động hay không hoạt
động được quy định bởi việc set hay xóa bit TXIE (PIE1). Trong khi bit cờ ngắt
cho biết trạng thái hoạt động của thanh ghi TXREG thì bit TRMT cho biết trạng thái
của thanh ghi TSR, bit trạng thái TRMT chỉ dùng để đọc và nó được set khi thanh ghi
TSR rỗng.
Việc truyền dữ liệu hoạt động khi ta set bit TXEN (TXSTA), bit dữ liệu đầu
tiên sẽ được truyền đi trên sườn lên của xung clock trên chân CLK. Việc truyền dữ
liệu được bắt dầu từ thanh ghi TXREG và set bit TXEN. Ưu điểm ở đây là tốc độ thấp
có thể được lựa chọn. Tốc độ truyền được dữ nguyên trong khi RESET khi các bit
TXEN, CREN, SREN được xóa.
Việc truyền dữ liệu được bắt đầu lần đầu tiên khi thánh ghi TSR rỗng, dữ liệu
truyền tới thanh ghi TXREG ngay lập tức được chuyển tới thanh ghi TSR và kết quả
là thanh ghi TXREG rỗng. Xóa bit TXEN trong khi truyền dữ liệu là lí do việc truyền
dữ liệu bị gián đoạn và nó phải dừng lại, nếu bit CREN hoặc bit SREN được set trong
khi đang truyền cũng là nguyên nhân gây ra việc truyền dữ liệu bị gián đoạn.
Để truyền 9 bit dữ liệu thì bit TX9 (TXSTA) phải được set và bit dữ liệu thứ
9 này sẽ được ghi tới bit TX9D (TXSTA). Bit này phải được ghi trước khi ghi 8
bit dữ liệu còn lại tới thanh ghi TXREG bởi vì dữ liệu được ghi lên thanh ghi TXREG
ngay lập tức được chuyển đến thanh ghi TSR nếu thanh ghi này rỗng. Nếu thanh ghi
TSR rỗng và thanh ghi TXREG được ghi trước khi ghi giá trị bit TX9D thì hiện tại nó
sẽ nạp giá trị cũ trong bit TX9D.
Hình 5. 18 Thanh ghi cho phép truyền trong chế độ đồng bộ chủ
83
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 19 Sự truyền đồng bộ chủ
Hình 5. 20 Sự truyền đồng bộ chủ (qua TXEN)
- Nhận dữ liệu:
Việc nhận dữ liệu ở chế độ đồng bộ chủ được chọn bằng việc set bit CREN
(RCSTA) hoặc bit SREN (RCSTA). Dữ liệu được lấy ở chân RC7/RX/DT
trên sườn xuống của xung clock. Nếu bit SREN được set thì chỉ nhận được một từ, và
nếu bit CREN được set thì việc nhận cứ tiếp diễn cho tới khi bit này bị xóa mới. Nếu
cả hai bit này được set thì bit CREN được ưu tiên trước rồi theo thứ tự đó. Sau khi dữ
liệu đã được nhận vào trong thanh ghi RSR nó sẽ được chuyển tới thanh ghi RCREG.
Khi việc chuyển dịch này được hoàn thành thì cờ bit RCIF (PIR1) sẽ được set, cờ
này hoạt động hay không phụ thuộc vào việc set hay xóa bit RCIE (PIE1).
RCREG là thanh ghi có bộ đệm đôi, nó có khả năng nhận hai byte dữ liệu và chuyển
tới thanh ghi RCREG INFO và byte thứ 3 bắt đầu chuyển tới thanh ghi RSR. Khi rời
84
Đồ Án Tốt Nghiệp Tracked Mobile Robot
bit STOP của byte thứ 3 mà thanh ghi RCREG vẫn đầy thì bit báo lỗi OERR sẽ được
set và từ ở trong thanh ghi RSR sẽ bị lỗi. Bit OERR được xóa bằng phần mềm và nếu
bit này được set thì việc truyền dữ liệu từ thanh ghi RSR tới thanh ghi RCREG sẽ bị
cấm. Việc nhận bit thứ 9 cũng tương tự như việc nhận bit dữ liệu, trong khi thanh ghi
RCREG đang đọc nó sẽ nạp giá trị mới cho bit RX9D, đó là điều thiết yếu khi người
sử dụng dùng truyền thông 9 bit.
Hình 5. 21 Thanh ghi cho phép nhận trong chế độ đồng bộ chủ
Hình 5. 22 Sự nhận đồng bộ chủ
d. Chế độ truyền thông đồng bộ phụ
Truyền thông đồng bộ chế độ phụ khác với truyền thông đồng bộ chế độ chính
trong trường hợp xung đồng hồ bên ngoài cung cấp tại chân RC6/TX/CK. Nó có thể
cho phép thiết bị nhận hoặc truyền dữ liệu ở chế độ SLEEP. Chế độ phụ được hoạt
động bằng cách xóa bit CSRC (TXSTA).
- Truyền dữ liệu:
85
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hoạt động truyền của truyền thông đồng bộ chính và truyền thông đồng bộ phụ
hoàn toàn giống nhau, chỉ khác là ở chế độ truyền của truyền thông đồng bộ phụ có
thể hoạt động ở chế độ SLEEP. Nếu hai từ được ghi tới thanh ghi và lệnh SLEEP
được tiến hành thì nó sẽ tồn tại những điểm sau:
+ Từ đầu tiên truyền đến thanh ghi TSR và nó sẽ được chuyển đi ngay.
+ Từ thứ hai được chứa trong thanh ghi TXREG.
+ Cờ bit TXIF sẽ không được set.
+ Khi từ đầu tiên được chuyển ra khỏi thanh ghi TSR thì thanh ghi TXREG se
chuyển từ thứ hai vào thanh ghi TSR và bây giờ thì cờ bit TXIF se được set.
+ Nếu bit TXIE được set thì ngắt sẽ đánh thức chip từ chế độ SLEEP và nếu
ngắt toàn phần được cho phép thì chương trình sẽ rẽ nhánh tới véc tơ ngắt
(0004h).
Các bước thiết lập chế độ truyền thông đồng bộphụ:
+ Để thiết lập chế độ truyền thông đồng bộ phụ thì ta phải set bit SYNC và bit
PSEN, xóa bit CSRC.
+ Xóa bit CREN và SREN.
+ Muốn ngắt hoạt động thì phải set bit TXIE.
+ Nếu muốn truyền thông 9 bit thì phải set bit TX9.
+ Cho phép truyền bằng việc set bit TXEN.
+ Nếu chọn truyền thông 9 bit thì bit thứ 9 cần được tải vào bit TX9D.
+ Bắt đầu truyền thông bằng việc tải dữ liệu tới thanh ghi TXREG.
+ Nếu sử dụng các ngắt thì phải chắc chắn rằng bit GIE (INTCON)và bit
PEIE (INTCON) đã được set.
86
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 23 Thanh ghi cho phép truyền trong chế độ đồng bộ phụ
- Nhận dữ liệu:
Hoạt động nhận của truyền thông đồng bộ chính và truyền thông đồng bộ phụ
hoàn toàn giống nhau, chỉ khác là ở chế độ nhận của truyền thông đồng bộ phụ có thể
hoạt động ở chế độ SLEEP. Bit SREN không được sử dụng ở chế độ này.
Nếu việc nhận dữ liệu được hoạt động bằng việc set bit CREN trước khi lệnh
SLEEP được thực hiện, khi đó một từ có thể được nhận trong khi sleep. Khi việc nhận
dữ liệu được hoàn thành thì thanh ghi RSR sẽ chuyển dữ liệu tới thanh ghi RCREG và
nếu bit RCIE được set thì ngắt có thể được gọi từ lệnh SLEEP.
Hình 5. 24 Thanh ghi cho phép nhận trong chế độ đồng bộ phụ
5.3.3.3 Chuẩn giao tiếp nối tiếp hai dây (I2C Mode)
Ngày nay trong các hệ thống điện tử hiện đại, rất nhiều IC hay các thiết bị ngoại
vi cần giao tiếp với các IC hay thiết bị khác. Với mục tiêu đạt được hiệu quả tốt nhất
cho phần cứng với mạch điện đơn giản, Philips đã phát triển một chuẩn giao tiếp nối
tiếp hai dây được gọi là I2C. I2C là chữ viết tắt của cum từ Inter Intergrated Circuit –
Bus giao tiếp giữa các IC với nhau.
87
Đồ Án Tốt Nghiệp Tracked Mobile Robot
I2C mặc dù được phát triển bởi Philips nhưng nó đã được rất nhiều nhà sản xuất
IC trên thế giới sử dụng. I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều
khiển, có thể kể ra đây một số vài tên tuổi ngoài Philips như: Texas Intrument (TI),
Maxim-Dallas, Analog Device, National Semiconductor... Bus I2C được sử dụng làm
bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại vi điều khiển 8051,
AVR, PIC, ARM, chíp nhớ như RAM tĩnh (Static RAM), EPPROM, bộ chuyển đổi
tương tự/số (ADC) hay bộ chuyển đổi số/tương tự (DAC), IC điều khiển LCD, LED...
Hình 5. 25 Bus I2C và các thiết bị ngoại vi
a. Đặc điểm giao tiếp I2C
Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL). SDA
là đường truyền dữ liệu hai hướng, còn SCL là đường truyền xung đồng hồ chỉ theo
một hướng. Như hình vẽ trên, khi một thiết bị ngoại vi kết nối vào bus I2C thì chân
SDA được nối vào dây SDA và chân SCL được nối vào dây SCL của bus.
88
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 26 Kết nối thiết bị vào bus I2C ở chế độ chuẩn
Mỗi dây SDA hay SCL của bus I2C đều được nối với điện áp dương của nguồn
cấp thông qua một điên trở kéo lên (pull-up resistor). Sự cần thiết phải có các điện trở
kéo lên này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cuc máng
hở (open-drain hay open-collector). Giá trị của các điện trở này khác nhau phụ thuộc
vào từng thiết bị và chuẩn giao tiếp, và thường dao động trong khoảng 1kΩ đến
4.7kΩ.
Trở lại với hình 5.25 ta thấy có rất nhiều thiết bị cùng được kết nối vào I2C, tuy
nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi vì mỗi thiết bị được nhân
ra bằng một địa chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết
nối. Mỗi thiết bị có thể hoạt động như là thiết bị nhận hay là vừa truyền vừa nhận dữ
liệu. Hoạt động truyền hay nhận còn phụ thuộc vào thiết bị đó là chủ (Master) hay tớ
(Slave).
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ duy nhất để
phân biệt, nó còn được thiết lập là thiết bị chủ hay tớ. Tại sao lại có sự phân biệt nay?
Đó là vì trên một bus I2C thì quyền điều khiển thuộc vào thiết bị chủ. Thiết bị chủ
nắm vai trò tạo xung đồng hồ cho toàn hệ thống, khi giữa hai thiết bị chủ/tớ giao tiếp
thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ trong
suốt thời gian kết nối. Thiết bị chủ giữ vai trò chủ động còn thiết bị tớ giữ vai trò bị
động trong giao tiếp.
Hình 5. 27 Truyền nhận dữ liệu giữa chủ/tớ
89
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Dựa vào hình trên chúng ta có thể thấy, xung đồng hồ chỉ có một hướng duy nhất
từ chủ tới tớ, còn dữ liệu có thể đi theo hai hướng: từ chủ tới tớ hay ngược lại.
Về dữ liệu truyền trên bus I2C, một bus I2C chuẩn truyền 8 bit dữ liệu có hướng
trên đường truyền với tốc độ 100Kbits/s – chế độ chuẩn (standard mode), tốc độ
truyền có thể lên tới 400Kbits/s – chế độ nhanh (fast mode) và cao nhất 3.4Mbits/s –
chế độ cao tốc (high-speed mode).
Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:
- Một chủ - một tớ (one Master – one Slave).
- Một chủ - nhiều tớ (one Master – multi Slave).
- Nhiều chủ - nhiều tớ (multi Master – multi Slave).
Và dù ở chế độ nào, một giao tiếp I2C đều dựa theo quan hệ chủ/tớ. Ví dụ một
thiết bị M muốn gởi dữ liệu tới thiết bị S, quá trình thực hiện như sau:
- Thiết bị M (chủ) xác định đúng địa chỉ của thiết bị S (tớ), song song với việc
xác định địa chỉ, thiết bị M sẽ quyết định việc đọc hay ghi vào thiết bị S.
- Thiết bị M gửi dữ liệu tới thiết bị S.
- Thiết bị M kết thúc quá trình truyền dữ liệu.
Khi thiết bị M muốn nhận dữ liệu từ S, quá trình diễn ra như trên chỉ khác M sẽ
nhận dữ liệu từ S. Trong giao tiếp này M là chủ còn S vẫn là tớ.
b. Điều kiện START và STOP
Điều kiện START và STOP là hai điều kiện bắt buộc phải có khi một thiết bị chủ
muốn thiết lập giao tiếp với một thiết bị nào đó trong mạng I2C. START là điều kiện
khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP là điều kiện kết thúc, báo hiệu kết
thúc của giao tiếp. Hình sau sẽ mô tả điều kiện START và STOP.
Hình 5. 28 Điều kiện START và STOP của bus I2C
90
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Ban đầu khi chưa thực hiện quá trình giao tiếp, cả hai đường SDA và SCL đều ở
mức cao (SDA=SCL=HIGH). Lúc này bus I2C được coi là rỗi, sẵn sàng cho một giao
tiếp. Hai điều kiện START và STOP là không thể thiếu trong giao tiếp I2C giữa các
thiết bị.
- Điều kiện START:Một sự chuyển đổi trạng thái từ mức cao xuống mức thấp
trên đường SDA trong khi đường SCL đang ở mức cao báo hiệu một điều kiện
START.
- Điều kiện STOP: Một sự chuyển đổi trạng thái từ mức thấp lên mức cao trên
đường SDA trong khi đường SCL đang ở mức cao báo hiệu một điều kiện STOP.
Cả hai điều kiện START và STOP đều được tạo ra bởi thiết bị chủ. Sau điều kiện
START thì bus I2C được coi là đang trong trạng thái làm việc (busy). Bus I2C sẽ rỗi,
sẵn sàng cho một giao tiếp mới sau điều kiện STOP từ thiết bị chủ.
Sau một điều kiện START, trong quá trình giao tiếp, khi có một tín hiệu START
được lặp lại thay vì một tín hiệu STOP thì bus I2C vẫn trong trạng thái bận. Tín hiệu
START và tín hiệu lặp lại đếu có một chức năng là khởi tạo một giao tiếp I2C.
c. Định dạng dữ liệu truyền
Dữ liệu được truyền trên bus I2C theo từng bit, bit dữ liệu được truyền đi trên
mỗi sườn dương của xung clock trên dây SCL. Quá trình thay đổi bit dữ liệu khi xung
SCL đang ở mức thấp.
Hình 5. 29 Quá trình truyền một bit dữ liệu
Mỗi byte dữ liệu được truyền có độ dài 8bits và số lượng byte co thể truyền trong
một lần là không hạn chế. Mỗi byte được truyền đi theo sau là một bit ACK để báo
hiệu đã nhận dữ liệu. Bit có trọng số cao nhất (MSB) sẽ được truyền đi đầu tiên, các
bit sẽ được truyền đi lần lượt. Sau 8 xung clock trên dây SCL thì 8bits dữ liệu đã được
truyền xong, lúc này thiết bị nhận sau khi đã nhận đủ 8bits dữ liệu sẽ kéo SDA xuống
mức thấp tạo một xung ACK ứng với xung thứ 9 trên dây SCL để báo hiệu đã nhận đủ
8bits dữ liệu. Thiết bị truyền khi nhận được xung ACK sẽ tiếp tục truyền byte dữ liệu
tiếp theo hay kết thúc quá trình truyền tại đây.
91
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Một byte truyền đi có kèm theo bit ACK là điều kiện bắt buộc, nhằm đảm bảo
cho quá trình truyền nhận dữ liệu diễn ra chính xác. Khi không nhận được đúng địa
chỉ hay khi muốn kết thúc giao tiếp, thiết bị nhận sẽ gửi một xung Not-ACK (SDA ở
mức cao) để báo cho thiết bị chủ biết, thiết bị chủ sẽ tạo xung STOP để kết thúc hay
lặp lại một xung START để bắt đầu một quá trình mới.
Hình 5. 30 Dữ liệu truyền trên bus I2C
Hình 5. 31 Bit ACK trên bus I2C
d. Định dạng địa chỉ thiết bị
Mỗi thiết bị ngoại vi tham gia vào bus I2C đều có một địa chỉ duy nhất nhằm
phân biệt giữâ các thiết bị với nhau. Độ dài địa chỉ là 7bits, điều đó có nghĩa là trên
một bus I2C chúng ta có thể nối được 128 thiết bị. Khi thiết bị chủ muốn giao tiếp
với thiết bị ngoại vi nào trên bus I2C thì nó sẽ gửi 7 bits địa chỉ của thiết bị đó ra bus
ngay sau xung START. Byte đầu tiên được gửi sẽ bao gồm 7bits địa chỉ và một bit thứ
8 điều khiển hướng truyền.
92
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 32 Cấu trúc byte dữ liệu đầu tiên
Mỗi một thiết bị ngoại vi sẽ có một địa chỉ riêng do nhà sản xuất ra nó quy định.
Địa chỉ đó có thể cố định hay thay đổi. Riêng bit điều khiển hướng sẽ quy định chiều
truyền dữ liệu. Nếu bit này bằng “0” có nghĩa là byte dữ liệu tiếp theo sau sẽ được
truyền từ chủ đến tớ, và ngược lại nếu bit này bằng “1” thì byte dữ liệu tiếp theo sau
sẽ là của con tớ gửi cho con chủ.
e. Truyền dữ liệu trên bus I2C
Trong khuôn khổ đồ án này, ta chỉ bàn đến chế độ Master – Slave vì nó được
ứng dụng trong dự án.
Hình 5. 33 Quá trình truyền dữ liệu
Việc truyền dữ liệu giữa con chủ và con tớ có thể theo hai hướng, từ chủ đến tớ
hay ngược lại và hướng truyền được quy định trong bit thứ 8 (R/ ) trong byte được
truyền đi đầu tiên.
- Truyền dữ liệu từ chủ đến tớ - ghi dữ liệu: Thiết bị chủ khi muốn ghi dữ liệu
lên con tớ , quá trình được thực hiện như sau:
+ Thiết bị chủ tạo xung START báo hiệu quá trình giao tiếp bắt đầu.
+ Thiết bị chủ gửi địa chỉ của thiết bị tớ cần giao tiếp cùng với bit R/ = 0 ra
bus và đợi xung ACK từ thiết bị tớ.
93
Đồ Án Tốt Nghiệp Tracked Mobile Robot
+ Khi nhận được xung ACK báo đã nhận diện đúng thiết bị tớ, con chủ bắt đầu
gửi dữ liệu đến con tớ theo từng byte một và theo sau mỗi byte này là một
xung ACK. Số lượng byte truyền là không hạn chế.
+ Sau khi truyền byte cuối cùng, con chủ tạo xung STOP báo hiệu quá trình
truyền kết thúc.
Hình 5. 34 Ghi dữ liệu từ chủ lên tớ
- Truyền dữ liệu từ tớ đến chủ - đọc dữ liệu: Thiết bị chủ muốn đọc dữ liệu từ
thiết bị tớ, quá trình thực hiện như sau:
+ Thiết bị chủ tạo xung START báo hiệu bắt đầu giao tiếp.
+ Thiết bị chủ gửi địa chỉ của thiết bị tớ cần giao tiếp cùng với bit R/ = 1 ra
bus và đợi xung ACK từ thiết bị tớ.
+ Sau xung ACK đầu tiên, thiết bị tớ sẽ gửi từng byte dữ liệu ra bus, thiết bị
chủ sẽ nhận dữ liệu và trả về xung ACK. Số lượng byte truyền không hạn
chế.
+ Khi muốn kết thúc quá trình giao tiếp, thiết bị chủ sẽ gửi xung Not-ACK và
tạo xung STOP để kết thúc.
Hình 5. 35 Đọc dữ liệu từ thiết bị tớ
94
Đồ Án Tốt Nghiệp Tracked Mobile Robot
- Quá trình kết hợp ghi và đọc dữ liệu: Giữa hai xung START và STOP, thiết bị
chủ có thể thực hiện việc đọc hay ghi dữ liệu nhiều lần với một hay nhiều thiết bị. Để
thực hiên việc đó, sau một quá trình ghi hay đọc thiết bị chủ lặp lại một xung START
và lại gửi lại địa chỉ của thiết bị tớ và bắt đầu một quá trình mới.
Hình 5. 36 Quá trình phổi hợp đọc/ghi dữ liệu
Chế độ giao tiếp Master – Slave là chế độ giao tiếp cơ bản trong bus I2C, toàn bộ
bus được quản lý bởi một Master duy nhất.Trong chế độ này sẽ không xảy ra tình
trạng xung đột bus hay mất đồng bộ xung clock vì chỉ có một Master duy nhất có thể
tạo xung clock.
f. Module I2C trong VĐK PIC
Với những tiện ích đem lại, khối I2C đã được tích hợp cứng trong khả nhiều loại
VĐK khác nhau. Trong các loại VĐK PIC dòng Mid-range phổ biến ở Việt Nam, chỉ
từ 16F88 trở lên mới có tích hợp phần cứng giao tiếp I2C, còn các loại 16F84 và
16F628 thì không có. Với những loại VĐK không có tích hợp phần cứng giao tiếp
I2C, để sử dụng ta có thể lập trình bằng phần mềm, khi đó ta sẽ viết một chương trình
điều khiển hai chân bất kỳ của VĐK để nó thực hiện giao tiếp I2C.
Trong dự án, chúng ta đang dung VĐK PIC16F876A có tích hợp sẵn hai chân
làm nhiệm vụ giao tiếp I2C.
Hình bên dưới chỉ ra cấu phần cứng của khối điều khiển giao tiếp nối tiếp đồng
bộ (MSSP) hoạt động ở chế độ I2C. Khối I2C có đầy đủ chức năng, hoạt động ở cả
hai chế độ Master và Slave, có ngắt xảy ra khi có điều kiện START và STOP nhằm
định rõ đường I2C có rỗi hay không (chế độ Multi Master). Chế độ địa chỉ có thể là
7bits hay 10bits.
Khối I2C có 6 thanh ghi điều khiển hoạt động, đó la:
- SSPCON: Thanh ghi điều khiển.
- SSPCON2: Thanh ghi điều khiển thứ hai.
- SSPSTAT: Thanh ghi rạng thái.
- SSPBUF: Thanh ghi bộ đệm truyền nhận.
- SSPSR: Thanh ghi dịch.
- SSPADD: Thanh ghi địa chỉ.
95
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Các thanh ghi SSPCON, SSPCON2, SSPBUF, SSPADD có thể truy cập đọc/ghi
được. Thanh ghi SSPRS không thể truy cập trực tiếp được, là thanh ghi dịch dữ liệu ra
hay vào. Các thanh ghi SSPCON, SSPCON2, SSPSTAT được địa chỉ bit, mỗi bít có
chức năng riêng.
Hình 5. 37 Cấu trúc khối I2C trong PIC.
g. Cách thức sử dụng I2C trong CCS
Để dễ dàng trong khâu lập trình và nhanh chóng tiếp cận được với VĐK PIC thì
lời khuyên là sử dụng ngôn ngữ lập trình CCS, CCS là ngôn ngữ tựa ngôn ngữ C nên
người lập trình dễ tiếp cận hơn. So với ngôn ngữ ASM thì CCS có cấu trúc lệnh đơn
giản hơn, dễ nhớ.
Sau đây chúng ta sẽ sử dụng ngôn ngữ CCS cho việc lập trình giao tiếp I2C và
cũng dùng nó để lập trình chip cho cả dự án.
Việc khởi tạo, chọn chế độ hoạt động và thực hiện giao tiếp của I2C đã có các
hàm dựng sẵn của CCS thực hiện, chúng ta chỉ việc khai báo thư viện và ứng dụng các
hàm này.
#use i2c(chế_độ, tốc_độ, sda=PIN_C4, scl=PIN_C3)
+ chế_độ: Master hay Slave.
+ tốc_độ: Slow(100khez), fast(400khez).
+ sda và scl là các chân i2c tương ứng của PIC.
Sau khi khai báo như trên ta có thể sử dụng các hàm sau để thực hiện, xử lý giao
tiếp i2c với các thiết bị ngoại vi:
96
Đồ Án Tốt Nghiệp Tracked Mobile Robot
- i2c_isr_state();//thông báo trạng thái giao tiếp i2c
- i2c_start();//tạo điều kiện START
- i2c_stop();//tạo điều kiện STOP
- i2c_read();//đọc giá thị từ thiết bị i2c và trả về giá trị 8bits
- i2c_write()//ghi giá trị 8bits đến thiết bị i2c
Ví dụ sau là hàm ghi một giá trị 8bits value lên một thiết bị ngoại vi có địa chỉ ở
slave_addr:
void Write_I2C(int8 value,int8 slave_addr)
{
i2c_start();
i2c_write(slave_addr);
i2c_write(value);
i2c_stop();
}
5.3.3.4 Module điều xung (PWM Module)
Hiện nay để điều khiển tốc độ động cơ DC ta có nhiều cách và một trong số
những cách đó là thay đổi điện áp đầu vào cấp cho động cơ. Với cách làm này thì điện
áp một chiều đưa vào cấp cho động cơ sẽ được thay đổi, cụ thể là tạo một xung vuông
điện áp với chu kỳ T và thời gian ở mức cao (thời gian tích cực) từ điện áp một chiều.
Với cách làm này thì điện áp cấp cho động cơ được tính trung bình giữa thời gian tích
cực và chu kỳ.
Trong chế độ điều chế độ rộng xung (PWM) của PIC16F876A, chân CCPx cung
cấp kết quả đầu ra PWM 10 bit. Từ đó chân CCP1 được dồn kênh với chốt dữ liệu
PORTC, bit TRISC phải được xóa để tạo một đầu ra chân CCP1. Chú ý là việc
xóa thanh ghi CCP1CON sẽ đưa chốt đầu ra CCP1PWM về mức thấp mặc định. Đó
không phải là chốt dữ liệu vào ra.
Hình sau đây cho thấy sơ đồ khối được đơn giản hóa của module CCP trong chế
độ PWM.
97
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 38 Sơ đồ khối được đơn giản hóa của module CCP trong chế độ PWM
Dưới đây là hình miêu tả đầu ra một xung đáp ứng điện áp của PWM với chu kỳ
là Period và thời gian tích cực của nó là Duty Cycle , và tần số của PWM là 1/Period.
Hình 5. 39 Đầu ra PWM
Ta sẽ nói rõ hơn về các thông số trên:
a. Chu kỳ của PWM (PWM Period)
Chu kỳ của PWM được chỉ rõ bằng việc ghi lên thanh ghi PR2, nó có thể được
tính theo công thức sau:
PWM Period = [(PR2)+1]*4*Tosc*(TMR2 Prescale Value) (6.1)
Tần số PWM được tính bằng cách lấy nghịch đảo của PWM Period.
Khi TMR2 = PR2, ba sự kiện xảy ra trên chu kỳ tăng tiếp theo như dưới đây:
- TMR2 được xóa.
- Chân CCP1 được set (trừ phi nếu thời gian tích cực của PWM = 0%, chân
CCP1 sẽ không được set).
98
Đồ Án Tốt Nghiệp Tracked Mobile Robot
- Thời gian tích cực của PWM được chốt từ CCPR1L đến CCPR1H.
b. Thời gian làm việc của PWM (PWM duty cycle)
Chu kỳ làm việc của PWM (PWM duty cycle) được chỉ rõ bằng việc ghi lên
thanh ghi CCPR1L và tới bit CCP1CON và nó có thể lên đến 10 bit. Thanh ghi
CCPR1L chứa 8 bit có trọng số cao MSB và CCP1CON chứa 2 bit có trọng số
thấp LSB. Giá trị 10 bit này được miêu tả bởi CCPR1L:CCP1CON. Phương
trình sau có thể dung để tính toán thời gian duty cycle của PWM:
PWM Duty Cycle = (CCPR1L:CCP1CON)*4*Tosc*( TMR2 Prescale Value) (6.2)
Thanh ghi CCP1L và CCP1CON có thể được ghi vào bất kỳ thời gian nào,
nhưng giá trị duty cycle không được chốt lên CCP1H cho đến sau khi một sự kết hợp
giữa PR2 và TMR2 xuất hiện (chu kỳ hoàn thành). Trong chế độ PWM thì thanh ghi
CCP1H là thanh ghi chỉ đọc.
Thanh ghi CCPR1H và 2 bit chốt trong được sử dụng làm bộ đệm đôi cho chu kỳ
làm việc của PWM. Bộ đệm đôi này là cần thiết cho thuật toán PWM với sự tăng vọt
tự do.
Khi CCPR1H và 2 bit chốt phối hợp TMR2, được liên kết với 2 bit xung đồng hồ
nội Q hoặc 2 bit của bộ đếm gộp trước TMR2, chân CCP1 được xóa.
Độ phân giải cực đại của PWM (tính bằng bit) đối với tần số PWM cho trước
được tính theo công thức sau:
(6.3)
c. Thiết lập cho PWM
Các bước thực hiện khi cấu hình cho module CCP trong chế độ PWM:
- Thiết lập chu kỳ PWM bằng cách ghi vào thanh ghi PR2.
- Thiết lập thời gian hoạt động PWM bằng cách ghi vào thanh ghi CCPR1L và
các bit CCP1CON.
- Tạo một đầu ra chân CCP1 bằng việc xóa bit TRISC.
- Thiết lập giá trị của bộ đếm gộp trước và cho phép TIMER2 bằng cách ghi vào
thanh ghi T2CON.
- Cấu hình module CCP1 cho chế độ PWM.
Sau đây là một số ví dụ:
Tần số PWM và các kết quả ở tần số dao động 20MHz
99
Đồ Án Tốt Nghiệp Tracked Mobile Robot
5.4 Ứng dụng IC điều khiển động cơ L298
5.4.1 Giới thiệu
IC L298 là mạch tích hợp đơn chip có kiểu vỏ công suất 15 chân
(multiwat15) và linh kiện dán công suất (PowerOS20). Là IC mạch cầu đôi (dual
full-bridge), có khả năng hoạt động với điện thể cao và dòng lớn. Nó được thiết
kế tương thích chuẩn TTL và lái tải cảm kháng như relay, cuộn solenoid, động cơ
DC và động cơ bước. Nó có hai chân enable để cho phép hay không cho phép IC
hoạt động và độc lập với các chân tín hiệu vào. Cực phát (emitter) của transistor
dưới của mỗi mạch cầu được nối với nhau và nối ra chân ngoài để nối với điện trở
cảm ứng dòng khi cần.
Hình 5. 40 Các kiểu đóng vỏ
Hình 5. 41 Sơ đồ khối của L298
100
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 42 Sơ chân của L298
Các giá trị chịu đượng tối đa
Thông số về nhiệt độ
101
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Chức năng các chân (tham khảo thêm sơ đồ khối)
5.4.2 Ứng dụng IC L298 vào dự án
Mỗi IC L298 được tích hợp hai mạch cầu H có thể chịu đượng tối đa điện áp
40V và dòng 2A. Khi chỉ dung một mạch cầu H để điều khiển cho một động co
thì cần chú ý là dòng khi động cơ quá tải không được vượt quá giới hạn cho phép.
Tuy nhiên có rất nhiều trường hợp có thể làm cho dòng chạy qua động cơ
vượt quá giới hạn 2A đó là: ngắn mạch do động cơ bị ngẹt do vướng phải chưởng
ngại vật, chập dây…. Lúc đó dòng có thể rất lớn và vượt xa dòng giới hạn 2A, vì
vậy ta phải có phương án làm tăng dòng chịu đựng của IC L298. Và một cách
truyền thống đó là dung hai cầu H trong một IC L298 để điều khiển một động cơ
và khi đó dòng chịu đựng có thể lên tới 4A.
102
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Mặc dù dòng chịu đựng có thể lên tới 4A nhưng trong những trường hợp
không may xảy ra thì dòng chạy qua động cơ vẫn vượt quá 4A, do đó việc sử
dụng tính năng tắt nhanh của IC là rất cần thiết.
Sau đây là hai sơ đồ nối dây để điều khiên động cơ công suất bé và động cơ
công suất lớn:
Hình 5. 43 Dùng một cầu H để điều khiển một động cơ
Hình 5. 44 Dùng hai cầu H để điều khiển một động cơ
5.5 Thiết kế mạch điều khiển Robot
5.5.1 Nhiệm vụ thiết kế
Để Robot hoạt động đúng yêu cầu thì nhiệm vụ đặt ra là thiết kế một mạch
có thể giao tiếp từ xa với máy tính để nhận hình ảnh từ robot gửi về cũng như
truyền tín hiệu điều khiển tới robot để nó hoạt động.
Các nhiệm vụ thiết kế:
- Thiết kế module truyền/nhận hình ảnh từ robot.
- Thiết kế module truyền/nhận tín hiệu điều khiển tới robot.
103
Đồ Án Tốt Nghiệp Tracked Mobile Robot
- Thiết kế module điều khiển và công suất cho các động cơ DC.
Hình 5. 45 Sơ đồ khối của hệ thống điều khiển robot
5.5.2 Các module cơ bản
5.5.2.1 Module truyền/nhận hình ảnh từ robot
Để thu hình ảnh thì chúng ta dùng camera, và vì robot hoạt động theo kiểu
thực tại xa nên ở đây phải dùng camera không dây. Sau khi thu được hình ảnh thì
camera sẽ truyền hình ảnh về bộ thu video, từ bộ thu này nếu dùng dắc cắm vào
dắc video của tivi thì chúng ta đã có thể nhìn thấy được hình ảnh truyền về. Mặc
dù như vậy là chúng ta đã có thể quan sát được nơi robot làm việc nhưng vì để để
điều khiển được robot thông qua phần mềm điều khiển thì yêu cầu mộ thu video
phải kết nối được với máy vi tính. Để giải quyết được việc đưa hình ảnh thu được
vào máy tính chúng ta dùng USB chuyên dụng là EasyCAP.
104
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 46 Camera không dây Cam208C
Hình 5. 47 Bộ thu RADIO AV RECEIVER và USB EasyCAP
5.5.2.2 Module truyền/nhận tín hiệu điều khiển tới robot
Module truyền và nhận tín hiệu điều khiển từ xa để điều khiển robot được
dùng ở dây là module hiện có sẵn trên thị trường do công ty
105
Đồ Án Tốt Nghiệp Tracked Mobile Robot
QueDuongElectronics sản xuất. Vì module này có bán trên thị trường và giá cả
hợp lý nên chúng em đặt mua. Sau đây là một số thông tin về module nay:
- Sơ đồ nguyên lý của mạch thu/phát:
Tín hiệu phát ra từ ăng ten của module phát được module thu thu về và xử
lý.
Hình 5. 48 Sơ đồ nguyên lý của mạch thu/phát
- Module phát:
Module phát được cấu thành từ hai phần cơ bản là phần mã hóa và phần
phát. Phần mã hóa là để tránh nhiễu của môi trường trong quá trình truyền tải
thông tin. Thành phần phát có nhiệm vụ phát đi từng bit một, khi đầu vào có mức
logic 1 mạch phát sẽ bức xạ sóng điện từ ra không gian, còn khi đầu vào có mức
logic 0 thì mạch phát sẽ không bức xạ sóng điện từ. Nguồn cung cấp cho mạch
họat động trong khoảng 9v÷12v.
Hình 5. 49 Module phát RF_RS232
- Module thu:
Module thu cũng được cấu tạo từ thành phần giải mã và phần thu. Thành
phần giải mã là để giải mã tín hiệu thu được, vì tín hiệu thu được chỉ là một chuỗi
106
Đồ Án Tốt Nghiệp Tracked Mobile Robot
bit theo thời gian nên module thu phải giải mã để thu được dữ liệu mà người dùng
muốn truyền.
Ở mạch thu, bình thường khi mạch phát không hoạt động, do tác động của
môi trường có sóng điện từ nên tại đầu ra có mức logic 0 hay 1 bất kỳ (nhiễu).
Khi mạch phát có mức logic 1 thì mạch thu có mức bão hòa (trạng thái 0) và khi
mạch phát trở về 0 thì mạch thu bứt lên một sườn dương, như vậy mạch phát và
thu lệch pha nhau 1/2 chu kỳ (mạch phát phát mức/mạch thu bắt sườn). Nguồn
cung cấp cho mạch hoạt động là 9v÷12v.
Hình 5. 50 Module thu RF_RS232
5.5.2.3 Module điều khiển và công suất cho động cơ
Module này được thiết kế trên một bo mạch để mạch ổn định hơn trong quá
trính sử dụng. Trong bo mạch chính này bao gồm các khối sau:
- Khối tạo nguồn 5v cung cấp cho chip và IC.
- Khối Master.
- Khối Slave.
- Khối công suất.
a. Khối tạo nguồn 5v cung cấp cho chip và IC
Đây là khối cung cấp nguồn cho toàn bộ 3 vi điều khiển Pic16f876a và 4 IC
L298. Trong khối này gồm 3 mạch lấy nguồn 5v như nhau. Mạch thứ nhất cung
cấp cho 3 chip Pic16f876a, mạch thứ hai cung cấp cho 2 IC L298 và mạch thứ ba
cung cấp cho 2 IC L298 còn lại.
Trong mạch dùng IC ổn áp LM7805 để lấy nguồn 5v ở đầu ra từ đầu vào là
nguồn 12v của Acquy.
107
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 51 Công tắc đóng/mở nguồn vào từ Acquy
Hình 5. 52 Mạch cung cấp nguồn 5v cho Chip và IC
b. Khối Master
Khối Master có nhiệm vụ nhận tín hiệu từ module thu của bộ RF_RS232 để
xử lý và truyền đến hai khối Slave qua chuẩn I2C. Ngoài ra khối này còn có thể
giao tiếp với khối Max232 để nhận tín hiệu từ máy tính thông qua một đường
truyền có dây để thuận lợi cho việc test mạch.
Ngoài mạch cơ bản để chip có thể hoạt động được (chân nguồn, các chân
nối vào bộ dao động …) thì khối Master còn dùng thêm các chân khác để thực
hiện các chức năng như: thể hiện (RB4÷RB7), giao tiếp I2C (RC3÷RC4), truyền
nhận đồng bộ/không đồng bộ - USART (RC6÷RC7), hai cổng mở rộng
(RA0÷RA5 và RC0÷RC2_RB0÷RB3).
Cụ thể là:
- RB4÷RB7: làm nhiệm vụ điều khiển các led.
- RC3_RC4 tương ứng là SCL_SDA: là hai chân thực hiện giao tiếp I2C đó
là truyền tín hiệu đến các chip Slave.
- RC6_RC7 tương ứng là TX_RX: thực hiện giao tiếp USART đó là nhận
tín hiệu từ module thu RF_RS232 để xử lý.
108
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 53 Khối Master
c. Khối Slave
Khối Slave có nhiệm vụ nhận tín hiệu từ khối Master qua chuẩn giao tiếp
I2C để xử lý và truyền tín hiệu điều khiển đến các chân của IC điều khiển động
cơ L298.
Ngoài mạch cơ bản để chip có thể hoạt động được (chân nguồn, các chân
nối vào bộ dao động …) thì khối Slave còn dùng thêm các chân khác để thực hiện
các chức năng thể hiện (RB4÷RB7), giao tiếp I2C (RC3÷RC4) và điều khiển
(RA0_RA1_RA3_RC0÷RC2_RB0÷RB2).
Cụ thể, đối với chip Slave I:
- RB4÷RB7: làm nhiệm vụ điều khiển các led.
- RC3_RC4 tương ứng là SCL_SDA: là hai chân thực hiện giao tiếp I2C đó
là nhận tín hiệu từ chip Master để xử lý và điều khiển các chân
RB4÷RB7_RC0÷RC2_RB0÷RB2.
109
Đồ Án Tốt Nghiệp Tracked Mobile Robot
- RA0_RA1_RA3 tương ứng là SEN1_SEN2_VRFF1: thực hiện nhiệm vụ
nhận tín hiệu so sánh Analog phản hồi về từ IC L298 để chống sự cố do ngắn
mạch động cơ gây ra hiện tượng tăng dòng đột ngột.
- RC0÷RC2_RB0÷RB2 tương ứng là EN1÷IND12_EN2÷IND22 thực hiện
nhiệm vụ đóng ngắt và đảo chiều động cơ thứ nhất và thứ hai.
Đối với chip Slave II thì được thiết kế tương tự để điều khiển cho hai động
cơ thứ ba và thứ tư.
Hình 5. 54 Khối Slave I
110
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 55 Khối Slave II
d. Khối Slave
Khối công suất thực hiện nhiệm vụ nhận tín hiệu điều khiển từ chip Slave để
thực hiện nhiệm vụ điều khiển động cơ (đóng/mở, quay thuận,quay ngịch và
phanh nhanh động cơ) thông qua việc điều khiển các cầu H của IC L298.
Khối công suất gồm có 4 module nhỏ, môi module dùng để điều khiển một
động cơ DC.
Hình 5. 56 Mạch công suất cho động cơ thứ nhất
111
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 57 Mạch công suất cho động cơ thứ hai
Hình 5. 58 Mạch công suất cho động cơ thứ ba
112
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 59 Mạch công suất cho động cơ thứ tư
e. Mạch hoàn chỉnh
113
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 60 Mạch hoàn chỉnh
5.6 Thiết kế phần mềm điều khiển Robot
Phần mềm điều khiển robot được thiết kế đơn giản, gọn nhẹ và đủ các tính
năng điều khiển robot hoạt động. Phần mềm gồm hai giao diện chính là hộp thoại
điều khiển và hộp thoại thu hình ảnh từ camera gửi về.
Hộp thoại điều khiển là một giao diện có các nút bấm để điều khiển robot
thực hiện được các thao tác đơn giản như: tiến, lùi, rẽ trái, rẽ phải, phanh, dừng
lại, nâng cần trước, hạ cần trước, dừng cần lại … Trên hộp thoại điều khiển này
có nút để bật chế độ thu hình ảnh camera và để cho phép hay không cho phép
điều khiển từ xa.
Ngoài ra các nút điều khiển còn được mã hóa bằng các phím trên bàn phím
để công việc điều khiển được dễ dàng hơn. Sơ đồ mã hóa bàn phím được thể hiện
trong trong hình 6.58 .
114
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 61 Hộp thoại điều khiển
115
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 62 Mã hóa bàn phím
116
Tiến
Lùi
Trái Phải
Connect
Disconnect
Quay tròn
Dừng PhanhNâng
HạDưng Phanh
Đồ Án Tốt Nghiệp Tracked Mobile Robot
Hình 5. 63 Hộp thoại thể hiện hình ảnh thu được từ Camera
117
Đồ Án Tốt Nghiệp Tracked Mobile Robot
CHƯƠNG VI
KẾT LUẬN
Kết quả sau quá trình nghiên cứu thiết kế chế tạo tracked mobile robot:
Về mặt lí thuyết:
Phân tích và lựa chọn được kết cấu hợp lý để thiết kế.
Xây dựng mô hình động học, động lực học đơn giản.
Xây dựng phần mềm điều khiển robot từ xa bằng máy tính.
Về mặt thực nghiệm:
Chế tạo thành công mô hình mobile robot dùng xích.
Chế tạo thành công hệ thống điều khiển từ xa cho robot.
Điều khiển robot đi thành công trên những địa hình đã đề ra.
Robot có khả năng truyền hình ảnh về máy tính để thuận lợi cho việc
điều khiển.
Vấn đề còn tồn tại:
Kết cấu robot đưa ra vẫn chưa được kiểm nhiệm về tính cứng vững,
khả năng cần bằng và ổn định trọng tâm, kiểm tra sai số điều khiển.
Chưa xây dựng được thực nghiệm kiểm chứng lí thuyết mô hình động
học và động lực học cho robot.
Hướng phát triển cho tương lai:
Để tài có tính mở, còn rất nhiều vấn đề cần tiếp tục được triển khai
nghiên cứu.
Hoàn thiện phần điều khiển. mạch điều khiển để robot hoạt động thực
sự có hiệu quả và có tính ứng dụng cao.
Trang bị cho robot các sensor đo nhiệt độ, độ ẩm… để gửi tín hiệu về
máy tính điều khiển phục vụ cho việc vẽ bản đồ.
Trang bị thêm tay máy gắn trên robot thực hiện thao tác mong muốn.
Xây dựng, hoàn thiện khả năng làm việc theo nhóm của robot, tạo ra
thế mạnh nổi bật so với các loại robot khác.
Vấn đề tồn tại là khá nhiều, tuy nhiên trong giới hạn phạm vi đồ án, khả năng trình
độ và thời gian có hạn nên chúng em chưa thể hoàn thiện những vấn đề trên. Đây là
một đề tài mới mẻ và có rất nhiều hướng phát triển, và có tính thực tế cao, nếu có điều
kiện chúng em rất mong được tiếp tục nghiên cứu và phát triển nó. Rất mong sẽ nhận
được sự giúp đỡ chỉ bảo của các thầy để hoàn thành để tài một cách có chất lượng.
118
Đồ Án Tốt Nghiệp Tracked Mobile Robot
TÀI LIỆU THAM KHẢO
[1] Paul e. Sandin -Robot mechanisms and mechanical devices illustrated
[2] Kristof Goris -Autonomous Mobile Robot Mechanical Design –
[3] J. L.Martínez,A. Mandow ,J. Morales,S. Pedraza,A. García-Cerezo -
Approximating Kinematics for Tracked Mobile Robots
[4] Trịnh Chất, Lê Văn Uyển - Tính toán thiết kế hệ dẫn động cơ khí, tập I,II –
NXB Giáo dục, 2003
[5] GS-TSKH.Nguyễn Văn Khang -Cơ sở cơ học kĩ thuật tập I, II – NXB ĐH Quốc
Gia Hà Nội, 2003
[6] Tài liệu “Động học mobile robot di chuyển trên mặt phẳng”.
[7] Microchip Technology Inc, PIC16F87XA DataSheet, 2003.
[8] Custom Computer Services Inc, CCS C Compiler Help, 2007.
[9] Phạm Công Ngô – Phạm Ngọc Nam – Phạm Tuấn Lương, Tự học lập trình
VISUALC++6.0 từ cơ bản đến nâng cao, NXB Thống kê, 2002.
[10] Các diễn đàn trên mạng: PIC Việt nam ( ), Điện
tử Việt nam ( )…
[11]Nguyễn Hữu Cẩn, Dư Quốc Thịnh, phạm Minh Thái, nguyễn Văn Tài,
Lê Thị Vàng – Lý thuyết ô tô, máy kéo, NXBKHKTHN, 2005
119
Đồ Án Tốt Nghiệp Tracked Mobile Robot
120
Đồ Án Tốt Nghiệp Tracked Mobile Robot
PHỤ LỤC BẢN VẼ CÁC CHI TIẾT
121
Các file đính kèm theo tài liệu này:
- TH103.pdf