TỔNG QUAN
LÝ DO CHỌN ĐỀ TÀI
Xã hội phát triển nhanh chóng, kéo theo nhu cầu di chuyển của con người tăng cao, dẫn đến sự gia tăng nhanh chóng về số lượng phương tiện giao thông Tuy nhiên, hạ tầng giao thông và đường xá chưa đáp ứng đủ nhu cầu sử dụng, trong khi diện tích các bãi đỗ ô tô còn hạn chế, gây khó khăn cho tài xế trong việc tìm kiếm chỗ đỗ xe.
Để tối ưu hóa khả năng của các bãi đỗ xe hạn chế, cần tạo ra không gian đỗ xe an toàn, thoải mái và nhanh chóng cho chủ xe Việc thiết kế bãi đỗ hợp lý, sử dụng công nghệ thông minh và cung cấp thông tin rõ ràng sẽ giúp nâng cao trải nghiệm của người dùng.
Trong những năm gần đây, sự phát triển của khoa học và công nghệ đã dẫn đến sự ra đời của các hệ thống thông minh trên ô tô, nhằm mục đích chính là nâng cao sự an toàn và tiện nghi cho người lái.
Hệ thống hỗ trợ đậu xe trên ô tô giúp giảm căng thẳng và mệt mỏi khi tìm kiếm vị trí đậu xe, đồng thời đơn giản hóa các thao tác đậu xe trong không gian hẹp Người lái chỉ cần nhấn nút và để xe tự động thực hiện các công việc còn lại, trong khi chỉ cần điều khiển chân ga và phanh theo hướng dẫn của hệ thống.
Với những lý do nêu trên, nhóm chúng em quyết định chọn hệ thống hỗ trợ đậu xe làm đề tài nghiên cứu và học tập, nhằm trang bị kiến thức cơ bản về hệ thống này.
MỤC TIÊU VÀ NHIỆM VỤ NGHIÊN CỨU
Nhóm chúng em nghiên cứu hệ thống hỗ trợ đậu xe trên ô tô nhằm nắm vững kiến thức cơ bản và áp dụng vào thực tiễn Chúng em cũng mong muốn xây dựng nền tảng lập trình, một xu hướng phát triển mới trong ngành ô tô hiện nay.
Thu thập các tài liệu liên quan đến hệ thống hỗ trợ đậu xe trên các dòng xe trong nước và ngoài nước
Nghiên cứu, chọn lọc các tài liệu sử dụng trong quá trình làm mô hình của hệ thống hỗ trợ đậu xe
Tìm hiểu về Arduino và ngôn ngữ lập trình Arduino
Lên ý tưởng, thiết kế mô hình và lập trình điều khiển mô hình mô tả được sự hoạt động của hệ thống hỗ trợ đậu xe
Cho mô hình chạy thực nghiệm và hoàn thiện mô hình
Viết báo cáo, thuyết minh về mô hình.
PHƯƠNG PHÁP NGHIÊN CỨU
Tham khảo, thu thập các tài liệu liên quan
Học hỏi kinh nghiệm từ thầy cô, bạn bè
KẾ HOẠCH NGHIÊN CỨU
Đề tài được thực thực hiện trong vòng 15 tuần và được chia làm 2 giai đoạn:
- Thu thập tài liệu, xác định nhiệm vụ, đối tượng nghiên cứu, phân tích tài liệu có liên quan
- Lắp mô hình và lập trình cho mô hình hoàn thiện
CƠ SỞ LÝ THUYẾT
LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA HỆ THỐNG HỖ TRỢ ĐẬU
One of the earliest prototypes of an automated parking assistance system was developed on the Ligier electric vehicle by INRIA (French Institute for Research in Computer Science and Automation) in the mid-1990s.
Trong năm 1992 Volkswagen đã đề xuất ý tưởng về hệ thống tự đỗ xe trong đề án IRVW nhưng không có một phiên bản thương mại nào được thực hiện.
Đến năm 2003, TOYOTA đã giới thiệu phiên bản thương mại đầu tiên của hệ thống hỗ trợ đỗ xe (parking assist system) trên chiếc Toyota Prius, nhưng chỉ được bán tại thị trường Nhật Bản Phiên bản này gặp nhiều lỗi và khó khăn trong việc phát hiện các vật thể như người đi bộ và vật nuôi Đến năm 2006, sau khi hoàn thiện hệ thống, TOYOTA chính thức đưa sản phẩm ra thị trường toàn cầu thông qua chiếc Lexus LS sản xuất tại Mỹ.
Sau Toyota các hãng khác cũng lần lượt ra mắt các phiên bản khác nhau của hệ thống parking assist system với các tên gọi khác nhau: Ford (2009), BMW (2010)…
Sơ đồ tống quát hệ thống hỗ trợ đậu xe
+Camera trước và sau xe
+ Công tắc xi-nhan và nút bấm
+Cảm biến tốc độ bánh xe
+ Hệ thống trợ lực lái điện( EPS)
+ Còi cảnh báo đỗ xe + Màn hình hiển thị
Các loại hình đậu xe Đậu xe song song
Đậu xe song song là hình thức đậu xe mà xe được đặt song song với lề đường Hiện tại, việc đậu xe này chỉ khả thi khi có không gian giữa hai xe đã đậu trước hoặc khi đậu sau một xe khác, trong khi hệ thống không hỗ trợ việc đậu trước một xe.
Đậu xe vuông góc là hình thức đậu xe mà xe được đỗ theo hướng vuông góc với lề đường Tương tự như đậu xe song song, việc đậu xe vuông góc chỉ được thực hiện khi có hai xe đã đậu sẵn hoặc khi đậu cạnh xe khác, không cho phép đậu trước một xe khác.
Hình 2.1 Đậu xe song song
Hình 2.2 Đậu xe vuông góc
Ngoài 2 hình thức đậu xe ở trên thì còn có các trường hợp đậu xe khác như:
Hình 2.3 Đậu xe giữa những trở ngại khác
Hình 2.4 Đậu xe trên lề
Hình 2.5 Đậu xe ở các khúc cua Điều kiện kích hoạt và hủy bỏ chế độ hộ trợ đậu xe:
- Hệ thống sẽ không hoạt động khi xảy ra các trường hợp sau:
+ ESP( Chương trình cân bằng xe điện tử) không được kích hoạt với nút bấm ESP + Xe có gắn rơ móc
- Việc hỗ trợ đậu xe sẽ bị hủy bỏ khi xảy ra các trường hợp sau:
+ Người lái can thiệp vào di chuyển của vô lăng
+ Tốc độ đậu xe quá 7 km/h
+ Chức năng hỗ trợ đậu xe bị tắt bằng nút điều khiển trê xe
+ Thời gian đỗ xe quá lâu( khoảng 6 phút).
GIỚI THIỆU VỀ HỆ THỐNG HỖ TRỢ ĐẬU XE TRÊN CÁC DÒNG XE TẠI VIỆT NAM
Ford đã giới thiệu mẫu xe hạng trung với tính năng hỗ trợ đậu xe tự động, một trang bị thường thấy trên các dòng xe cao cấp.
Hình 2.6 Vị trí của nút kích hoạt chức năng hỗ trợ đậu xe trên Ford Focus
Hệ thống hỗ trợ người lái tìm chỗ đỗ xe và tự động đánh lái đưa xe vào vị trí, trong khi người lái vẫn cần thao tác với số (tiến/lùi) và sử dụng chân ga/phanh.
Các bước lùi xe vào chỗ đỗ với sự trợ giúp của hệ thống hỗ trợ đỗ xe tự động trên Ford Focus:
Bật công tắc xi-nhan bên phía muốn đậu xe và ấn nút khởi động hệ thống hỗ trợ đậu xe Di chuyển với tốc độ dưới 20 km/h, giữ khoảng cách tối đa 80 cm với các xe đang đỗ Hệ thống sẽ đo khoảng trống giữa hai xe và không gian đỗ cần thiết (tối thiểu 1,4 thân xe) Nếu hệ thống xác định khoảng cách đỗ xe an toàn, bạn có thể tiếp tục di chuyển vào khoảng trống đó.
Hệ thống điều khiển và âm thanh sẽ phát ra tiếng bíp để thông báo cho người lái biết đã tìm thấy chỗ đậu xe Người lái cần tiếp tục tiến về phía trước cho đến khi hệ thống thông báo dừng lại (STOP) và chức năng đỗ xe tự động đã sẵn sàng.
Để đỗ xe tự động, người lái chỉ cần chọn số lùi và buông tay lái, hệ thống sẽ tự động đánh lái để đưa xe vào vị trí đã xác định trước Người lái cần theo dõi kính chiếu hậu và giữ chân ga dưới 10 km/h Khi cảm biến lùi và bảng điều khiển thông báo xe đã gần vị trí đỗ, người lái chỉ cần đạp phanh và chuyển số tiến, hệ thống sẽ tiếp tục đánh lái để đưa xe về phía trước.
Khi xe đã vào vị trí, hệ thống sẽ thông báo trên bảng điều khiển rằng việc hỗ trợ đậu xe đã hoàn tất Nếu người lái muốn di chuyển tiến hoặc lùi, có thể lặp lại các bước tương tự như trước.
Các bước lấy xe ra khi đậu xe song song:
- Ấn nút khởi động hệ thống hệ thống hỗ trợ đậu xe tự động, gạt xi- nhan qua phía muốn đưa xe ra
Hệ thống tự động điều khiển đánh lái cho phép người lái buông hoàn toàn vô-lăng, chỉ cần chú ý đến bàn đạp ga, phanh và thực hiện chuyển số lùi hoặc tiến theo hướng dẫn trên bảng điều khiển.
- Khi xe đã được đưa ra khỏi vị trí đỗ xe, người lái tiếp tục giữ vô- lăng để đưa xe di chuyển theo hướng mong muốn
Một số lưu ý khi sử dụng chức năng hỗ trợ đậu xe tự động:
- Hệ thống sẽ hủy thao tác hỗ trợ đậu xe bất cứ khi nào người lái giữ tay lái
- Không sử dụng tính năng này khi có các vật thò ra từ thùng xe, nóc xe
- Tính năng này không tự động phanh, do đó, người lái cần chú ý quan sát, phối hợp vào số và sử dụng phanh
2.2.2 Các dòng xe của Mercedes Benz
Hệ thống hỗ trợ đậu xe Active Parking Assist của Mercedes-Benz hiện nay rất phổ biến, được trang bị trên hầu hết các dòng xe Hệ thống này cho phép người lái đậu xe chỉ trong 5 bước mà không cần chạm tay vào vô-lăng, đồng thời hỗ trợ lấy xe ra khỏi chỗ đậu một cách dễ dàng.
Bước đầu tiên để tìm chỗ đậu xe là chạy với vận tốc dưới 36 km/h Hệ thống Parktronic sẽ sử dụng các cảm biến siêu âm để xác định khoảng trống đậu xe phù hợp, bao gồm chiều dài xe cộng thêm 0.5m phía trước và 0.5m phía sau Trên màn hình sẽ hiển thị chữ P, cho biết hệ thống đang tìm kiếm chỗ đậu.
Khi chiếc xe tìm được chỗ đậu thì xuất hiện mũi tên nhỏ bên cạnh chữ P như hình, lúc này ta cần dừng xe lại
Bước 2: Bật tính năng Active Parking Assist
Khi dừng xe, hãy bật đèn xi nhan bên cần đậu và chuyển cần số về vị trí lùi “R” Lúc này, bảng đồng hồ sẽ hiển thị thông báo “Start Park Assist?” để xác nhận xem bạn có muốn kích hoạt chức năng đỗ xe song song tự động hay không.
Hình 2.7 Thông báo tìm thấy vị trí đậu xe
Nhấn OK trên vô lăng để thực hiện việc đậu xe
Bước 3: Hoàn thành việc đậu xe
Tính năng Active Parking Assist sẽ kích hoạt với thông báo "Park Assist Active Accelerate and brake Observe surroundings", cho phép xe tự động đánh lái và điều chỉnh chân ga, giúp người lái dễ dàng hơn trong việc đỗ xe.
Hình 2.8 Hệ thống đậu xe tự động đánh lái và điều phối chân ga
Tốc độ tối đa của xe hiện tại là 10km/h Người lái cần giữ chân trên bàn đạp phanh và quan sát màn hình camera lùi để sẵn sàng can thiệp khi gặp tình huống bất ngờ.
Khi hệ thống báo vật cản cảnh báo rằng khoảng cách với xe sau không còn an toàn, người lái cần đạp phanh để dừng xe Sau đó, chuyển về số "D" để tiến về phía trước, xe sẽ tự động đánh lái và điều phối chân ga Khi đã vào vị trí đậu xe mong muốn, hệ thống sẽ thông báo bằng âm thanh và hiển thị dòng chữ "Park assist switched off".
Hình 2.9 Việc đậu xe đã hoàn tất
Sử dụng Ative Park Assist để lấy xe ra khỏi chỗ đỗ
Khi sử dụng hệ thống hỗ trợ đậu xe, xe sẽ ghi nhớ vị trí đậu Khi khởi động lại, nếu bật xi-nhan, hệ thống sẽ hỏi bạn có muốn lấy xe ra không, hiển thị thông báo "Start Park Assist?" với mũi tên chỉ ra ngoài Bạn chỉ cần nhấn OK trên vô lăng để bắt đầu Sau đó, chỉ cần quan sát và kiểm soát chân phanh, còn vô lăng và ga sẽ được hệ thống tự động điều khiển.
Hình 2.10 Hệ thống hỗ trợ đậu xe hỏi người lái có muốn kích hoạt chức năng lấy xe ra khỏi vị trí đỗ hay không?
Tính năng Active Parking Assist hỗ trợ người lái tự động đậu xe chỉ trong tối đa 5 thao tác Trong một số trường hợp, người dùng có thể cần thực hiện thêm các thao tác tiến, lùi cho đến khi hệ thống thông báo quá trình đậu xe đã hoàn tất.
CẤU TẠO, HOẠT ĐỘNG CỦA HỆ THỐNG HỖ TRỢ ĐẬU XE
Cấu tạo của hệ thống hỗ trợ đậu xe, gồm 3 phần chính:
- Cảm biến: cảm biến siêu âm, cảm biến góc lái, cảm biến tốc độ bánh xe
- Bộ chấp hành: EPS( trợ lực lái điện), ESC( bộ điều khiển cân bằng điện tử)
Và hệ thống truyền dữ liệu: mạng LIN( Local Interconnect Network) và mạng CAN( Controller Area Network)
Cảm biến siêu âm là thiết bị đo khoảng cách từ cảm biến đến vật cản như tường hoặc cọc tiêu Thiết bị này được sử dụng rộng rãi trong nhiều lĩnh vực chuyên dụng, bao gồm đo độ sâu, quét địa hình đáy biển, đo độ dày bê tông trong xây dựng và các ứng dụng quân sự.
Cảm biến siêu âm có cấu tạo gồm 3 phần chính:
Phần phát tín hiệu bao gồm các đầu phát và đầu thu siêu âm, được chế tạo đặc biệt với loa gốm Chúng hoạt động hiệu quả nhất khi phát siêu âm với cường độ cao ở tần số 40kHz, thường được sử dụng trong các ứng dụng đo khoảng cách.
Phần xử lý và điều khiển của hệ thống thường sử dụng một vi điều khiển để phát xung và tính toán thời gian từ khi phát ra đến khi thu nhận sóng siêu âm phản hồi.
Phân loại cảm biến siêu âm:
Trong quá trình thu phát tín hiệu, cảm biến sử dụng hai loại cảm biến: một để phát sóng siêu âm và một để nhận sóng dội lại từ các vật cản Khoảng cách được tính toán dựa trên công thức cụ thể.
L là khoảng cách từ cảm biến đến vật cản v là vận tốc của âm thanh trong không khí
(~ 343 m/s) t là khoảng thời gian từ khi sóng siêu âm được phát ra đến khi được nhận tại đầu thu sau khi phản hồi tại vật cản
Hình 2.11 Cảm biến siêu âm HC- SR04
13 α là góc giữa 2 cảm biến thu phát sóng siêu âm
Trong công thức trên, do quãng đường sóng truyền và nhận gấp 2 lần khoảng cách từ cảm biến đến vật nên ta chia cho 2
Hình 2.12 Hình ảnh minh họa cho thời gian trong quá trình thu phát sóng siêu âm
Cảm biến siêu âm này có ưu điểm nổi bật là giá thành rẻ và cấu tạo đơn giản Tuy nhiên, nhược điểm chính là độ chính xác thấp do có sai số và có thể bị nhiễu, vì hoạt động dựa trên phương pháp đo thời gian truyền.
Loại 2 là loại cảm biến chỉ có một đầu thực hiện hai chức năng thu và phát sóng siêu âm Khoảng cách từ cảm biến đến vật cản được tính theo công thức nhất định.
Cảm biến loại 2, mặc dù có giá thành cao hơn so với loại 1, đã khắc phục được những nhược điểm của loại 1 Chính vì vậy, hiện nay, cảm biến loại 2 ngày càng được ưa chuộng và lắp đặt nhiều hơn trên ô tô.
Cảm biến siêu âm trong hệ thống hỗ trợ đậu xe chủ yếu có chức năng cảnh báo chướng ngại vật phía trước và phía sau Nó tập trung vào việc xác định các vật cản và khoảng trống đỗ xe giữa các xe Để nhận diện chính xác các góc cong trên thân xe, cảm biến siêu âm được thiết kế đặc biệt Có hai phương pháp giảm tối đa sai số khi xác định các góc bo của xe: điều chỉnh đầu dò để giảm độ rộng chùm tia siêu âm và áp dụng phương pháp xử lý nhiều tín hiệu vọng lại.
Hình 2.13 Cảm biến siêu âm loại 2
Độ rộng của chùm tia siêu âm được điều chỉnh dựa trên tần số kích thích và bán kính đầu dò cảm biến, theo công thức cụ thể.
Trong đó: + 0 : một nửa chiều rộng chùm tia siêu âm
+ : bước sóng kích thích của cảm biến siêu âm
Cảm biến siêu âm có thể gặp khó khăn trong việc phát hiện vật cản như lan can thấp do việc thiết kế để tăng tần số kích thích, làm cho độ rộng chùm tia siêu âm hẹp hơn và gây phức tạp cho mạch điện Việc điều chỉnh này cũng ảnh hưởng đến độ nhạy và độ chính xác của đầu dò Một giải pháp khác là sử dụng nhiều tín hiệu sóng siêu âm phản xạ, với tần số đầu dò là 50kHz và 16 xung để truyền tín hiệu Các xung này được phản xạ bởi vật cản và trở lại dưới dạng tín hiệu dội lại, sau đó được sửa đổi để tính toán mất mát trong quá trình truyền sóng Tạp âm trong tín hiệu phản xạ sẽ được loại bỏ, và nhờ chức năng thời gian cho phép, hiệu suất phát hiện ổn định và đáng tin cậy được đảm bảo, đặc biệt khi ngưỡng khoảng cách là 1m.
Hình 2.14 Mô tả cách nhận biết góc bo của xe bằng sóng siêu âm
Hình ảnh minh họa cho thấy các hình dạng góc bo của xe có thể được phân biệt thông qua nhiều sóng phản xạ chức năng Cảm biến siêu âm trong trường hợp này được thiết kế với tần số 50kHz, bán kính 1.5cm và chiều rộng chùm tia là ± 16 độ.
Vị trí lắp đặt các cảm biến siêu âm trên xe
Hình 2.15 Vị trí cảm biến siêu âm trên xe
Cảm biến siêu âm phía trước bên hông xe, bao gồm hai cảm biến bên phải và trái, được lắp đặt ở đầu xe để hỗ trợ tìm kiếm không gian đỗ xe phù hợp Với kích thước lớn hơn so với các loại cảm biến khác, chúng cung cấp thông tin về góc và phạm vi quét rộng hơn, giúp người lái dễ dàng nhận diện không gian xung quanh.
Thông tin từ 2 cảm biến này được dùng để:
Đo không gian đậu xe trong quá trình đậu xe
Tính toán các góc đánh lái phục vụ cho việc đậu xe
- Các cảm biến siêu âm phía trước đầu và sau đuôi xe
Chức năng chính của các cảm biến này nhằm phát hiện các vật cản trước và sau xe trong quá trình tìm vị trí đỗ xe và đỗ xe
Các cảm biến siêu âm có kích thước nhỏ hơn và góc quét hẹp hơn so với hai cảm biến bên hông xe Tuy nhiên, nhờ được đặt gần nhau, sóng quét của chúng sẽ chồng lên nhau, giúp hạn chế các khu vực không được quét.
Khu vực "chết" là nơi mà các vật cản không thể được phát hiện, được thể hiện qua hình ảnh bên dưới Trong đó, khu vực sóng màu trắng cho thấy phạm vi quét của các cảm biến siêu âm ở phía trước và phía sau xe, bao gồm 4 cảm biến ở đầu xe và 4 cảm biến ở đuôi xe.
Hình 2.16 Vị trí cảm biến siêu âm trên xe
Hình 2.17 Vị trí cảm biến siêu âm trên xe
2.3.1.2 Cảm biến tốc độ bánh xe
EPS nhận tín hiệu xung từ cảm biến tốc độ bánh xe để tính toán tốc độ của xe, sau đó truyền thông tin này đến ECU qua giao tiếp mạng CAN.
Hình 2.18 Nguyên lí hoạt động của cảm biên tốc độ bánh xe
SƠ LƯỢC VỀ ARDUINO VÀ LẬP TRÌNH ARDUINO
Arduino là một board mạch vi xử lý mở, giúp xây dựng các ứng dụng tương tác với nhau và môi trường xung quanh Phần cứng của Arduino được thiết kế dựa trên vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit, với các model hiện tại trang bị 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số, tương thích với nhiều board mở rộng khác nhau.
Arduino ra đời tại thị trấn Ivrea, nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin
Được giới thiệu chính thức vào năm 2005, Arduino là một công cụ học tập sáng tạo dành cho sinh viên do giáo sư Massimo Banzi phát triển tại trường Interaction Design Institute Ivrea (IDII).
Dòng mạch Arduino UNO là lựa chọn phổ biến nhất trong lập trình Arduino, và hiện tại đã phát triển đến thế hệ thứ 3 (R3).
Hình 2.32 Một vài hình ảnh thực tế của Arduino
Board mạch Arduino có nhiều loại, trong đó Arduino Uno là lựa chọn cơ bản nhất cho người mới bắt đầu Board này có 14 chân dữ liệu số, có thể cấu hình để nhận tín hiệu vào hoặc xuất tín hiệu ra, cùng với 6 chân tương tự đầu vào 5V với độ phân giải 1024 mức Arduino Uno hoạt động với tốc độ 16MHz và điện áp vào từ 7 đến 12V, có khả năng cấp điện áp ra 5V và 1A từ các chân số Nếu tiêu tốn quá 1A, board sẽ bị hỏng Kích thước của board khoảng 5,5x7cm.
Board này được thiết kế nhỏ gọn, phù hợp cho các không gian lắp đặt hạn chế với kích thước khoảng 5x2cm Nó tương tự như Arduino Uno và có 20 chân số, mang lại sự linh hoạt trong việc kết nối và phát triển dự án.
7 chân có thể phát xung PWM 12 chân tương tự c Arduino Pro/Pro Micro
Arduino Uno được thiết kế với hai loại điện áp là 3.3V và 5V Thiết kế này không có chân cắm sẵn, cho phép người dùng hàn trực tiếp để tiết kiệm không gian.
Bảng mạch này là loại nhỏ nhất với kích thước khoảng 2x4cm, bao gồm 14 chân số (trong đó có 6 chân PWM) và 8 chân tương tự Thiết kế nhỏ gọn giúp dễ dàng lắp đặt ở bất kỳ đâu, phù hợp cho nhiều ứng dụng khác nhau.
Bo mạch này có thiết kế tương tự như Arduino UNO, nhưng sở hữu số lượng chân vào ra lớn hơn với 54 chân số (bao gồm 14 chân PWM), 16 chân tương tự và 4 cổng truyền nối tiếp (RS232), giúp dễ dàng giao tiếp với các board và thiết bị khác Kích thước của bo mạch là 5x10cm.
Arduino Leonardo là một board có thiết kế tương tự như Arduino Micro, nhưng không có cổng USB để lập trình, thay vào đó, mọi thứ được tích hợp trong một chip điều khiển, cho phép giao tiếp qua cổng COM ảo và dễ dàng tương tác với chuột và bàn phím Khi cổng nối tiếp mở, board không bị reset, và để gỡ rối chương trình, bạn cần sử dụng lệnh Serial.prints() trong hàm Setup() Arduino Due, với thiết kế lớn và không đẹp mắt, hoạt động ở điện áp 3.3V, yêu cầu nâng áp để giao tiếp Nó có 54 chân số (12 chân tương tự) và 4 cổng nối tiếp, tương tự như Arduino Mega, với bộ xử lý 32bit, 84MHz, giúp nó xử lý nhanh gấp 5 lần so với các board Arduino khác, mang lại khả năng đọc và phản hồi đầu vào nhanh hơn.
Arduino Ethernet là một phiên bản tương tự như Arduino UNO nhưng được tích hợp sẵn Module Ethernet và thẻ SD Thiết bị này cho phép người dùng dễ dàng kết nối Internet và lưu trữ dữ liệu, mở ra nhiều ứng dụng sáng tạo trong các dự án IoT.
Xoscillo: oscilloscope mã nguồn mở
Các thiết bị khoa học
OBDuino: một máy tính hành trình sử dụng giao diện chẩn đoán on-board được tìm thấy trong hầu hết các loại xe hơi hiện đại
Thiết bị đọc sách điện tử giá rẻ với đầu ra TV có khả năng lưu trữ lên đến năm ngàn cuốn sách, mang đến cho người dùng một thư viện phong phú và tiện lợi.
Wikipedia) trên một thẻ nhớ microSD
Ardupilot: software/ hardware máy bay không người lái
2.4.2 Ngôn ngữ lập trình Arduino
Để lập trình cho Arduino, người dùng cần sử dụng Arduino IDE (Integrated Development Environment), một phần mềm được phát triển bằng Java Phần mềm này được thiết kế đặc biệt cho những người mới bắt đầu trong lĩnh vực phát triển phần mềm Arduino IDE bao gồm một trình soạn thảo mã với các tính năng như đánh dấu cú pháp, tự động canh lề, cùng với khả năng biên dịch và tải chương trình lên board Arduino.
2.4.2.1 Giao diện của Arduino IDE
Hình 2.33 Giao diện arduino IDE
- Vùng lệnh bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help) và các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE
- Vùng viết chương trình: là nơi mà ta viết các đoạn mã của mình
- Vùng thông báo: Những thông báo từ IDE sẽ được hiển thị tại đây
2.4.2.2 Cấu trúc chương trình Arduino
Một chương trình cơ bản của Arduino bao gồm 2 phần chính là setup() (cài đặt) và loop() (vòng lặp)
Hàm setup() trong Arduino được sử dụng để khai báo các biến, thư viện và thiết lập thông số cần thiết Nó chỉ chạy một lần duy nhất sau khi cấp nguồn cho bo mạch, cho đến khi hệ thống được reset.
Hàm loop() sẽ bắt đầu hoạt động ngay sau khi hàm setup() hoàn tất, và đây là nơi các chương trình của bạn sẽ được thực hiện lặp đi lặp lại cho đến khi nguồn cung cấp cho Arduino bị ngắt.
Dưới đây là ví dụ 1 đoạn code mẫu làm Led nhấp nháy
THIẾT KẾ MÔ HÌNH HỆ THỐNG HỖ TRỢ ĐẬU XE
MÔ HÌNH HÓA HỆ THỐNG
Dựa trên cấu trúc của hệ thống hỗ trợ đậu xe đã được trình bày ở chương 2, nhóm đã phát triển ý tưởng và mô hình hóa các thành phần của hệ thống.
- ECU: sử dụng arduino mega 2560
- Bộ chấp hành: sử dụng motor encoder GA25 V1
- Cảm biến: sử dụng cảm biến siêu âm HC- SR04
3.1.1 Cấu tạo các chi tiết
Hình 3.1 Arduino mega 2560 mặt trước
Hình 3.2 Arduino mega 2560 mặt sau
Arduino Mega 2560 là mạch vi điều khiển 16bit dựa trên Atmega2560 Nó có
Bảng mạch điều khiển này bao gồm 54 chân digital input/output, trong đó có 14 chân hỗ trợ chức năng băm xung PWM, 16 chân analog input, 4 cổng UART cho kết nối phần cứng, cùng với 1 thạch anh 16 MHz, 1 cổng USB, 1 cổng jack nguồn, 1 đầu ICSP và 1 nút nhấn reset.
Bảng 3.1 Tóm tắt các thông số của arduino 2560
Nguồn cấp vào( đề nghị) 7- 12V
Nguồn cấp vào( giới hạn) 6- 20V
Chân I/O digital 54( 14 chân cho ra xung PWM)
Dòng DC trên mỗi chân I/O 40 mA
Dòng DC cho chân 3.3V 50 mA
Bộ nhớ Flash 256 KB( 8KB cho bootloader)
Tốc độ xung nhịp 16 MHz
Mỗi 54 chân digital của Mega có thể được dùng làm chân input hoặc output, sử dụng các chức năng như pinMode(), digitalWrite(), digitalRead() Hoạt động ở mức 5V và dòng tối đa là 40mA
Một số chân có chức năng đặc biệt như:
+ Ngắt ngoài: chân 2( ngắt 0), 3( ngắt 1), 18( ngắt 5), 19( ngắt 4), 20( ngắt
+ PWM: 0 – 13 cung cấp PWM 8 bit với chức năng analogWrite()
Nhóm đã chọn Arduino làm bộ điều khiển cho mô hình do kích thước nhỏ gọn và tốc độ xung nhịp tương đương với ECU của hệ thống hỗ trợ đỗ xe Arduino có cấu tạo với nhiều chân input/output, giúp việc lắp đặt trở nên dễ dàng hơn.
3.1.1.2 Cảm biến siêu âm HC- SR04
Hình 3.3 Hình ảnh thực tế cảm biến siêu âm HC- SR04
Với kích thước nhỏ gọn, cấu tạo đơn giản và chi phí thấp, cảm biến siêu âm HC-SR04 được chọn làm cảm biến chính cho mô hình nhờ vào độ chính xác tương đối của nó.
Cấu tạo của cảm biến: gồm 2 đầu thu phát sóng siêu âm( 1 đầu phát và 1 đầu thu)
Cảm biến có 4 chân: 1 GND 2 Echo 3 Trig 4 Vcc
Chân GND và Vcc là 2 chân nguồn GND được nối với GND của arduino hoặc cực âm ( - ) của nguồn Vcc được nối với cực dương (+) của nguồn 3.3V – 5V ( chuẩn 5V)
Chân Trig và Echo là hai chân digital quan trọng trong cảm biến, với Trig đóng vai trò là chân xuất tín hiệu (digital OUTPUT) và Echo là chân nhận tín hiệu phản xạ từ vật cản (digital INPUT).
Nguyên lý hoạt động của cảm biến đo khoảng cách là phát một xung ngắn (5 micro giây) từ chân trig Sau đó, cảm biến sẽ tạo ra một xung HIGH ở chân echo cho đến khi nhận được sóng phản xạ Chiều rộng của xung này tương ứng với thời gian sóng siêu âm di chuyển từ cảm biến và quay trở lại.
Tốc độ âm thanh trong không khí là 340 m/s, tương đương với 29,412 microSeconds/cm Để tính khoảng cách, ta chỉ cần chia thời gian đã tính được cho 29,412.
Cảm biến siêu âm hoạt động dựa trên phương pháp đo thời gian truyền, do đó có nhiều yếu tố có thể gây ra sai số trong phép đo, dẫn đến dữ liệu thu được không chính xác hoặc bị nhiễu Một số nguyên nhân chính bao gồm:
- Sự thay đổi của tốc độ truyền sóng âm trong không khí
- Sự tương tác của sóng tới với bề mặt của đối tượng cần đo
- Tầm quét của cảm biến siêu âm có góc mở lớn (khoảng 53 độ)
Để khắc phục sự thay đổi tốc độ truyền sóng âm trong không khí, cần lưu ý rằng vận tốc truyền sóng âm phụ thuộc vào nhiệt độ môi trường Khi nhiệt độ thay đổi, tốc độ truyền sóng âm cũng thay đổi, dẫn đến kết quả đo khoảng cách không chính xác ở những nơi có nhiệt độ khác nhau Do đó, việc sử dụng cảm biến nhiệt độ LM35DZ để đo nhiệt độ là rất cần thiết.
+ Khắc phục sự tương tác của sóng với bề mặt của đối tượng cần đo
+ Khắc phục góc mở của cảm biến
3.1.1.3 Động cơ DC giảm tốc encoder GA25V1
Hình 3.4 Động cơ encoder GA25 V1
Nhóm thiết kế hệ thống phanh và hệ thống lái thay bằng 2 motor encoder thông qua việc điều khiển tốc độ của 2 motor
Bảng 3.2 Các thông số của động cơ GA25 V1: Điện áp cấp cho động cơ hoạt động 3V -12V Điện áp cấp cho encoder hoạt động 3.3V
Tỷ số truyền khi qua hộp giảm tốc 1:34
Số xung khi qua hộp giảm tốc 374 xung Đường kính động cơ 25 mm Đường kính trục 4 mm
Tốc độ ko tải 320 rpm
Tốc độ có tải: 284 rpm
Dòng khi có tải 600 mA
Dòng khi động cơ bị giữ 2.29 A
Moment khi bị giữ 7.96 kgf.cm Đĩa encoder 11 xung, hai kênh A_B
Sơ đồ chân của motor:
Hình 3.5 Sơ đồ chân motor encoder GA25 V1
Do quá trình điều khiển 2 motor encoder cần tốc độ khác nhau nên nhóm sử dụng thêm module L298
IC L298 là một vi mạch tích hợp với hai mạch cầu H, cung cấp điện áp đầu ra từ 5V đến 47V và dòng tối đa 4A Với những đặc điểm này, L298 rất phù hợp cho các ứng dụng công suất nhỏ, đặc biệt là trong việc điều khiển động cơ DC loại vừa.
Hình 3.6 Mạch cầu H thực tế
Hình 3.7 Sơ đồ mạch điện module L298
Tóm tắt qua chức năng các chân của L298:
- 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10,
12 của L298 Đây là các chân nhận tín hiệu điều khiển
- 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4( tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của L298 Các chân này sẽ được nối với động cơ
Hai chân ENA và ENB trên L298 được sử dụng để điều khiển các mạch cầu H Khi chân ENA hoặc ENB ở mức logic “1” (kết nối với nguồn 5V), mạch cầu H sẽ hoạt động, ngược lại, ở mức logic “0”, mạch cầu H sẽ không hoạt động Việc điều khiển chiều quay của động cơ với L298 cũng được thực hiện thông qua các chân này.
- Khi ENA = 0: Động cơ không quay với mọi đầu vào
+ INT1 = 1; INT2 = 0: động cơ quay thuận
+ INT1 = 0; INT2 = 1: động cơ quay nghịch
+ INT1 = INT2: động cơ dừng ngay tức thì
(tương tự với các chân ENB, INT3, INT4)
- Khi ENB = 0: Động cơ không quay với mọi đầu vào
+ INT3 = 1; INT4 = 0: động cơ quay thuân
+ INT3 = 0; INT4 = 1: động cơ quay nghịch
+ INT3 = INT4: động cơ dừng ngay tức thì
3.1.2 Lắp ráp các chi tiết thành mô hình
Để nâng cao sự ổn định cho hệ thống và bảo vệ Arduino khỏi hư hỏng, nhóm đã sử dụng thêm các bộ giảm áp để cung cấp nguồn cho cảm biến và Arduino.
Bộ giảm áp 12V-3.5V cung cấp nguồn cho encoder, trong khi bộ giảm áp 12V-5V cấp nguồn cho cảm biến siêu âm, và bộ giảm áp 12V-9V cấp nguồn cho Arduino Tất cả các bộ giảm áp này đều nhận nguồn từ pin Lipo 2200 mAh với điện áp 12V DC.
Cách mắc chân trong mô hình:
Các chân M1, M2 của motor 1 được mắc vào chân OUT1, OUT2 của mạch cầu H
Các chân M1, M2 của motor 2 được mắc vào chân OUT3, OUT4 của mạch cầu H
- 2 chân GND của 2 cảm biến encoder 2 motor được nối chung với nhau và cắm vào chân GND trên arduino
- 2 chân 3.3V của 2 cảm biến 2 motor được nối với nhau và nối với ngõ ra (+) của bộ giảm áp từ 12V - 3.5V
Các chân tín hiệu C1, C2 của motor 1 được nối với chân 2 và 4 của Arduino; C1, C2 của motor 2 được nối với chân 3 và 5 của Arduino
Các chân ENA và INT1, INT2 của mạch cầu H lần lượt được nối với chân 8, 9, 10 trên arduino; các chân ENB, INT3, INT4 nối với chân
- Chân 12V của mạch cầu H nối với cực (+) của nguồn 12V
- Chân (-) của L298 nối với cực (-) của nguồn và chân GND của arduino
Nguồn của cảm biến siêu âm
- Chân Vcc được nối chung với nhau và nối với cực OUT( +) của LM2596 12V- 5V
- Chân GND của các cảm biến siêu âm được nối với nhau và được nối với cực OUT( - ) của LM2596 12V- 5V
Các chân thu phát sóng siêu âm được mắc như bảng sau:
Vị trí cảm biến Chân thu phát sóng siêu âm Chân trên arduino
Hình 3.9 Sơ đồ mô phỏng mô hình hệ thống hỗ trợ đậu xe
Một số hình ảnh thực tế của mô hình sau khi hoàn thiện:
Hình 3.10 Mô hình nhìn từ trên xuống
Hình 3.11 Mô hình nhìn từ phía sau
Hình 3.12 Mô hình nhìn từ phía trước
LẬP TRÌNH ĐIỀU KHIỂN CHO MÔ HÌNH
Để đậu xe đúng vị trí, việc xác định không gian đậu là rất quan trọng Với mô hình kích thước 20x30 cm, nhóm đã chọn không gian đậu xe có chiều rộng 40 cm và chiều sâu 25 cm để thực hiện đậu xe song song.
Để xác định vị trí đậu xe, nhóm em đã nghiên cứu và phát triển hai phương pháp dựa trên lý thuyết và thực nghiệm.
Để đo tốc độ bánh xe, ta có thể sử dụng encoder gắn với trục bánh xe, giúp đếm số vòng quay trong một khoảng thời gian nhất định Vận tốc đo được sẽ được nhân với thời gian xe di chuyển qua không gian đỗ xe, mà thời gian này được xác định dựa trên khoảng cách thay đổi từ cảm biến siêu âm trong khoảng 25 – 30cm Từ đó, ta có thể tính được chiều rộng của không gian đỗ xe Kết hợp chiều sâu và chiều rộng đo được, ta sẽ xác định được không gian đỗ xe cần tìm.
Cách thứ hai là đếm xung của encoder khi cảm biến siêu âm phát hiện sự thay đổi lớn về khoảng cách Khi khoảng cách tăng lên, ta gán số xung encoder hiện tại vào một biến và tiếp tục đếm xung Xe sẽ di chuyển cho đến khi cảm biến siêu âm phát hiện khoảng cách giảm xuống, lúc này gán số xung đếm được vào một biến khác Chiều rộng đo được sẽ được tính dựa trên các giá trị này.
(Xung encoder đếm được khi đi qua không gian đậu xe / số xung 1 vòng quay của encoder) * chu vi bánh xe
So với phương pháp đầu tiên, phương pháp thứ hai có ưu điểm nổi bật là tính đơn giản, vì chiều rộng không phụ thuộc vào thời gian Điều này dẫn đến việc giảm thiểu quá trình tính toán, từ đó làm giảm sai số trong kết quả.
Sau khi xác định được vị trí đậu xe, bạn tiến hành dừng xe và lùi vào không gian đậu đã chọn Chương trình đậu xe sẽ hoàn tất khi khoảng cách giữa xe và các chướng ngại vật phía trước cũng như phía sau trở nên bằng nhau.
KẾT QUẢ VÀ ĐÁNH GIÁ MÔ HÌNH
Mô hình hiện tại có khả năng đậu xe tự động trong một bước, với khoảng cách giữa các xe song song không chênh lệch nhiều so với thiết kế Khi được kích hoạt, hệ thống sẽ thực hiện toàn bộ quy trình đỗ xe mà không cần sự can thiệp của người dùng.
Về tính thẩm mỹ, mô hình gọn gàng, hệ thống hoạt động tương đối ổn định đáp ứng được yêu cầu của đề tài
Tuy nhiên, vẫn còn tồn đọng một số lỗi như sau:
- Cảm biến dễ bị nhiễu khi quét dẫn đến thông tin thu thập bị sai lệch
Motor có điện trở trong khác nhau, dẫn đến việc khi xe chạy thẳng, xe có xu hướng lệch sang một bên Điều này gây ra sự sai lệch trong quỹ đạo đậu xe.
- Bộ xử lí vẫn có độ trễ do đó trong quá trình đậu xe đôi lúc không chính xác
- Sử dụng các cảm biến, linh kiện có chất lượng tốt hơn
- Tối ưu hóa phần lập trình từ đó giảm việc tính toán cho bộ xử lí làm giảm độ trễ cho hệ thống