TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HCM BÁO CÁO MÔN CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO ĐỀ TÀI HỆ THỐNG HỖ TRỢ VÀ CẢNH BÁO LÙI XE CHO Ô TÔ Người thực hiện Nguyễn Duy Quốc Thái Nguyễn Thanh Lưu Tên lớp TD22.
MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM BÁO CÁO MÔN CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO ĐỀ TÀI: HỆ THỐNG HỖ TRỢ VÀ CẢNH BÁO LÙI XE CHO Ô TÔ Người thực hiện: Nguyễn Duy Quốc Thái Nguyễn Thanh Lưu Tên lớp: TD2201 Giảng viên hướng dẫn:PGS TS Đồng Văn Hướng TP Hồ Chí Minh, tháng 03 năm 2023 MỤC LỤC NHĨM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG LỜI MỞ ĐẦU Trong thời buổi công nghệ nay, thiết bị điện tử - tự động hóa ngày phát triển, địi hỏi xác tốc độ xử lí thơng tin thiết bị điện tử cao Trong mơn học phần giải vấn đề Để thiết bị tự động hóa hoạt động cần có tham gia cảm biến nhằm đo lường giá trị thực tế để chuyển giá trị analog digital Vậy ngun lí mơn học Cảm biến xử lý tín hiệu đo cung cấp từ tổng quan chi tiết đa số loại cảm biến thực tế nhóm cung cấp vài thơng tin mơ hình thực tế loại cảm biến cảm biến siêu âm HC - SR04 Sau khoảng thời gian, nhóm hồn thành đa số mục tiêu đặt Tuy nhiên cịn vài sai sót, nhóm tiếp tục hồn thiện sản phẩm để đạt nhu cầu thiết yếu toán cơng nghệ Những thơng tin mà nhóm cung cấp hi vọng giúp ích cho bạn tiếp cận giải tốn cơng nghệ Nội dung báo cáo gồm nội dung sau: Nguyên lí hoạt động cảm biến siêu âm HC-SR04: Giải pháp công nghệ ứng dụng với cảm biến Sơ đồ giải thuật cho tốn cơng nghệ Mơ phần mềm proteus Chương trình xử lí tín hiệu cảm biến Mơ hình Các mạch hỗ trợ, Vi xử lí Arduino nano Các cấu chấp hành: Đèn Led, phanh, còi Các thiết bị giám sát: Màn hình hiển thị LCD NHĨM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG CHƯƠNG I GIỚI THIỆU VỀ CẢM BIẾN SIÊU ÂM HC SR04 1.1 Cấu tạo cảm biến siêu âm HC SR04 Hình 1.1 Sơ đồ cấu tạo cảm biến siêu âm HC-SR04 Cảm biến siêu âm HC – SR04 gồm : Bộ biến âm Đế nhựa tổng hợp Phần giảm âm Cáp điện Vỏ kim loại Vỏ bọc 1.2 Thông số kỹ thuật: -Nguồn làm việc: 3.3V – 5V (chuẩn 5V) -Dịng tiêu thụ : 2mA -Tín hiệu đầu xung: HIGH (5V) LOW (0V) -Khoảng cách đo: 2cm – 100cm -Độ xác: 0.5cm -Góc qt tốt : 30 NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO 1.3 GVHD: PGS.TS ĐỒNG VĂN HƯỚNG Sơ đồ chân Hình 1.2 Sơ đồ chân đấu nối với Arduino Nguyên lí hoạt động : Để đo khoảng cách, cảm biến siêu âm phát xung ngắn khoảng micro giây từ chân trig Sao cảm biến tạo xung HIGH chân Echo nhận tín hiệu trở 1.4 = (1.1) Trong v : vận tốc sóng siêu âm ( 343 m/s khơng khí ) t : thời gian từ lúc phát đến lúc thu NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG Hình 1.3 Ngun lí hoạt động cảm biến siêu âm Ứng dụng cảm biến siêu âm HC-SR04 1.5.1 Dải đo cảm biến siêu âm HC-SR04 : - Cảm biến siêu âm HC-SR04 phát khoảng cách từ vật thể đến đầu cảm 1.5 biến khoảng từ 2cm – 100cm 1.5.2 Điện áp vào cấp cho cảm biến hoạt động: - Điện áp hoạt động 5V/DC cấp vào chân Vcc cảm biến 1.5.3 Tín hiệu đầu vào cảm biến : - Tín hiệu vào : điện áp - Tín hiệu : tần số 1.5.4 Xử lí tín hiệu đầu cảm biến : - Tín hiệu cảm biến tần số, từ tần số ta suy thời gian ( cách ta lập trình cho Arduino đếm thời gian nhận xung từ cảm biến gửi thơng qua chân mà kết nối, thời gian đếm “t” ) sau từ “t” đếm , suy khoảng cách công thức (1.1) 1.5.5 Ứng dụng cảm biến thực tế : - Cảm biến siêu âm sử dụng nhiều khu vực nhà máy công nghiệp, dây chuyền sản xuất, khu vực bệnh viện… NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG Hình 1.4 Ứng dụng thực tế cảm biến siêu âm NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG CHƯƠNG 2: CẤU HÌNH PHẦN CỨNG 2.1 Quy trình cơng nghệ Hình 2.1 Sơ đồ khối thể quy trình cơng nghệ hệ thống 2.2 Cấu hình vi xử lý 2.2.1 Giới thiệu vi xử lí Arduino nano Board Arduino Nano V3 phiên nhỏ gọn board Arduino, đầy đủ tính năng, thiết kế dựa vi điều khiển ATmega32P So với mạch Arduino Uno R3 hàm chức mạch Arduino Nano V3 giống nhau, chúng xây dựng dựa Atmega 328 Có điểm khác biệt cần quan tâm mạch là, Arduino Nano V3 bổ xung thêm chân đọc tín hiệu ADC A6, A7 2.2.2 Cấu hình vi xử lí Arduino nano NHĨM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG Hình 2.2 Sơ đồ chân Arduino nano Có 30 chân vào/ra đánh số thứ tự từ đến 13, ngồi cịn có chân nối đất ( GND ) chân điện áp tham chiếu ( AREF) Vi điều khiển AVR : xử lí trung tâm tồn board mạch Với mẫu Arduino nano khác chip khác Ở Arduino nano V3.0, sử dụng chip ATMega328 Arduino nano V3.0 có 14 chân digital để đọc xuất tín hiệu Chúng có hai mức điện áp 0V 5V với dòng điện vào/ra tối đa 40mA Một số chân digital có chức đặc biệt sau : + Hai chân Serial : (TX) (RX) dùng để gửi (transmit - TX) nhận (receive - RX) + Chân PWN () : chân 6, 8, 9, 12, 13 14 , chân cho phép xuất xung PWN với độ phân giải bit hàm analogWrite() + Chân giao tiếp SPI : chân 13 (SS), chân 14 (MOSI), chân 15 (MISO), chân 16 (SCK) Ngồi chức thơng thường, chân cịn dùng để truyền phát đữ liệu giao thức SPI với thiết bị khác LED 13 : nhấn nút Reset, đèn LED 13 nhấp nháy để báo hiệu Nó nối với chân 13 Khi chân sử dụng, led sáng Có chân analog ( từ A0 đến A7 ) Chân VIN dùng để cấp nguồn cho board arduino nano 2.2.3 Thông số kĩ thuật Hình 2.3 Bảng thơng số kĩ thuật Arduino nano NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG 2.3 Cơ cấu chấp hành Hình 2.4 Hình ảnh cấu chấp hành 2.3.1 Đèn báo Bao gồm đèn: + LED ĐỎ : led báo khoảng cách an toàn ( từ 5cm đến 50cm ) + LED XANH : led báo khoảng cách nguy hiểm ( từ 0cm đến 5cm ) 2.3.2 Còi báo: Dùng để báo hiệu: xe khoảng cách an tồn cịi khơng kêu, khoảng cách báo động, tần số còi báo lớn vật cản gần, đến khoảng cách nguy hiểm cịi kêu liên hồi tới ấn nút dời xa hết cao 2.3.3 Màn hình hiển thị LCD 16x2: Dùng để hiển khoảng cách xe vật cản, cảnh báo cho tài xế biết vào khu vực nguy hiểm 2.3.4 Nút nhấn Thể cho xe lúc vào chế độ lùi NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG CHƯƠNG 3: THIẾT KẾ CHƯƠNG TRÌNH GIÁM SÁT VÀ ĐIỀU KHIỂN 3.1 Lưu đồ thuật toán Hình 3.1 Hình ảnh lưu đồ thuật tốn hệ thống NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI 10 MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO 3.2 GVHD: PGS.TS ĐỒNG VĂN HƯỚNG Mô vẽ mạch Proteus Hình 3.5 Hình ảnh hệ thống chạy proteus Mạch nguyên lý PCB Mạch in NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI 11 MƠN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG Bố trí linh kiện 3.3 Hình ảnh mơ thực tế kết quả: Hình 3.3 Hình ảnh khởi động hệ thống NHĨM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI 12 MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG Hình 3.4 Hình ảnh xe khoảng cách an tồn Hình 3.5 Hình ảnh hệ thống xe khoảng cách nguy hiểm NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI 13 MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG -Tín hiệu giả định : tín hiệu điện áp Tín hiệu điện áp tượng trưng cho khoảng cách từ vật thể đến đuôi xe - Khi thay đổi điện áp biến trở khoảng cách từ vật cản đến đầu cảm biến thay đổi cảm biến đo khoảng cách, từ thực cấu chấp hành - Khi khởi động hệ thống nút nhấn, hình LCD hiển thị : “DA CAP NGUON , AN NUT START !” Khi khoảng cách từ 5cm – 50cm, hình LCD hiển thị “KHOANG CACH DEN VAT CAN LA: …”, còi kêu với tần số cao hơn khoảng cách từ cảm biến đến vật thể gần Khi khoảng cách nhỏ 5cm, LED TRÁI sáng lên, còi kêu liên hồi , LCD hiển thị “QUA GAN VAT CAN, NGUY HIEM” 3.4 Đánh giá mơ phỏng, mơ hình thực tế Nhìn chung mơ hình thực tế nhóm hoàn thành đa số mục tiêu đặt cho tốn cơng nghệ nhóm ( hiển thị khoảng cách lùi xe cho tài xế, vùng lùi an toàn, nguy hiểm báo hiệu có vật cản nằm gần thiết bị LCD, đèn LED còi) Để cải tiến hồn thiện nhóm dùng đến hai cảm biến để phòng trường hợp vật cản nằm điểm mù cảm biến Tuy nhiên việc xử lí thơng tin cịn chậm chất lượng cảm biến mà nhóm sử dụng chưa có độ tin cậy cao giá thành rẻ nên tránh việc lấy mẫu thơng tin xử lý cịn chậm khiến cho khoảng cách hiển thị LCD chưa liên tục 3.5 Code arduino #include #include #include ; LiquidCrystal_I2C lcd(0x3F,16,2); const const const const int int int int trig1 = 5; echo1= 6; trig2 = 7; echo2 = 8; NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI 14 MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG unsigned long duration1; unsigned long duration2; int distance1; int distance2; unsigned long time1 = 0; const int buzz=2; int t=0; int led1 =3;// t nam khoang 10 den 50 den vang sang int led2 =4; // t be hon 10 den sang int buttonA=9;// int buttonPushCounterA = 0; // số lần button A nhấn int buttonStateA = 0; // trạng thái button A int lastButtonStateA = 0; // trạng thái trước button A void khoangcach1(); void setup() { Serial.begin(9600); pinMode(trig1,OUTPUT); pinMode(echo1,INPUT); pinMode(trig2,OUTPUT); pinMode(echo2,INPUT); pinMode(buzz,OUTPUT); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode (buttonA,INPUT); lcd.init(); //Khởi động hình Bắt đầu cho phép Arduino sử dụng hình, giống dht.begin() chương trình lcd.backlight(); //Bật đèn lcd.print(" DA CAP NGUON"); //Xuất chữ Hello world, mặc định sau init trỏ cột hàng (trong C, khác với quy ước tiếng Việt, số bắt đầu số 0, bạn cần hiểu rằng, ta kẻ bảng có hàng 16 cột ô góc bên trái ô (0,0) tương tự với ô khác, ta tăng dần giá trị lên! lcd.setCursor(0,1); //Đưa trỏ tới hàng 1, cột lcd.print(" AN NUT START!");// Bạn thấy hình chứ? } void loop() { buttonStateA = digitalRead(buttonA); if (buttonStateA != lastButtonStateA) { if (buttonStateA == HIGH) NHÓM 4: NGUYỄN THANH LƯU – NGUYỄN DUY QUỐC THÁI 15 MÔN: CẢM BIẾN VÀ XỬ LÝ TÍN HIỆU ĐO GVHD: PGS.TS ĐỒNG VĂN HƯỚNG { buttonPushCounterA++; Serial.println("Dang nhan nut A"); Serial.print("So lan nhan button A la: "); Serial.println(buttonPushCounterA); } else { Serial.println("off"); } } lastButtonStateA = buttonStateA; if (buttonPushCounterA % == 0) { lcd.clear(); khoangcach1(); } else { digitalWrite(buzz,0); digitalWrite(led1,LOW); digitalWrite(led2,LOW); } } void khoangcach1() { digitalWrite(trig1,0); delayMicroseconds(2); digitalWrite(trig1,1); delayMicroseconds(5); digitalWrite(trig1,0); duration1 = pulseIn(echo1,HIGH); distance1 = int(duration1/2/29.412); Serial.print(distance1); digitalWrite(trig2,0); delayMicroseconds(2); digitalWrite(trig2,1); delayMicroseconds(5); digitalWrite(trig2,0); duration2 = pulseIn(echo2,HIGH); distance2 = int(duration2/2/29.412); Serial.print(distance2); if(distance1