Hệ thống điện thân xe

Một phần của tài liệu Nghiên cứu và phát triển hệ thống cảnh báo chệnh làn đường trên xe điện renault twizy đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 36)

Do hạn chế về thời gian thực hiện và tình hình dịch covid – 19 diễn biến căng thẳng, bên cạnh đó giáo viên hướng dẫn cũng không cho phép nhóm tháo bó dây, rút giắc để đo kiểm nên nhóm chỉ tiến hành vẽ lại sơ đồ khối của hệ thống điện thân xe như hình bên dưới. Đồng thời, để không làm rối sơ đồ, nhóm chúng em đã không thể hiện sự nối mass của các thiết bị điện, nên ta ngầm hiểu các thiết bị đã được cấp mass.

CHƯƠNG 4 SƠ LƯỢC VỀ PHẦN CỨNG VÀ PHẦN MỀM 4.1. Phần cứng

4.1.1. Laptop

Cấu hình máy tính được sử dụng để thử nghiệm các source code trong đề tài được thể hiện trong hình 3.1. Tuy nhiên, cộng đồng DeepLearning không ưa chuộng loại card đồ họa này vì sự tương thích về trình điều khiển của card đồ họa đối với các nền tảng DeepLearning hiện hành. Và đó là một trong những lý do khiến chúng em không sử dụng thuật toán DeepLearning trong đồ án này.

Hình 4.1 Cấu hình của laptop

4.1.2. Máy tính nhúng AI

Song hành cùng với sự phát triển của các dòng máy tính nhúng thông thường là sự phát triển của các máy tính nhúng cho phép phát triển các ứng dụng liên quan đến trí tuệ nhân tạo như Machine Learning, Computer Vision, Edge Computing, Speech Recognition & NLP, Neural Networks Acceleration, … Một số dòng tiêu biểu như máy tính nhúng Raspberry Pi, máy tính nhúng LattePanda, máy tính nhúng AI Coral Dev Board, … trong đó phải kể đến dòng máy tính nhúng AI NVIDIA Jetson vô cùng mạnh mẽ cho phép người dùng chạy song

song nhiều mạng Neural sử dụng cho các ứng dụng như Image Classification, Object Detection, Image Segmentation, Speech Processing, …

Hiện nay trên thị trường, dòng máy tính nhúng AI NVIDIA Jetson cho ra mắt một số loại máy tính nhúng khác nhau như Jetson Nano Developer Kit, Jetson TX2 Developer Kit, Jetson Xavier NX Developer Kit và Jetson AGX Xavier Developer Kit, … với các thông số như sau:

Hình 4.2 Thông số các loại máy tính nhúng dòng NVIDIA Jetson Dev Kit

Do mục tiêu của đồ án là thiết lập một hệ thống cảnh báo chệch làn đường trên xe điện Renaul Twizy nên cần một chiếc máy tính nhúng nhỏ gọn, nhưng vẫn đủ mạnh mẽ để xử lý các thuật toán phức tạp của hệ thống, đồng thời vẫn nằm trong phạm vi tài chính của nhóm.

4.1.3. Camera

Camera Raspberry Pi NoIR V2 IMX219 8MP là phiên bản Camera Module tương thích với Jetson nano, với cảm biến IMX219 8-megapixel từ Sony, gồm 8 triệu điểm ảnh, độ phân giải 3280 x 2464 cho thấy sự vượt trội về cả chất lượng hình ảnh, video. Vì vậy nhóm quyết định chọnCamera Raspberry Pi NoIR V2 IMX219 8MPcho đồ án.

Hình 4.6 Camera Raspberry Pi NoIR V2 IMX219 8MP

4.1.4. Màn hình LCD

Màn hình 7inch IPS HDMI LCD(H) được nhập từ chính hãng Waveshare, màn hình sử dụng cổng kết nối HDMI với độ phân giải màn hình 1024 x 600 pixels cho chất lượng hình ảnh và chữ hiển thị rõ ràng

Trong đồ án của nhóm, màn hình LCD đóng vai trò quan trọng giúp nhóm thực hiện thao tác kiểm tra và theo dõi. Đồng thời xuất tín hiệu cảnh báo bằng hình ảnh cho tài xế.

4.1.5. Các thiết bị hỗ trợ khác

 Bộ UPS Power Module và pin lithium – ion: dùng để cấp nguồn cho Jetson Nano khi hệ thống lắp đặt trên xe.

