Đồ án Điều khiển robot dò đường

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.

doc17 trang | Chia sẻ: oanhnt | Lượt xem: 1690 | Lượt tải: 4download
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.
Tài liệu liên quan