Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
4,35 MB
Nội dung
SAIGON TECHNOLOGY UNIVERSITY BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CƠNG NGHỆ SÀI GỊN KHOA ĐIỆN – ĐIỆN TỬ LUẬN VĂN TỐT NGHIỆP THIẾT KẾ VÀ THI CÔNG XE TỰ HÀNH SỬ DỤNG NĂNG LƯỢNG MẶT TRỜI GVHD: ThS TRẦN THỊ THU THẢO SVTH: PHẠM HOÀNG THIÊN NGUYỄN QUỐC VIỆT Tp Hồ Chí Minh Tháng 07/2018 MỤC LỤC CHƯƠNG GIỚI THIỆU VỀ ĐỀ TÀI 1.1 Đặt vấn đề: 1.1.1 Tính cấp thiết đề tài: 1.1.2 Hướng giải quyết: 1.2 Mục tiêu: 1.3 Đối tượng phạm vi nghiên cứu: 1.4 Ý nghĩa khoa học thực tiễn đề tài: CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 2.1 Tổng quan pin lượng mặt trời: 2.1.1 Giới thiệu chung pin mặt trời: 2.1.2 Hiệu ứng quang điện: 2.1.3 Cấu tạo pin mặt trời: 2.1.4 Nguyên lý hoạt động hệ thống lượng mặt trời: 2.1.5 Ưu, nhược điểm lượng mặt trời: 2.2 Cơ sở lý thuyết phần cứng: 2.2.1 Board Arduino Mega 2560 R3: 2.2.2 Board Arduino Nano: 11 2.2.3 Điều khiển motor với IC L293D: 13 2.2.4 Cảm biến siêu âm SRF-05: 14 2.2.5 Module Bluetooth HC-06: 16 2.3 Động DC: 17 2.3.1 Động GA37: 17 2.3.2 Động GA12 - N20 1:50: 17 2.3.3 Động Servo SG90-9G: 18 2.4 Cơ sở lý thuyết phần mềm: 19 2.4.1 Phần mềm App Inventor: 19 2.4.2 Phần mềm Arduino IDE: 21 2.5 Camera Eken H9R Action: 22 2.5.1 Giới thiệu: 22 2.5.2 Cài đặt kết nối Camera wifi với PC smart phone: 22 CHƯƠNG 24 THIẾT KẾ XE TỰ HÀNH TRÁNH VẬT CẢN VÀ ĐIỀU KHIỂN TỪ XA 24 3.1 Giải tốn tìm đường cho Robot: 24 3.1.1 Đặt vấn đề: 24 3.1.2 Giải toán cục bộ: 24 3.2 Mơ hình động học: 25 3.2.1 Mơ hình kết cấu robot: 25 3.2.2 Các trường hợp robot gặp vật cản: 25 3.3 Cấu tạo phần cứng: 26 3.3.1 Khối nguồn: 27 3.3.2 Khối giảm áp: 29 3.3.3 Khối điều khiển động cơ: 30 3.3.4 Khối cảm biến SRF-05 servo SRF-05: 32 3.3.5 Khối điều khiển servo Camera: 34 3.3.6 Khối đèn led Luxeon: 35 3.3.7 Khối Reset điều khiển từ xa: 35 3.3.8 Khối điều khiển từ xa Bluetooth: 36 3.4 Cấu tạo phần mềm: 36 3.4.1 Lệnh khai báo Arduino kết nối với Bluetooth: 36 3.4.1 Thiết kế ứng dụng điều khiển từ xa App Inventer: 38 CHƯƠNG 43 KẾT QUẢ THỰC NGHIỆM 43 4.1 Kết nghiên cứu sở lý thuyết: 43 4.1.1 Phân tích lựa chọn phương pháp hợp lý để thiết kế: 43 4.1.2 Phân tích hoạt động di chuyển Robot: 43 4.1.3 Xây dựng hệ thống điều khiển robot smart phone: 43 4.1.4 Thiết lập hệ thống mạng wifi để nhận tín hiệu từ robot: 43 4.2 Kết nghiên cứu mặt thực nghiệm: 44 4.2.1 Chế tạo thành cơng mơ hình robot tự hành lượng mặt trời: 44 4.2.2 Chế tạo thành công hệ thống điều khiển cho robot: 45 CHƯƠNG 46 KẾT LUẬN 46 5.1 Kết luận: 46 5.2 Các đề nghị: 46 PHỤC LỤC 47 Mã code phần điều khiển: 47 Mã code phần Reset: 53 TÀI LIỆU THAM KHẢO 54 CHƯƠNG GIỚI THIỆU VỀ ĐỀ TÀI 1.1 Đặt vấn đề: 1.1.1 Tính cấp thiết đề tài: Thứ nhất, hầu hết ngành cơng nghiệp nước ta có quy mô lớn chất lượng chưa cao hạn chế khoa học kĩ thuật, máy móc thiết bị cịn thơ sơ nên suất lao động đạt mức trung bình lợi nhuận giảm phải th mướn lượng máy móc lớn, cơng ty nước khơng tránh khỏi tình trạng Thứ hai, qua thực tế nước ta có máy móc can thiệp vào trường hợp khẩn cấp, nguy hiểm cứu hộ cách tự động Thứ ba, nguồn lượng mặt trời dạng lượng sạch, xanh, miễn phí có giá trị sử dụng tốt Đây thực tài nguồn nguyên khổng lồ Thứ bốn, trình phát triển khoa học rõ ràng phát triên smart phone, ngày tiện dụng phổ biến Nhưng để nghe, gọi, hay tính thơng dụng khác ý nghĩa smart phone “đũa phép”, điều khiển vật xung quanh Ngày nay, Robot di động điều khiển từ xa phát triển mạnh mẽ, sử dụng mục đích dị tìm bom mìn, thám hiểm hầm mỏ, kiểm tra đường ống ngầm, hoạt động môi trường có nhiều hố chất độc hại, có nồng độ phóng xạ cao,… nguy hiểm người Mobile robot di chuyển cách linh hoạt, tạo nên khơng gian hoạt động lớn dần khẳng định vai trị quan trọng thiếu nhiều lĩnh vực, thu hút đƣợc nhiều đầu tƣ nghiên cứu Mobile robot chia làm nhiều loại: robot học đường đi, robot dò đường line, robot tránh vật cản, robot tìm đường cho mê cung,…trong số robot dò đường line, tránh vật cản dễ dàng ứng dụng nhiều sống Việc phát triển loại robot phục vụ đắc lực cho người Do đó, để đáp ứng nhu cầu cấp bách làm tăng yếu tố an toàn cho người tận dụng phổ biến smart phone, nhóm chúng em bắt tay thực đề tài: “THIẾT KẾ VÀ THI CÔNG XE TỰ HÀNH SỬ DỤNG NĂNG LƯỢNG MẶT TRỜI” 1.1.2 Hướng giải quyết: Mục tiêu đặt cho đề tài cần thiết kế xe có khả dị đường robot tự động, phát vật cản đường, điều khiển chuyển động thông qua smart phone camera wifi thu smart phone PC Nguồn cung cấp battery (ắc quy) sạc tự động lượng mặt trời Khi pin hấp thụ lượng mặt trời chuyển hố thành dịng điện DC, sau dịng điện vào điều khiển sạc đến battery Với yêu cầu đặt ra, nhóm em ứng dụng vào module Bluetooth HC-06 để giao tiếp với điện thoại, nhận liệu từ điện thoại, đưa vào trung tâm xử lý nhằm điều khiển robot theo ý muốn Khi vào địa hình khuất tầm nhìn, tối tăm, nguy hiểm, cách xa người điều khiển Nhóm em khắc phục điều cách cho xe robot hoạt động chế độ tự động, dùng cảm biến siêu âm SRF-05 có khả phát vật cản tầm xa khoảng từ 3-4m, từ xe tự đưa định di chuyển hợp lý 1.2 Mục tiêu: Nghiên cứu chế độ hoạt động thông qua Bluetooth, cách xử lý robot gặp vật cản tín hiệu thu camera đến điện thoại hay PC Thiết kế tính tốn xe tự hành sử dụng pin mặt trời Tìm hiểu nguyên lý hoạt động pin mặt trời ưu nhược điểm lượng mặt trời Thiết kế chế tạo mơ hình robot cho việc học tập nghiên cứu 1.3 Đối tượng phạm vi nghiên cứu: Đề tài kết hợp nghiên cứu lý thuyết nghiên cứu thực nghiệm Nghiên cứu lý thuyết: Phương pháp điều khiển động (theo phương pháp tự hành) Nguyên lý thu phát cảm biến siêu âm SRF-05 Phương pháp điều khiển từ xa bluetooth Phương pháp điều khiển từ xa giọng nói thơng qua bluetooth Nghiên cứu tổng hợp việc thiết kế, gia công, lắp ráp, chi tiết mơ hình robot - Nghiên cứu trình nạp/xả pin lượng mặt trời - Nghiên cứu mạng wifi camera để thu tín hiệu ảnh từ xa qua mạng không dây - Nghiên cứu thực nghiệm: - Chế tạo robot tự hành tránh vật cản hoàn chỉnh để kiểm chứng kết lý thuyết Phạm vi nghiên cứu: - Không gian làm việc xe mặt phẳng giới hạn tường, vật cản xem vật cản chiều tĩnh hoàn toàn 1.4 Ý nghĩa khoa học thực tiễn đề tài: Ý nghĩa khoa học: - Xây dựng sở khoa học khả tự hành tránh vật cản robot sử dụng cảm biến siêu âm khả nhận điều khiển từ xa thơng qua sóng Bluetooth Ý nghĩa thực tiễn đề tài: - Tiềm ứng dụng xe tự hành lớn, kể đến robot vận hành vật liệu, hàng hóa tịa nhà, nhà máy, cửa hàng, sân bay hay thư viện… robot xe lăn phục vụ người khuyết tật,… CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 2.1 Tổng quan pin lượng mặt trời: 2.1.1 Giới thiệu chung pin mặt trời: Pin mặt trời phương pháp sản xuất trực tiếp từ lượng mặt trời qua thiết bị biến đổi quang điện Pin mặt trời có ưu điểm gọn nhẹ lắp đâu có ánh nắng mặt trời, đặc biệt lĩnh vực tàu vũ trụ Ngày người ứng dụng pin mặt trời lĩnh vực hàng không vũ trụ, để chạy xe sinh hoạt thay dần nguồn lượng truyền thống Các pin lượng mặt trời có nhiều ứng dụng thực tế Do giá thành đắt, chúng đặc biệt thích hợp cho vùng mà điện lưới khó vươn tới núi cao, ngồi đảo xa, phục vụ hoạt động không gian; cụ thể vệ tinh quay xung quanh quỹ đạo trái đất, máy tính cầm tay, máy điện thoại cầm tay từ xa, thiết bị bơm nước Các pin lượng mặt trời thiết kế module thành phần, ghép lại với tạo thành lượng mặt trời có diện tích lớn, thường đặt tịa nhà nơi chúng có ánh sáng nhiều nhất, kết nối với chuyển đổi mạng lưới điện Hình 2.1: Pin lượng mặt trời 2.1.2 Hiệu ứng quang điện: Hiệu ứng quang điện phát năm 1839 nhà vật lý người pháp Alexandre Edmond Becquerel Tuy nhiên năm 1883 pin lượng tạo thành, Charles Fritts, ông phủ lên mạch bán dẫn selen lớp cực mỏng vàng để tạo nên mạch nối Thiết bị có hiệu suất 1%, Russell Ohl xem người tạo pin lượng mặt trời năm 1946 Sau Sven Ason Berglund có phương pháp liên quan đến việc khả cảm nhận ánh sáng pin Hình 2.2: Hệ hai mức lượng Xét hệ hai mức lượng điện tử (hình 1) E1 < E2, bình thường điện tử chiếm mức lượng thấp E1 Khi nhận xạ mặt trời, lượng tử ánh sánh photon có lượng hv (trong h số Planck, v tần số ánh sáng) bị điện tử hấp thụ chuyển lên mức lượng E2 Ta có phương trình cân lượng: hv = E1 – E2 Trong vật thể rắn, tương tác mạnh mạng tinh thể lên điện tử vịng ngồi, nên mức lượng bị tách nhiều mức lượng sát tạo thành vùng lượng (hình 2.2) Vùng lượng thấp bị điện tử chiếm đầy trạng thái cân gọi vùng hóa trị, mà mặt có mức lượng Ev Vùng lượng phía tiếp hồn tồn trống bị chiếm phần gọi vùng dẫn, mặt gọi Ec Cách ly vùng hóa trị vùng dẫn vùng cấp độ rộng với lượng Eg, khơng có mức lượng cho phép điện tử Khi nhận xạ mặt trời, photon có lượng hv tới hệ thống bị điện tử vùng hóa trị thấp hấp thụ chuyển lên vùng dẫn để trở thành điện tử tự e-, để lại vùng hóa trị lỗ trống xem hạt mang điện dương, kí hiệu h+ Lỗ trống di chuyển tham gia vào trình dẫn điện Hình 2.3: Các vùng lượng Hiệu ứng lượng tử q trình hấp thụ photon mơ tả bẳng phương trình: Ev + hv → e- + h+ Điều kiện để điện tử hấp thụ lượng photon chuyển từ vùng hóa trị lên vùng dẫn, tạo cặp điện tử - lỗ trống hv = hc/ λ ≥ Eg = Ec - Ev Từ tính bước song tới hạn λc ánh sáng để tạo cặp e- h+: ℎ𝑐 ℎ𝑐 1,24 λ𝑐 = = = (𝜇𝑚) 𝐸𝑐 − 𝐸𝑣 𝐸𝑔 𝐸𝑔 Trong thực tế hạt dẫn bị kích thích e- h+ tự phát tham gia vào trình phục hồi, chuyển động đến mặt vùng lượng: điện tử e- giải phóng lượng để chuyển đến mặt vùng dẫn Ec, lỗ trống h+ chuyển đến mặt Ev, trình phục hồi xảy khoảng thời gian ngắn 10-12 – 10-1 giây gây dao động mạnh (photon) Năng lượng bọ tổn hao trình phục hồi Eph = hv –Eg Tóm lại vật rắn nhận tia xạ mặt trời, điện tử vùng hóa trị thấp hấp thụ lượng photon hv chuyển lên vùng dẫn tạo cặp hạt dẫn điện tử - lỗ trống e- - h+, tức tạo điện Hiện tượng gọi hiệu ứng quang điện bên Hình 2.4: Nguyên lý hoạt động pin mặt trời 2.1.3 Cấu tạo pin mặt trời: Hiện vật liệu chủ yếu cho pin mặt trời silic tinh thể Pin mặt trời từ tinh thể silic chia thành loại: • Một tinh thể hay đơn tinh thể module sản xuất dựa trình Czochralski Đơn tinh thể loại có hiệu suất tới 16% Chúng thường đắt tiền cắt từ thỏi hình ống, đơn thể có mặt trống góc mối module • Đa tinh thể làm từ thỏi đúc – đúc từ silic nung chảy cẩn thận làm nguội làm rắn pin thường rẻ dơn tinh thể, nhiên hiệu suất Tuy nhiên chúng tạo thành vuông che phủ bề mặt nhiều đơn tinh thể bù cho hiệu suất thấp • Dải silic tạo từ miếng phim mỏng từ silic nóng chảy có cấu trúc đa tinh thể Loại thường có hiệu suất thấp nhất, nhiên loại rẻ loại khơng cần phải cắt từ thỏi silicon Một lớp tiếp xúc bán dẫn pn có khả biến đổi trực tiếp lượng xạ mặt trời thành điện nhờ hiệu ứng quang điện bên gọi xạ mặt trời Pin mặt trời sản xuất ứng dụng phổ biến pin mặt trời chế tạo từ vật liệu tinh thể bán dẫn silicon (Si) có hóa tri Từ tinh thể Si tinh khiết, để có vật liệu tinh thể bán dẫn Si lại n, người ta pha tạp chất donor photpho có hóa trị Cịn vật liệu bán dẫn tinh thể loại p tạp chất acceptor dùng để pha vào Si Bo có hóa trị Đối với pin mặt trời từ vật liệu tinh thể Si xạ mặt trời chiếu đến hiệu điện hở mạch hai cực khoảng 0.55V dòng điện đoản mạch xạ mặt trời cs cường độ 1000W/m2 vào khoảng 25÷30 mA/cm2 Hình 2.5: Cấu tạo pin mặt trời Hiện người ta thay tạo pin mặt trời vật liệu SI vơ định hình (aSi) So với pin mặt trời a-Si giá thành rẻ hiệu suất thấp ổn định Ngoài Si, người ta nghiên cứu thử nghiệm loại vật liệu khác có nhiều triển vọng Sunfit cadimi – đồng (CuCds), galium –arsenit (GaAs)… 2.1.4 Nguyên lý hoạt động hệ thống lượng mặt trời: Từ giàn pin mặt trời, ánh sáng biến đổi thành điện năng, tạo dòng điện chiều (DC) Dòng điện dẫn tới điều khiển thiết bị điện tử có chức điều hịa tự động q trình nạp điện vào ắc-quy phóng điện từ ắc-quy thiết bị điện chiều (DC) Trường hợp công suất giàn pin đủ lớn, mạch điện lắp thêm đổi điện để chuyển dòng chiều thành dòng xoay chiều (AC), chạy thêm nhiều thiết bị điện gia dụng (đèn, quạt, radio, TV,…) Hình 2.6: Hệ thống điện mặt trời a) Bộ điều khiển sạc: Là thiết bị thực chức điều tiết sạc cho ắc quy, bảo vệ cho ắc quy chống nạp tải xả sâu nhằm nâng cao tuổi thọ bình ắc quy, giúp hệ thống pin mặt trời sử dụng hiệu lâu dài 40 Sau tạo giao diện, ta tiến hành phần “code” Cửa số “code” lên, bên trái khối lệnh: Control, Logic, Math, Text,… khối lệnh ứng với button Để thực lệnh đó, ta thực thao tác kéo thả (click chuột vào khối lệnh kéo vào hình) Khối lệnh kết nối Bluetooth: Hình 3.19: Khối lệnh để kết nối Bluetooth Khối lệnh điều khiển phương hướng robot: Mã code Arduino IDE ta khai báo case ‘F’, case ‘B’,… ta phải nhớ lại biến case lưu giá trị nhận qua bluetooth Ta cần nhớ giá trị để truyền từ điện thoại sang xe Bảng 3.1: Bảng lệnh khai báo Arduino IDE case ‘F’ Tiến lên case ‘P’ Dừng case ‘B’ Lùi lại case ‘U’ Camera nhìn lên case ‘L’ Qua trái case ‘D’ Camera nhìn xung quanh case ‘R’ Qua phải case ‘S’ Bật đèn case ‘G’ Camera quay lên case ‘s’ Tắt đèn case ‘I’ Camera quay xuống case ‘A’ Chế độ tự hành bật case ‘H’ Camera quay trái case ‘1’ Bật reset case ‘G’ Camera quay phải case ‘0’ Tắt reset 41 Hình 3.20: Khối lệnh để điều khiển phương hướng robot Khối lệnh điều khiển giọng nói: 42 Hình 3.21: Khối lệnh điều khiển giọng nói Ta chỉnh sửa lại giọng nói tiếng Việt thành tiếng nước Ta chỉnh lại “Text” khung đỏ 43 CHƯƠNG KẾT QUẢ THỰC NGHIỆM 4.1 Kết nghiên cứu sở lý thuyết: 4.1.1 Phân tích lựa chọn phương pháp hợp lý để thiết kế: Thiết kế khung xe mica dày 4mm, kết cấu robot vững Linh kiện để thiết kế đáp ứng nhu cầu cần thiết để tạo robot tự hành tránh vật cản điều khiển từ xa bluetooth Phần cứng robot hoạt động ổn định, phần điều khiển động hoạt động tương đối ổn định, chạy lâu làm nóng Chip L293D Cảm biến siêu âm SRF-05 xác centimeter Động mạnh khoẻ cấp nguồn từ ắc quy Quá trình nạp/xả pin mặt trời hoạt động ổn định có ánh nắng trực tiếp Chọn Camera Eken H9R ưu điểm lớn, Camera sử dụng nguồn sạc riêng biệt trình kết nối wifi với smart phone đơn giản 4.1.2 Phân tích hoạt động di chuyển Robot: Robot di chuyển linh hoạt chế độ tự hành Khi chế độ thủ công robot di chuyển vững nhanh Cịn chế độ điều khiển giọng nói, robot quay trái/phải với góc 90° chuẩn 4.1.3 Xây dựng hệ thống điều khiển robot smart phone: Sau trình nghiên cứu học tập đọc tài liệu tham khảo, nhóm chúng em xây dựng thành công hệ thống điều khiển từ xa bluetooth Bằng thực nghiệm đơn giản, từ điều khiển động đến điều khiển giọng nói trình khơng đơn giản App Inverter giúp ta tạo ứng dụng mà áp dụng cho việc trình học tập, điều khiển từ xa, bán hàng, báo thức, cảm biến ánh sáng,… 4.1.4 Thiết lập hệ thống mạng wifi để nhận tín hiệu từ robot: Bước 1: Vào kho ứng dụng điện thoại, tải phần mềm “Ez iCam App” Bước 2: Khi máy chế độ quay phim/chụp ảnh, bật wifi Camera lên cách ấn nút mũi tên xuống sườn bên phải Camera Eken Bước 3: Vào điện thoại, kết nối wifi Camera có tên (ICAM-H9Rxxxx) Kết nối wifi điện thoại với Camera Bước 4: Vào phần mềm “Ez iCam” điện thoại, chọn Connect, điện thoại kết nối Camera Bước 5: Bây ta quay phim chụp hình điện thoại từ xa mà không cần ấn nút Camera 44 4.2 Kết nghiên cứu mặt thực nghiệm: 4.2.1 Chế tạo thành cơng mơ hình robot tự hành lượng mặt trời: Hình 4.1: Mơ hình robot tự hành lượng mặt trời (mặt trước) Hình 4.2: Mơ hình robot tự hành lượng mặt trời (toàn cảnh) 45 Phần khung sàn robot làm miếng mica có độ dày 4mm, chiều rơng 25cm, có chiều dài 30.6cm, chiều cao robot 24cm tính từ mặt đất đến Camera nặng khoảng 3.5kg Xe di chuyển linh hoạt vững nhờ động N20 có vận tốc nhanh lực kéo yếu 4.2.2 Chế tạo thành công hệ thống điều khiển cho robot: Hình 4.3: Hệ thống xây dựng sở App Inventer Hình 4.4: Hệ thống điều khiển hoàn thiện smartphone 46 CHƯƠNG KẾT LUẬN 5.1 Kết luận: Kết đạt mong đợi: - Kết cấu khung robot vững Động khoẻ chậm Cảm biến siêu âm chuẩn xác Kết nối bluetooth xa khoảng 4-5m (không dùng anten) Camera tạo hình ảnh đẹp sắc nét Đo khoảng cách từ robot tới tường, từ xác định vị trí Robot Giải thuật: luật điều khiển đơn giản Nguồn lượng từ pin mặt trời chế độ nạp/xả hoạt động ổn định Khó khăn: - Xe hoạt động chưa linh hoạt - Tần số hoạt động SRF-05 bị hạn chế 20Hz - Do cảm biến gắn phía trước gặp vật cản gần bên trái/phải, robot không tránh - Robot có dịng tiêu thụ cao, khơng thể dùng pin lithium - Do kiến thức hạn chế, chưa có nhiều điều kiện để khảo sát thực tế hoạt động xe tự hành tránh vật cản cách chi tiết, với khoảng thời gian thực không nhiều 5.2 Các đề nghị: Nên gắn thêm cảm biến SRF-05 phía bên trái/phải đáy xe Nên sử dụng cảm biến có tầm ngắn tần số cao Thay động GA12-N20 động GA37, xe hoạt động ổn định 47 PHỤ LỤC Mã code phần điều khiển: #include #include #include #define TRIG_PIN A14 // khai báo chân Trig SRF-05 #define ECHO_PIN A15 // khai báo chân Echo SRF-05 #define MAX_DISTANCE 200 // khai báo khoảng cách tối đa 200 cm #define MAX_SPEED 235 #define MAX_SPEED_OFFSET 20 AF_DCMotor motor1(4); // khai báo motor L293D AF_DCMotor motor2(3); AF_DCMotor motor3(2); // khai báo motor L293D AF_DCMotor motor4(1); Servo myservo1, myservo2, myservo3; // đặt tên gọi servo NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE); // khai báo hàm SRF-05 boolean goesForward = false; // robot không di chuyển lên int distance = 100; // khoảng cách ban đầu 100 cm int speedSet = 0; // đặt tốc độ lúc khởi động int lights = 22; // đèn led kết nối với chân 30 int headangle = 60; // đặt góc đầu servo camera 60 độ int neckangle = 120; // đặt góc cổ servo camera 120 độ char command; // biến 'command' nhận liệu void setup() { pinMode(lights, OUTPUT); myservo1.attach(9); myservo2.attach(10); myservo3.attach(13); myservo3.write(135); myservo1.write(headangle); myservo2.write(neckangle); int readPing(); delay(2000); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); Serial.begin(9600); Serial3.begin(9600); } // đặt chân led chân xuất tín hiệu // servo kết nối với chân // đặt góc 135 độ vào servo // gọi servo headangle // gọi servo neckangle // đặt tốc độ truyền cho // mở cổng Serial Bluetooth 48 void forward() { motor1.setSpeed(255); motor1.run(FORWARD); motor2.setSpeed(255); motor2.run(FORWARD); motor3.setSpeed(255); motor3.run(FORWARD); motor4.setSpeed(255); motor4.run(FORWARD); } void backward() { motor1.setSpeed(255); motor1.run(BACKWARD); motor2.setSpeed(255); motor2.run(BACKWARD); motor3.setSpeed(255); motor3.run(BACKWARD); motor4.setSpeed(255); motor4.run(BACKWARD); } // đặt tốc độ cho motor // động tiến // động lùi void left() { motor1.setSpeed(255); motor1.run(FORWARD); motor2.setSpeed(255); motor2.run(FORWARD); motor3.setSpeed(255); motor3.run(BACKWARD); motor4.setSpeed(255); motor4.run(BACKWARD); } void right() { motor1.setSpeed(255); motor1.run(BACKWARD); motor2.setSpeed(255); motor2.run(BACKWARD); motor3.setSpeed(255); motor3.run(FORWARD); motor4.setSpeed(255); motor4.run(FORWARD); } void moveStop() { motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } // động dừng 49 void camforward() { headangle = headangle + 5; myservo1.write(headangle); myservo2.write(neckangle); } void cambackward() { headangle = headangle - 5; myservo1.write(headangle); myservo2.write(neckangle); } void camleft() { neckangle = neckangle + 5; myservo1.write(headangle); myservo2.write(neckangle); } void camright() { neckangle = neckangle - 5; myservo1.write(headangle); myservo2.write(neckangle); } // góc đầu servo camera + độ // góc đầu servo camera - độ // góc cổ servo camera + độ // góc cổ servo camera - độ void lookAround() { myservo1.write(60); for (neckangle = 30; neckangle = 0; neckangle -= 1) { myservo2.write(neckangle); delay(60); } for (neckangle = 0; neckangle 0) { command = Serial3.read(); Stop(); switch (command) { case 'F': forward(); break; case 'B': backward(); break; case 'L': left(); break; case 'R': right(); break; case 'G': camforward(); break; case 'I': cambackward(); break; case 'H': camleft(); break; case 'J': camright(); break; case 'P': Stop(); break; case 'U': myservo1.write(10); myservo2.write(30); // đọc giá trị nhận từ bluetooth // tiến lên // lùi lại // qua trái // qua phải // camera quay lên // camera quay xuống // camera quay trái // camera quay phải // dừng // camera nhìn lên 53 break; case 'D': lookAround(); break; case 'S': digitalWrite(lights, HIGH); break; case 's': digitalWrite(lights, LOW); break; case 'A': onAuto(); break; // camera nhìn xung quanh // bật đèn // tắt đèn // bật chế độ tự hành } } } Mã code phần Reset: char command; // void setup() { Serial.begin(9600); pinMode( 8, OUTPUT); // digitalWrite( 8, HIGH); // đặt HIGH thay LOW mặc } void loop() { if(Serial.available() > 0) { command = Serial.read(); switch (command) { case '0': digitalWrite(8,LOW); case '1': digitalWrite(8,HIGH); } } } biến ‘command’ nhận liệu bluetooth xuất liệu chân Reset bật chân Reset lên HIGH (khi có pinMode định) 54 TÀI LIỆU THAM KHẢO Phạm Quang Huy, Lê Cảnh Chung, Bài tập thực hành Arduino - Lập trình điều khiển với Arduino, NXB Khoa học kỹ thuật, 2016 Phạm Quang Huy, Nguyễn Trọng Hiếu, Vi điều khiển ứng dụng Arduino dành cho người tự học, NXB Bách khoa Hà Nội, 2016 Các trang web tham khảo thêm: - www.robot-electronics.co.uk (SRF05tech) - www.olimex.com/Products/Components/RF/(Module Bluetooth HC-06 data sheet) - www.ti.com/lit/ds/symlink/l293.pdf (Chip L293D) - https://learn.adafruit.com/adafruit-motor-shield?view=all (điều khiển động L293D)