UPS là mô đun cung cấp nguồn liên tục của hãng Waveshare dành cho NVDIA Jetson Nano. Một giải pháp nguồn cho Jetson Nano với các tính năng đặc biệt như: bảo vệ quá dòng, ngược dòng, bảo vệ ngắn mạch và tính năng sạc cân bằng an toàn, ổn định. Ngoài ra còn được tích hợp màn hình OLED 0.91'' để theo dõi các thông số như điện áp pin, địa chỉ IP, mức sử dụng RAM, dung lượng pin …

 USB wifi và thẻ nhớ 32GB: lần lượt dùng để thu sóng wifi và tăng lưu lượng bộ nhớ cho Jetson Nano.

Hình 4.10 USB wifi 802.11n và thẻ nhớ 32GB

 Bàn phím mini: dùng để thao tác trên màn hình LCD

Hình 4.11 Bàn phím mini Qwerty không dây

 Các linh kiện điện tử gồm led, nút nhấn, test board, điện trở 220 , …

Do tình hình dịch Covid 19 diễn biến phức tạp, cả nước tuân thủ chỉ thị 16 của chính phủ nên các cửa hàng điện tử cũng không hoạt động và nhóm không thể đi mua còi, động cơ rung để cảnh báo. Tận dụng các linh kiện sẵn có tại nhà, nhóm quyết định dùng đèn led màu vàng để thay thế còi, động cơ rung.

Led màu vàng sáng tương ứng với còi và động cơ rung sẽ hoạt động và ngược lại led màu vàng tắt tương ứng với còi và động cơ rung sẽ không hoạt động. Đồng thời khi nhấn nút nhấn thì led màu đỏ sẽ sáng, tương ứng với việc gạt công tắc xi nhan thì đèn xi-nhan sẽ sáng.

Hình 4.12 Các linh kiện điện tử

4.2. Phầm mềm

4.2.1. Hệ điều hành Ubuntu

Ubuntu là một hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản phân phối Linux thông dụng. Tên của nó bắt nguồn từ "ubuntu" trong tiếng Zulu, có nghĩa là "tình người", mô tả triết lý ubuntu: "Tôi được là chính mình nhờ có những người xung quanh," một khía cạnh tích cực của cộng đồng. Mục đích của Ubuntu bao gồm việc cung cấp một hệ điều hành ổn định, cập nhật cho người dùng thường, và tập trung vào sự tiện dụng và dễ dàng cài đặt. Ubuntu đã được đánh xếp hạng là bản phân phối Linux thông dụng nhất cho máy tính để bàn, chiếm khoảng 30% số bản Linux được cài đặt trên máy tính để bàn năm 2007.

Ubuntu là phần mềm mã nguồn mở tự do, có nghĩa là người dùng được tự do chạy, sao chép, phân phối, nghiên cứu, thay đổi và cải tiến phần mềm theo điều khoản của giấy phép GNU GPL. Ubuntu được tài trợ bởi Canonical Ltd (chủ sở hữu là một người Nam Phi Mark Shuttleworth). Thay vì bán Ubuntu, Canonical tạo ra doanh thu bằng cách bán hỗ trợ kĩ thuật. Bằng việc để cho Ubuntu tự do và mở mã nguồn, Canonical có thể tận dụng tài năng của

những nhà phát triển ở bên ngoài trong các thành phần cấu tạo của Ubuntu mà không cần phải tự mình phát triển

Hình 4.13 Giao diện hệ điều hành Ubuntu trên NVIDIA Jetson Nano Developer Kit

4.2.2. NVIDIA Jetpack SDK

NVIDIA JetPack SDK là giải pháp toàn diện nhất được nhà NVIDIA cung cấp để xây dựng các ứng dụng AI. Tất cả các module Jetson và bộ công cụ dành cho nhà phát triển đều được hỗ trợ bởi JetPack SDK.

JetPack SDK bao gồm Gói trình điều khiển Jetson Linux mới nhất (L4T) với hệ điều hành Linux và các thư viện và API tăng tốc CUDA-X cho Deep Learning, Computer Vision, Accelerated Computing and Multimedia. Nó cũng bao gồm các mẫu, tài liệu và công cụ dành cho nhà phát triển cho cả máy tính chủ và bộ công cụ dành cho nhà phát triển, đồng thời hỗ trợ các SDK cấp cao hơn như DeepStream để phân tích video trực tuyến và Isaac cho robot.

4.2.3. Bitvise SSH Client

Bitvise SSH Client là một phần mềm truy cập từ xa an toàn độc quyền được phát triển cho Windows. Bitvise SSH Client đóng vai trò như máy chủ giúp liên kết cùng lúc nhiều laptop với NVIDIA Jetson Nano Developer Kit để dễ dàng truyền xuất, chỉnh sửa file.

Hình 4.14 Giao diện chính của Bitvise SSH Client

4.2.4. Ngôn ngữ lập trình Python

