XE tự HÀNH bám TƯỜNG PHẢI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG PHẢI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG PHẢI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG PHẢI DÙNG PIC (có code và layout) XE tự HÀNH bám TƯỜNG PHẢI DÙNG PIC (có code và layout)
ĐỒ ÁN XE TỰ HÀNH BÁM TƯỜNG PHẢI MỤC LỤC DANH MỤC CÁC HÌNH VẼ CHƯƠNG 1.GIỚI THIỆU 1.1 GIỚI THIỆU VỀ XE TỰ HÀNH BÁM TƯỜNG PHẢI: 1.2 CÁC THÔNG SỐ KĨ THUẬT: CHƯƠNG 2.THIẾT KẾ MẠCH 2.1 SƠ ĐỒ GIẢI THUẬT: 2.2 KHỐI PHÁT HIỆN VẬT CẢN TỪ MODULE HỒNG NGOẠI: 2.3 KHỐI ĐIỀU KHIỂN ĐỘNG CƠ: 2.4 KHỐI XỬ LÝ TRUNG TÂM: .6 2.5 NGUYÊN LÝ HOẠT ĐỘNG: .9 2.6 ĐIỀU CHẾ ĐỘ RỘNG XUNG: CHƯƠNG 3.KẾT QUẢ MÔ PHỎNG VÀ LÀM MẠCH THỰC TẾ .11 3.1 KẾT QUẢ MÔ PHỎNG ĐIỀU KHIỂN ĐỘNG CƠ: .11 3.2 MẠCH PCB VÀ MẠCH THẬT: 12 3.2.1 Mạch pcb khối xử lý trung tâm: 12 3.2.2 Mạch thật khối xử lý trung tâm: 13 CHƯƠNG 4.KẾT LUẬN 16 4.1 KẾT QUẢ: 16 4.2 HƯỚNG PHÁT TRIỂN: 16 TÀI LIỆU THAM KHẢO 17 PHỤ LỤC……… .18 DANH MỤC CÁC HÌNH VẼ Hình 2.2.1 khối phát vật cản .3 Hình 2.2.2 cấu tạo bên IC LM393 Hình 2.3.1 khối điều khiển động Hình 2.6.1 Các tham số PWM………………………………………9 Hình 3.1.1 kết mơ 12 Hình 3.2.1 mạch pcb 13 Hình 3.2.2 mạch thật tế mặt .14 Hình 3.2.2.2 mạch thật tế mặt 15 Hình 3.2.2.3 mạch thật Module hồng ngoại 16 Hình 3.2.2.4 mạch thật tế Module L298 16 ĐỒ ÁN 1/20 CHƯƠNG GIỚI THIỆU 1.1 Giới thiệu xe tự hành bám tường phải: Đề tài Robot lĩnh vực lớn cách mạng khoa học công nghệ Ngày người phát triển nhiều loại Robot tự hành như: Robot dò đường, Robot giúp việc, Robot vận chuyển… Do môi trường Robot khác dể thay đổi nên việc thiết lập thêm cho Robot chức tự tránh vật cản hay bám tường cần thiết Đề tài xe tự hành bám tường phải sử dụng cảm biến hồng ngoại 1.2 Các thông số kĩ thuật: Sử dụng PIC 16F877A làm xử lí trung tâm Sử dụng Module LM298 điều khiển động Sử dụng Module hồng ngoại để phát vật cản Sữ dụng mơ hình xe làm vật liệu nhựa Động DC 12v Nguồn cung cấp PIN 18650 Xe tự hành bám tường phải ĐỒ ÁN 2/20 CHƯƠNG THIẾT KẾ MẠCH 1.3 Sơ đồ giải thuật: Bắt đầu Nhận tín hiệu từ hồng ngoại Hồng ngoại1==0 Đúng Rẽ trái Đúng Hồng ngoại2 ==0 Sai Đi thẳng Xe tự hành bám tường phải Rẽ trái ĐỒ ÁN 3/20 1.4 Khối phát vật cản từ module hồng ngoại: Hình 2.2.0: khối phát vật cản Module hồng ngoại sử dụng IC LM393 làm IC so sánh áp Khi khơng có vật cản V 1+ > V- nên ngõ LM393 mức Ngược lại có vật cản LED thu hồng ngoại nhận tín hiệu từ LED phát hồng ngoại, nội trở LED thu hồng ngoại giảm xuống, trường hợp V+ < V- nên ngõ LM393 mức Xe tự hành bám tường phải ĐỒ ÁN 4/20 IC LM393: gồm Op-Amp so sánh hoạt động độc lập Dùng chuyển đổi tương tự sang mạch số, mạch tạo thời gian trễ, mạch sóng vng, dao động Cấu tạo bên trong: Hình 2.2.2: cấu tạo bên IC LM393 Nguyên lý hoạt động: Nếu V+ > V- V_out=1 (mức cao) Nếu V+ < V- V_out=0 (mức thấp) Chức chân: Chân 1: ngõ opamp so sánh thứ Chân 2: ngõ vào đảo opamp so sánh thứ Chân 3: ngõ vào không đảo opamp so sánh thứ Chân 4: chân nối đất Chân 5: ngõ vào không đảo opamp so sánh thứ hai Chân 6: ngõ vào đảo opamp so sánh thứ hai Chân 7: ngõ opamp so sánh thứ Chân 8: chân nguồn vcc 2- 36v Xe tự hành bám tường phải ĐỒ ÁN 5/20 1.5 Khối điều khiển động cơ: Hình 2.3.0: khối điều khiển động Khối điều khiển động gồm ngõ vào: chân INPUT chân ENA, ENB để điều khiển tốc độ hai động Các trường hợp hoạt động: ENA=0 Động không hoạt động IN1=1, IN2=0 Động quay thuận IN1=0, IN2=1 Động quay nghịch IN1=IN2 Động ngừng quay Đối với động thứ với chân điều khiển ENB, IN3, IN4 tương tự : Xe tự hành bám tường phải ĐỒ ÁN 6/20 1.6 Khối xử lý trung tâm: Hình 2.4 0: khối xử lý trung tâm Khối xử lý trung tâm sử dụng PIC 16F877A loại vi điều khiển sản xuất từ công ty Microchip Technology Cấu trúc tổng quát PIC 16f8777A: Bộ nhớ chương trình: 8K×14bit Bộ nhớ liệu368×8 byte RAM Bộ nhớ liệu EEPROM:256×8 byte Xe tự hành bám tường phải ĐỒ ÁN 7/20 Có ports xuất nhập là: A, B, C, D, E Có định thời bits là: timer timer Một định thời 16 bits: timer hoạt động chế độ tiết kiệm lượng với nguồn xung clock cung cấp từ bên vào Hai CCP Một biến đổi ADC 10 bits, ngõ vào Hai so sánh tương tự Một định thời giám sát Một cổng song song bits có tín hiệu điều khiển Một cổng nối tiếp 15 nguồn ngắt Có chế độ tiết kiệm lượng Nạp chương trình cổng nối tiếp ICSP 35 tập lệnh có độ dài 14 bits Tần số hoạt động tối đa là: 20Mhz Xe tự hành bám tường phải ĐỒ ÁN 8/20 Hình 2.4.0: Sơ đồ khối PIC 16F877A Xe tự hành bám tường phải ĐỒ ÁN 9/20 1.7 Nguyên lý hoạt động: Xe tự hành hoạt động dựa cảm biến hồng ngoại đặt phía trước xe gặp vật cản Module hồng ngoại đặt trước xe truyền tín hiệu vào xử lý trung tâm Sau xử lý trung tâm nhận tín hiệu đưa mệnh lệnh hợp lý để xuất ngõ đưa vào Module L298 để điều khiển hai động xe Cụ thể trường hợp: + Khi có vật cản phía trước hồng ngoại nhận tín hiệu xuất output đưa xử lý trung tâm Ở PIC nhận tín hiệu xuất tín hiệu ngõ vào module L298, lúc L298 cho xe quẹo trái Khi khơng có vật cản phía trước Module hồng ngoại xuất tín hiệu mức đưa xử lý trung tâm, tương tự trường hợp PIC nhận tín hiệu điều khiển Module L298 cho xe chạy thẳng + Cũng cách thức truyền nhận liệu khơng có vật cản bên phải xe quẹo phải để tìm tường ngược lại có vật cản xe rẻ trái để tránh vật cản 1.8 Điều chế độ rộng xung: Để điều khiển tốc độ động xe ta sử dụng phương pháp điều chế xung PWM PIC 16F877A sử dụng hai chân: CPP1 CPP2 hai chân điều chế độ rộng xung Hình 2.6 Các tham số PWM Xe tự hành bám tường phải ĐỒ ÁN 10/20 Giá trị chu kì(period) tính: PWM period= [(PR2)+1]*4*TOSC*(giá trị chia tần số TMR2) Timer2 có chia tần:1, 16 Khi giá trị ghi PR2 giá trị Timer2: Thanh ghi Timer2 xoá Chân CCP set Giá trị ghi CCPR1L chứa giá trị điều chế độ rộng xung đưa vào ghi CCPR1H Cơng thức tính độ rộng xung: PWM duty cycle = (CCPRxL:CCPxCON)*TOSC*(giá trị chia tần số TMR2) Các điểm ý sử dụng PWM: Trong Timer2 có hai chia tần: Prescaler Postscaler bọ Postscaler khơng sử dụng q trình điều chế độ rộng xung Nếu thời gian điều chế độ rộng xung dài thời gian chu kì xung ngõ mức cao giá trị PR2 với giá trị ghi Timer2 Xe tự hành bám tường phải ĐỒ ÁN 11/20 CHƯƠNG KẾT QUẢ MÔ PHỎNG VÀ LÀM MẠCH THỰC TẾ 1.9 Kết mô điều khiển động cơ: Hình 3.1.0 kết mơ Xe tự hành bám tường phải ĐỒ ÁN 12/20 1.10 Mạch PCB mạch thật: 1.1.1 Mạch PCB khối xử lý trung tâm: Hình3.2.0 mạch PCB Xe tự hành bám tường phải ĐỒ ÁN 13/20 1.1.2 Mạch khối xử lý trung tâm: 3.2.2 mạch khối xử lý trung tâm mặt Xe tự hành bám tường phải ĐỒ ÁN 14/20 Hình 3.2.2.0: mạch khối xử lý trung tâm mặt Xe tự hành bám tường phải ĐỒ ÁN 15/20 Hình 3.2.2.0: Module hồng ngoại 3.2.2.0 Mạch Module L298 Xe tự hành bám tường phải ĐỒ ÁN 16/20 CHƯƠNG KẾT LUẬN 1.11 Kết quả: Thi công mạch thành công Xe chạy bám tường chậm xe chạy lắc 1.12 Hướng phát triển: Có thể sử dụng động tốt xe chạy ổn định Xe tự hành bám tường phải ĐỒ ÁN 17/20 TÀI LIỆU THAM KHẢO [1] Datasheet 16F877A [2] Datasheet LM393 [3] Datasheet L298 Xe tự hành bám tường phải ĐỒ ÁN 18/20 PHỤ LỤC Code: #include #fuses nowdt,hs,noput,noprotect,nodebug,nolvp,nocpd,nowrt #use delay(clock=20M) #bit hn1=0x0A.0 #bit hn2=0x0A.1 void dunglai() { output_high(pin_B0); output_high(pin_B1); output_high(pin_B2); output_high(pin_B3); } void dithang1() { output_high(pin_B0); output_low(pin_B1); output_high(pin_c2); set_pwm1_duty((int16)250); output_low(pin_B2); output_high(pin_B3); output_high(pin_c1); set_pwm2_duty((int16)200); } void retrai() { output_low(pin_B0); Xe tự hành bám tường phải ĐỒ ÁN 19/20 output_high(pin_B1); output_high(pin_c2); set_pwm1_duty((int16)0); output_low(pin_B2); output_high(pin_B3); output_high(pin_c1); set_pwm2_duty((int16)180); } void main() { setup_timer_2(T2_DIV_BY_16,155,1); setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); set_pwm1_duty((int16)0); set_pwm2_duty((int16)0); while(true) { dithang1(); hn1 = input_state(PIN_A0); hn2 = input_state(PIN_A1); if(hn1==0) { dunglai(); delay_ms(50); while(hn1==0) { retrai(); hn1 = input_state(PIN_A0); Xe tự hành bám tường phải ĐỒ ÁN 20/20 } } if(hn2==0) { dunglai(); delay_ms(20); while(hn2==0) { retrai(); hn2 = input_state(PIN_A1); } } } Xe tự hành bám tường phải ĐỒ ÁN 20/20 Xe tự hành bám tường phải ... hoạt động tối đa là: 20Mhz Xe tự hành bám tường phải ĐỒ ÁN 8/20 Hình 2.4.0: Sơ đồ khối PIC 16F877A Xe tự hành bám tường phải ĐỒ ÁN 9/20 1.7 Nguyên lý hoạt động: Xe tự hành hoạt động dựa cảm biến... input_state(PIN_A0); Xe tự hành bám tường phải ĐỒ ÁN 20/20 } } if(hn2==0) { dunglai(); delay_ms(20); while(hn2==0) { retrai(); hn2 = input_state(PIN_A1); } } } Xe tự hành bám tường phải ĐỒ ÁN 20/20 Xe tự hành bám. .. PCB Xe tự hành bám tường phải ĐỒ ÁN 13/20 1.1.2 Mạch khối xử lý trung tâm: 3.2.2 mạch khối xử lý trung tâm mặt Xe tự hành bám tường phải ĐỒ ÁN 14/20 Hình 3.2.2.0: mạch khối xử lý trung tâm mặt Xe