Tracked mobile robot

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

pdf121 trang | Chia sẻ: banmai | Lượt xem: 2283 | Lượt tải: 5download
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:

  • pdfTH103.pdf