Lập trình điều khiển xe robot thông minh bằng arduino nano

44 12 0
Lập trình điều khiển xe robot thông minh bằng arduino nano

Đ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Ộ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG -🙞🙞🙞🙞🙞 - BÁO CÁO ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Đề tài: LẬP TRÌNH ĐIỀU KHIỂN XE ROBOT THƠNG MINH BẰNG ARDUINO NANO Giảng viên hướng dẫn: NGUYỄN NGỌC MINH Hệ: ĐẠI HỌC CHÍNH QUY HÀ NỘI – 2021 LỜI NĨI ĐẦU I GIỚI THIỆU ĐỀ TÀI 1.Lý chọn đề tài 2.Mục tiêu nghiên cứu 3.Ý nghĩa khoa học thực tiễn đề tài 3.1 Ý nghĩa khoa học: 3.2 Ý nghĩa thực tiễn 4.Những đóng góp đề tài vấn đề mà đề tài chưa thực 5 Những ưu điểm nhược điểm xe robot thông minh 5.1 Ưu điểm 5.2 Nhược điểm II.GIỚI THIỆU KHÁI QUÁT VỀ MẠCH ARDUINO Giới thiệu Arduino Phần cứng Phần mềm III.GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH C# 1.Lịch sử hình thành 10 Đặc trưng ngơn ngữ C# 10 IV TỔNG QUÁT VỀ HỆ THỐNG 11 Giới thiệu chung xe robot thông minh 11 Cấu tạo xe robot thông minh 11 2.1 Sơ đồ khối chức 11 2.2 Chức phận 13 3.Chương trình chạy mã code cho Arduino 17 3.1 Code Arduino điều khiển bánh xe 17 3.2 Code Arduino điều khiển cánh tay robot 21 Chương trình điều khiển Visual C# 27 Mục tiêu đồ án 34 V KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN ĐÈ TÀI 34 Một vài lệnh điều khiển động 34 1.1 Lệnh điều khiển động servo 34 1.2 Thuật toán quét động servo 35 1.3 Điều khiển cánh tay với nút bấm 36 1.4 Điều khiển động servo chiết áp 38 1.5 Làm động tiến 1s, lùi 1s 39 1.6 Điều khiển bật tắt led với Bluetooth 40 Kết 41 Hướng phát triển đề tài 42 Một vài lưu ý lắp ghép điều khiển xe robot 42 VI.TÀI LIỆU THAM KHẢO 43 LỜI MỞ ĐẦU Ngày nay, với phát triển đất nước, ngành cơng nghệ kỹ thuật điện tử nói riêng ngành tin học nói chung có bước phát triển mạnh mẽ khơng ngừng, tạo tiền đề dẫn đến thành công nhiều lĩnh vực hoạt động Hưởng ứng sóng công nghệ 4.0, Robot ứng dụng vào lĩnh vực đời sống, xã hội, mang lại nhiều thay đổi mạnh mẽ cho kinh tế Robot loại máy thực cơng việc cách tự động điều khiển máy tính vi mạch điện tử lập trình Robot lập trình sẵn theo trình tự định sử dụng mục đích phục vụ cơng việc lắp ráp, sản xuất chế biến sản phẩm Robot hỗ trợ nhiều cho người Đặc biệt môi trường khắc nghiệt, độc hại nguy hiểm Robot cơng nghiệp có tính xác cao hiệu vượt trội so với sản xuất thủ công, đặc biệt sử dụng cánh tay robot Nhiệm vụ sinh viên ngành Điện-Điện tử bọn em cần phải nghiên cứu, tìm tịi phát triển ứng dụng, dựa sở lí thuyết học, để tạo sản phẩm có chất lượng tốt nhất, đáp ứng nhu cầu sống đại robot vận chuyển hàng hóa, robot kiểm tra nguy hiểm, robot xe lăn cho người khuyết tật, robot phục vụ sinh hoạt gia đình… Nhưng điểm hạn chế robot thịnh hành tính thiếu linh hoạt khả thích ứng làm việc vị trí địa lý khác nhau, robot ngày phải cải tiến cho thơng minh hơn, từ giảm nhiều rủi ro nguyên vật liệu lẫn chi phí vận hành, bảo dưỡng Đề tài “ Lập trình điều khiển xe robot thơng minh ” nhằm góp phần giải vấn đề Tuy nhiên q trình tìm tịi, nghiên cứu làm báo cáo, nhóm cịn số vấn đề thiếu xót chưa sâu sắc, nhóm em mong có đóng góp ý kiến Thầy để báo cáo bọn em hoàn thiện I GIỚI THIỆU ĐỀ TÀI 1.Lý chọn đề tài Nắm bắt từ thực tế nay, nhiều nước giới ứng dụng robot để phục vụ nhiều lĩnh vực như: công nghiệp, nông nghiệp, quân sống sinh hoạt ngày.Trong tương lai, robot công cụ hỗ trợ đắc lực cho người giúp người vươn đến tầm cao 2.Mục tiêu nghiên cứu Đối với nhóm sinh viên bọn em, đề tài bước tìm hiểu, thi cơng sản phẩm robot ứng dụng thực tế, đồng thời bước triển khai kiến thức học Thông qua việc nghiên cứu làm việc nghiêm túc để rèn luyện tác phong, tinh thần khoa học hoàn thiện phương pháp, tư nghiên cứu, giải vấn đề thực tiễn Quan trọng hơn, đề tài bước “tổng kết hồn thiện” kỹ cịn thiếu sót trước thực trở thành người kỹ sư Về mặt ứng dụng thực tiễn, đề tài sử dụng hỗ trợ việc điều khiển tự động tránh né vật cản khu vực phức tạp nhằm tránh va chạm với vật 3.Ý nghĩa khoa học thực tiễn đề tài 3.1 Ý nghĩa khoa học - Ứng dụng kết nghiên cứu lý thuyết, đề tài xây dựng mơ hình xe robot lắp lên cánh tay thông minh kết nối với máy tính điện thoại thơng qua thiết bị bluetooth Đề tài minh chứng tı́nh đắn hướng nghiên cứu, khẳng định độ ̣tin cậy kết nghiên cứu khoa học 3.2 Ý nghĩa thực tiễn - Xây dựng xe vừa điều khiển bluetooth thơng qua điện thoại android có khả tự ghi nhớ lặp lại hành động thực trước Nhóm chúng em dừng lại việc tìm hiểu cấu trúc tổng quang robot, đồng thời tìm hiểu khối phục vụ cho việc điều khiển robot giao thức truyền thơng máy tính mạch Arduino 4.Những đóng góp đề tài vấn đề mà đề tài chưa thực Đề tài có ý nghĩa bước đầu chập chững tiến lên ngành cơng nghiệp nghiên cứu robot cịn yếu nước ta, góp phần làm “điểm tựa” cho hệ sau tiến lên nấc thang cao nghiên cứu chế tạo robot Xe robot gắn lên cánh tay thơng minh có thiết kế nhỏ gọn hoạt động tốt với kết cấu vững nguồn hoạt động lâu giúp cho người dễ dàng vận chuyển triển khai phạm vi ứng dụng cách linh hoạt Tuy nhiên thời gian nghiên cứu khơng nhiều nên đề tài cịn nhiều mặt hạn chế chưa áp dụng nhiều công nghệ GPS, Camera, Đèn, cảm biến công nghệ giúp xe Robot trở nên thơng minh có ứng dụng thực tiễn nhiều 5 Những ưu điểm nhược điểm xe robot thông minh 5.1 Ưu điểm - Không ô nhiễm, sử dụng pin sạc pin - Sử dụng không gian hiệu quả, đa ( sử dụng nhà phố) - Dễ dàng điều khiển Điện thoại thông minh thông qua Bluetooth - Như phương tiện vận chuyển hàng hố giám sát - Giá thành thấp robot khác - Tốc độ di chuyển nhanh chóng tiện lợi - Tránh né vật xung quanh cách linh hoạt - Mẫu mã thiết kế bắt mắt - Hạn chế tiếng ồn - Dễ dàng thiết kế lắp ráp - Di chuyển đa hướng nhanh nhẹn 5.2 Nhược điểm - Khơng thể vượt qua địa hình xấu - Tiêu hao lượng nhiều - Khoảng cách điều khiển ngắn - Các bánh xe chạy chưa -Cánh tay robot chưa thao tác nhanh -Vẫn độ trễ tín hiệu -Động servo dễ nóng -Các nút điều khiển app chưa hiệu II.GIỚI THIỆU KHÁI QUÁT VỀ MẠCH ARDUINO 1 Giới thiệu Arduino -Arduino board mạch vi xử lý, nhằm xây dựng ứng dụng tương tác với với môi trường thuận lợi Phần cứng bao gồm board mạch nguồn mở thiết kế tảng vi xử lý AVR Atmel 8bit, ARM Atmel 32-bit Những Model trang bị gồm cổng giao tiếp USB, chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác Được giới thiệu vào năm 2005, Những nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, khơng tốn cho người u thích, sinh viên giới chuyên nghiệp để tạo nhiết bị có khả tương tác với mơi trường thơng qua cảm biến cấu chấp hành Những ví dụ phổ biến cho người yêu thích bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ phát chuyển động Đi với mơi trường phát triển tích hợp (IDE) chạy máy tính cá nhân thơng thường cho phép người dùng viết chương trình cho Aduino ngôn ngữ C C++ Giá board Arduino dao động xung quanh €20, $27 574 468VNĐ, "làm giả" giá giảm xuống thấp $9 Các board Arduino đặt hàng dạng lắp sẵn dạng kit tự-làm-lấy Thông tin thiết kế phần cứng cung cấp công khai để muốn tự làm mạch Arduino tay tự thực (mã nguồn mở) Người ta ước tính khoảng năm 2011 có 300 ngàn mạch Arduino thức sản xuất thương mại vào năm 2013 có khoảng 700 ngàn mạch thức đưa tới tay người dùng 2 Phần cứng -Một mạch Arduino bao gồm vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình mở rộng với mạch khác Một khía cạnh quan trọng Arduino kết nối tiêu chuẩn nó, cho phép người dùng kết nối với CPU board với module thêm vào dễ dàng chuyển đổi, gọi shield Vài shield truyền thông với board Arduino trực tiếp thông qua chân khách nhau, nhiều shield định địa thơng qua serial bus I2C-nhiều shield xếp chồng sử dụng dạng song song Arduino thức thường sử dụng dịng chip megaAVR, đặc biệt ATmega8, ATmega168, ATmega328, ATmega1280,và ATmega2560 Một vài vi xử lý khác sử dụng mạch Aquino tương thích Hầu hết mạch gồm điều chỉnh tuyến tính 5V thạch anh dao động 16 MHz (hoặc cộng hưởng ceramic vài biến thể), vài thiết kế LilyPad chạy MHz bỏ qua điều chỉnh điện áp on board hạn chế kích cỡ thiết bị Một vi điều khiển Arduino lập trình sẵn với boot loader cho phép đơn giản upload chương trình vào nhớ flash on-chip, so với thiết bị khác thường phải cần nạp bên Điều giúp cho việc sử dụng Arduino trực tiếp cách cho phép sử dụng máy tính gốc nạp chương trình Theo nguyên tắc, sử dụng ngăn xếp phần mềm Arduino, tất board lập trình thơng qua kết nối RS-232, cách thức thực lại tùy thuộc vào đời phần cứng Các board Serial Arduino có chứa mạch chuyển đổi RS232 sang TTL Các board Arduino lập trình thơng qua cổng USB, thực thông qua chip chuyển đổi USB-to-serial FTDI FT232 Vài biến thể, Arduino Mini Boarduino khơng thức, sử dụng board adapter cáp nối USB-to-serial tháo rời được, Bluetooth phương thức khác (Khi sử dụng công cụ lập trình vi điều khiển truyền thống thay ArduinoIDE, cơng cụ lập trình AVR ISP tiêu chuẩn sử dụng.) Board Arduino đưa hầu hết chân I/O vi điều khiển để sử dụng cho mạch Diecimila, Duemilanove, Uno đưa 14 chân I/O kỹ thuật số, số tạo xung PWM (điều chế độ rộng xung) chân input analog, sử dụng chân I/O số Những chân thiết kế nằm phía mặt board, thơng qua header 0.10-inch (2.5 mm) Nhiều shield ứng dụng plug-in thương mại hóa Các board Arduino Nano, Arduino-compatible Bare Bones Board Boarduino cung cấp chân header đực mặt board dùng để cắm vào breadboard Có nhiều biến thể Arduino-compatible Arduino-derived Một vài số có chức tương đương với Arduino sử dụng để thay qua lại Nhiều mở rộng cho Arduino thực thiện cách thêm vào driver đầu ra, thường sử dụng trường học để đơn giản hóa cấu trúc 'con rệp' robot nhỏ Những board khác thường tương đương điện có thay đổi hình dạng-đơi cịn trì độ tương thích với shield, đơi không Vài biến thể sử dụng vi xử lý hoàn toàn khác biệt, với mức độ tương thích khác 3 Phần mềm Mơi trường phát triển tích hợp (IDE) Arduino ứng dụng crossplatform (nền tảng) viết Java, từ IDE sử dụng cho Ngơn ngữ lập trình xử lý (Processing programming language) project Wiring Nó thiết kế để dành cho lập trình viên người tập tành làm quen với lĩnh vực phát triển phần mềm Nó bao gồm chương trình code editor với chức đánh dấu cú pháp, tự động brace matching, tự động canh lề, compile(biên dịch) upload chương trình lên board với cú click chuột Một chương trình code viết cho Arduino gọi sketch Các chương trình Arduino viết C C++ Arduino IDE kèm với thư viện phần mềm gọi "Wiring", từ project Wiring gốc, giúp thao tác input/output dễ dàng Người dùng cần định nghĩa hàm để tạo chương trình vịng thực thi (cyclic executive) chạy được: ♦ setup() : hàm chạy khởi động chương trình, dùng để thiết lập cài đặt ♦ loop() : hàm gọi lặp lại tắt nguồn board mạch Một chương trình điển hình cho vi điều khiển đơn giản làm cho bóng đèn Led sáng/tắt Trong môi trường Arduino, ta phải viết chương trình giống sau: -Đèn LED tích hợp với chân 13: #define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // Cho phép chân 13 làm đầu digital } void loop () { digitalWrite (LED_PIN, HIGH); // Bật LED on delay (1000); // chờ giây (1000 mili giây) digitalWrite (LED_PIN, LOW); // Tắt LED off delay (1000); // chờ 1s } - Một đặc điểm hầu hết board Arduino chúng có đèn LED điện trở nối chân 13 với đất, đặc điểm thuận tiện cho nhiều ứng dụng đơn giản Đoạn code đọc compiler C++ chuẩn chương trình đúng, ta click vào nút "Upload to I/O board" IDE này, copy đoạn code ghi vào file tạm với extra include header phía hàm main () đơn giản nằm phía đáy, để làm cho thành chương trình C++ khả dụng Arduino IDE sử dụng GNU toolchain AVR Lib để biên dịch chương trình, sử dụng avrdude để upload chương trình lên board Vì tảng Arduino vi điều khiển Atmel, môi trường phát triển Atmel, AVR Studio phiên Atmel Studio hơn, sử dụng để làm phần mềm phát triển cho Arduino III.GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH C# 1.Lịch sử hình thành So sánh với ngơn ngữ lâu đời Python hay PHP, C# bổ ngôn ngữ lập trình trẻ với 20 năm phát triển Ngơn ngữ phát triển vào năm 2000 kỹ sư Microsoft tên Anders Hejlsberg Anders tham gia vào việc tạo số cơng cụ ngơn ngữ lập trình đáng tin cậy, bao gồm Microsoft TypeScript Delphi – thay phù hợp cho Turbo Pascal Vào tháng năm 2019, C# đứng danh sách ngôn ngữ lập trình phổ biến mạng xã hội GitHub, xếp Java, Javasrcipt Python - C# (C Sharp) ngơn ngữ lập trình hướng đối tượng đa vô mạnh mẽ phát triển Microsoft, C# phần khởi đầu cho kế hoạch NET họ Tên ngôn ngữ bao gồm ký tự thăng theo Microsoft theo ECMA C#, bao gồm dấu số thường Microsoft phát triển C# dựa C++ Java C# miêu tả ngôn ngữ có cân C++, Visual Basic, Delphi Java 2 Đặc trưng ngôn ngữ C# - C # ngôn ngữ đơn giản, mạnh mẽ - C# ngôn ngữ đa đại, C# phù hợp cho việc phát triển thời đại 4.0, bao gồm việc phát triển web, mobile app, game, học máy trí tuệ nhân tạo, phát triển đám mây, IoT, blockchain, microservices - C# ngôn ngữ lập trình hướng đối tượng đồng thời hỗ trợ lâp trình chức năng, C# hỗ trợ mạnh mẽ cho phương pháp lâp trình hướng đối tượng, ngồi C# cịn hỗ trợ phương pháp lập trình chức thông qua biểu thức lamba, khớp mẫu, functions, thuộc tính bất biến - C# ngơn ngữ gõ tĩnh, định kiểu mạnh, hỗ trợ gõ động - C# ngơn ngữ từ khóa, C# có khoảng 80 từ khóa - Trong đồ án này, C# đóng vai trị quan trọng tạo ứng dụng dùng để điều khiển cánh tay robot với kết nối với code Arduino thông qua cổng COM bảng điều khiển ứng dụng, sau hoàn thiện, ứng dụng dùng để điều khiển cánh tay robot thông qua tín hiệu gửi lên nhận lại, giao tiếp Serial, ngồi giúp cánh tay ghi nhớ hành động thực trước tự thực lại hành động ta cho phép -Dưới chương trình C# đơn giản, với ví dụ "Hello World" kinh điển: 10 ... chung xe robot thông minh 11 Cấu tạo xe robot thông minh 11 2.1 Sơ đồ khối chức 11 2.2 Chức phận 13 3.Chương trình chạy mã code cho Arduino 17 3.1 Code Arduino điều khiển bánh xe 17 3.2 Code Arduino. .. +130 ℃ 17 Hình 8: Module điều khiển động L298 Chức năng: Mạch điều khiển động bánh xe xe robot 3.Chương trình chạy mã code cho Arduino 3.1 Code Arduino điều khiển bánh xe #define inA1 //Định nghĩa... tạo xe robot thông minh 2.1 Sơ đồ khối chức 11 Nguồn Chương trình Bộ điều khiển máy tính Bánh xe Khối xử lý liệu Động servo Cánh tay robot Dụng cụ thao tác Hình 2: Sơ đồ khối hệ thống điều khiển

Ngày đăng: 26/02/2023, 12:20

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

Tài liệu liên quan