Python là ngôn ngữ lập trình hướng đối tượng thông dụng dùng để viết các tiện ích hệ thống. Nó cũng được sử dụng như ngôn ngữ kết dính đóng vai trò tích hợp C và C++. Được tạo ra bởi Guido van Rossum tại Amsterdam năm 1990, Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Python là ngôn ngữ có hình thức khá đơn giản và rõ ràng, do đó tạo nên sự dễ dàng tiếp cânh cho những lập trình viên mới bắt đầu Ban đầu, Python được phát triển để chạy trên nền Unix, nhưng rồi theo thời gian, nó đã được mở rộng sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix

Hình 4.15 Biểu tượng python

Python là một ngôn ngữ lập trình dễ học, dễ đọc. Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các ký hiệu và cấu trúc cú pháp so với các ngôn ngữ khác.

Mã nguồn của Python tương đối dễ để bảo trì và duy trì và có khả năng mở rộng Python có một tiêu chuẩn thư viện rộng, nền tảng tương thích trên nhiều hệ điều hành hiện nay như: UNIX, Windows, và Macintosh. Đây cũng là một trong những điểm mạnh đáng kể của Python.

Python có thể được sử dụng như ngôn ngữ script, hoặc ngôn ngữ biên dịch, nhờ đó có thể build các chương trình lớn trên nó. Khi chế độ Interactive, có thể nhập kết quả từ các đầu cuối khác nhau vào chương trình Python, do đó mà việc test hay debug lỗi code trở nên đơn giản hơn Python cho phép người dùng tích hợp vào các module để có thể sử dụng trong các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ. Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, hỗ trợ lập trình mạng (socket),…Python cung cấp giao diện cho tất cả các cơ sở dữ liệu thương mại lớn. Có thế dễ dàng tích hợp với C, C++, COM, CORBA, ActiveX, Java.

4.2.5. ANACONDA

Anaconda là nền tảng mã nguồn mở về Khoa học dữ liệu trên Python thông dụng nhất hiện nay. Anaconda với hơn 11 triệu người dùng, Anaconda là cách nhanh nhất và dễ nhất để học Khoa học dữ liệu với Python hoặc R trên Windows, Linux và Mac OS X. Lợi ích của Anaconda:

- Dễ dàng tải 1500+ packages về Python/R cho data science

- Quản lý thư viện, môi trường và dependency giữa các thư viện dễ dàng

- Dễ dàng phát triển mô hình machine learning và deep learning với scikit-learn, tensorflow, keras

- Xử lý dữ liệu tốc độ cao với numpy, pandas - Hiện thị kết quả với Matplotlib, Bokeh

Hình 4.16 Biểu trượng của ANACONDA

4.2.6. PyCharm

Phần mềm PyCharm cung cấp một bộ công cụ hoàn chỉnh cho các nhà phát triển Python chuyên nghiệp. PyCharm được xây dựng xung quanh một trình soạn thảo hiểu mã sâu sắc, và một trình sửa lỗi cho cái nhìn rõ ràng về hoạt động của mã. PyCharm cung cấp khả năng tích hợp với các công cụ cộng tác như hệ thống kiểm soát phiên bản và các tracker. Trình biên tập chuyên nghiệp mở rộng các yếu tố cần thiết bằng cách tích hợp liền mạch với các khuôn khổ web, các công cụ JavaScript, ảo hóa và hỗ trợ containerization Một khía cạnh quan trọng của chương trình là hiểu được nền tảng mã mà bạn đang đưa vào. PyCharm đảm bảo bạn có thể khám phá dự án của bạn chỉ với một vài thao tác trên phím, nó cung cấp cho bạn một cái nhìn tổng quan về cấu trúc dự án và cho phép bạn truy cập vào các tài liệu có liên quan ngay từ trình soạn thảo. Hiểu được một nền tảng code nhanh hơn có nghĩa là thúc đẩy nhanh hơn quá trình phát triển của bạn.

Hình 4.17 Biểu tượng của PyCharm

Các tính năng chính của PyCharm: – Hỗ trợ Windows, macOS và Linux

– Hỗ trợ mã hoàn thiện thông minh, điều hướng bằng một cú nhấp chuột và kiểm tra kiểu PEP8

– Tự động phát hiện các vấn đề mã: ví dụ: phân tích mã không sử dụng – Trình gỡ lỗi hiệu suất cao

– Chế độ mô phỏng Vim

4.2.7. Các thư viện sử dụng trong đồ án

4.2.7.1. OpenCV

Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky. OpenCV viết tắt cho Open source Computer Vision Library. OpenCV là thư viện nguồn mở hàng đầu cho Computer Vision và Machine Learning, và hiện có thêm tính năng tăng tốc GPU cho các hoạt động theo real-time OpenCV được phát hành theo giấy phép BSD (*), do đó nó miễn phí cho cả học tập và sử dụng với mục đích thương mại. Nó có trên các giao diện C++, C, Python và Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android. OpenCV được thiết kế để hỗ trợ hiệu quả về tính toán và chuyên dùng cho các ứng dụng real-time (thời gian thực). Nếu được viết trên C/C++ tối ưu, thư viện này có thể tận dụng được bộ xử lý đa lõi.

