Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (12.58 MB, 123 trang )
-
ISR: tên hàm sẽ gọi khi có sự kiện ngắt được sinh ra.
-
mode: kiểu kích hoạt ngắt, bao gồm:
-
LOW: kích hoạt liên tục khi trạng thái chân digital có mức thấp
-
HIGH: kích hoạt liên tục khi trạng thái chân digital có mức cao.
-
RISING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp thấp sang mức
điện áp cao.
-
FALLING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp cao sang mức
điện áp thấp.
Chương trình con xử lí ngắt.
Dòng 26 - 57 chương trình con của ngat1: void ngat1(){…}
Dòng 28: hàm detachInterrupt(interrupt) sẽ tắt các ngắt đã được kích hoạt tương ứng
với thông số truyền vào. Ở đây interrupt là số thứ tự ngắt.
Dòng 29 – 39 chương trình ngắt chạy hàm if … else để xử lý tín hiệu xung từ kim
phun để tách ra được thời gian mà kim phun nhiên liệu vào buồng đốt cho mỗi chu
trình cơng tác của mỗi máy. Bằng cách xử dụng hàm định thời gian micros()có nhiệm
vụ trả về một số - là thời gian (tính theo micro giây) kể từ lúc chương trình ngắt
ngừng hoạt động (sau hàm dettachInterrupt(1)) và từ việc đọc được giá trị điện áp ở
mức cao và mức thấp Arduino xác định được thời gian kim phun phun nhiên liệu mỗi
chu trình ở mức thấp (LOW) của mỗi chu kỳ xung mà tín hiệu kim phun gửi về board.
Và chương trình xử lý ta lấy ra được thời gian kim phun cho mỗi chu trình là
thoigianmucthap1.
Từ dòng 42 – 57 chương trình con của ngat0: void ngat0(){…}
Từ cách thức tương tự như chương trình con ở ngat1 ta cũng tính ra được thời gian ngậm
(thoigianmuccao0) từ xung IGT ở chương trình con ngat0 này. Ở phần này ta còn tính ra
được chuky bằng tổng của thoigianmuccao0 và thoigianmucthap0 để phục vụ cho q trình
tính tốn số vòng quay của động cơ bên dưới vòng lặp.
Chương trình vòng lặp:
Những lệnh trong setup() sẽ được chạy khi chương trình của bạn khởi động. Bạn có thể sử
dụng nó để khai báo giá trị của biến, khai báo thư viện, thiết lập các thông số, …. Sau khi
setup() chạy xong, những lệnh trong loop() được chạy. Chúng sẽ lặp đi lặp lại liên tục cho
tới khi nào bạn ngắt nguồn của board Arduino mới thơi.
Hình : chương trình vòng lặp Arduino
Chương trình này bắt đầu từ dòng 58 – 123: void loop() {... }
Dòng 60-78: dữ liệu điều khiển được truyền từ trên Labview xuống Arduino, sử dụng
lập trình mảng.
Dòng 80-81: outputValue1 = map(led_analog1,0,100,647,2875);
outputValue2 = map(led_analog1,0,100,1248,3521);
Chuyển đổi dữ liệu sang dạng 12 bit (có giá trị từ 0 đến 4095) của IC MCP4921 bằng
cú pháp Map (val, A1, A2, B1, B2);
Trong đó:
Val: giá trị cần chuyển đổi
A1, A2 là giới hạn trên và dưới của thang đo hiện tại
B1, B2 là giới hạn trên và dưới của thang đo cần chuyển tới.
Dòng 82-89:
( còn điều chỉnh)
Dòng 90-97:
Dòng 98 thể hiện cơng thức tính tocdo của động cơ qua chuky của xung IGT. Vì thời
gian của chuky trong chương trinh ngắt trên là micros và tocdo được tính bằng
vòng/phút do đó ta có cơng thức tính tocdo = 1000000 * 60 /chuky;.
Dòng 99 - 104 sử dụng hàm analogRead() để đọc giá trị điện áp của tín hiệu VPA,
VPA2, cảm biến THA, THW, VG, VTA, từ các chân Analog A0, A1, A2, A3, A4.
Dòng 105 - 122 các tín hiệu được Arduino đọc được sẽ xuất ra cổng Serial bằng hàm
Serial.print(); dưới dạng chuỗi dài nối tiếp xen kẽ các chữ cái: a, a0, b, a1, c , THA, d
, THW, e, VG, f, VTA, g, thoigianmuccao0, h, thoigianmucthap1, i, tocdo. Việc chen
các chữ cái này để phục vụ cho việc tách tín hiệu dễ dàng khi phần mềm LabVIEW
nhận được chuỗi tín hiệu này.
3.2.2. Chương trình trên LabVIEW
3.2.2.1 Giao tiếp RS232
Đặc điểm chuẩn RS232 được nối ra một giắc cắm (gọi là cổng COM). Khi sử dụng nó có
thê sử dụng 2 hay toàn bộ chân pin của cổng này (các chân 4,9,15,37 phục vụ các chức năng
khác). Nếu mục đích chỉ truyền nhận tín hiệu, điều khiển giữa 2 thiết bị thì người ta chỉ sử
dụng hai dây 1 dây truyền nhận và 1 dây nối đất vì vậy khi máy tính sử dụng LabVIEW giao
tiếp RS232 với Arduino chỉ bằng cáp nối 2 đầu USB.
RS232 sử dụng phương thức truyền thơng khơng đối xứng, tức là sử dụng tín hiệu điện
áp chênh lệch giữa một dây dẫn và đất. Các cổng của RS232 có ngưỡng điện áp quy ước là
-15V (volt) tới -3V , và 3V tới 15V (hoặc -5V, +5V, sự khác biệt giữa hai giá trị 3V, và 5V
này được gọi là noise magin - biên độ dao động của nhiễu).
-
Tín hiệu có áp lớn +3V được coi có logic 0 hoặc có giá trị cao (H)
-
Tín hiệu có áp nhỏ hơn -3V được coi có logic 1 hoặc giá trị thấp (L).
-
Điện áp từ -3V tới +3V khơng có ý nghĩa.
Chính vì từ -3V tới +3V là phạm vi không được định nghĩa, trong trường hợp thay đổi
giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ
trong một thời gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các
thiết bị tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài
của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd (chiều dài cho phép
30-50 m).
Các giá trị tốc độ truyền tiêu chuẩn: 50, 75, 110, 750, 300, 600, 1200, 2400, 4800, 9600,
19200, 28800, 38400, …, 56600, 115200 bps.
Các ưu điểm của giao tiếp này:
-
Khả năng chống nhiễu của các cổng nối tiếp cao.
-
Thiết bị ngoại vi có thể lắp ngay khi máy tính đang được cấp điện.
-
Các mạch đơn giản có thể nhận điện áp nguồn nuôi qua cổng nối tiếp.
Cách giao tiếp RS232 sử dụng trên LabVIEW:
Hình 3.6: Sơ đồ khối giao tiếp giữa Arduino và LabVIEW
Hình 3.7: Mơ hình khối giao tiếp VISA của LabVIEW
Chuyển đổi mảng
Là chuyển đổi các mảng giá trị ASCII thành các chuỗi, như giải thích phần tử mảng mong
muốn và tạo ra một chuỗi ra khỏi các ký tự tương ứng.
Hình 3.3: Hình mơ tả khối chuyển đổi mảng
Tách tín hiệu
Sau khi nhận được tín hiệu truyền đến từ giao tiếp RS232, chúng ta sử dụng các khối Match
Pattern để tách riêng biệt từng dữ liệu ra.
Hình 3.8: Mơ hình khối tách tín hiệu trong LabVIEW
CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
4.1. Quy trình thực nghiệm
Nội dung thực nghiệm:
Kết nối các chân để đọc tín hiệu các cảm biến THA, THW, PIM, VTA, FUEL và xung
IGT, xung kim phun #10 hoặc #20 với các chân board Arduino. Dữ liệu được truyền từ
board Arduino lên máy tính SERVER thơng qua giao tiếp Serial Monitor. Máy tính sẽ hiển
thị các giá trị cảm biến và xung thông qua phần mềm LabVIEW.
Kết nối các chân của 2 MCP4921 với board Arduino để thực hiện điều khiển bàn đạp ga
điện tử:
Kết nối các chân của 2 MCP4921 với nhau.
Quy trình thực hiện:
-
Bước 1: Xác đính chân tín hiệu từ các cảm biến và kết nối với các chân Arduino để đọc
-
tín hiệu.
Bước 2: Kết nối board Arduino với máy tín và khởi động Arduino IDE nạp chương trình
-
code cho phần cứng.
Bước 3: Khởi động chương trình LabVIEW trên 2 máy SERVER và CLIENT. Xác định
-
cổng COM trên chương trình LabVIEW của máy SERVER.
Bước 4: Xác nhận IP WAN ở Site trung tâm và IP LAN của máy SERVER để đọc được
PORT sau khi NAT PORT. Nhập IP WAN vào máy CLIENT và chân PORT đồng nhất
-
với IP LAN trên máy SERVER.
Bước 5: Khởi động động cơ
Bước 6: Khởi chạy chương trình LabVIEW máy SERVER trước rồi chạy chương trình
-
trên máy CLIENT sau.
Bước 7: Kết quả được hiển thị thông qua hai máy tiến hành đọc, kiểm tra tín hiệu và ghi
lại tín hiệu đọc được từ các chế độ hoạt động của xe.
4.2. Kết quả thức nghiệm thu được khi nổ máy xe
-
Thử nghiệm 1:
Xe hoạt động với chế độ không tải (máy lạnh, quạt, đèn khơng bật).
-
Bướm ga đóng hồn tồn với góc mở 0%.
Xe nằm trong xưởng động cơ với nhiệt độ môi trường tại xưởng bình thường.
Kết quả đo được thể hiện đầy đủ trên giao diện LabVIEW của 2 máy SERVER và
CLIENT với các tín hiệu đo được ở thử nghiệm 1 như sau:
Hình 4.1: Giao diện chương trình SERVER lúc khơng tải (VTA 0 %)
Hình 4.2: Giao diện chương trình CLIENT lúc không tải (VTA 0 %)
Các biểu đồ thể hiện đặc tính của các tín hiệu thử nghiệm 1 thu được như sau:
Hình 4.3: Bảng đồ thị kết quả chương trình SERVER lúc khơng tải (VTA 0 %)
Hình 4.4: Bảng đồ thị kết quả chương trình CLIENT lúc khơng tải (VTA 0 %)
-
Thử nghiệm 2:
Xe hoạt động với chế độ không tải (máy lạnh, quạt, đèn không bật).
-
Bướm ga mở với góc 31%.
Xe nằm trong xưởng động cơ với nhiệt độ mơi trường tại xưởng bình thường.
Kết quả đo được thể hiện đầy đủ trên giao diện LabVIEW của 2 máy SERVER và
CLIENT với các tín hiệu đo được ở thử nghiệm 2 như sau:
Hình 4.5: Giao diện chương trình SERVER lúc có tải (VTA 31 %)
Hình 4.6: Giao diện chương trình CLIENT lúc khơng tải (VTA 31%)
Các biểu đồ thể hiện đặc tính của các tín hiệu thử nghiệm 2 thu được như sau:
Hình 4.7: Bảng đồ thị kết quả chương trình SERVER lúc khơng tải (VTA 31 %)
Hình 4.8: Bảng đồ thị kết quả chương trình CLIENT lúc khơng tải (VTA 31 %)
****** quy trình thực hiện điều khiển bàn đạp ga
CHƯƠNG 5: KẾT LUẬN VÀ ĐỀ NGHỊ
5.1. Kết quả đạt được
Nhờ việc ứng dụng Internet để thu thập dữ liệu đã được nhiều kết quả nổi bật sau:
-
Dữ liệu thu thập được từ các cảm biến, tốc độ, thời gian được truyền lên Internet, nên
-
người dùng ở bất cứ nơi nào có kết nối Internet là xem dữ liệu dễ dàng và chính xác.
Áp dụng ứng dụng của IoT vào việc thu thập dữ liệu, truyền dữ liệu, điều khiển giữa hai
-
máy tính.
Thiết lập mạng riêng ảo VPN để kết nối giữa hai Router.
Đáp ứng các yêu cầu giao tiếp giữa Arduino và LabVIEW thông qua giao tiếp RS232,
-
LabVIEW và Internet.
Thiết kế giao diện LabVIEW dễ nhìn, thơng tin rõ ràng, chính xác.
Thiết kế board mạch Arduino gọn gàng, dễ dàng lắp đặt và kết nối.
5.2. Kết luận
Qua hai tháng nghiên cứu làm đồ án, nhóm đã thiết kế thành cơng mơ hình thu thập dữ
liệu trên động cơ Toyota Camry 5S - FE và giao tiếp với máy tính thơng qua Internet. Như
vậy, dữ liệu trên xe sẽ được truyền liên tục lên trên Internet thông qua kết nối mạng di động
3G, 4G, 5G hoặc mạng Wi-Fi diện rộng. Vì vậy, việc ứng dụng IoT để thu thập dữ liệu trên
thiết bị, phương tiện có ý nghĩa đặc biệt quan trọng đối với cuộc cách mạng cơng nghiệp 4.0
đang bùng nổ nói chung và cơng nghệ xe tự hành nói riêng. Khi cơng nghê thơng tin đạt đến
đỉnh cao thì Internet sẽ kết nối giữa các phương tiện giao thông, kết nối phương tiện với cơ
sở hạ tầng, thành phố thông minh, nhà thông minh, camera thông minh và vạn vật được kết
nối Internet.
5.3. Hướng phát triển của đề tài
-
Thu thập thêm nhiều cảm biến.
Thu thập dữ liệu khơng dây các tín hiệu cảm biến.
Định hướng truyền tín hiệu dùng mạng di động 3G, 4G không cần giải pháp hỗ trợ
-
đường hầm VPN và NAT PORT.
Thiết kế được thiết bị chuyên dùng để thu thập dữ liệu và truyền lên Internet.
Thu thập dữ liệu ổn đinh, nhanh và chính xác hơn nữa.
Thiết kế ứng dụng điều khiển xe hơi từ xa thông qua Internet.