Khóa Luận Tốt Nghiệp: Ứng Dụng Nền Tảng Flutter Thiết Kế Đồng Hồ Số Cho Phương Tiện Hai Bánh

Khóa luận tốt nghiệp kỹ thuật máy tính nghiên cứu ứng dụng nền tảng Flutter để thiết kế đồng hồ số cho phương tiện hai bánh, đem lại hiệu quả và tiện ích cao.

Trường đại học

Đại học Công nghệ Thông tin

Chuyên ngành

Kỹ thuật máy tính

Tác giả

Trần Vũ Hoàng

Người đăng

Ẩn danh

Thể loại

Khóa luận tốt nghiệp

2022

67
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1. Giới thiệu về đề tài

1.2. Mục tiêu của đề tài

1.3. Đối tượng và phạm vi nghiên cứu

2. CHƯƠNG 2: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ PHẦN CỨNG SỬ DỤNG

2.1. Giới thiệu ngôn ngữ Dart

2.2. Đặc điểm của ngôn ngữ Dart

2.3. Những ưu điểm của Dart

2.4. Dart: ffi

2.5. Giới thiệu về Flutter

3. CHƯƠNG 3: THIẾT KẾ HỆ THỐNG

3.1. Tổng quan công việc

3.2. Nghiên cứu và chạy kiểm thử Flutter trên hệ điều hành Raspberry OS

3.3. Ràng buộc các hàm C/C++ vào trong dự án Flutter

3.4. Thiết kế giao diện

3.5. Đo hiệu năng

3.6. Thiết lập QML Profiler (QT)

3.7. Thiết lập Devtools (Flutter)

4. CHƯƠNG 4: KẾT QUẢ ĐO THEO TỪNG THÔNG SỐ

4.1. FPS trung bình

4.2. Thời gian khởi động ứng dụng

4.3. Thời gian chuyển giữa các màn hình

5. CHƯƠNG 5: ĐÁNH GIÁ KẾT QUẢ ĐO

6. CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. Hướng phát triển

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

TÓM TẮT KHÓA LUẬN

Tóm tắt

I. Giới thiệu về đề tài

Khóa luận tập trung vào nghiên cứu ứng dụng Flutter trong thiết kế đồng hồ số cho xe hai bánh. Flutter, một nền tảng mã nguồn mở, được sử dụng để phát triển giao diện người dùng hiệu quả và tối ưu hóa hiệu suất. Đề tài nhằm mục đích nâng cao trải nghiệm người dùng thông qua việc tích hợp đồng hồ số vào các phương tiện giao thông hai bánh, một lĩnh vực còn hạn chế trong việc áp dụng công nghệ hiện đại.

1.1 Mục tiêu tổng quát

Mục tiêu chính của khóa luận là nghiên cứu và phát triển một ứng dụng di động sử dụng Flutter để thiết kế đồng hồ số cho xe hai bánh. Đề tài cũng so sánh hiệu suất của Flutter với Qt, một nền tảng phát triển giao diện truyền thống, nhằm đánh giá tính khả thi và hiệu quả của Flutter trong lĩnh vực này.

1.2 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu chính là Flutter, cùng với việc thiết kế giao diện đồng hồ số cho xe hai bánh. Phạm vi nghiên cứu bao gồm việc xây dựng ứng dụng trên Raspberry Pi 4 Model B và so sánh hiệu suất với Qt để đưa ra kết luận về tính ưu việt của Flutter trong phát triển phần mềm nhúng.

II. Tổng quan cơ sở lý thuyết và phần cứng sử dụng

Khóa luận đi sâu vào việc phân tích ngôn ngữ Dart, ngôn ngữ lập trình chính của Flutter, và các ưu điểm của nó trong việc phát triển ứng dụng đa nền tảng. Dart được chọn vì khả năng biên dịch thành mã máy, hỗ trợ bất đồng bộ, và tối ưu hóa hiệu suất. Phần cứng được sử dụng là Raspberry Pi 4 Model B, một thiết bị phổ biến trong hệ thống nhúngIoT.

2.1 Giới thiệu về Flutter

