1. Trang chủ >
  2. Kỹ thuật >
  3. Giao thông - Vận tải >

Trong dòng 15-16 thiết đặt pin9 và pin10 ở chế độ OUTPUT bởi pinMode(), do đó chúng ta sẽ dùng digitalWrite để xuất tín hiệu ở hai pin này. Điện thế tại hai chân này là 5V (hoặc 3,3V trên mạch 3,3V) nếu được xuất tín hiệu là HIGH, và 0V nếu được xuất tín

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.



Xem Thêm
Tải bản đầy đủ (.docx) (123 trang)

×