Trong thời đại công nghiệp hiện nay, robot ngày càng được sử dụng phổ biến trong sản xuất cũng như trong cuộc sống con người. Robot đã có một vị trí quan trọng không thể thay thế được, nó giúp con người làm việc trong những điều kiện nguy hiểm khó khan. Ngoài ra robot còn dùng trong lĩnh vực thám hiểm không gian, quân sự, giải trí… lĩnh vực robot di động đang ngày càng được sự quan tâm của các nhà nghiên cứu và xã hội. Đặc biệt robot dò đường là vấn đề thiết yếu của robot di động
Trang 1TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN HỮU NGHỊ VIỆT - HÀN
KHOA CÔNG NGHỆ ĐIỆN TỬ- VIỄN THÔNG
============================
ĐỒ ÁN
VI ĐIỀU KHIỂN
ĐỀ TÀI THIẾT KẾ ROBOT DÒ ĐƯỜNG
SVTH: HỒ MINH PHƯƠNG GVHD: DƯƠNG TUẤN QUANG
Đà Nẵng, 14 tháng 12 năm 2016
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 2
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 3
CHƯƠNG II: CẤU TẠO VÀ PHƯƠNG PHÁP ĐIỀU KHIỂN ROBOT THEO QUỸ ĐẠO 4
2.1 Vật liệu – linh kiện: 4 2.2 Phương pháp điều khiển robot theo quỹ đạo với bộ điều khiển PID 4 2.2.1 Cấu tạo của robot 4
2.2.2 Khối cảm biến: 5
2.2.3 Các đặc điểm của hệ vi xử lý ATmega328: 5
2.2.4 đặc điểm phần động cơ Module điều khiển động cơ L298 7
2.3 Bo mạch Arduino:8 2.4 sơ đồ cấu trúc điều khiển: 9 CHƯƠNG III SƠ ĐỒ KHỐI VÀ SƠ ĐỒ NGUYÊN LÝ 10
1 sơ đồ khối : 10 2 sơ đồ nguyên lý 10 CHƯƠNG IV CÁCH LÀM MẠCH VÀ NGUYÊN TẮC HOẠT ĐỘNG CỦA MẠCH 11
1 Bộ phận cảm biến11 2 Bộ phận điều khiển động cơ 11 3 Bộ phận xử lý 12 a Điều khiển: 12
b Code vi điều khiển: 12
CHƯƠNG V KẾT LUẬN 16 1.Ưu – Nhược điểm: 16
2 Hướng phát triển đề tài: 16
3 Tài liệu tham khảo: 16
Trang 3LỜI NÓI ĐẦU
Trong thời đại công nghiệp hiện nay, robot ngày càng được sử dụng phổ biến trong sản xuất cũng như trong cuộc sống con người Robot đã có một vị trí quan trọng không thể thay thế được, nó giúp con người làm việc trong những điều kiện nguy hiểm khó khan Ngoài ra robot còn dùng trong lĩnh vực thám hiểm không gian, quân sự, giải trí… lĩnh vực robot di động đang ngày càng được sự quan tâm của các nhà nghiên cứu và xã hội Đặc biệt robot dò đường là vấn đề thiết yếu của robot di động
Trang 4CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI
Robot tự hành là một thành phần có vai trò quan trọng trong ngành Robot học cùng với sự phát triển mạnh mẽ của các hệ thống tự động hóa, robot tự hành ngày một được hoàn thiện và càng cho thấy lợi ích của nó trong công nghiệp và sinh hoạt Một vấn đề rất được quan tâm khi nghiên cứu về robot tự hành là làm thế nào để robot tự động đi theo một quỹ đạo đã định
Để điều khiển robot theo quỹ đão, người thiết kế lập trình xác định độ lệch tương ứng đối giữa quỹ đạo của robot và quỹ đọa mong muốn, sau đó so sánh độ lệch đó thành các mức và điều khiển lái robot quay về quỹ đạo như hình 1 Phương pháp này có ưu điểm đơn giản nhưng robot chạy không ổn định, lúc rất nhanh, lúc lại chậm, tính ổn định phụ thuộc nhiều vào động cơ và kết cấu cơ khí của robot Trong nghiên cứu này tập trung vào khắc phục nhược điểm đó bằng cách áp dụng bộ điều khiển PID điều khiển vị trí robot
Trang 5CHƯƠNG II: CẤU TẠO VÀ PHƯƠNG PHÁP ĐIỀU KHIỂN
ROBOT THEO QUỸ ĐẠO
2.1 Vật liệu – linh kiện:
2 động cơ một chiều (DC motor)
IC atmega 328
IC 7805
Điện trở
Thạch anh 16
Tụ điện
3(cảm biến hồng ngoại)
Mạch cầu
Băng dính
Dây dẫn
Giấy bìa cứng
Nguồn 9V
2.2
Phương pháp điều khiển robot theo quỹ đạo với bộ điều khiển PID 2.2.1 Cấu tạo của robot
Trang 6B1, B2, B3: 3 bánh xe của robot, B3 là bánh tự lựa hướng của robot DC1: động cơ gắn bánh xe bên trái B1
DC2: động cơ gắn bánh xe bên phải B2
CB: khối cảm biến nhận biết quỹ đạo xe Arduino: điều khiển trung tâm của robot Pin: Nguồn cấp cho robot hoạt động
Hình 3 Robot bám theo quỹ đạo
2.
2 2 Khối cảm biến:
khối cảm biến gồm 3 cặp phát hồng ngoại khi led phát chiếu xuống sàn ( màu trắng) và vạch ( màu đen) thị lượng ánh sáng hồng ngoại phản xạ lại và led thu được khác nhau nên giá trị khác nhau
Hình 4: sơ đồ mạch cảm biến
Trang 72.2.3 Các đặc điểm của hệ vi xử lý ATmega328 :
Vi điều khiển là một hệ vi xử lý được tổ chức trong một chip Các thong số chính của vi điều khiển Atmega328 như sau
+ Bộ vi xử lý
+ giao diện SPI đồng bộ
+ kiến trúc: AVR 8bit
+ xung nhịp lớn nhất: 20Mhz
+ bộ nhớ chương trình (FLASH): 32KB
+ Bộ nhớ EEPROM: 1KB
+ Điện áp hoạt động rộng: 1.8V – 5.5V
+số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit
+số kênh xung PWM: 6 kênh (1timer 2 kênh
Trang 82.2.4 đặc điểm phần động cơ Module điều khiển động cơ L298
a Phần động cơ:
Moto DC hoạt động khi ta cấp 1 điện áp DC vào motor và 1 dòng điện 1
chiều chạy qua motor, motor sẽ quay theo chiều đó
Nếu chúng ta đổi chiều điện áp 1 chiều này thì motor sẽ quay lại ngược lại
b Module điều khiển động cơ l298
Trang 9Chức năng các chân của L298
+ Module L298 có thể điều khiển 2 động cơ DC hoặc 1 động cơ bước, có 4
lỗ nằm ở 4 góc thuận tiện cho người sử dụng cố định vị trí của module
+ có gắn tản nhiệt chống nóng cho IC, giúp IC có thể điều khiển với dòng đỉnh đạt 2A
+ IC L298 được gắn với các đi ốt trên board giúp bảo vệ vi xử lý chống lại các dòng điện cảm ứng từ việc khởi động /tắt động cơ
2.3 Bo mạch Arduino:
Các bo mạch Arduino thật ra là bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết
bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập tình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức phần cứng tới phần mền Bo mạch ArduinoUNO là bo mạch thông dụng nhất
ArduinoUno sử dụng chip Atmega328 Có 14 chân vào/ra số, 6 chân vào tương
tự, thạch anh dao động 16Mhz
Một số thông số kỹ thuật như sau:
Trang 10Dòng vào tương tự 40 mA
Trang 11Sơ đồ chân Arduino:
Hình 5: Bo mạch Arduino
- USB (1): Arduino sử dụng cáp USB để giao tiếp với máy tính Thông qua cáp USB chúng ta có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho Arduino
- Nguồn cấp một chiều cho Arduino
2.
4 sơ đồ cấu trúc điều khiển :
Nguyên tắc điều khiển robot theo quỹ đạo: khối cảm biến nhận biết robot
đi theo hay lệch khỏi quỹ đạo và gửi tín hiệu về điều khiển trung tâm Arduino Arduino tính toán điều khiển tốc hai bánh xe robot để điều khiển hướng đi chuyển của bobot Cụ thể, để rẽ trái tốc độ bánh xe bên phải robot nhanh hơn bên trasim ngược lại để rẽ phải tốc độ bánh xe bên trái nhanh hơn tốc độ bên phải, để đi thẳng tốc độ hai bánh xe đều nhau Khi robot đi thẳng thì tốc độ di chuyển của robot lớn nhất, khi robot lệch khỏi quỹ đạo tốc độ di chuyển robot chậm dần
Trang 12CHƯƠNG III SƠ ĐỒ KHỐI VÀ SƠ ĐỒ NGUYÊN LÝ
1 sơ đồ khối :
2 sơ đồ nguyên lý
Trang 13CHƯƠNG IV CÁCH LÀM MẠCH VÀ NGUYÊN TẮC HOẠT
ĐỘNG CỦA MẠCH
Mạch được mắc theo sơ đồ trên
1 Bộ phận cảm biến
+ khoảng cách giữa 2 module hồng ngoại là 1cm và khoảng cách giữa bên phát và thu khoảng cách là lmm được đặt thẳng hàng với nhau Dùng keo nến để dáng vào
+ khi ánh sáng thì module hồng ngoại sẽ giảm và ngược lại ta sử dụng module là nguồn sáng nên khi gặp nền trắng, ánh sáng sẽ phản xạ lên module hồng ngoại làm điển trở giảm xuống và khi gặp vạch đen thì ánh sáng sẽ khó phản xạ nên quang trở nhận ít ánh sáng làm điện trở tang Từ
đó robot có phân biết được vạch đen trên nền trắng ( dưới sự hỗ trợ của IC LM328)
2 Bộ phận điều khiển động cơ
2 động cơ DC có bộ giảm tốc giúp robot dễ nhận vạch hơn 2 động cơ được lắp phía sau xe và gắng chân ở phía trước
Trang 143 Bộ phận xử lý
a Điều khiển :
Vi xử lí nhận tín hiệu từ L298 để điều khiển động cơ tiến hay lùi và quay trái hoặc quay phải
b Code vi điều khiển:
Code được lập trình trình trên Arduino như sau:
#define inA1 2
#define inA2 3
#define inB1 4
#define inB2 5
#define ENA 10
#define ENB 11
void setup() {
pinMode(inA1, OUTPUT);
pinMode(inA2, OUTPUT);
pinMode(inB1, OUTPUT);
pinMode(inB2, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
Serial.begin(9600);
//đi chậm cho khỏi trượt Line
}
void loop(){
int a= digitalRead(9);
Serial.println(a);
int b= digitalRead(7);
Serial.println(b);
Trang 15int d=a+b+c;
if(d<1)
{
analogWrite(ENA, 99 );
analogWrite(ENB, 99);
lui();
Serial.println("lui");
}
else if (d>2)
{dung();
Serial.println("dung");
}
else if(d<2){
if(b>0)
{
analogWrite(ENA, 110 );
analogWrite(ENB, 110);
dithang();
Serial.println("di thang");
}
Trang 16if (a>c)
{
analogWrite(ENA, 170 );
analogWrite(ENB, 170);
quayphai();
Serial.println("quayphai");
}
else if (c>a)
{
analogWrite(ENA, 170 );
analogWrite(ENB, 170);
quaytrai();
Serial.println("quaytrai");
}
}
}
void dithang(){
digitalWrite(inA1,HIGH);
digitalWrite(inA2,LOW);
digitalWrite(inB1,HIGH);
digitalWrite(inB2,LOW);
}
void lui(){
digitalWrite(inA1,LOW);
Trang 17digitalWrite(inB2,HIGH);
}
void quaytrai(){
digitalWrite(inA1,HIGH);
digitalWrite(inA2,LOW);
digitalWrite(inB1,LOW);
digitalWrite(inB2,LOW);
}
void quayphai(){
digitalWrite(inA1,LOW);
digitalWrite(inA2,LOW);
digitalWrite(inB1,HIGH);
digitalWrite(inB2,LOW);
}
void dung(){
digitalWrite(inA1,LOW);
digitalWrite(inA2,LOW);
digitalWrite(inB1,LOW);
digitalWrite(inB2,LOW);
}
Trang 18CHƯƠNG V KẾT LUẬN
1.Ưu – Nhược điểm:
Đồ án đã cơ bản hoàn thành về các yêu cầu thiết kế và đã đạt được yêu cầu về kỹ thuật và ứng dụng, robot đã có thể dò đường trên đường cong Song bên cạnh đó đồ án của em còn một số hạn chế như: khả năng chính xác chưa được cao, tốc độ xử lí của robot còn chậm
Do hạn chế về thời gian và kiến thức nên đò án của em vẫn còn những hạn chế và thiếu sót Rất mong nhận được sự đóng góp ý kiến của các bạn sinh viên, của các thầy cô gáo để đồ án của em được hoàn thiện hơn
2 Hướng phát triển đề tài:
Từ ứng dụng điều khiển robot dò đường Ta có thể ứng dụng trong nhiều mặt như thám hiểm, vận chuyển hàng hóa trong nhà máy, xe không người lái
Cụ thể chúng ta có thể lập trình cho robot thông minh hơn và có khả năng làm nhiều công việc khác khi đã di chuyển linh hoạt kĩ thuật dò đường là vô cùng quan trọng trong các cuộc thi robocon chúng ta có thể tiếp tục phát triển nó
để làm ra các con robot có tính ứng dụng cao
3 Tài liệu tham khảo:
[1] vi điều khiển , cấu trúc- lập trình và ứng dụng ,TS Kiều Xuân Thực – nhà xuất bản Giáo Dục
[2] Internet:
www.dientuvietnam.net
www.keil.com
[3] các bài tham khảo về điện tử trên mạng internet
Trang 19NHẬN XÉT CỦA GIẢNG VIÊN
Đà Nẵng, ngày tháng năm 2016
GIẢNG VIÊN