Đồ án báo cáo về kỹ thuật robot hoặc vi xử lý, đề tài Robot tìm đường trong mê cung đơn giản dành cho các bạn sinh viên cần tham khảo. Hướng dẫn về thuật toán bám tường cơ bản trong lập trình vi điều khiển
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN
Trang 2TP HỒ CHÍ MINH, THÁNG 6/2016
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Giáo viên hướng dẫn: TS Trương Đình Nhơn
Họ và tên sinh viên: Hồ Đức Dũng MSSV: 13151015
Nguyễn Hữu Toàn MSSV: 13151102
Ngành: Công Nghệ Kỹ Thuật Điều Khiển và Tự Động Hóa
Tên đề tài: Thiết Kế và Điều Khiển Robot Dò Đường Trong Mê Cung
Nhận xét của giáo viên hướng dẫn:
-
TP.HCM, tháng 6 năm 2016
TS Trương Đình Nhơn
Trang 4MỤC LỤC
MỞ ĐẦU……… 3
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT……… …5
1.1 Tổng quan về bài toán bám tường của robot di động……… 5
1.1.1 Bài toán di chuyển theo tường……… ….6
1.2 Giải Thuật PID……… 7
1.2.1 Sơ Đồ Khối Nguyên Lý Hoạt Động……… 7
1.2.2 Lý Thuyết Thuật Toán PID……….7
CHƯƠNG 2 GIỚI THIỆU CÁC PHẦN TỬ ROBOT……….…10
2.1 Động Cơ DC ……… 10
2.2 Mạch Cầu H……… … 10
2.3 Cảm biến hồng ngoại……… 12
2.4 Board mạch Arduino UNO R3……… 13
2.5 Thiết kế Robot……… 16
CHƯƠNG 3 THUẬT TOÁN ĐIỀU KHIỂN ……… …17
3.1 Điều Chế Độ Rộng Xung PWM……… ……… … …17
3.2 Giải Thuật PID……….… 20
3.2.1 Lưu Đồ Giải Thuật……… …… …20
3.2.2 Thuật Toán Bám Tường Trái……….… 21
3.2.3 Thuật Toán Bám Tường Phải……… … 22
3.4 Ứng Dụng……… … 22
KẾT LUẬN……… 23
TÀI LIỆU THAM KHẢO……… … 24
PHỤ LỤC……… …25
Trang 5MỞ ĐẦU
Ngày nay điều khiển tự động đã trở thành một nhu cầu không thể thiếu đượccủa con người dưới sự xuất hiện của các học thuyết và các ứng dụng cụ thể trongđời sống hằng ngày, có thể nói điều khiển tự động đang chi phối dần cuộc sống củachúng ta con người đang cố gắng sáng tạo ra các con robot có khả năng làm việcthay cho con người Chúng ta thường bắt gặp các con robot trong các dây chuyềncông nghiệp sản xuất tự động hay robot giúp việc trong gia đình Để tìm ra các ýtưởng sáng tạo hay hàng năm đề diễn ra cuộc thi robocon châu á thái bình dương
đó là tiền đề để tạo ra những con robot có khả năng áp dụng vào thực tế
Robot di động là một thành phần có vai trò quan trọng trong ngành robothọc Cùng với sự phát triển mạnh mẽ của hệ thống tự động hóa, các mạch vi điềukhiển, robot tìm đường đã ngày càng hoàn thiện và cho thấy lượi ích to lớn trongcuộc sống Một vấn đề rất được quan tâm khi nghiên cứu về robot tìm đường là làmthế nào robot có thể di chuyển 1 cách ổn định, nhận biết được vị trí nó đang đứng
Trong phạm vi đề tài này em sẽ tìm hiểu thuật toán và thi công Robot dichuyển theo mép tường (Wall Following Robot) dựa vào cảm biến hồng ngoại vậncản
Trang 6Nội dung của đề tài: bao gồm những chương sau:
Chương 1: Cơ sở lý thuyết
Nội dung của chương này là trình bày lý thuyết về các thuật toán tìm kiếmđường và lý thuyết giải thuật PID
Chương 2: Giới thiệu các phẩn tử của Robot
Chương này chủ yếu trình bày sơ lược về cấu trúc hoạt động của Board mạchArduino, cảm biến hồng ngoại, mạch cầu H và thiết kế về phần khung xe và phầnđiện cho mô hình robot di động
Chương 3: Thuật toán điều khiển
Chương này trình bày giải thuật tìm đường bám tường, ứng dụng PID đểđiểu khiển tốc độ động cơ
Kết luận và hướng phát triển của đề tài.
Chương này trình bày những kết quả đạt được, các mặt hạn chế và hướngphát triển của đề tài
Trang 7CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về bài toán bám tường của robot di động
Ngày nay, Robot học đã đạt được những thành tựu to lớn trong nền sản xuấtcông nghiệp Những cánh tay robot có khả năng làm việc với tốc độ cao, chínhxác và liên tục làm năng suất lao động tăng nhiều lần Chúng có thể làm việctrong các môi trường độc hại như hàn, phun sơn, các nhà máy hạt nhân, hay lắp rápcác linh kiện điện tử tạo ra điện thoại, máy tính…một công việc đòi hỏi sự tỉ mỉ,chính xác cao Tuy nhiên những robot này có một hạn chế chung đó là hạn chế vềkhông gian làm việc Không gian làm việc của chúng bị giới hạn bởi số bậc tự dotay máy và vị trí gắn chúng Ngược lại, các Robot tự hành lại có khả năng hoạtđộng một cách linh hoạt trong các môi trường khác nhau
Robot tự hành là loại mobile robot có khả năng tự hoạt động, thực thi nhiệm vụ
mà không cần sự can thiệp của con người Với những cảm biến, chúng có khả năngnhận biết về môi trường xung quanh Robot tự hành ngày càng có nhiều ý nghĩatrong các ngành công nghiệp, thương mại, y tế, các ứng dụng khoa học và phục vụđời sống của con người Với sự phát triển của ngành Robot học, robot tự hànhngày càng có khả năng hoạt động trong các môi trường khác nhau, tùy mỗi lĩnh vực
áp dụng mà chúng có nhiều loại khác nhau như robot sơn, robot hàn, robot cắt cỏ,robot thám hiểm đại dương, robot làm việc ngoài vũ trụ Cùng với sự phát triểncủa yêu cầu trong thực tế, robot tự hành tiếp tục đưa ra những thách thức mới chocác nhà nghiên cứu Vấn đề của robot tự hành là làm thế nào để robot tự hành cóthể hoạt động, nhận biết môi trường và thực thi các nhiệm vụ đề ra
Trang 8Hiện tại vấn đề di chuyển là vấn đề trọng tâm của robot di động Để di chuyểnđược, robot phải thực hiện một loạt các tác vụ, mỗi tác vụ gắn với một bài toán nhỏtrong bài toán "dịch chuyển" Các bài toán đó gồm:
- Công việc lập bản đồ môi trường hoạt động của robot Nếu không được cungcấp dữ liệu trước thì robot phải có khả năng lập bản đồ
- Việc định vị, robot phải có khả năng biết được mình đang ở đâu trong bản đồtoàn cục hoặc địa phương
- Việc hoạch định đường đi sắp tới của robot, sau khi nó biết được bản đồ vàbiết mình đang ở vị trí nào
- Việc điều khiển cho robot di động, tức là điều khiển các cơ cấu để robot đitheo con đường thu được
- Nhiệm vụ tránh chướng ngại vật khi robot đang di chuyển
1.1.1 Bài toán di chuyển theo tường
Việc di chuyển theo tường (wall following) là một tác vụ thường thấy ởrobot di động, trong các môi trường biết trước hoặc không biết trước Tác vụ nàyđược dùng với các nhiệm vụ: tránh chướng ngại vật, đi theo tường biết trước, đitheo tường không biết trước
Để thực hiện mục tiêu trên, trong đồ án này bọn em tập trung vào các vấn đềsau:
- Nghiên cứu các bộ điều khiển cho robot bám tường
- Thiết kế và chế tạo một Mobile Robot
- Thiết kế và thực hiện các mạch điều khiển cho robot
Trang 9- Lập trình cho robot để hiện thực các bộ điều khiển
- Nhận xét kết quả và kết luận
1.2 Giải Thuật PID
1.2.1 Sơ đồ khối nguyên lý hoạt dộng
1.2.2 Lý thuyết thuật toán PID
Một bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional IntegralDerivative) là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quátđược sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điềukhiển PID là bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiểnphản hồi Bộ điều khiển PID sẽ tính toán giá trị "sai số" là hiệu số giữa giá trị
đo thông số biến đổi và giá trị đặt mong muốn Bộ điều khiển sẽ thực hiện giảmtối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào Giải thuật tínhtoán bộ điều khiển PID bao gồm 3 thông số riêng biệt, do đó đôi khi nó cònđược gọi là điều khiển ba khâu: các giá trị tỉ lệ, tích phân và đạo hàm, viết tắt
là P, I, và D Giá trị tỉ lệ xác định tác động của sai số hiện tại, giá trị tích
Trang 10phân xác định tác động của tổng các sai số quá khứ, và giá trị vi phân xác địnhtác động của tốc độ biến đổi sai số Tổng chập của ba tác động này dùng đểđiều chỉnh quá trình thông qua một phần tử điều khiển như vị trí của van điềukhiển hay bộ nguồn của phần tử gia nhiệt Nhờ vậy, những giá trị này có thểlàm sáng tỏ về quan hệ thời gian: P phụ thuộc vào sai số hiện tại, I phụ thuộcvào tích lũy các sai số quá khứ, và D dự đoán các sai số tương lai, dựa vào tốc
độ thay đổi hiện tại
Khâu tỉ lệ, tích phân, vi phân được cộng lại với nhau để tính toán đầu ra của bộ
điều khiển PID Định nghĩa rằng u(t) là đầu ra của bộ điều khiển, biểu thức
cuối cùng của giải thuật PID là:
trong đó các thông số
Độ lợi tỉ lệ, K p
giá trị càng lớn thì đáp ứng càng nhanh do đó sai số càng lớn, bù khâu tỉ lệcàng lớn Một giá gị độ lợi tỉ lệ quá lớn sẽ dấn đến quá trình mất ổn định vàdao động
Độ lợi tích phân, K i
giá trị càng lớn kéo theo sai số ổn định bị khử càng nhanh Đổi lại là độ vọt
lố càng lớn: bất kỳ sai số âm nào được tích phân trong suốt đáp ứng quá độphải được triệt tiêu tích phân bằng sai số dương trước khi tiến tới trạng thái
ổn định
Độ lợi vi phân, K d
Trang 11giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm đáp ứng quá độ và
có thể dẫn đến mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân sai số
CHƯƠNG 2 GIỚI THIỆU VỀ CÁC PHẦN TỬ TRONG ROBOT 2.1 Động cơ DC
DC động cơ là động cơ điện hoạt động với dòng một chiều Động cơ DC sửdụng rộng rãi trong các ứng dụng dân cư cũng như các ngành công nghiệp Thôngthường động cơ DC chỉ chạy ở một tốc độ khi kết nối với nguồn điện, nhưng chúngtôi vẫn có thể kiểm soát tốc độ và hướng của động cơ với sự hỗ trợ của các mạchđiện tử với phương pháp PWM
Động cơ DC trong các hình thức của động cơ dân sự thường hoạt động vớiđiện áp thấp, được sử dụng với tải trọng nhỏ Trong công nghiệp, động cơ DC được
sử dụng trong các lĩnh vực đòi hỏi phải có mô-men xoắn lớn hơn trên máy tínhhoặc yêu cầu thay đổi trong phạm vi tốc độ
Trang 122.2 Mạch cầu H dùng IC L298N
Cầu H là một mạch điện tử cho phép điện áp được đặt lên tải theo 2 hướng , mạch này thường được sử dụng để thay đổi điện áp trung bình cấp cho động cơ nhờvào xung PWM, ngoài ra cầu H còn được dùng để đảo chiều quay động cơ
Trang 13- Động cơ quay theo chiều thuận.Ở phía A, transistor Q1 mở, Q3 đóng Ở phía B,transistor Q2 đóng, Q 4 mở Dó đó, dòng điện trong mạch có thể chạy từ nguồn12V đến Q1, qua động cơ đến Q4 để về GND
- Động cơ quay theo chiều ngược: Ở phía A, transistor Q1 đóng, Q3 mở Ở phía B,transistor Q2 mở, Q 4 đóng Dó đó, dòng điện trong mạch có thể chạy từ nguồn12V đến Q2, qua động cơ đến Q3 để về GND
Trang 142.3 Cảm biến hồng ngoại
Nguyên lý của cảm biến này như sau : mắt phát hồng ngoại sẽ phát ra sóng ánhsáng có bước sóng hồng ngoại , ở mắt thu bình thường thì có nội trở rất lớn(khoảng vài trăm kilo ôm ) , khi mắt thu bị tia hồng ngoại chiếu vào thì nội trở của
nó giảm xuống ( khoảng vài chục ôm) Lợi dụng nguyên lý này người ta chế tạo racác cảm biến IR Hình sau biểu diễn nguyên lý hoạt động của cảm biến phát hiện
vật cản IR:
Sơ đồ mạch cảm biến chống nhiễu
Trang 15Hình ảnh cảm biến sau khi hoàn thành:
2.4 Board mạch Arduino UNO R3
Trang 16Vi điều khiển ATmega328 họ 8bit
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
~ trước mã số của pin) Song song đó, ta có thêm 6 pin nhận tín hiệu analog được
đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào
Trang 17bình thường (như pin 0 - 13) Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối
trực tiếp với LED trạng thái trên board
Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõcấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter haythông qua ắc-quy nguồn
Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:
Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắtđiện Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệutrên board Chương trình được viết cho Arduino sẽ được lưu ở đây Kíchthước của vùng nhớ này thông thường dựa vào vi điều khiển được sử dụng,
ví dụ như ATmega8 có 8KB flash memory Loại bộ nhớ này có thể chịuđược khoảng 10,000 lần ghi / xoá
RAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điệnnhưng bù lại tốc độ đọc ghi xoá rất nhanh Kích thước nhỏ hơn FlashMemory nhiều lần
EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kìghi / xoá cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ Để đọc /ghi dữ liệu ta có thể dùng thư viện EEPROM của Arduino
Trang 182.4 Thiết Kế Robot
Phần này giới thiệu sơ lược về phần cứng của robot tìm đường
Robot tìm đường được thiết kế như hình gồm các phần chính như sau:
- Khung xe bằng mica
- Bánh xe đa hướng
- Động cơ DC có hộp số dùng để truyền động cho 2 bánh xe
- Hệ thống cảm biến được chọn sử dụng trong mô hình này là cảm biến hồng ngoạivật cản
- Nguồn pin 12 VDC, kèm theo mạch giảm áp
- Bo mạch Arduino UNO
- Module L298N
Trang 19CHƯƠNG 3 THUẬT TOÁN ĐIỀU KHIỂN
3.1 Điều chế độ rộng xung PWM
Điều khiển động cơ PWM phương pháp dựa trên nguyên tắc hoạt động cho động cơchạy bằng chuỗi xung nhanh chóng mở và đóng Điện DC được chuyển đổi thànhtín hiệu sóng vuông (chỉ có hai cấp độ và khoảng 0 điện áp hoạt động volt) Tínhiệu sóng vuông này cho động cơ
Nếu tần số chuyển đổi là đủ lớn động cơ sẽ chạy ở tốc độ ổn định phụ thuộc vàotrục mô-men xoắn
Với phương pháp PWM, điều chỉnh tốc độ động cơ thông qua điều chế độ rộngxung, tức là thời gian "xung đầy đủ" ("on") của chuỗi xung vuông cho động cơ.Điều chỉnh này sẽ ảnh hưởng đến công suất trung bình cho động cơ và do đó sẽthay đổi cần điều khiển tốc độ động cơ
Trang 20Code Thay đổi xung PWM để thay đổi tốc dộ động cơ:
- Điều khiển 2 động cơ cùng một lúc:
Trang 2252.MotorRunning();
53.delay(1000);
54.}
3.2 Giải thuật PID
3.2.1 Lưu đồ giải thuật
Trang 233.2.2 Thuật toán bám tường trái
Trang 24int Rmax=250,Midwall=9, Rwall=15 ,basespeed;
Trang 25- Đo được khoảng cách từ robot tới tường, từ đó xác định vị trí của Robot
- Luật điều khiển đơn giản nhưng khá hiệu quả
Hướng phát triển:
- Kết hợp công nghệ xử lí ảnh vẽ lại hình dạng đường đi của robot tự hành để
ứng dụng trong việc tìm đường đến các vị trí nguy hiểm trong thực tế
- Tùy thuộc vào các ứng dụng và đường đi mà áp dụng các thuật toán khácnhau để đem lại hiệu quả cao nhất
Trang 26TÀI LIỆU THAM KHẢO