Ngày nay điều khiển tự động đã trở thành một nhu cầu không thể thiếu được củ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ủa chú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ệc thay cho con người. chúng ta thường bắt gặp các con robot trong các dây chuyền cô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ế.
Cũng chính vì mục đích đó mà chúng em thực hiện đồ án điều khiển robot dò đường. nó lại là bước khởi đầu trong lập trình robot để robot có thể thực hiện các công việc tiếp theo. Đây chỉ là một công việc nhỏ của lập trình điều khiển robot nhưng qua quá trình thiết kế và thi công đề tài chúng em đã rút ra được rất nhiều kinh nghiệm thực tiễn quý báu. Mục đích của đề tài hướng đến là tạo ra bước đầu cho sinh viên thử nghiệm những ứng dụng của vdk trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến.
Mặc dù đã cố gắng hết sức mình để hoàn thành xong đồ án môn học bằng các kiến thức đã học, một số sách tham khảo và một số nguồn tài liệu khác nhưng cũng không tránh khỏi những thiếu sót. Do vậy, chúng em rất mong được sự góp ý quý báu của thầy cô và các bạn để đề tài có thể hoàn thiện ở mức cao nhất.
17 trang |
Chia sẻ: oanhnt | Lượt xem: 1690 | Lượt tải: 4
Bạn đang xem nội dung tài liệu Đồ án Điều khiển robot dò đường, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
trang
Lời nói đầu……………………………………………………………………2
PHẦN 1: Ý tưởng, mục đích thiết kế đề tài …………………………………3
Giới thiệu chung…………………………………………………..
Sơ đồ khối…………………………………………………………
Các thanh ghi……………………………………………………..
PHẦN 2 : Thiết kế đồ án………………………………………………
Sơ đồ khối…………………………………………………………
Các modun mạch ……………………………………………………
PHẦN 3: Cấu tạo và nguyên lí hoạt động …………………………...……………
Mạch Nguyên lý ……………………………………….
2. Phân tích các mạch modul thành phần………………………………
Nguyên lý hoạt động…………………………………………..
PHẦN 4: Chương trình lập trình…………………………………………….
Lưu đồ thuật toán……………………………………………..
Chương trình lập trình………………………………………….
PHẦN 5 Kết luận………………………………………………………......
Ưu Nhươc điểm và Hướn phát triển………………………………..
Tài liệu tham khảo..…………………………………………………
LỜI NÓI ĐẦU
Ngày nay điều khiển tự động đã trở thành một nhu cầu không thể thiếu được củ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ủa chú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ệc thay cho con người. chúng ta thường bắt gặp các con robot trong các dây chuyền cô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ế.
Cũng chính vì mục đích đó mà chúng em thực hiện đồ án điều khiển robot dò đường. nó lại là bước khởi đầu trong lập trình robot để robot có thể thực hiện các công việc tiếp theo. Đây chỉ là một công việc nhỏ của lập trình điều khiển robot nhưng qua quá trình thiết kế và thi công đề tài chúng em đã rút ra được rất nhiều kinh nghiệm thực tiễn quý báu. Mục đích của đề tài hướng đến là tạo ra bước đầu cho sinh viên thử nghiệm những ứng dụng của vdk trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến.
Mặc dù đã cố gắng hết sức mình để hoàn thành xong đồ án môn học bằng các kiến thức đã học, một số sách tham khảo và một số nguồn tài liệu khác nhưng cũng không tránh khỏi những thiếu sót. Do vậy, chúng em rất mong được sự góp ý quý báu của thầy cô và các bạn để đề tài có thể hoàn thiện ở mức cao nhất.
Chúng em xin chân thành cảm ơn !
Nhóm sinh viên thực hiện :
Phạm Đình Bình
Vũ Văn Hưng
Trần Anh Quang
Lớp ĐH CNCĐT2-K3
PHẦN 2: GIỚI THIỆU VỀ 89S52
Giới thiệu chung
AT89s52 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS, chất lượng cao, công xuất thấp với 8 KB Flash. Thiết bị này được chế tạo bằng cách sử dụng kỹ thuật bộ nhớ không bốc hơi nhiệt độ cao của ATMEL và tương thích với chuẩn MCS-51 về tập lệnh và các chân ra. Flash on-chip cho phép bộ nhớ lập trình được lập trình trong hệ thống bởi một lập trình viên bình thường. bằng cách nối 1CPU 8 bit với một Flash trên chip đơn, AT89s52 là một vi điều khiên mạnh nó có khả năng sử lí với tốc độ cao và là giải pháp về giá cả đối với nhiều ứng dụng vi điều khiển.
AT89s52 cung cấp những đặc tính chuẩn như sau : 8 KB bộ nhớ chỉ đọc có thể xóa và lập trình nhanh, 256 Bytes RAM, 32 đường xuất nhập , 3 timer/counter 16 bit, 6 vector ngắt có cấu trúc 2 mức ngắt. một potr nối tiếp , mạch tạo xung clock và bộ dao động on-chip. Thêm vào đó, AT89s52 được thiết kế với logic tĩnh cho hoạt động đến mức không tân số và hỗ trợ hai chế độ phần mềm có thể chọn chế độ tiết kiệm công xuất, hay chế độ lười sẽ dừng CPU trong khi vẫn cho phép RAM, timer/counter, port nối tiếp và hệ thông ngắt tiếp tục hoạt động. chế độ giảm công xuất lưu nội dung RAM nhưng sẽ treo bộ dao động làm mất khả năng hoạt động của tất cả những chức năng khác cho đến khi reset hệ thống.
Các đặc điểm chủ yếu:
Tường thích hoàn toàn với họ MCS-51 cua intel
Bộ nhớ chương trình 8K Byte thuộc loại Flash memory
Độ bền :1000 lần ghi xóa
Tần số hoạt động: 0 đến 24 MHz
3 chế độ khóa bộ nhớ
Bộ nhớ dữ liệu (RAM) gồm 256 byte
32 đường I/O lập trình được (4 port)
6 nguồn ngắt
Chế độ hạ nguồn và chế độ lười tiêu tốn công suất thấp
Hình 4.Sơ đồ chân AT89S52
Hình 5.Sơ đồ khối AT89S52
2.các thanh ghi bộ định thời (chỉ nói về timer 0 và timer 1)
Thanh ghi chế độ định thời TMOD
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho timer 0 và timer 1
GATE1
C/#T1
M1
M0
GATE0
C/#T0
M1
M0
Hình : thanh ghi TMOD
Bit
Tên
Timer
Mô tả
7
GATE1
1
Bit mở cho timer 1, khi được dặt bằng 1 thì timer 1 chỉ chạy khi chân INT1 ở mức cao
6
C/#T1
1
Bit chọn chế độ timer/counter cho timer
1= đếm sự kiện
0= định khoảng thời gian
5
M1
1
Bit chọn chế độ timer 1
4
M0
1
Bit chọn chế độ timer 1
00: chế độ 0 - timer 13 bit
01:chế độ 1 - timer 16 bit
10: chế độ 2 – 8 bit tự động nạp lại
11: chế độ 3 – tách timer
3
GATE0
0
Bit mở cho timer 0, khi được dặt bằng 1 thì timer 0 chỉ chạy khi chân INT0 ở mức cao
2
C/#T0
0
Bit chọn chế độ timer/counter cho timer
1= đếm sự kiện
0= định khảng thời gian
1
M1
0
Bit chọn chế độ timer 0
0
M0
0
Bit chọn chế độ timer 0
Thanh ghi điều khiển timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và timer 1.
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0
TF1
TR1
TF0
TR0
IT1
IE1
IT0
IE0
Thanh ghi TCON
Bit
Kí hiệu
Địa chỉ
Mô tả
TCON.7
TF1
8FH
Cờ báo tràn của timer 1
TCON.6
TR1
8EH
Bit điều khiển timer 1 hoạt động
TCON.5
TF0
8DH
Cờ báo tràn của timer 0
TCON.4
TR0
8CH
Bit điều khiển timer 0 hoạt động
TCON.3
IT1
8BH
Cờ ngắt do timer 1
TCON.2
IE1
8AH
Cờ ngắt ngoài 1
TCON.1
IT0
89H
Cờ ngắt do timer 0
TCON.0
IE0
88H
Cờ ngắt ngoài 0
2.thanh ghi ngắt
Thanh ghi cho phép ngắt IE
EA
-
ET2
ES
ET1
EX1
ET0
EX0
Bit
Kí hiệu
Địa chỉ bit
Mô tả
IE.7
EA
AFH
Cho phép hoặc cấm toàn bộ
IE.6
-
AEH
Không được đihj nghĩa
IE.5
ET2
ADH
Cho phép ngắt từ timer 2
IE.4
ES
ACH
Cho phép ngắt port nối tiếp
IE.3
ET1
ABH
Cho phép ngắt timer 1
IE.2
EX1
AAH
Cho phép ngắt ngoài 1
IE.1
ET0
A9H
Cho phép ngắt từ timer 0
IE.0
EX0
A8H
Cho phép ngắt ngoài 0
Thanh ghi ưu tiên IP:
-
-
PT2
PS
PT1
PX1
PT0
PX0
Bit
kí hiệu
Địa chỉ bit
Mô tả
IP.7
-
IP.6
-
IP.5
PT2
BDH
Ưu tiên ngắt từ timer 2
IP.4
PS
BCH
Ưu tiên ngắt port nối tiếp
IP.3
PT1
BBH
Ưu tiên ngắt từ timer 1
IP.2
PX1
BAH
Ưu tiên ngắt ngoài 1
IP.1
PT0
B9H
Ưu tiên ngắt từ timer 0
IP.0
PX0
B8H
Ưu tiên ngắt ngoài 0
Các cờ ngắt
Ngắt
Cờ
Số hiệu
rst
RST
Bên ngoài 0
IE0
0
Timer 0
TF0
1
Bên ngoài 1
IE1
2
Timer 1
TF1
3
Port nối tiếp
TI hoặc R1
4
Timer 2
TX2
5
Khi chỉ đến cờ ngắt, cờ ngắt tự động bị xóa bởi phần cứng, ngoại trừ R1 và TI phải xóa bằng phần mềm.
PHẦN 2: THIẾT KẾ ĐỒ ÁN
Sơ đồ khối
các modun mạch
mạch tạo xung và reset
mạch cảm biến
mạch công suất
3) Các Linh Kiện chính trong mạch:
IC ổn áp LM7805 ha điện áp trong dải 0—36v xuống 5v
Tran công suất 2SD1275
1:chan bazơ
2:chân colecter
3:chân emiter
Khi cấp tín hiệu điều khiển vào chân 1 thì dòng dc phép chạy từ chân số 2 sang chân số 3,dòng tải chịu dc lên tới 1,5A
àopto TLP521
Opto dùng để cách ly phần công suất với phần VDK,cấu tạo có 1led phát bên trái và phototransiter bên phải.
LM324
Có 4 bộ opam dánh số từ 1 đến 4 như trong hình,
PHẦN 3: CẤU TẠO VÀ NGUYÊN LÍ HOẠT ĐỘNG
Mạch Nguyên lý:
Phân tích các mạch Modul:
Modul tạo xung:
AT89S52 có một bộ chia tần số bên trong chip, bộ này sẽ cung cấp xung clock cho các khối trong chip từ nguồn dao động bên ngoài sử dụng mạch tạo dao động từ thạch anh qua 2 chân là XTAL1 và XTAL2.
Trong đồ án này mạch dao dộng thạnh anh tạo tần số12Mhz
Mạch tạo xung
Modul Reset:
Sử dụng nút nhấn để reset cho chip thông qua chân RST là ngõ reset của chip. Khi tín hiệu được đưa lên mức cao trong ít nhất 2 chu kỳ máy thì các thanh ghi trong bộ vi điều khiển được tải những giá trị thích hợp để khởi động hệ thống.
Sơ đồ nguyên lí mạch reset
Modul Cảm biến:
mạch sử dụng 4 cặp led thu phát. Khi 4 led phát được bật nếu gặp nền trắng sẽ phản quang lại led thu nhận được. (led thu chính là quang trở ) khi được chiếu sáng làm quang trở thông tín hiệu được đưa qua bộ so sánh op amp (của LM324) ta tín hiệu đầu ra của bộ so sánh Op Amp với mức logic=1 đưa về chân của vi điều khiển và ngược lại nếu không gặp nền trắng quang trở sẽ không thông tín hiệu được đưa qua bộ so sánh op amp ta được tín đầu ra của bộ so sánh Op Amp với mức logic =0 tín hiệu trả về chân vi điều khiển.
Sơ đồ nguyên lí mạch cảm biến
Mạch công suất
Khi vi điều khiển nhận được tín hiệu của cảm biến sẽ cung cấp độ rộng xung thích hợp vào chân của rơle thông qua opto. Khi tín hiệu vào rơle rơle sẽ cấp dòng thích hợp cho động cơ. làm động cơ chuyển động với tốc độ mong muốn.
Sơ đồ nguyên lí mạch công suất
Nguyên lí hoạt động
Nguyên tắc hoạt động của của robot là : khi cấp nguồn cho robot thi mạch tạo xung bắt đầu hoạt động, cảm biến sẽ được bật. Tín hiệu từ cảm biến sẽ truyền đến vi điều khiển. Vi điều khiển sẽ xử lí tín hiệu và cung cấp độ rộng xung thích hợp cho động cơ.
PHẦN 4 CHƯƠNG TRÌNH LẬP TRÌNH
Lưu đồ thuật toán
Code cho Vi Điều Khiền:
#include
#include
// dinh nghia cac chan dieu khien dong co
sbit DC_R=P1^1; // chan dk dong co phai
sbit DC_L=P1^0; // chan dk dong co trai
// dinh nghia cac trang thai cua cam bien quang ung voi gia tri doc dc tu port 2 * * * * * * * *
#define N 0xC0 // 0x11 00 0000 lech han ra ngoai
#define L5 0XE0 // 0x11 10 0000 lech trai cap 5
#define L4 0xF0 // 0x11 11 0000 lech trai cap 4
#define L3 0xD0 // 0x11 01 0000 lech trai cap 3
#define L2 0xD8 // 0x11 01 1000 lech trai cap 2
#define L1 0xC8 // 0x11 00 1000 lech trai cap 1
#define T 0xCC // 0x11 00 1100 chay thang
#define R1 0xC4 // 0x11 00 0100 lech phai cap 1
#define R2 0xC6 // 0x11 00 0110 lech phai cap 2
#define R3 0xC2 // 0x11 00 0010 lech phai cap 3
#define R4 0xC3 // 0x11 00 0011 lech phai cap 4
#define R5 0xC1 // 0x11 00 0001 lech phai cap 5
unsigned char lech_trai,lech_phai; // bien nho trang thai lech cua robot
unsigned char TRANGTHAI,dem=0; // tranthai va bien dem
unsigned char PWML,PWMR; // bien bam xung
void delay(unsigned int a)
{
unsigned int i;
for(i=0;i<a;i++); // tao tre bang cach dem a lan
}
//********************** HAM DO DUONG ************************//
void do_duong()
{
TRANGTHAI=P2; // doc trang thai bat vach tu port2
switch (TRANGTHAI) // chon trang thai
{
case T: { PWML=50;PWMR=50; lech_trai=0;lech_phai=0;break;} //che do chay thang,cap xung dc trai 50, dc fai 50
//-------------------------------------------------------------------
case L1: { PWML=55;PWMR=45; lech_trai=1;lech_phai=0;break;} //che do lech trai cap1, cap xung dc trai > dc fai
case L2: { PWML=60;PWMR=40; lech_trai=1;lech_phai=0;break;} //che do lech trai cap2, cap xung dc trai >> dc fai
case L3: { PWML=65;PWMR=35; lech_trai=1;lech_phai=0;break;} //....
case L4: { PWML=70;PWMR=30; lech_trai=1;lech_phai=0;break;}
case L5: { PWML=75;PWMR=25; lech_trai=1;lech_phai=0;break;}
//-------------------------------------------------------------------
case R1: { PWMR=45;PWML=55; lech_trai=0;lech_phai=1;break;} //che do lech phai cap1, cap xung dc trai < dc fai
case R2: { PWMR=40;PWML=60; lech_trai=0;lech_phai=1;break;} //che do lech phai cap1, cap xung dc trai << dc fai
case R3: { PWMR=35;PWML=65; lech_trai=0;lech_phai=1;break;} //....
case R4: { PWMR=30;PWML=70; lech_trai=0;lech_phai=1;break;}
case R5: { PWMR=25;PWML=75; lech_trai=0;lech_phai=1;break;}
//-------------------------------------------------------------------
case N: {//che do lech han ra ngoai dc nho huong lech boi bit lenh_trai va lech_phai
if(lech_trai==1) { PWML=50; PWMR=0;} //lech han ben trai; dc trai quay, dc phai dung lai
if(lech_phai==1) { PWMR=50; PWML=0;} //lech han ben phai; dc phai quay, dc trai dung lai
}
}
}
//****************** CHUONG TRINH CHINH ***************
void ngatT0 (void) interrupt 1
{
dem++; // moi lan timer0 dem dc 10 lan thi ngat tran. bien dem tang len 1
if (dem<=PWML) // neu bien dem dang con <= PWML(bien nay dc set o ham do_duong)
DC_L=0; // thi tat dong co trai
else
DC_L=1; // neu ko thi bat dong co trai
if (dem<=PWMR) // tuong tu... neu bien dem dang <= PWMR
DC_R=0; // thi tat dpng co phai
else
DC_R=1; // neu ko thi thi bat dong co phai
if (dem==200) // khi bien dem tang den 200, nghi la da ngat dc 200 lan thi set lai bien dem =0
dem=0;
}
void main(void)
{
P0=P1=P2=P3=0xff;
TMOD=0X02; // timer0 che do 2,che do tu nap lai
TH0=TL0=-10; // nap gia tri 10 cho thanh ghi, timer dem 10lan thi tran.
TR0=1; // cho phep timer hoat dong
TF0=0; // xoa co tran
IE=0x82; // cho phep ngat timer1
IP=0; // muc uu tien =0
delay(1000); // goi ham delay, va cho delay 1000 lan
while(1) // vong lap vo han.
{
do_duong(); // goi ham do_duong
}
}
// finish (^_^)
PHẦN 5: 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 chúng 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 con chậm…
Do hạn chế về thời gian và kiến thức nên đồ án của nhóm 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ô giáo để đồ án của nhóm 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 do đườ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(Kiều Xuân Thực)
-NXB Giáo Dục
2.Internet:
www.dientuvietnam.net
www.alldatasheet.com
www.keil.com/c51
www.atmel.com/atmel/acrobat/doc1919.pdf
3.Các box thảo luận về điện tử trên mạng internet.