4.2.1.6.2 Bộ Điều khiển
Với mục đích điều khiển hệ thống tự động bật đèn sương mù, mưa thì chúng tơi sử dụng mạch Arduino Uno R3 được chọn để điều khiển hệ thống. Tín hiệu điện áp ở mức cao (5V) hoặc thấp (0V) từ chân DO của cảm biến ánh sáng gửi đến chân A3 của arduino 1, chân A3 này có trách nhiệm đọc tín hiệu gửi đến từ chân DO của cảm biến mưa khi công tắc đèn ở chế độ Auto. Bộ điều khiển sẽ đọc tín hiệu điện áp sau đó đưa ra các lệnh điều khiển relay chân số 4 của arduino 1 để bật/tắt hệ thống đèn bật đèn sương mù.
Hình 4.19: Arduino Uno R3 [40]
4.2.1.6.3 Bộ chấp hành
Bộ chấp hành của hệ thống tự động chuyển pha - cốt là relay chân 3 trên arduino 2. Sử dụng tính hiệu từ cảm biến mưa đặt phía trên đèn đầu để đóng ngắt điều khiển chế độ bật đèn sương mù của hệ thống chiếu sáng.
56
4.2.1.6.4 Nguyên lý hoạt động của hệ thống sương mù
Sơ đồ 4.10: Sơ đồ nguyên lý hoạt động của hệ thống sương mù
Mạch trợ sáng mưa được tích hợp chung bộ điều khiển trung tâm.
Lấy tín hiệu từ cảm biến mưa. Tấm cảm mưa được thiết kế là 2 cực khác nhau hở mạch với nhau nên khi khơng có mưa tín hiệu gửi về là mức cao.
Cịn khi mưa thì nước dẫn điện làm cho mạch kín lại lúc này tín hiệu sẽ gửi về mức thấp.
Từ đó mạch điều khiển trung tâm sẽ nhận tín hiệu tính tốn và đưa ra lệnh điều khiển relay đóng ngắt.
Relay để mở hoặc tắt đèn liếc tĩnh theo điều kiện thời tiết.
Đồng thời hiển thị lên máy tính điều kiện thời tiết mưa hay khơng mưa và việc tắt mở đèn của mình.
57
4.2.1.6.5 Sơ đồ giải thuật
Sơ đồ 4.11: Sơ đồ giải thuật
4.2.1.7 Hệ thống chiếu sáng tích hợp quay ngang
- Với những trường hợp người điều khiển phương tiện đi trên đường thì khi vào cua hiện tượng thiếu tầm quan sát do thiếu ánh sáng khi rẽ hướng, đoạn đường vòng dễ gây nguy hiểm.
- Nhằm đảm bảo nguồn sáng đủ để tài xế quan sát khi vào cua. Khi xe vào cua thì đèn sẽ chuyển động bù sáng vào phần góc khuất.
- Đèn xe linh động xoay giúp tài xế ln có được tầm quan sát đủ sáng trên những cung đường ngoằng cong.
58
Sơ đồ 4.12: Sơ đồ khối chức năng liếc ngang
4.2.1.7.1 Cảm biến góc lái (Rotary encoder)
Ở thiết kế này, để thực hiện việc xác định góc quay vơ lăng thì chúng tơi quyết định sử dụng cảm biến góc lái với đặc tính mạch volume xoay rotary encoder 360 khơng giới hạn vịng quay này, cảm biến encoder đưa ra 2 xung vuông 90 là 2 phase A và B, xung từ encoder đưa ra có thể nhận biết chiều quay, tốc độ, vị trí Module cung cấp 2 ngã ra cho 2 phase.
Khi sử dụng biến trở để xác định góc quay của vơ lăng, giá trị điện trở của biến trở thay đởi theo góc đánh lái làm cho giá trị điện áp rơi trên nó cũng thay đởi, tín hiệu điện áp này được đưa về chân analog A0 trên arduino. Tín hiệu điện áp này sau đó được arduino chuyển về dạng xung. Nhờ vậy arduino có thể nhớ được các giá trị điện áp ứng với vị trí vơ lăng ở chính giữa và các vị trí vơ lăng cho phép điều khiển xoay chố đèn thơng qua cụm servo.
Hình 4.20: Rotary encoder [41]
4.2.1.7.2 Bộ điều khiển
Cũng giống như các chế độ trên thì mơ hình cũng sử dụng bộ điều khiển Arduino Uno R3 làm bộ điều khiển trung tâm có trách nhiệm nhận tín hiệu, đồng thời phát ra các
59
tín hiệu điều khiển đèn liếc động dựa vào điều kiện góc xoay vơ lăng.
Bộ điều khiển arduino sau khi xử lý tín hiệu và gửi tín hiệu xung điện áp cùng với độ rộng xung khác nhau để điều khiển cụm servo xoay theo hướng đánh lái.
4.2.1.7.3 Bộ chấp hành
Để đáp ứng việc mở rộng nguồn sáng về hai bên nhằm tăng khả năng quan sát khi xe vào cua trong đêm tối, nhóm lựa chọn phương án sử dụng cụm đèn Led kết hợp đồng thời 2 servo trái và phải để điều khiển liếc theo mục đích đề tài.
Hình 4.21: RC servo SG90 [42]
Nguồn cung cấp cho servo là nguồn 5V DC được lấy từ mạch hạ áp 12V÷5V. Trong đó động cơ và vơn kế được nối với mạch điều khiển tạo thành mạch hồi tiếp vịng kín. Cả mạch và động cơ đều được cấp nguồn DC. Để quay động cơ, tín hiệu số được gửi tới mạch điều khiển. Tín hiệu này sẽ khởi động động cơ thông qua chuỗi bánh răng nối với vơn kế. Vị trí của trục vơn kế cho biết vị trí trục ra của servo. Khi vơn kế đạt được vị trí u cầu thì mạch điều khiển sẽ tự động ngắt động cơ.
Thay vì quay liên tục như DC servo, động cơ RC servo được thiết kế quay với giới hạn trong khoảng 90º, 180º và 270º.
Về nguyên lý điều khiển, động cơ RC servo xác định vị trí cần quay tới nhờ độ rộng xung mà ta đưa tới dây điều khiển của động cơ.
Mạch điều khiển của RC servo có chức năng so sánh độ rộng xung điều khiển với tín hiệu điện áp mà biến trở đưa về. Nếu có sự khác biệt (có sai số), nó sẽ tự động điều chỉnh vị trí của động cơ lại cho đúng, quá trình tự động điều chỉnh này được diễn ra khép kín đến khi vị trí của động cơ được xác định chính xác (khi sai số giữa độ rộng
60
xung mà vi điều khiển đưa tới với tín hiệu điện áp của biến trở đưa về bằng 0). Vì vậy được gọi là điều khiển hồi tiếp khép kín.
Độ rộng của các xung sẽ quyết định đến vị trí góc trục của động cơ: - Độ rộng của xung 1.5ms thì cho trục động cơ quay đến vị trí góc 900; - Độ rộng xung nhỏ hơn 1.5ms thì cho trục động cơ quay ở vị trí góc 00; - Độ rộng xung lớn hơn 1.5ms thì trục động cơ sẽ quay đến vị trí góc 1800; - Các servo khác nhau ở góc quay được cùng với tín hiệu 1÷2ms thì các servo chuẩn được thiết kế để quay tới và lui từ 900 đến 1800. Hầu hết các loại servo đều có thể quay được 1800.
Sơ đờ 4.13: Sơ đồ điều khiển xung động cơ RC servo [34]
4.2.1.7.4 Nguyên lý lập trình
Khai báo thư viện servo và các chân tín hiệu đầu vào từ cảm biến rotary sau đó cài đặt chân vào và chân ra điều khiển servo.
Trên rotary encoder có 2 chân cảm biến CLK và DATA tượng trưng cho 2 pha A và B 2 pha này đặt lệch nhau 90º. Dựa vào tín hiệu đưa về Arduino giữa 2 pha này là cùng hay nghịch hay nói cách khác là so sánh tín hiệu đầu vào của 2 chân này từ đó quyết định được chiều quay của vơ lăng cũng như là hướng muốn rẽ.
Vì đặt lệch pha nên 1 cảm biến sẽ có xung trước một cảm biến khác. Nếu pha A nhận tín hiệu trước thì Arduino sẽ hiểu nó quay cùng chiều quay kim đồng hồ từ đó điều khiển servo quay sang phải với góc quay tương ứng và bật đèn trợ sáng góc phải.
61