Flutter là một nền tảng mã nguồn mở, được phát triển bởi Google, cho phép xây dựng giao diện người dùng nhanh chóng và hiệu quả. Flutter sử dụng ngôn ngữ Dart và cung cấp các công cụ mạnh mẽ để phát triển ứng dụng di động với hiệu suất caotính linh hoạt.

2.2 Ưu điểm của Flutter

Flutter mang lại nhiều ưu điểm như tốc độ phát triển nhanh, hiệu suất cao, và khả năng tải lại nhanh mà không làm mất trạng thái ứng dụng. Điều này giúp Flutter trở thành lựa chọn hàng đầu trong phát triển ứng dụng di độngthiết kế giao diện.

III. Thiết kế hệ thống

Khóa luận trình bày quy trình thiết kế hệ thống đồng hồ số sử dụng Flutter. Quy trình bao gồm việc tích hợp các thư viện C/C++ thông qua FFI (Foreign Function Interface), thiết kế giao diện người dùng, và đo lường hiệu năng của ứng dụng. Raspberry Pi 4 Model B được sử dụng làm nền tảng phần cứng để chạy ứng dụng.

3.1 Tích hợp thư viện C C

Việc tích hợp các thư viện C/C++ vào Flutter được thực hiện thông qua FFI, cho phép gọi các hàm từ C/C++ mà không cần liên kết trực tiếp với nền tảng. Điều này giúp tăng tính linh hoạt và hiệu suất của ứng dụng.

3.2 Thiết kế giao diện người dùng

Giao diện người dùng được thiết kế bằng Flutter, tập trung vào tính thân thiệndễ sử dụng. Flutter cung cấp các widget mạnh mẽ để xây dựng giao diện một cách nhanh chóng và hiệu quả.

IV. Kết quả và đánh giá

Khóa luận đưa ra các kết quả đo lường về hiệu năng của ứng dụng Flutter, bao gồm FPS (Frames Per Second), thời gian khởi động, và thời gian chuyển đổi giữa các màn hình. Kết quả cho thấy Flutter đạt hiệu suất cao và ổn định, phù hợp với thiết kế đồng hồ số cho xe hai bánh.

4.1 Hiệu suất của Flutter

Flutter đạt FPS trung bình ổn định ở mức 52 FPS, đảm bảo trải nghiệm mượt mà cho người dùng. Thời gian khởi động và chuyển đổi màn hình cũng được tối ưu hóa, cho thấy Flutter là một lựa chọn hiệu quả trong phát triển ứng dụng nhúng.

4.2 So sánh với Qt

Kết quả so sánh giữa FlutterQt cho thấy Flutter vượt trội về tốc độ phát triểnhiệu suất. Flutter cũng mang lại giao diện người dùng thân thiện và dễ tùy chỉnh hơn so với Qt.

V. Kết luận và hướng phát triển

Khóa luận kết luận rằng Flutter là một nền tảng hiệu quả để thiết kế đồng hồ số cho xe hai bánh. Flutter không chỉ mang lại hiệu suất cao mà còn giúp tối ưu hóa quy trình phát triển. Hướng phát triển trong tương lai bao gồm việc tích hợp thêm các công nghệ IoThệ thống điều khiển để nâng cao tính năng của đồng hồ số.

5.1 Hướng phát triển

Trong tương lai, đề tài có thể mở rộng bằng cách tích hợp các công nghệ IoThệ thống điều khiển để tăng cường tính năng và khả năng ứng dụng của đồng hồ số. Việc nghiên cứu sâu hơn về Flutter trong các hệ thống nhúng cũng là một hướng đi tiềm năng.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

