(Đồ án hcmute) sử dụng kit raspberry chế tạo xe tự vận hành

71 4 0
(Đồ án hcmute) sử dụng kit raspberry chế tạo xe tự vận hành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG SỬ DỤNG KIT RASPBERRY CHẾ TẠO XE TỰ VẬN HÀNH GVHD: ThS NGUYỄN DUY THẢO SVTH: DI TRỌNG KHOA MSSV: 12141109 SVTH: ĐỖ VĂN PHÚ MSSV: 12141169 SKL 0 Tp Hồ Chí Minh, tháng 07/2016 an BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: SỬ DỤNG KIT RASPBERRY CHẾ TẠO XE TỰ VẬN HÀNH GVHD: ThS Nguyễn Duy Thảo SVTH: Di Trọng Khoa Đỗ Văn Phú MSSV: 12141109 12141169 Tp Hồ Chí Minh – 7/2016 an BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: SỬ DỤNG KIT RASPBERRY CHẾ TẠO XE TỰ VẬN HÀNH GVHD: ThS Nguyễn Duy Thảo SVTH: Di Trọng Khoa Đỗ Văn Phú MSSV: 12141109 12141169 Tp Hồ Chí Minh – 7/2016 an TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp.HCM,ngày 31 tháng 03 năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Di Trọng Khoa MSSV:12141109 Đỗ Văn Phú MSSV:12141169 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 01 Hệ đào tạo: Đại học quy Mã hệ: Khóa 2012 Lớp:12141 I TÊN ĐỀ TÀI: Sử dụng kit Raspberry chế tạo xe tự vận hành II NHIỆM VỤ Các số liệu ban đầu: Nội dung thực hiện: NỘI DUNG 1: Nghiên cứu kit Raspberry, Sensor SRF05 NỘI DUNG 2: Kết nối hệ thống NỘI DUNG 3: Lập trình NỘI DUNG 4: Thi công cân chỉnh mạch NỘI DUNG 5: Chạy thử nghiệm hệ thống NỘI DUNG 6: Đánh giá kết thực Họ tên sinh viên: III NGÀY GIAO NHIỆM VỤ: 10/03/2016 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 07/07/2016 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Nguyễn Duy Thảo CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP ii an TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC PHIẾU ĐÁNH GIÁ KHÓA LUẬN TỐT NGHIỆP (Dùng cho giáo viên hướng dẫn) I Thông tin chung Họ tên sinh viên: Di Trọng Khoa MSSV: 12141109 Họ tên sinh viên: Đỗ Văn Phú MSSV:12141169 Tên đề tài: Sử dụng kit Raspberry chế tạo xe tự vận hành Họ tên giáo viên hướng dẫn: Th.S Nguyễn Duy Thảo II Nhận xét khóa luận 2.1 Đánh giá chung (hoàn thành phần trăm mục tiêu đề tài): 2.2 Ưu điểm đề tài: 2.3 Khuyết điểm đề tài: 2.4 Thái độ làm việc sinh viên: 2.5 Kết thu được: 2.6 Đề nghị: Được bảo vệ Không bảo vệ Tp HCM, ngày … tháng… năm 2016 Giáo viên hướng dẫn (Ký ghi rõ họ tên) iv an TRƯỜNG ĐẠI HỌC SPKT TPHCM Khoa Điện - Điện Tử Bộ Môn Điện Tử Cơng Nghiệp CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc Tp Hồ Chí Minh, ngày 31 tháng 03 năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Bản lịch trình đóng vào đồ án) Họ tên sinh viên 1: Di Trọng Khoa Lớp:12141DT2B MSSV:12141109 Họ tên sinh viên 2: Đỗ Văn Phú Lớp:12141DT2B MSSV:12141169 Tên đề tài: Sử dụng kit Raspberry chế tạo xe tự vận hành Tuần/ngày Nội dung Xác nhận GVHD Tuần Tìm đề tài Tuần Nghiên cứu tìm tài liệu Tuần Nghiên cứu Raspberry, thư viện, phần mềm Tuần Nghiên cứu Sensor SRF05 Tuần Kết nối hệ thống Tuần Lập trình Tuần Thi cơng cân chỉnh mạch Tuần Chạy thử nghiệm hệ thống Tuần Hoàn chỉnh mơ hình phần cứng Tuần 10 Viết báo cáo Tuần 11 Hoàn chỉnh báo cáo Tuần 12 In ấn GV HƯỚNG DẪN (Ký ghi rõ họ tên) v an LỜI CAM ĐOAN Đề tài nhóm tơi tự thực dựa vào số tài liệu trước khơng chép hồn tồn từ tài liệu hay cơng trình có trước Nhóm người thực đề tài Di Trong Khoa Đỗ Văn Phú v an LỜI CẢM ƠN Chúng xin chân thành cảm ơn quý thầy cô môn Điện Tử Công Nghiệp trang bị cho em kiến thức giúp đỡ em giải khó khăn trình làm đồ án Đặc biệt xin chân thành cảm ơn thầy hướng dẫn Th.S Nguyễn Duy Thảo tận tình giúp đỡ trình lựa chọn đê tài hỗ trợ chúng tơi q trình thực Cuối chúng tơi xin cảm ơn gia đình bạn bè khích lệ, giúp đỡ ủng hộ suốt trình thực Nhóm người thực đề tài Di Trọng Khoa Đỗ Văn Phú vi an MỤC LỤC Trang bìa i Nhiệm vụ đồ án …ii Phiếu giao nhiệm vụ đồ án iii Phiếu đánh giá GVHD .iv Lịch trình v Cam đoan vi Lời cảm ơn vii Mục lục .viii Liệt kê bảng x Liệt kê hình vẽ xi Tóm tắt xiii Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT 2.1 RASPBERRY PI 2.1.1 Giới thiệu Board Raspberry Pi 2.1.2 Cấu hình Raspberry Pi 2.1.3 Kết nối Raspberry Pi B+ 2.1.4 Giới thiệu hệ điều hành cho Kit Raspberry 2.2 NGÔN NGỮ LẬP TRÌNH PYTHON 2.2.1 Khái niệm Python 2.2.2 Đặc điểm ngơn ngữ lập trình Python Chương TÍNH TOÁN VÀ THIẾT KẾ 12 3.1 YÊU CẦU BÀI TOÁN 12 3.1.1 Thiết kế phần cứng 12 3.1.2 Yêu cầu phần mềm 12 3.1.3 Yêu cầu vật cản, địa hình 12 3.2 PHƯƠNG ÁN THIẾT KẾ PHẦN CỨNG HỆ THỐNG 13 viii an 3.2.1 Sơ đồ khối 13 3.2.2 Chức khối 13 3.2.3 Sơ đồ kết nối toàn mạch 14 Chương THI CÔNG HỆ THỐNG 35 4.1 THI CƠNG MƠ HÌNH XE 35 4.2 LẬP TRÌNH HỆ THỐNG 38 4.2.1 Thi công lưu đồ giải thuật 38 4.2.2 Chương trình xử lý hệ thống 42 Chương KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 47 5.1 KẾT QUẢ 47 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ 49 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50 6.1 KẾT LUẬN 50 6.2 HƯỚNG PHÁT TRIỂN 50 TÀI LIỆU THAM KHẢO 51 PHỤ LỤC 52 ix an CHƯƠNG 4: THI CÔNG HỆ THỐNG else: servo.set_servo(25, dc) trai = phai = if phai == 1: chayphai() tam3 = phai = if trai == 1: chaytrai() tam3 = trai = if tam3 == 1: chaythang_left() else: chaythang() Code chế độ theo dõi if get_distance() > 10: # đo khoảng cách từ vật đến xe chaythang_2() else: dungxe() if input_left == False and input_right == True: # so sánh cảm biến trái phải chayphai_2() if input_left == True and input_right == False: # so sánh cảm biến trái phải chaytrai_2() if input_left == True and input_right == True: # so sánh cảm biến trái phải dungxe() BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 45 CHƯƠNG 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Chương 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ 5.1 KẾT QUẢ Sau khoảng thời gian gần 12 tuần nghiên cứu tìm hiểu tài liệu chun mơn, tài liệu tiếng anh, nghiên cứu tài liệu Internet, đồ án anh chị trước với giúp đỡ tận tình giáo viên hướng dẫn Th.S Nguyễn Duy Thảo chúng em đạt kết mong muốn Xe chạy theo chế độ riêng biệt; chế độ thứ xe tự chạy tránh vật cản chế độ thứ xe di chuyển theo vật cản phía trước Xe di chuyển tương đối tốt môi trường bề mặt đường xe tưng đối phẳng, dốc, khơng gian xung quanh phải khơng có vật thu phát sóng siêu âm Ngược lại bề mặt đường dốc, gồ ghề xe gặp khó khăn việc di chuyển BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 47 CHƯƠNG 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Bảng 5.1 Bảng thông số kỹ thuật xe tự vận hành Tên loại xe XE TỰ VẬN HÀNH Tốc độ Mặc định: 0.1 m/s, thay đổi lên đến 0.5 m/s Khoảng cách Khoảng cách dừng lại xử lý quay phải, nhận biết vật trái, thẳng: 20cm cản Khoảng cách nhìn thấy vật cản xa nhất: 50cm Khoảng cách nhìn thấy vật cản gần nhất: 3cm Loại sóng sử Sóng siêu âm (Tần số: 235Khz cao hơn) dụng hoạt 5VDC – 2A Nguồn động Cân nặng 1.6 kg Độ sai số Từ -5cm đến 5cm đo khoảng cách Loại vật cản Không hấp thụ, phản xạ sóng siêu âm Vật cản có chiều cao từ 15cm trở lên tính từ mặt đường Chiều cao, dài, 15 cm, 20cm, 15cm rộng Công suất 7W Tải trọng 0.5 kg 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ Sau thiết kế thực nhóm đạt yêu cầu sau: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 48 CHƯƠNG 5: KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Nhóm đạt khoảng 80% yêu cầu nội dung đề tài Kết cấu xe thô sơ, đơn giản, xếp khối khơng mang lại tính thẩm mỹ cao Trong suốt trình chạy thực tiễn, xe chạy tương đối ổn định chế độ độc lập tự vận hành trình di chuyển Cơ xe tự tránh vật cản trước mặt di chuyển theo vật cản đưa kết tương đối Khoảng cách xe dừng thấy (phát vật cản) 20cm Trong trình vận hành xe quẹo trái xe chạy không ổn định chạy với tốc độ nhanh gặp vật cản xe xử lý không tối ưu nên xe lùi lại với khoảng cách xa thời gian xử lí xe chậm Nguồn pin cung cấp cho kit để điều khiển xe chạy liên tục khoảng tiếng đồng hồ Nguồn pin cung cấp cho động sử dụng khoảng tiếng đồng hồ Nhóm tiến hành thử nghiệm xe ngày liên tiếp Ngày thứ thử nghiệm xe chạy tương đối ổn định mơi trường địa hình phẳng khơng trơn trượt Ngày thứ hai thử nghiệm môi trường địa hình gồ ghề dốc cao vận hành xe gặp khó khăn di chuyển cảm biến đo có phần khơng xác Ngun nhân loại vỏ bánh xe chọn dùng loại cao su cứng, độ bám dính khơng cao nên xe giới hạn chạy bề mặt phẵng không trơn trợt Xe leo dốc khoảng ~100, với dốc cao động hoạt động với số vịng quay khơng nên khơng thể bám dính tốt để lên dốc Ngày thứ ba cho xe chạy môi trường thiếu ánh sáng xe hoạt động không ổn định BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 49 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương 6: 6.1 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN KẾT LUẬN Sau q trình thực đề tài nhóm chúng em hoàn thành tương đối khoảng 80% nội dung đề tài Nắm bắt hệ thống phần cứng Board Raspberry Pi kết nối Tìm hiểu ngơn ngữ lập trình Python ứng dụng lên Board Raspberry Pi Thiết kế xe tự tránh vật cản sử dụng cảm biến sóng siêu âm Tuy nhiên hạn chế kiến thức thân, nguồn tài liệu tham khảo chủ yếu từ nước ngồi nên chương trình cịn gặp phải số lỗi số hạn chế hoạt động xe cịn tương đối đơn giản, chưa có tính lạ, nguồn tài liệu chủ yếu từ nước ngồi nên cịn số ý chưa hồn tồn hiểu rõ, hiểu sâu số giao tiếp Raspberry Pi thiết bị ngoại vi chưa hồn thiện (usb wifi, i2c ); hình dạng xe thô sơ đơn giản 6.2 HƯỚNG PHÁT TRIỂN Sau hồn thành đề tài, nhóm thực muốn xem phần kiến thức để bạn có đam mê cơng nghệ lập trình nhúng, sinh viên khóa sau phát triển đề tài theo hướng rộng hơn, sâu xử lí tốt vấn đề khoảng cách vật cản xe xa, tốc độ xử lí xe nhanh hơn, mơi trường phức tạp kết hợp viêc giám sát từ xa BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 50 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Phạm Hoàng Anh Trần Hoàng Đạt, “THIẾT KẾ XE TỰ TRÁNH VẬT CẢN TRÊN NỀN BOARD RASPBERRY PI”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật Tp.HCM, 2014 [2] Ngơ Minh Hồng, “TÌM HIỂU VỀ CẢM BIẾN SIÊU ÂM LOẠI SRF05”, Tiểu Luận, Trường ĐH Công Nghiệp Tp.HCM, 2010 [3] Nguyen_Tuyen, “GIAO TIẾP LCD NOKIA 5110 VỚI VI ĐIỀU KHIỂN”, Diễn Đàn Vi Điều Khiển, 2013 [4] Đỗ Văn Cang, “NGHIÊN CỨU NGƠN NGỮ LẬP TRÌNH PYTHON VÀ ỨNG DỤNG PHÂN TÍCH MỘT SỐ CÚ PHÁP ĐƠN GIẢN”, Tiểu Luận, Trường ĐH Nông Lâm Tp.HCM, 2012 [5] Richard Grimmett, Raspberry Pi Robotic Blueprints, Packt Publishing Ltd, 2015 [6] Richard Grimmett, Raspberry Pi Robotic Essential, Packt Publishing Ltd, 2015 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 51 PHỤ LỤC PHỤ LỤC ĐOẠN CODE CHƯƠNG TRÌNH CHÍNH CỦA ĐỀ TÀI import RPi.GPIO as GPIO from RPIO import PWM import pcd8544.lcd as lcd import time, os, sys ON, OFF = [1, 0] mode = 13 tang = giam = ok = 14 trigger_pin = 20 echo_pin = 21 IN_DCP2 = IN_DCP1 = 18 IN_DCT2 = 17 IN_DCT1 = 27 lcd.init() lcd.cls() lcd.backlight(ON) GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(IN_DCP1, GPIO.OUT) GPIO.setup(IN_DCP2, GPIO.OUT) GPIO.setup(IN_DCT1, GPIO.OUT) GPIO.setup(IN_DCT2, GPIO.OUT) GPIO.setup(trigger_pin, GPIO.OUT) GPIO.setup(echo_pin, GPIO.IN) GPIO.setup(19,GPIO.IN,pull_up_down=GPIO.PUD_UP) GPIO.setup(26,GPIO.IN,pull_up_down=GPIO.PUD_UP) GPIO.setup(mode,GPIO.IN,pull_up_down=GPIO.PUD_UP) GPIO.setup(tang,GPIO.IN,pull_up_down=GPIO.PUD_UP) GPIO.setup(giam,GPIO.IN,pull_up_down=GPIO.PUD_UP) GPIO.setup(ok,GPIO.IN,pull_up_down=GPIO.PUD_UP) Freq = 100 #Hz Dc = P1 = GPIO.PWM(IN_DCP1, Freq) P1.start(0)// bat dau duty la 0;do rong xung=(chuki(1:100)x duty) P2 = GPIO.PWM(IN_DCP2, Freq) P2.start(0) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 52 PHỤ LỤC T1 = GPIO.PWM(IN_DCT1, Freq) T1.start(0) T2 = GPIO.PWM(IN_DCT2, Freq) T2.start(0) servo = PWM.Servo() trai = phai = tam1 = tam2 = bien_lui = dung = tam3 = temp = chuc = dv = t=0 temp1 = temp2 = temp3 = speedq = speedl = speedr = speedq2 = speedl2 = speedr2 = # chuong trinh chay trai left def chaytrai_2(): print " -left" T1.ChangeDutyCycle(speedq2) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(0) P2.ChangeDutyCycle(0) #chuong trinh chay phai right def chayphai_2(): print " right" T1.ChangeDutyCycle(0) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(speedq2) P2.ChangeDutyCycle(0) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 53 PHỤ LỤC #chuong trinh chay thang def chaythang_2(): print " thang" T1.ChangeDutyCycle(speedl2) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(speedr2) P2.ChangeDutyCycle(0) def dungxe(): print " -dung" T1.ChangeDutyCycle(0) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(0) P2.ChangeDutyCycle(0) # chuong trinh chay trai left def chaytrai(): print " -left" T1.ChangeDutyCycle(speedq) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(0) P2.ChangeDutyCycle(0) time.sleep(0.5) dungxe() time.sleep(1) #chuong trinh chay phai right def chayphai(): print " right" T1.ChangeDutyCycle(0) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(speedq) P2.ChangeDutyCycle(0) time.sleep(0.5) dungxe() time.sleep(1) #chuong trinh chay thang def chaythang(): print " thang" T1.ChangeDutyCycle(speedl) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(speedr) P2.ChangeDutyCycle(0) servo.set_servo(25, dc) def chaythang_left(): print " thang" BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 54 PHỤ LỤC T1.ChangeDutyCycle(speedl) T2.ChangeDutyCycle(0) P1.ChangeDutyCycle(speedr) P2.ChangeDutyCycle(0) servo.set_servo(25, dc) def chaylui(): print " lui" T1.ChangeDutyCycle(0) T2.ChangeDutyCycle(30) P1.ChangeDutyCycle(0) P2.ChangeDutyCycle(30) def send_trigger_pulse(): GPIO.output(trigger_pin, True) time.sleep(0.0001) GPIO.output(trigger_pin, False) def wait_for_echo(value, timeout): count = timeout while GPIO.input(echo_pin) != value and count > 0: count = count - def get_distance(): send_trigger_pulse() wait_for_echo(True, 10000) start = time.time() wait_for_echo(False, 10000) finish = time.time() pulse_len = finish - start distance_cm = pulse_len / 0.000058 return distance_cm while True: input_mode = GPIO.input(mode) input_tang = GPIO.input(tang) input_giam = GPIO.input(giam) input_ok = GPIO.input(ok) input_left = GPIO.input(26) input_right = GPIO.input(19) if input_ok == False: time.sleep(0.2) if input_ok == False: temp2 = temp2 + if temp2 > 3: temp2 = BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 55 PHỤ LỤC time.sleep(0.2) if input_mode == False: time.sleep(0.2) if input_mode == False: lcd.cls() temp3 = temp3 + if temp3 > 3: temp3 = time.sleep(0.2) if input_tang == False: time.sleep(0.2) if input_tang == False: temp = temp + chuc = temp/10 dv = temp%10 print(temp) time.sleep(0.2) if input_giam == False: time.sleep(0.2) if input_giam == False: temp = temp - chuc = temp/10 dv = temp%10 print(temp) time.sleep(0.2) if temp3 == 1: lcd.centre_text(0,"Xe tu hanh") lcd.gotorc(2, 0) lcd.text("speed left:") lcd.gotorc(3, 0) lcd.text("speed right:") lcd.gotorc(4, 0) lcd.text("speed queo:") lcd.gotorc(1, 0) lcd.text("mode:") lcd.display_char(chr(temp2 + 48)) if temp2 == 1: lcd.gotorc(2, 0) lcd.text("speed left:") lcd.display_char(chr(chuc + 48)) lcd.display_char(chr(dv + 48)) speedl = temp if temp2 == 2: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 56 PHỤ LỤC lcd.gotorc(3, 0) lcd.text("speed right:") lcd.display_char(chr(chuc + 48)) lcd.display_char(chr(dv + 48)) speedr = temp if temp2 == 3: lcd.gotorc(4, 0) lcd.text("speed queo:") lcd.display_char(chr(chuc + 48)) lcd.display_char(chr(dv + 48)) speedq = temp if get_distance() < 20: chaylui() time.sleep(1) dungxe() for dc in range(1300,2450,10): servo.set_servo(25, dc) time.sleep(0.005) if dc == 2440: tam1 = get_distance() for dc in range(2450,200,-10): servo.set_servo(25, dc) time.sleep(0.005) if dc == 210: tam2 = get_distance() if tam1 > tam2: servo.set_servo(25, dc) trai = phai = else: servo.set_servo(25, dc) trai = phai = if phai == 1: chayphai() tam3 = phai = if trai == 1: chaytrai() tam3 = trai = if tam3 == 1: chaythang_left() BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 57 PHỤ LỤC else: chaythang() if temp3 == 2: lcd.centre_text(0,"Xe theo doi") lcd.gotorc(2, 0) lcd.text("speed left:") lcd.gotorc(3, 0) lcd.text("speed right:") lcd.gotorc(4, 0) lcd.text("speed queo:") lcd.gotorc(1, 0) lcd.text("mode:") lcd.display_char(chr(temp2 + 48)) if temp2 == 1: lcd.gotorc(2, 0) lcd.text("speed left:") lcd.display_char(chr(chuc + 48)) lcd.display_char(chr(dv + 48)) speedl2 = temp if temp2 == 2: lcd.gotorc(3, 0) lcd.text("speed right:") lcd.display_char(chr(chuc + 48)) lcd.display_char(chr(dv + 48)) speedr2 = temp if temp2 == 3: lcd.gotorc(4, 0) lcd.text("speed queo:") lcd.display_char(chr(chuc + 48)) lcd.display_char(chr(dv + 48)) speedq2 = temp if input_left == False and input_right == False: if get_distance() > 10: chaythang_2() else: dungxe() if input_left == False and input_right == True: chayphai_2() if input_left == True and input_right == False: chaytrai_2() if input_left == True and input_right == True: dungxe() if temp3 == or temp3 == 0: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 58 PHỤ LỤC dungxe() lcd.gotorc(2, 0) lcd.text("XE DANG DUNG") BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 59 S an K L 0 ... (như tránh vật cản vật di động) khiến vấn đề tự động né tránh tìm kiếm hướng thích hợp cấp thiết hết Xu hướng tự động hóa nên nhóm thực đề tài “SỬ DỤNG KIT RASPBERRY CHẾ TẠO XE TỰ VẬN HÀNH” 1.2... đề đặt đề tài xe tự hành sử dụng kit Raspberry, ngơn ngữ lập trình thông dụng dễ dàng sử dụng hỗ trợ đầy đủ kit ngôn ngữ Python 2.1 RASPBERRY PI 2.1.1 Giới thiệu board Raspberry Pi Raspberry Pi... giao tiếp Raspberry Pi - Sử dụng kit Raspberrry vào tự động hố - Tìm hiểu đặc tính linh kiện sử dụng - Nắm tổng quát ngôn ngữ lập trình Python - Chế tạo xe tự tránh vật cản hoạt động tự động,

Ngày đăng: 02/02/2023, 09:21

Tài liệu cùng người dùng

Tài liệu liên quan