Hình 4.18 Biểu tượng của OpenCV 4.2.7.2. Numpy

Numpy là tên viết tắt của Numeric Python hoặc Numerical Python. Nó là một thư viện Python cung cấp các đối tượng mảng đa chiều, các đối tượng dẫn xuất khác nhau (ví dụ như mảng và ma trận có mặt nạ) và một loạt những quy trình hoạt động nhanh trên mảng. Nó bao gồm cả toán học, logic, thao tác hình dạng, sắp xếp, lựa chọn, I/O, biến đổi Fourier rời rạc, đại số tuyến tính cơ bản, hoạt động thống kê cơ bản, mô phỏng ngẫu nhiên và hơn thế nữa Hiểu một cách đơn giản hơn: Numpy chính là một thư viện cốt lõi cho tính toán khoa học

của Python. Cung cấp một đối tượng mảng đa chiều với hiệu suất cao và những công cụ để làm việc với các mảng này.

Hình 4.19 Biểu tượng của Numpy 4.2.7.3. Matplotlib

Matplotlib.pyplot là một thư viện vẽ đồ họa được sử dụng cho đồ họa 2D bằng ngôn ngữ lập trình python. Nó có thể được sử dụng trong các tập lệnh python, shell, máy chủ ứng dụng web và các bộ công cụ giao diện người dùng đồ họa khác. Có một số bộ công cụ có sẵn để mở rộng chức năng của python matplotlib. Một số trong số chúng là các bản tải xuống riêng biệt, một số khác có thể được vận chuyển bằng mã nguồn matplotlib nhưng có phụ thuộc bên ngoài:

 Basemap: Nó là một bộ công cụ vẽ bản đồ với nhiều phép chiếu bản đồ, đường bờ biển và ranh giới chính trị.

 Cartopy: Nó là một thư viện ánh xạ bao gồm các định nghĩa phép chiếu bản đồ hướng đối tượng, và các khả năng biến đổi điểm, đường thẳng, đa giác và hình ảnh tùy ý.

 Công cụ Excel: Matplotlib cung cấp các tiện ích để trao đổi dữ liệu với Microsoft Excel.

 Mplot3d: Nó được sử dụng cho các ô 3-D.

 Natgrid: Nó là một giao diện của thư viện natgrid để tạo lưới không đều cho các dữ liệu cách nhau.

4.2.7.4. Pyglet

Pyglet là một thư viện dành cho ngôn ngữ lập trình Python, cung cấp giao diện lập trình ứng dụng hướng đối tượng để tạo trò chơi và các ứng dụng đa phương tiện khác. Pyglet chạy trên Microsoft Windows, Mac OS X và Linux; nó được phát hành theo Giấy phép BSD.

Nó hỗ trợ các hoạt động trên cửa sổ và toàn màn hình cũng như nhiều màn hình. Các tệp hình ảnh, video và âm thanh ở nhiều định dạng có thể được thực hiện nguyên bản, với nhiều khả năng bổ sung được cung cấp bởi plugin AVbin tùy chọn, sử dụng gói Libav để cung cấp hỗ trợ cho các định dạng âm thanh bao gồm MP3, Ogg/Vorbis và Windows Media Audio và các định dạng video như DivX, MPEG-2, H.264, WMV và XviD.

Hình 4.21 Biểu tượng của Pyglet 4.2.7.5. Module time trong Python

Python có module time dùng để xử lý các tác vụ liên quan đến thời gian. Để sử dụng các hàm được xác định trong module, ta cần import module này như sau: “import time”.

4.2.7.6. Thư viện RPI.GPIO

RPi.GPIO là một gói thư viện dùng để điều khiển các chân GPIO của NVIDIA Jetson Nano Developer Kit. Để sử dụng được thư viện, ta dùng lệnh: “import RPi.GPIO as GPIO”.

CHƯƠNG 5 XÂY DỰNG HỆ THỐNG CẢNH BÁO CHỆCH LÀN ĐƯỜNG 5.1. Giới thiệu về hệ thống cảnh báo chệch làn đường

Hệ thống cảnh báo chệch làn đường (LDWS) xuất hiện lần đầu tiên do hãng Mercedes-

Một phần của tài liệu Nghiên cứu và phát triển hệ thống cảnh báo chệnh làn đường trên xe điện renault twizy đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 36)

Tải bản đầy đủ (PDF)

(84 trang)