21/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1. GIỚI THIỆU DE TAL .-2- 222222 2E++2E££E++2EE+2ES+zE+trxrrrxrsrsee | 1.1 Giới thiệu về đề tài.2_ Mục tiêu của đề tài.1 Mục tiêu tổng quát.2 Muc tidy chi g8.3 Đối tượng và phạm vi nghiên cứu.1 Đối tượng nghiên cứu.---- 2 2+S++E+2E£2EE£EE£EEE2E2E1211211211221 1e. TONG QUAN CƠ SỞ LÝ THUYET VA PHAN CỨNG SỬ DỤNG 4 2.1 Giới thiệu ngôn ngữ ÏDaF(.2 Đặc điểm của ngôn ngữ Daït.3 Những ưu điểm của Dart.--2-22:©2++22+2ES22EE22EE+2EEtEExerExerxrerkrerxee 6 2. J7 ẶẤÑẴ`ằẴằ`^ằẰ ẤT ket 8 2.1 Giới thiệu về Flutter .2 Uu diém cita Flutter ốốố.3 Các thành phan quan trong Flutter .4 Rendering va layout trong Flutter.3 Các tính năng của giao thức CAN.5 Các công cụ được sử dụng dé đo hiệu TANG .3 Cài đặt cơ bản cho Raspberry PIH.- óc + + *+ vs skkirsrkrssrseee 30 CHƯƠNG 3 THIET KE HỆ THÓNG.1 Tổng quan công ViGC.2 Nghiên cứu va chạy kiêm thử Flutter trên hệ điều hành Raspberry OS.4 Rang buộc các ham C/C++ vào trong dự án FÏuff€r.5 Thiết kế giao diệu.

TS ce, ree oo cee /, << 34 3.6 Do hiệu năng .----- - c1 91111111 H1 H1 TH HH HT TT TH Hàn kh 36 3.1 Thiết lập QML Profiler (Q†).---- 2-52 252222EE2EE2E22E122E2E1221EEeErex 36 3.2 Thiết lập Devtools (FÏuff€T).--- 2: 2+ 2+Ss£SE£2E2EE£EE2EE2EEEEEEEzExerxers 37 CHUONG 4 KET QUA DO THEO TUNG THONG SO .3 FPS trung Dinh 0n.1 Qt (FPS trung 80007.4 Thời gian khởi động ứng dụng. - --- 5c S11 St Sky ri, 47 4.5 Thời gian chuyên giữa các màn hình.--- ¿2 2 s+£s++£++£xzxzsez 49 CHƯƠNG 5 DANH GIÁ KET QUA ĐO.- - St 2E EEEEEEEEEEEEEEkEEkrrkerrree 50 CHƯƠNG 6 KET LUẬN VÀ HƯỚNG PHÁT TRIÊN.2 Hướng phát triỂn.-2--52- 2 12 2 12E1221121121127122112112110711211 21 1111 52 DANH MỤC HÌNH Hình 1.1 Đồng hồ cơ truyền thống.--- 2 2£ + £+SE+EE+EE£+E2EEEEEEEEEEEEEEEEEEerkkrrrsree 1 Hình 1.2 Đồng hồ điện tite .1 Giao diện đồng hồ kỹ thuật số cho xe 2 bánh viết bằng Qt.3 Look-up ham 00 .4 Các tang trong nền tang Flutter .5 Widget tree trong FÏUff€T. t2 9 1111111 tt re 11 Hình 2.6 Stateless Widget vs Statefull WIdget.7 Widget tree eee .8 Build Phase, generate Element Tree .9 Build Phase, tao Render 'TT€C.10 Constraint va Size .- --- L2 Tnhh TH TH TT HH Hàng 14 Hình 2.11 Hệ thống CAN Ðus.12 Cửa sô làm việc QML Profiler.--- 2c s2 2+ E+EE£2E2E++EEeEEerEzreerxers 19 Hình 2.13 Cửa số làm việc DevTOolS.- -- - + t3c 3 t2 ST TH HH TT TH HH rệp 22 Hình 2.15 Biéu đồ ngọn lửa xem hiệu suất.16 Biểu đồ xem ngọn lửa CPU .-:- 22 22E2EE+2EEt2EE2EEEEEESEEtrrkrrrree 24 Hinh 2.8510ii0ii0ii 00077 .20 Khoi dong sysstat 0 .21 Xem mức độ sử dung CPU .- --- c2 +2 St E+vseererreerrrrrrrrrsrs 26 Hình 2.22 Xem mức độ sử dụng CPU với 5 lần 1 giây .23 Xem dit liệu chi tiết mức độ sử dung CPU.-- 2-22 sz+sz+cszcxeez 26 Hình 2.24 xem mức sử dụng tài nguyên của tiến trình dang chạy.25 xem mức độ sử dụng bộ nhớ 5 lần 1 giây.-- 2-2: 5¿©z+cz+cxzsz 27 Hình 2.26 Raspberry pi 4 model E.-- s5 + SE THnHTHTH HH Hư 27 Hình 3.1 Bước | - Trong thư viện CAN, viết các Adapter Function hỗ trợ binding 0:0 .2 Bước 2 - Look-up các hàm Adapter đã viết.3 Bước 3 - Test các hàm lay từ thư viện CAN - khi chưa cắm module CAN ——.4 Bước 4 - Test các ham lấy từ thư viện CAN — khi đã cắm module CAN.7 đoạn mã chỉnh sửa 1COTI. --- ¿+ 2E 22 EEE 22111953181 58 EEEE2EEEESkkrrsreere 35 Hình 3.8 GUI: màn hình chính tao ra bằng Flutter.

2-22 2 s2 sz+sz2xszzxeez 35 Hình 3.9 GUI: Menu Screen tạo ra bằng Flufter.1 Sysstat: Khi ứng dụng Qt nhận tín hiệu CAN nhưng xe đang đứng yên.2 Sysstat: Ung dung Qt khi xe bắt đầu chuyên động.3 Task manager: Khi ứng dung Qt nhận CAN, nhưng xe đứng yên.4 Sysstat: Khi ứng dụng Flutter bắt đầu nhận tín hiệu CAN, nhưng giao diện không thay đổi (xe đang đứng yên), hàng màu xám là tiến trình của ứng dung.5 Sysstat: Khi xe bắt đầu chuyên động.6 Task manager: Khi ứng dung Flutter nhận CAN, xe đứng yên.7 Task Manager: Khi xe bat đầu chuyền động, thông số tốc độ trên man hình thay đối liên tỤC.8 Sysstat: %memory hệ thống khi chưa mở ứng dụng, build, và bắt đầu khởi động ứng dung, xe GUNG VÊN.- - G2 311911111111 TT TH go TH ng Hy 42 Hình 4.9 Sysstat: %memory khi chưa mở ứng dụng và bắt đầu khởi động ứng dụng "—.10 FPS trong 00 Xa.11 Devtools: FPS trung bình trong 40s dau tiên sau khi chạy ứng dụng.12 Devtools: FPS trung bình trong 200s đầu tiên sau khi chạy ứng dụng.13 Devtools: FPS trung bình trong 400s đầu tiên sau khi chạy ứng dụng.14 Devtools: FPS trung bình sau 400s, én định ở mức 52 FPS.15 FPS tại một thời điểm ngẫu 10101 (ol .16 Thời gian startup QT app.17 UI Thread tại thời điểm startup Thread.---:- 22 ©2sz25z+2s+zzxzscs+z 48 Hình 4.18 Raster Thread tai thời điểm khởi động ứng dung .19 Thời gian chuyển giữa các màn hình của ứng dụng Qt.20 UI Thread tại thời điểm chuyền màn hình .21 Raster Thread tại thời điểm chuyên màn hình.-2-2 255255249 DANH MỤC BANG Bảng 2.1 Danh sách khai báo giá trị cho các biến .- 2-2: 52 22£E+£x+zE+zEsrxz 7 Bảng 2.2 Thông số phan cứng Raspberry.--- 2-22 s2x+2E22EE+EE+EEtEEEzExerserrerex 29 Bảng 3.1 Đường đi của dữ liệu từ Xe. St S2 S2 2 141111111 re 32 Bảng 4.1 FPS trong các khoảng thời Ø1an.1 Tổng kết thông 86 đo .- 2-2 5S9S22EE‡EESEE2EEEE1E711211271271211211 11 xe, 50 DANH MUC TU VIET TAT AGL Automotive Grade Linux SDK Software Development Kit iOS Iphone Operating System UI Controller Area Network FFI Foreign Function Interface CCI Command-Line Interface ECI Engine Control Unit ADAS Advanced Driver Assistance Systems CPU Central Processing Unit GPU Graphic Processing Unit TOM TAT KHÓA LUẬN Nhóm nghiên cứu nền tảng Flutter trong phát triển ứng dụng di động và nghiên cứu thiết kế đồng hồ kĩ thuật số cho phương tiện giao thông hai bánh và so sánh với giao diện Qt trong phát triển đồng hồ kĩ thuật sd. Kế hoạch ban đầu của đề tài là phát triển trên hệ điều hành Automotive Grade Linux. AGL là một dự án mã nguồn mở với cốt lõi là linux, từ đó đề tài sẽ so sánh với nền tảng Qt chạy trên AGL được cung cấp bởi Bosch.

Ban đầu nhóm tiếp cận với AGL là một trong những hệ điều hành dành riêng cho ô tô để nghiên cứu và phát triển đồng hồ kĩ thuật số cho xe hai bánh sử dụng nền tảng Flutter, nhưng trong quá trình nghiên cứu và phát triển, nhóm gặp một vấn đề đó là chưa có bộ SDK của Flutter phù hợp với hệ điều hành AGL. Từ đó nhóm đưa ra các hướng giải quyết như sau: 1. Xây dung lại bộ SDK của Flutter phù hợp với AGL. Đổi từ hệ điều hành AGL sang Raspberry OS.

Với hướng giải quyết thứ nhất, việc xây dựng lại toàn bộ SDK là một thử thách rất lớn. Đề xây dựng lại bộ SDK của Flutter phù hợp với AGL thì nhóm cần thêm nhân lực và thời gian. Nhất là việc thời gian hoan thành va bảo vệ khóa luận là có hạn do đó hướng giải quyết thứ nhất không khả thi. Với hướng giải quyết thứ hai, việc chạy Flutter ứng dụng trên google app là có khả thi.

Bởi vì đã có một vài Flutter Embedder được xây dựng cho Raspberry OS, điển hình như của Sony, hay của Ardera, đồng thời, ngay cả Google cũng có hỗ trợ SDK phù hợp để có thể chạy trên Raspberry OS vì thế chúng em chọn hướng giải quyết thứ hai. Dựa theo hướng giải quyết thứ hai, đề tài đã xây dựng và tạo ra một số kết quả nhất định như là giao điện đồng hồ kĩ thuật số sử dụng nền tảng Flutter. Và với sự hỗ trợ đến từ các kĩ sư của Bosch, nhóm đã có thể truyền và nhận tín hiệu thời gian thực từ xe hai bánh lên đồng hồ kĩ thuật số. Đồng thời phía Bosch cũng đã chỉnh sửa đề Qt có thể chạy trên Raspberry, qua đó nhóm đã có thê so sánh được hiệu suất sử dụng của hai nên tảng nay.

GIỚI THIỆU ĐÈ TÀI 1.1 Giới thiệu về đề tài Cụm đồng hồ hiển thị kỹ thuật số đã được phát triển và ứng dụng rộng rãi trong các phương tiện vẫn chuyền từ nhiều thập niên qua, phổ biến trên hầu hết xe ô tô. Việc sử dụng đồng hộ kỹ thuật số dé hiển thị thông tin hỗ trợ giám sát và điều khiển mô tô đã được nghiên cứu và phát triển trong những năm gần đây. Đồng hồ kỹ thuật số giúp hiển thị được nhiều thông tin hơn, thuận tiện tương tác và hỗ trợ kiếm soát phương tiện tốt hơn, cho phép ứng dụng nhiều kỹ thuật mới giúp nâng cao độ an toàn và hiệu quả trong sử dụng phương tiện. Các tính năng của đồng hỗ số là vượt trội so với đồng hồ cơ truyền thống.2 minh họa hình ảnh về hai loại đồng hồ kỹ thuật số và đồng hồ cơ truyền thống.

sự quan tâm của đông đảo cộng đồng phát triển ứng dụng, nhóm đã quyết định sử dụng nền tang Flutter dé nghiên cứu và phát triển đồng hồ kĩ thuật số. Flutter mang ưu điểm vượt trội nhằm giải quyết các vấn đề về Fast Development và Native Performance. Flutter có thể cho phép xây dựng giao diện người dùng nhanh chóng và dễ dàng thử nghiệm và thêm tính năng và sửa lỗi nhanh hơn. Flutter còn cho phép tải lại lần thứ hai, mà không làm mắt trạng thái trên các thiết bi mô phỏng hay thiết bị thực.2 Mục tiêu của đề tài 1.1 Mục tiêu tổng quát Với sự hỗ trợ của Công ty Bosch Global Software Technologies, nghiên cứu nền tang Flutter trong phát triển ứng dụng di động và nghiên cứu thiết kế đồng hồ kĩ thuật số cho phương tiện giao thông hai bánh.

Sử dụng nền tảng Flutter và phát triển trên Raspberry Pi 4 model B.2 Mục tiêu chỉ tiết - Nghiên cứu nền tảng mới Flutter dé phát triển ứng dụng di động. - Sử dụng nén tang Flutter dé thiết kế đồng hồ hiền thị kĩ thuật số cho phương tiện xe hai bánh chạy trên Raspberry. - Sử dụng và chạy lại đồng hồ hiển thị kĩ thuật số sử dụng nền tảng Qt được cung cấp và hỗ trợ bởi công ty Bosch Global Software Technologies. - Do hiệu năng của Flutter và Qt dé có thé đưa ra những chi số, so sánh giữa hai nên tảng.3 Đối tượng và phạm vi nghiên cứu 1.1 Đối tượng nghiên cứu Đối tượng nghiên cứu chính trong khóa luận là Flutter, nền tảng mã nguồn mở được phát triển bởi Google.

Sau đó nhóm tiếp tục nghiên cứu giao điện đồng hồ kỹ thuật số cho xe hai bánh, và sử dụng nền tang Flutter để xây dựng giao diện đồng hồ kĩ thuật số cơ bản cho xe hai bánh chạy trên phần cứng là Raspberry Pi 4 Model B.2 Phạm vi nghiên cứu Nghiên cứu về khả năng xây dựng ứng dụng nhúng cho các thiết bị nhúng của Flutter, tiêu biéu là xây dựng đồng hồ kĩ thuật số cho xe hai bánh. Và cuối cùng là so sánh hiệu quả sử dung Flutter với việc sử dụng Qt.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài khóa luận "Nghiên cứu ứng dụng Flutter trong thiết kế đồng hồ số cho xe hai bánh" mang đến cái nhìn sâu sắc về việc ứng dụng công nghệ Flutter trong việc phát triển giao diện đồng hồ số cho xe máy. Tác giả không chỉ trình bày quy trình thiết kế và phát triển ứng dụng mà còn phân tích những lợi ích mà Flutter mang lại, như khả năng phát triển nhanh chóng và hiệu suất cao. Bài viết sẽ giúp độc giả hiểu rõ hơn về cách thức mà công nghệ này có thể cải thiện trải nghiệm người dùng trong các ứng dụng di động, đặc biệt là trong lĩnh vực giao thông.

Nếu bạn muốn mở rộng kiến thức về phát triển ứng dụng di động, hãy tham khảo thêm Khoá luận tốt nghiệp xây dựng ứng dụng android lấy dữ liệu mới trên hosting theo thời gian trực, nơi bạn sẽ tìm thấy hướng dẫn chi tiết về việc xây dựng ứng dụng Android với dữ liệu thời gian thực. Ngoài ra, Xây dựng ứng dụng mobile chuyển đổi số phục vụ sự kiện hội nghị đồ án tốt nghiệp cũng là một tài liệu hữu ích, giúp bạn hiểu rõ hơn về việc áp dụng công nghệ số trong các sự kiện. Cuối cùng, bạn có thể tham khảo Luận văn kiểm thử phần mềm trên thiết bị di động và ứng dụng phần mềm appium studio cho ứng dụng trên ios để nắm bắt các phương pháp kiểm thử phần mềm hiệu quả trên thiết bị di động. Những tài liệu này sẽ giúp bạn có cái nhìn toàn diện hơn về lĩnh vực phát triển ứng dụng di động.