Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
1,07 MB
Nội dung
LỜI CẢM ƠN Để hoàn thành đồ án , em xin chân thành cảm ơn đến ban Giám Hiệu nhà trường, quý thầy cô trường đặc biệt quý thầy cô khoa Điều Khiển Tự Động Trường Đại Học Tôn Đức Thắng, tận tình dẫn, truyền đạt kiến thức tạo điều kiện thuận lợi cho em suốt trình học tập vừa qua Đặc biệt em xin chân thành cảm ơn Thầy Ngơ Thanh Hải tận tình hướng dẫn, quan tâm theo dõi động viên em để hoàn thành tốt đồ án tốt nghiệp Ngoài ra, em xin gửi lời cảm ơn đến tất bạn bè khóa gia đình giúp đỡ em vật chất tinh thần để em thực tốt luận văn tốt nghiệp TP Hồ Chí Minh, tháng 07, năm 2009 Sinh viên thực GVHD: TH.S NGƠ THANH HẢI SVTH: HỒNG NGỌC HÙNG MỤC LỤC CHƯƠNG GIỚI THIỆU VỀ ROBOT 1.1 Giới thiệu robot 1.2 Mơ hình động học robot học đường 1.2.1 Mơ hình kết cấu : 1.3 Động học robot CHƯƠNG GIỚI THIỆU CÁC LINH KIỆN ĐƯỢC SỬ DỤNG 2.1 Vi điều khiển họ 8051- AT89S52 2.1.1 Các đặc điểm chủ yếu AT89S52: 2.1.2 Cấu tạo chân : 2.1.3 Sơ đồ khối : 2.1.4 Tổ chức nhớ 12 2.1.5 Bộ nhớ liệu 13 2.1.6 Mô tả chức chân : 15 2.1.7 Chân PSEN\ : 16 2.1.8 Chân EA: 16 2.1.9 Chân XTAL1, XTAL2 : 17 2.1.10 Chân RST : 17 2.1.11 Chân Vcc, Gnd : 18 2.1.12 HOẠT ĐỘNG TIMER CỦA 89S52 : 19 2.1.13 HOẠT ĐỘNG NGẮT 25 2.2 KHẢO SÁT LCD LMB162A 27 2.2.1 Sơ đồ chân: 28 2.2.2 Sơ đồ khối : 28 2.2.3 Các mã lệnh xử lý LCD 30 2.2.4 Mô tả mã lệnh 31 2.2.5 Mã lệnh 32 2.3 MOSFET 32 2.3.1 Cấu tạo 32 2.4 RAM 6264 35 2.4.1 Mô tả tổng quát 35 2.4.2 Sơ đồ chân 35 2.4.3 Sơ đồ khối 35 2.5 MOTOR DC MỘT CHIỀU 36 2.5.1 Sơ lược động điện chiều: 36 2.5.2 Các phận động chiều 36 2.5.3 Điều khiển chiều quay DC motor 38 2.6 Điều xung PWM, điều chỉnh vận tốc cho động 41 2.6.1 Định nghĩa 41 2.6.2 Phương pháp điều rộng xung AT89S52 42 2.6.3 Lưu đồ điều rộng xung 43 2.7 Encoder cho bánh xe : 43 2.7.1 Encoder 43 CHƯƠNG CÁC PHƯƠNG PHÁP ĐIÊU KHIỂN TRONG ROBOT 46 3.1 ĐO TỐC ĐỘ ĐỘNG CƠ 46 LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGƠ THANH HẢI SVTH: HỒNG NGỌC HÙNG 3.1.1 Hai thiết bị thường dùng để đo tốc độ động 46 3.2 Nguyên nhân gây sai số sử dụng encoder 47 3.3 Phương pháp dùng vi điều khiển đọc lúc encoder 48 3.4 XÁC ĐỊNH ĐƯỜNG CONG QUÁ ĐỘ 49 3.4.1 Lấy mẫu tốc độ 49 3.5 Cấu tạo phần cứng 51 3.5.1 Khối nguồn 51 3.5.2 Sơ đồ mạch điều khiển : 51 3.5.3 Mạch công suất điều khiển động 53 CHƯƠNG THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN 54 4.1 Lưu đồ giải thuật robot học đường 54 4.2 Lưu đồ giải thuật chế độ chạy: 56 LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGƠ THANH HẢI SVTH: HỒNG NGỌC HÙNG LỜI MỞ ĐẦU Trong thời đại nay, máy móc dần thay công việc nặng nhọc cho người, có khả hoạt động liên tục, cho suất cao, lợi nhuận tăng giảm khả tai nạn cho người đến tối thiểu Trong sống, phải vận động, di chuyển, vận chuyển đồ vật từ nơi sang nơi khác, vấn đề đặt khơng để máy móc làm chuyện sử dụng thời gian để làm việc khác nhằm tăng thu nhập giành thời gian giải trí sau nhiều làm việc cực nhọc Đã có nhiều đề tài nghiên cứu nhằm ứng dụng máy móc vào việc di chuyển đến địa điểm cần thiết, có nhiều phương án đưa để giải vấn đề như: điều khiển xe chạy theo lộ trình qua vệ tinh, định hướng đến mục tiên nhờ vào đường dẫn (dò line), sử dụng camera để xử lý vấn đề này… đề tài có kết áp dụng đời sống ví dụ: robo Asimo Honda, hay BigDog công ty Boston Dynamics sử dụng cho quân sự,… Mặc dù có nhiều cơng trình nghiên cứu cơng trình chưa áp dụng rộng rãi đời sống nhiều lý khác Bắt nguồn từ ý tưởng cần có máy móc giúp người di chuyển hàng hóa từ chỗ sang chỗ khác, nên em chọn đề tài “ Robot học đường ”.Nội dung đề tài robot từ vị trí đến vị trí khác theo đường mà học từ lúc đầu Hướng giải đề tài này, lúc bắt đầu phải dạy cho trước, sau cho chạy tự động máy CNC Khả ứng dụng đề tài : robot giúp người việc lau sàn nhà, vận chuyển hàng hóa từ vị trị đến vị trí khác nhà máy xí nghiệp LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGÔ THANH HẢI CHƯƠNG SVTH: HOÀNG NGỌC HÙNG GIỚI THIỆU VỀ ROBOT 1.1 Giới thiệu robot Robot định nghĩa loại xe có khả tự di chuyển , tự vận động ( lập trình lại ) điều khiển tự động để thực thành công công việc giao.Theo lý thuyết, môi trường hoạt động robot đất, nước, khơng khí, không gian vũ trụ hay tổ hợp chúng ta.Địa hình bề mặt mà robot di chuyển phẳng thay đổi lồi lõm Theo phận thực chuyển động , ta chia robot làm lớp : chuyển động chân ( legged) bánh ( wheeled) Trong lớp đầu tiên, chuyển động có nhờ chân khí bắt chước chuyển động người động vật Robot di chuyển tốt địa hình lồi lõm, phức tạp.Tuy nhiên , cách phối hợp chân vấn đề giữ vững tư cơng việc khó khăn Lớp lại di chuyển bánh tỏ thức tế , chúng làm việc tốt hầu hết địa hình người tạo Điều khiển robot di chuyển bánh đơn giản nhiều , gần ln đảm tính ổn định cho robot Lớp chia làm loại robot : loại chuyển động băng bánh xe ( phổ biến ) ( hình 1.1a,b,c,f,i) loại chuyển động vịng xích ( cần mơmen phát động lớn hay cần di chuyển vùng đầm lầy, cát băng tuyết ) ( hình 1.1 d,e ) , loại hỗn hợp bánh xe xích ( gặp) Tiềm ứng dụng robot rộng lớn Có thể kể đến robot vận chuyển vật liệu , hàng hóa tịa nhà , nhà máy , cửa hàng ,sân bay thư viện ; robot quét dọn đường phố , khoang chân không; robot kiểm tra môi trường nguy hiểm; robot cảnh giác ,do thám; robot khám phá không gian, di chuyển hành tinh ; robot hàn , sơn nhà máy ; robot xe lăn phục vụ nhười khuyết tật v.v… Mặc dù nhu cầu ứng dụng cao , hạn chế chưa giải robot chi phí chế tạo cao, khơng cho phép chúng sử dụng rộng rãi Một nhược điểm khác robot phải kể đến thiếu tính linh hoạt thích ứng làm việc vị trí khác LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGÔ THANH HẢI SVTH: HỒNG NGỌC HÙNG Hình 1.1 Một số hình ảnh robot a ) Robot Nomad 150 b ) Sự kết hợp robot tự hành Nomadic XR4000 cánh tay PUMA 560 c ) Robot rùa d ) Robot Houdini di chuyển xích e ) Robot tự động nghiên cứu vùng bắc cực f ) Robot SRR FIDO NASA g ) Robot tự hành chân spiderbot di chuyển hỏa h ) Robot sáu chân Ghanghis i ) Robot Meet Timbot dùng test phần mềm hệ thống nhúng phịng thí nghiệm LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGƠ THANH HẢI SVTH: HỒNG NGỌC HÙNG 1.2 Mơ hình động học robot học đường 1.2.1 Mơ hình kết cấu : Hình 1.2: Mơ hình kết cấu robot Kết cấu robot lựa chọn gồm bánh có bánh chủ động ( phía sau ) bánh đa hướng phía trước có khả quay tùy ý Với kết cấu khí robot có khả di chuyển linh hoạt: tiến, lùi quay góc 1.3 Động học robot Hình 1.3 Động học robot LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGÔ THANH HẢI SVTH: HOÀNG NGỌC HÙNG Gọi s1, s2 đoạn dịch chuyển bánh chủ động Ta có : s1 = 1 r s2 = 2 r Với s1, s2 , r lượng dịch chuyển chiều quay bán kính bánh chủ động T khoảng cách bánh RD, bán kính quay góc dịch chuyển robot mặt phẳng nằm ngang Khi : Trong luận văn này, ta xét trường hợp đặc biệt robot chuyển động : Khi s2 = s1: RD = , = , robot theo quỹ đạo đường thẳng ( tiến lùi ) Khi s2 = - s1: RD = 0, = 2s2/T, robot quay quanh điểm bánh xe D x, y : lượng dịch chuyển theo phương hệ tọa độ gắn với robot x = RD sin( ) y = RD ( - cos( )) : lượng dịch chuyển robot theo phương gắn với hệ tọa độ gốc : Vị trí robot xác định tọa độ gốc D ( XD YD ) + gốc định hướng D, tọa độ thời điểm thứ I xác định sau : CHƯƠNG GIỚI THIỆU CÁC LINH KIỆN ĐƯỢC SỬ DỤNG 2.1 Vi điều khiển họ 8051- AT89S52 Do họ MCS-51 trở thành chuẩn công nghiệp nên có nhiều hãng sản xuất , điển hình ATMEL Corporation Hãng kết hợp nhiều tính dựa tảng kỹ thuật để tạo vi điều khiển tương thích với MCS-51 mạnh mẽ LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGƠ THANH HẢI SVTH: HỒNG NGỌC HÙNG Flash on-chip cho phép nhớ lập trình được, lập trình hệ thống lập trình viên bình thường Bằng cách nối CPU bit với Flash chip đơn , AT89S52 vi điêu khiển mạnh ( có cơng suất lớn ), cung cấp linh động cao giải pháp giá ứng dụng vê vi điều khiển 2.1.1 Các đặc điểm chủ yếu AT89S52: Kbyte nhớ chương trình 256 byte Ram 32 đường I/O lập trình ( port ) timer/ counter 16 – bit Tần số hoạt động : 0Hz đến 24Hz Giao tiếp nối tiếp 64 KB vùng nhớ mã 64 KB vùng nhớ liệu Bộ xử lý bit ( thao tác bit riêng rẽ ) 210 vị trí nhớ định vị bit Độ bền : 1000 lần ghi/xóa nguồn ngắt 4s cho hoạt động nhân chia Chế độ hạ nguồn chế độ nghỉ tiêu tôn công suất thấp 2.1.2 Cấu tạo chân : LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGÔ THANH HẢI SVTH: HỒNG NGỌC HÙNG Hình 1.4 Sơ đồ chân 2.1.3 Sơ đồ khối : LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGÔ THANH HẢI LUẬN VĂN TỐT NGHIỆP SVTH: HỒNG NGỌC HÙNG Trang 55 GVHD: TH.S NGƠ THANH HẢI SVTH: HOÀNG NGỌC HÙNG 4.2.Lưu đồ giải thuật chế độ chạy: LUẬN VĂN TỐT NGHIỆP Trang 56 GVHD: TH.S NGƠ THANH HẢI SVTH: HỒNG NGỌC HÙNG TÀI LIỆU THAM KHẢO Tiếng việt [1] Tống Văn On, Hoàng Đức Hải, Họ vi điều điều khiển 8051, nhà xuất lao động xã hội [2] Ngô Diên Tập, Vi điều khiển với lập trình C, nhà xuất khoa học kỹ thuật Hà Nội [3] Kiều Xuân Thực ( chủ biên), Vũ Thị Thu Hương, Vũ Trung Kiên, Vi điều khiển cấu trúc – lập trình ứng dụng, nhà xuất giáo giục LUẬN VĂN TỐT NGHIỆP Trang 57 GVHD: TH.S NGÔ THANH HẢI SVTH: HỒNG NGỌC HÙNG Chương trình robo.c: #include sbit nut1=P1^0; sbit nut2=P1^1; sbit nut3=P1^2; sbit nut4=P1^3; sbit cl1=P1^4; sbit cl2=P1^5; sbit cr1=P1^6; sbit cr2=P1^7; sbit pwmL=P3^0; sbit pwmR=P3^1; bit learn=0; unsigned int luuxung_r=0,luuxung_l=0; unsigned int luuxung_r1=0,luuxung_l1=0; unsigned int xung_l=0,xung_r=0; unsigned char Pwm_L=0,Pwm_R=0,tp=0,dem=0; #include #include #include void main() { unsigned int i=0; li=0; cl1=1; cl2=0; cr1=1; cr2=0; for(i=0;ii))) { Pwm_L=Pwm_L>>i; i++; } if(xung_r>(ssR-(ssR>>j))) { Pwm_R=Pwm_R>>j; j++; } } in0=0; in1=0; } mov(0,5); dat_str("xong"); cl1=0; cl2=1; cr1=0; cr2=1; pwmL=0; pwmR=0; delay(400); Pwm_L=0; Pwm_R=0; pwmL=1; LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGÔ THANH HẢI SVTH: HOÀNG NGỌC HÙNG pwmR=1; EA=0; } Thư viện config_timer.c unsigned int t_xung=0; //chuong trinh cai dat ngat void int_timer() { TMOD=85; T2MOD=0; TH0=0; TL0=0; TH1=0; TL1=1; TH2=0xFF; TL2=0x9B; //tao thoi gian 100us ET2=1; ET0=1; ET1=1; TR0=1; TR1=1; TR2=0; EA=0; } //=================================// // chuong trinh doc xung encoder void ngt0() interrupt { TF0=0; TR0=0; Pwm_L=100; cl1=0; cl2=1; LUẬN VĂN TỐT NGHIỆP Trang GVHD: TH.S NGÔ THANH HẢI // // SVTH: HOÀNG NGỌC HÙNG cr1=1; cr2=0; in0=1; } //=================================// // chuong trinh doc xung encoder void ngt1() interrupt { TF1=0; TR1=0; Pwm_R=100; // cl1=1; // cl2=0; cr1=0; cr2=1; in1=1; } //=================================// //chuong trinh tao thoi gian chuan// void Timer2() interrupt { TF2=0; TR2=0; TH2=0xFF; //tao thoi gian 100us TL2=0x9B; TR2=1; //dieu rong xung dem++; if(dem>100)dem=0; if(Pwm_L!=0) { if(dem