3..1.2.1 Khái niệm
Arduino IDE là một phần mềm với một mã nguồn mở, được sử dụng chủ yếu để viết và biên dịch mã vào module Arduino. Nó bao gồm phần cứng và phần mềm. Phần cứng chứa đến 300,000 board mạch được thiết kế sẵn với các cảm biến, linh kiện. Phần mềm giúp bạn có thể sử dụng các cảm biến, linh kiện ấy của Arduino một cách linh hoạt phù hợp với mục đích sử dụng.[10]
28
Ảnh III.3:Arduino
3..1.2.2 Arduino IDE hoạt động
Khi người dùng viết mã và biên dịch, IDE sẽ tạo file Hex cho mã. File Hex là các file thập phân Hexa được Arduino hiểu và gửi đến bo mạch bằng cáp USB. Mỗi bo Arduino đều được tích hợp một bộ vi điều khiển, bộ vi điều khiển sẽ nhận file Hex và chạy theo mã được viết.[10]
IDE trong Arduino IDE là phần có nghĩa là mã nguồn mở. Nghĩa là phần mềm này miễn phí cả về phần tải về lẫn phần bản quyền. Người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung được nhà phát hành cho phép mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng.[10]
29
Ảnh III.4:Giao diện Arduino khởi động
Sử dụng ngôn ngữ lập trình C/C++ thân thiện với các lập trình viên
Arduino IDE sử dụng ngôn ngữ lập trình C/C++ rất phổ biến trong giới lập trình. Bất kỳ đoạn code nào của C/C++ thì Arduino IDE đều có thể nhận dạng, giúp các lập trình viên thuận tiện trong việc thiết kế chương trình lập cho các bo mạch Arduino.
30 Hỗ trợ lập trình tốt cho bo mạch Arduino
Ảnh III.5:Bo mạch
Arduino có một module quản lý bo mạch, nơi người dùng có thể chọn bo mạch mà họ muốn làm việc cùng và có thể thay đổi bo mạch thông qua Menu. Quá trình sửa đổi lựa chọn cũng liên tục tự động cập nhật để các dữ liệu có sẵn trong bo mạch và dữ liệu sửa đổi đồng nhất với nhau. Bên cạnh đó, Arduino IDE cũng giúp bạn tìm ra lỗi từ code mà bạn viết, qua đó giúp bạn sửa lỗi kịp thời tránh tình trạng bo mạch Arduino làm việc với code lỗi quá lâu dẫn đến hư hỏng hoặc tốc độ xử lý bị giảm sút[10]
Arduino IDE tích hợp với hơn 700 thư viện, được viết và chia sẻ bởi nhà phát hành Arduino Software và thành viên trong cộng đồng Arduino. Mọi người có thể tận dụng chúng cho dự án của riêng mình mà không cần phải bỏ ra bất kỳ chi phí nào. [10]
31
Arduino IDE có một giao diện đơn giản, dễ sử dụng giúp người dùng thuận tiện hơn trong thao tác. Dưới đây là một số tính năng chúng ta thường sử dụng:
Ảnh III.6:Giao diện chính
• Nút kiểm tra chương trình (Verify): giúp dò lỗi phần code định truyền xuống bo mạch Arduino.
• Nút tải đoạn code vào bo mạch Arduino (Upload): giúp nhập đoạn code vào bo mạch Arduino.
• Vùng lập trình: người dùng sẽ viết chương trình tại khu vực này.
• Thanh Menu: gồm những thẻ chức năng nằm trên cùng như File, Edit, Sketch, Tools, Help. Hỗ trợ đa nền tảng như Windows, MacOS, Linux Arduino IDE hoạt động trên 3 hệ điều hành phổ biến nhất. Đó là Windows, Mac OS và
32
Linux. Nhờ vậy, người dùng có thể truy cập vào phần mềm ở bất cứ đâu, bất cứ khi nào. Ngoài ra, người dùng có thể truy cập vào công cụ từ đám mây. Điều này cho phép các nhà lập trình lựa chọn tạo và lưu dự án của mình trên đám mây. Hoặc họ có thể xây dựng chương trình trên máy tính và upload nó lên bo mạch Arduino.Thư viện hỗ trợ phong phú[10]
Ảnh III.7:Chức năng Library Manager
Arduino IDE tích hợp với hơn 700 thư viện, được viết và chia sẻ bởi nhà phát hành Arduino Software và thành viên trong cộng đồng Arduino. Mọi người có thể tận dụng chúng cho dự án của riêng mình mà không cần phải bỏ ra bất kỳ chi phí nào. [10]
33
Arduino IDE có một giao diện đơn giản, dễ sử dụng giúp người dùng thuận tiện hơn trong thao tác. Dưới đây là một số tính năng chúng ta thường sử dụng:
Ảnh III.8:Thanh công cụ Arduino
• Nút kiểm tra chương trình (Verify): giúp dò lỗi phần code định truyền xuống bo mạch Arduino.
• Nút tải đoạn code vào bo mạch Arduino (Upload): giúp nhập đoạn code vào bo mạch Arduino.
• Vùng lập trình: người dùng sẽ viết chương trình tại khu vực này.
• Thanh Menu: gồm những thẻ chức năng nằm trên cùng như File, Edit, Sketch, Tools, Help.
34
Arduino IDE hoạt động trên 3 hệ điều hành phổ biến nhất. Đó là Windows, Mac OS và Linux. Nhờ vậy, người dùng có thể truy cập vào phần mềm ở bất cứ đâu, bất cứ khi nào. Ngoài ra, người dùng có thể truy cập vào công cụ từ đám mây. Điều này cho phép các nhà lập trình lựa chọn tạo và lưu dự án của mình trên đám mây. Hoặc họ có thể xây dựng chương trình trên máy tính và upload nó lên bo mạch Arduino. [10]
3.2 Mô phỏng hệ thống gạt mưa rửa kính bằng Proteus
Hình III.1:Giao diện mạch trên Proteus
Mạch điện mô phỏng gồm có các phần tử điện sau: 1. Màn hình LCD LMO16L 2. Motor-PWM SORVO 3. Biến trở POT-HG 4. Cảm biến mưa 5. Arduino 6. Button 7. PCF 8574
35 Code nạp cho Arduino
#include <Wire.h>
#include <LiquidCrystal_I2C.h> #define start 8
#define rain 7 #include <Servo.h>
int timer = 5; // tốc độ servo int gocquay = 150; // góc quay int pos = 0; int aa = 0; int a = 0; Servo myservo; LiquidCrystal_I2C lcd(0x27, 16, 2); //... void setup() { Serial.begin(9600); lcd.init(); lcd.backlight(); myservo.attach(3); pinMode(start, INPUT_PULLUP); pinMode(rain, INPUT);
Serial.println("Da khoi dong xong"); lcd.setCursor(0, 0);
36 lcd.print(" RAIN SENSOR");
myservo.write(pos); } //... void loop() { a = analogRead(A0); aa = map(a, 150, 900, 0, 30); Serial.println(a); lcd.setCursor(4, 1); lcd.print("not rain "); if ((digitalRead(start) == 0) || ( a < 900)) { lcd.setCursor(4, 1); if (digitalRead(start) == 0) lcd.print(" START "); else if(a > 600) lcd.print("small rain"); else lcd.print("heavy rain"); servo(); } }
37 //... void servo() { a = analogRead(A0); aa = map(a, 150, 900, 0, 25);
for (pos = 0; pos <= gocquay; pos += 1) { myservo.write(pos); if (a < 900) { delay(aa); } else { delay(timer); } }
for (pos = gocquay; pos >= 0; pos -= 1) { myservo.write(pos); if (a < 900) { delay(aa); } else
38 { delay(timer); } } }
Chương IV PHÂN TÍCH MẠCH MÔ PHỎNG
Ảnh IV.1 Sơ đồ khối mạch gạt mưa rửa kính tự động
- Nguồn cấp (Power supply module) : nguồn 12V của xe thông qua 1 module nguồn sẽ chuyển thành nguồn 3-5V cho vi điều khiển hoạt động - Cảm biến (Rain sensor): có nhiệm vụ lấy mẫu tín hiệu mưa và chuyển thành giá trị điện áp để đưa đến vi điều khiển để xử lý.
- Khối điều khiển ( Arduino Uno): làm nhiệm vụ giao tiếp, nhận và xử lý dữ liệu từ cảm biến, điều khiển các thiết bị ngoại vi. Ở đây khối điều khiển đóng vai trò rất quan trọng, nhận tín hiệu từ khối cảm biến
(cảm biến mưa) và xử lí thông tin để từ đó đưa tín hiệu đến khối chấp hành (để tác động điều khiển động cơ gạt nước hoạt động theo yêu cầu).
- Động cơ gạt nước (wiper motor): sử dụng động DC Servo, được nối với hệ thống cần gạt nước để gạt nước khi có mưa. Động cơ nhận tín hiệu điều khiển từ bộ điều khiển để hoạt động theo yêu cầu.
39
Ảnh IV.2:Lưu đồ thuật toán mạch gạt mưa rửa kính Ưu điểm
- Kết nối giữa các khối đơn giản
- Ngôn ngữ lập trình khá đơn giản, dễ hiểu - Nạp chương trình cho Arduino khá đơn giản - Tiết kiệm năng lượng
40
- Do sử dụng loại cảm biến mưa thông thường nên không phù hợp trên ô tô thực tế vì loại cảm biến này cần phải tiếp xúc trực tiếp với nước mưa nên điều này tồn tại nhiễu dẫn đến độ chính xác giảm và độ bền cũng giảm. Vì thế để ứng dụng mô hình này trên ô tô thực tế ta cần sử dụng cảm biến phản xạ quang để phát hiện mưa rơi mà không cần tiếp xúc trực tiếp với nước mưa.
41
KẾT LUẬN
Trải qua thời gian nghiên cứu và thực hiện đồ án đã giúp em hiểu rõ hơn về vai trò, các ứng dụng của vi điều khiển trong thực tiễn, cũng như cách lập trình cho vi điều khiển (Arduino). Ngoài ra qua đề tài này cũng giúp em hiểu rõ hơn về cấu tạo cũng như hoạt động của hệ thống gạt nước trên ô tô, để từ đó có những hướng phát triển ứng dụng điện tử vào hệ thống gạt nước và rửa kính tự động trên ô tô với giá thành phù hợp để những người không có khả năng sở hữu những chiếc xe cao cấp cũng có thể trang bị cho mình ứng dụng tiện ích này.
Dưới sự hướng dẫn và chỉ bảo tận tình của thầy Trịnh Đắc Phong, em đã hoàn thành đề tài đúng thời hạn và mô phỏng được một mạch gạt nước tự động khi có mưa, cũng như biết cách ứng dụng nó trên ô tô. Mặc dù đã cố gắng hết sức nhưng do kiến thức còn hạn hẹp nên còn nhiều hạn chế.
Em mong nhận được sự đóng góp của thầy cô và các bạn để đồ án của em được hoàn thiện hơn.
42
Tài liệu tham khảo
[1]Nguyễn Thu Phương,2012,Nguyên lí và ứng dụng một số loại sensor,NXB Khoa Học Kĩ Thuật,TP Hà Nội(Tr6-Tr10)
[2]TS.Mai Hán Trung,Bùi Quốc Tuấn,2018,Giáo trình các hệ thống tiện nghi trên ô tô,NXB Khoa Học Kĩ Thuật,Đại học Sư Phạm Kĩ Thuật Hưng Yên(Tr85-Tr99)
[3] Vũ Trang ,2022, Cần gạt nước ô tô là gì? Cách sử dụng cần gạt nước ô tô 15/01/2022 <https://daylaixehanoi.vn/gat-nuoc-o-to.html>
[4] Khoa học công nghệ ,2021, Những phát minh của nữ giới 18/04/2021
<https://baodaklak.vn/channel/3489/202104/nhung-phat-minh-noi-tieng-cua-nu-gioi- 5732147>
[5]Ths Giáp Văn Vịnh., 2018 MÔ HÌNH HỆ THỐNG GẠT MƯA RỬA KÍNH ÔTÔ(BÁO CÁO KHOA HỌC)., 202 Trần Nguyên Hãn - TP Bắc Giang - Bắc Giang
[6]Trần Xuân Huỳnh,2017. Nghiên cứu,thiết kế hệ thống gạt mưa rửa kính tự động trên ô tô(Đồ án tốt nghiệp) Trường Đại học Bách Khoa Hà Nội
[7]Vương Ngọc Thắng,2021,SƠ ĐỒ MẠCH ĐIỆN HỆ THỐNG GẠT MƯA VÀ PHUN NƯỚC
RỬA KÍNH XE Ô TÔ,06/05/2021<https://shopoto.com.vn/so-do-mach-dien-he-thong-gat- mua-va-phun-nuoc-rua-kinh-xe-o-to >
[8]Hoàng Nguyên Phước,2014, Giáo trình Thí nghiệm mô phỏng mạch điện,NXB Khoa Học Kĩ Thuật,Đại học Công nghệ Tp.Hồ Chí Minh
[9]TS.Trần Thế Thắng,2019,Giáo Trình Thiết Kế Mạch Bằng Máy Tính,NXB Kim Đồng, Trường Cao Đẳng Nghề Kỹ Thuật Công Nghệ(Tr8-Tr11)
[10]TS.Trần Minh Sơn TS.Lê Hoàng Minh KS.Phạm Quang Huy,2018, Lập Trình Arduino Với IoT - Hệ Vạn Vật Kết Nối,NXB Thanh Niên,TP Hà Nội
[11]Nguyễn Trung Tín,2014,Hướng dẫn sử dụng Arduino cơ bản.NXB Tuổi Trẻ,TP Hà Nội
[12]Ts. Nguyễn Tiến Hán - Ts, Phạm Việt Thành - Ths, Nguyễn Thành Bắc. 2017. Giáo trình hệ thống điện -điện tử cơ bản. s.l. : Nhà xuất bản Khoa học và Kỹ thuật, TP Hà Nội
[13]TS. Nguyễn Thanh Quang, TS. Lê Văn Anh, Ths Phạm Việt Thành,
44
Hướng dẫn sử dụng sản phẩm thuyết minh 1.Tìm nội dung
Cách 1: Từ phần danh mục “ MỤC LỤC” đưa chuột đến nội dung
muốn xem ấn ctrl + click chuột trái sẽ được chuyển ngay đến vị trí nội dung muốn xem.
Cách 2: Ấn Ctrl + F sẽ hiện lên cửa sổ tìm kiếm bên trái màn hình Nhập nội dung muốn tìm vào ô tìm kiếm.kết quả trả về sẽ được bôi vàng. ấn vào mũi tên lên xuống ở dưới ô tìm kiếm để chuyển kết quả khác.
45
Ấn vào Pages để xem nội dung theo từng trang.
46
2. Tìm hình ảnh.
Từ phần danh mục “ DANH MỤC HÌNH ẢNH” đưa chuột đến hình ảnh muốn xem ấn ctrl + click chuột trái sẽ được chuyển ngay đến vị trí đó