Nhóm cùng hợp tác với nhóm của bạn Nguyễn Hoàng Đạt và bạn Trần Gia Hòa làm phần cứng với đề tài “Thiết kế, chế tạo mô hình các cảm biển – cơ cấu chấp hành hệ thống điều khiển động cơ”,
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
SVTH: ĐẶNG QUÝ LÊ NAM ĐỊNH
GVHD: ThS NGUYỄN THIỆN DINH THIẾT KẾ PHẦN MỀM CHẨN ĐOÁN
CÁC CẢM BIẾN – CƠ CẤU CHẤP HÀNH HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT Ô TÔ
Trang 2HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ
SVTH: ĐẶNG QUÝ
SVTH: LÊ NAM ĐỊNH MSSV: 19145104
GVHD: ThS NGUYỄN THIỆN DINH
Trang 11LỜI CẢM ƠN
Nhóm em xin gửi lời cảm ơn chân thành đến những đấng sinh thành, những bậc cha mẹ, người thân là những người luôn luôn ủng hộ và là chỗ dựa tinh thần cho chúng em trong xuyên suốt quá trình thực hiện đồ án Bên cạnh đó, chúng em vô cùng biết ơn nhà trường cũng như thầy cô Khoa Cơ khí Động lực đã tạo điều kiện hết mức để giúp đỡ chúng em thực hiện đồ án một cách tốt nhất
Và tất nhiên, người đã đồng hành cùng chúng em từ những ngày đầu thực hiện đồ án cho đến lúc hoàn thành sản phẩm, nhóm chúng em xin gửi lời cảm ơn chân thành đến ThS Nguyễn Thiện Dinh, luôn dành thời gian quý báu hướng dẫn, giúp đỡ và giải đáp các thắc mắc để nhóm em có thể hoàn thành tốt được đồ án tốt nghiệp này
Trong quá trình thực hiện, đồ án của nhóm đòi hỏi một lượng kiến thức đa dạng và phong phú ở nhiều lĩnh vực khác nhau, tuy nhiên do có giới hạn về thời gian và lượng kiến thức cũng như kỹ năng thực hành nên nhóm không thể tránh khỏi việc có những sai sót khi thực hiện đồ án Nhóm cùng hợp tác với nhóm của bạn Nguyễn Hoàng Đạt và bạn Trần Gia Hòa làm phần cứng với đề tài “Thiết kế, chế tạo mô hình các cảm biển – cơ cấu chấp hành hệ thống điều khiển động cơ”, để cùng nhau làm ra một sản phẩm có thể áp dụng giảng dạy cho sinh viên về sau
Rất may mắn chúng em luôn nhận được sự chỉ dạy từ thầy, giúp nhóm hoàn thiện đề tài nhất có thể Qua thời gian làm việc chung dù không nhiều nhưng cũng đủ để chúng em cảm nhận được sự chân thành giúp đỡ nhóm của thầy Chúng em xin gửi lời chúc tốt đẹp nhất đến quý thầy cô và các bạn, chúc mọi người có nhiều sức khỏe, bình an, vui vẻ, hạnh phúc và thành công trên con đường đời phía trước
Xin chân thành cảm ơn và gửi lời chúc tốt đẹp nhất!
Trang 12TÓM TẮT
Cuộc sống xung quang chúng ta luôn vận hành theo chiều hướng đi lên, bắt buộc con người phải luôn tìm kiếm, học hỏi, thay đổi và áp dụng những công nghệ, kỹ thuật tiên tiến vào đời sống Các lĩnh vực khoa học, máy tính, trí tuệ nhân tạo được con người đưa vào thực tiễn nhiều hơn Trong đó không thể không kể đến ngành Công nghệ ô tô Ô tô giờ đây không những là phương tiện di chuyển mà nó còn bao hàm sự an toàn, thoải mái, đáp ứng trải nghiệm tốt cho mọi người Chính vì lẽ đó, trên Ô tô ngày nay đã được trang bị rất nhiều công nghệ tiên tiến như cảm biến, hệ thống an toàn, hệ thống tiện nghi…
Tại Trường Đại học Sư phạm Kỹ thuật thành phố Hồ Chí Minh nổi tiếng với chất lượng đào tạo rất tốt về các ngành nói chung và ngành ô tô nói riêng, nhưng để bắt kịp với xu hướng xe hiện đại, chúng ta cũng cần phải nâng cao hiệu quả giảng dạy bằng cách áp dụng những mô hình đào tạo thực tiễn giúp sinh viên nắm vững lý thuyết lẫn thực tế Với mong muốn góp sức cho trường, nhóm chúng em thực hiện đề tài “Thiết kế phần mềm chẩn đoán – cơ cấu chấp hành hệ thống điều khiển động cơ”
Đề tài sử dụng công cụ là Visual Studio Windows Form để lập trình viết ra một phần mềm, kết hợp với phần cứng của nhóm hai bạn Đạt và bạn Hòa Phần mềm này giúp giảng viên giảng dạy sinh viên về các cảm biến và cơ cấu chấp hành hệ thống điều khiển động cơ ô tô Học đi đôi với hành, không chỉ cung cấp lý thuyết mà phần mềm còn kết hợp thực hành
Sinh viên thao tác trực tiếp trên mô hình để đo đạt, kiểm tra cảm biến Sau đó cho ra số liệu chính xác nhất về cảm biến đó Sinh viên có thể theo số liệu đó nghiên cứu, học tập, tìm hiểu cấu tạo nguyên lý hoạt động của cảm biến – cơ cấu chấp hành hệ thống điều khiển động cơ ô tô
Trang 13Đề tài này không chỉ đóng vai trò hỗ trợ giảng dạy mà còn mang tính thực tiễn cao, giúp sinh viên không chỉ nắm vững kiến thức về cảm biến trên ô tô mà còn có kinh nghiệm xử lý lỗi về cảm biến trên ô tô thực tế Phần mềm được phát triển kết hợp với phần cứng nhằm tạo ra một môi trường học tập tương tác, giúp sinh viên nâng cao kỹ năng và tự tin trong việc chẩn đoán và sửa chữa các vấn đề liên quan đến cảm biến - cơ cấu chấp hành hệ thống điều khiển động cơ ô tô Qua đó sinh viên có áp dụng cho nghề nghiệp sau này của bản thân
Trang 14ABSTRACT
Life around us always moves in an upward direction, forcing people to always seek, learn, change and apply advanced technology and techniques to life The fields of science, computing, and artificial intelligence are being put into practice more and more Among them, it is impossible not to mention specialized technology cars Cars are now not just convenient means of transportation, but they also mean safety, comfort, and a good experience for everyone For that reason, today's cars are equipped with many advanced technologies such as sensors, safety systems, comfort systems, etc
Ho Chi Minh City University of Technical Education is famous for its very good training quality in general and the automobile industry in particular, but to keep up with modern car trends, we also need to Improve teaching effectiveness by applying practical training models to help students master both theory and practice With the desire to contribute to the school, our group carried out the project "Design of diagnostic software - executive structure of engine control system"
The project uses the tool Visual Studio Windows Form to program and write a software, combined with the hardware of a group of two friends, Dat and Hoa This software helps lecturers teach students about sensors and actuators of car engine control systems Learning goes hand in hand with practice, not only providing theory but the software also combines practice
Students work directly on the model to measure and test sensors Then give the most accurate data about that sensor Students can follow that data to research, study, and understand the structure and operating principles of the sensor - the actuator of the car engine control system
Trang 15This topic not only plays a teaching support role but is also highly practical, helping students not only master knowledge about sensors on cars but also have experience in handling sensor errors on real cars international The software was developed in conjunction with the hardware to create an interactive learning environment, helping students improve their skills and confidence in diagnosing and repairing sensor-actuator-related problems operate the car engine control system Thereby, students can apply it to their future careers
Trang 161.3 Mục tiêu của đề tài 3
1.4 Đối tượng và phạm vi nghiên cứu 4
1.5 Phương pháp tiếp cận và nghiên cứu 4
1.5.1 Phương pháp tiếp cận 4
1.5.2 Phương pháp nghiên cứu 5
1.6 Nội dung nghiên cứu 5
1.7 Các nội dung chính trong đề tài 5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 6
2.1 Giới thiệu về Visual Studio và Windows Forms 6
2.1.1 Visual Studio 6
2.1.2 Visual Studio Windows Forms 7
2.1.3 Các thành phần để người dùng làm việc của WinForms 8
2.2 Giới thiệu về Arduino 14
2.2.1 Phần mềm Arduino IDE 14
2.2.2 Board Arduino Mega 15
2.3 Cơ sở dữ liệu về SQLite 17
2.4 Giao tiếp UART 18
2.5 Virtual Serial Port 20
2.6 Github 21
CHƯƠNG 3: THIẾT KẾ PHẦN MỀM CHẨN ĐOÁN CÁC CẢM BIẾN – CƠ CẤU CHẤP HÀNH HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ ĐƯỢC BIÊN SOẠN BẰNG VISUAL STUDIO WINDOWS FORMS 23
Trang 173.1 Sử dụng phần mềm với quyền “Sinh viên” 23
3.1.1 Đăng nhập với quyền “Sinh viên” 23
3.1.2 Giới thiệu các chức năng chính của phần mềm với quyền “Sinh viên” 24
3.1.3 Chức năng “Bài học” 26
3.1.4 Chức năng “Thực hành” 31
3.1.5 Chứ năng “Thực hành kiểm tra lỗi” 36
3.1.6 Chức năng “Kiểm tra” 41
3.2 Sử dụng phần mềm với quyền “Giảng viên” 44
3.2.1 Đăng nhập với quyền “Giảng viên” 44
3.2.2 Chức năng “Quản lý thông tin sinh viên” 46
3.2.3 Chức năng “Tạo mã lỗi” 47
CHƯƠNG 4: KẾT QUẢ VÀ ĐÁNH GIÁ 49
Trang 18DANH MỤC CÁC HÌNH ẢNH
Hình 2.1 Logo của phần mềm Visual Studio 2022 6
Hình 2.2 Giao diện làm việc của Visual Studio Windows Form 2022 8
Hình 2.3 Giao diện cửa sổ Source Code Winforms 8
Hình 2.4 Giao diện cửa sổ Solution Explorer 9
Hình 2.5 Giao diện cửa sổ Design 10
Hình 2.6 Giao diện cửa sổ Toolbox 11
Hình 2.7 Giao diện cửa sổ Properties 13
Hình 2.8 Giao diện phần mềm Arduino IDE 15
Hình 2.9 Board Arduino Mega2560 16
Hình 2.10 Cấu trúc cơ sở dữ liệu SQLite 17
Hình 2.11 Giao diện tài khoản SQLite 18
Hình 2.12 Giao tiếp giữa 2 UART 18
Hình 2.13 Giao diện ứng dụng Virtual Serial Port 20
Hình 2.14 Logo Github 21
Hình 2.15 Trang Github của đề tài 21
Hình 3.1 Trang chủ đăng nhập của phần mềm Vehicle Engine Training 23
Hình 3.2 Cổng kết nối COM 24
Hình 3.3 Các chức năng học tập của sinh viên 25
Hình 3.4 Ý tưởng hiển thị ban đầu phần bài học 26
Hình 3.5 Thư viện file excel phần bài học 26
Hình 3.6 Nơi lưu trữ hình ảnh hiển thị trong nguồn của dự án 27
Hình 3.7 Các bước chọn chức năng “Bài học” 28
Hình 3.8 Trang chọn bài học 28
Hình 3.9 Bố cục giao diện bài học 30
Hình 3.10 Ý tưởng ban đầu phần thực hành 31
Hình 3.11 Các cột chứa câu hỏi và đáp án trắc nghiệm 31
Hình 3.12 Đồ thị minh họa cho cảm biến 32
Hình 3.13 Các bước thực hành chức năng “Thực Hành” 33
Hình 3.14 Trang chọn bài thực hành 33
Hình 3.15 Giao diện thực hành 35
Hình 3.16 Ý tưởng ban đầu phần thực hành kiểm tra lỗi 36
Hình 3.17 Thư viện file excel thực hành kiểm tra lỗi (1) 36
Trang 19Hình 3.18 Thư viện file excel thực hành kiểm tra lỗi (2) 37
Hình 3.19 Nút thực hành kiểm tra lỗi 37
Hình 3.20 Giao diện thực hành kiểm tra lỗi 38
Hình 3.21 Hướng dẫn sinh viên nối dây 39
Hình 3.22 Hướng dẫn sinh viên đo kiểm 39
Hình 3.23 Khung chọn lỗi 40
Hình 3.24 Nút kiểm tra 41
Hình 3.25 Giao diện cửa sổ kiểm tra 41
Hình 3.26 Thiết lập bài kiểm tra 42
Hình 3.27 Danh sách 20 lỗi (PAN) 42
Hình 3.28 Giao diện kiểm tra 43
Hình 3.29 Phần mềm trả kết quả “ĐẠT” hay “KHÔNG ĐẠT” 43
Hình 3.30 Đăng nhập với quyền “Giảng viên” 44
Hình 3.31 Các chức năng chính dành cho giảng viên 45
Hình 3.32 Bố cục của trang quản lý sinh viên 46
Hình 3.33 Tiến độ học tập của sinh viên 47
Hình 3.34 Bảng điều khiển nhập mã lỗi 47
Hình 4.1 Kết nối phần mềm và phần cứng 50
Hình 4.2 Thao tác thực hành trên phần mềm 50
Trang 20CHƯƠNG 1: TỔNG QUAN 1.1 Lí do chọn đề tài
Đi cùng với sự phát triển của khoa học, kỹ thuật và công nghệ, con người đã áp dụng nhiều thành tựu nghiên cứu vào đời sống Nhờ đó những thiết bị hiện đại được ra đời, tất cả chúng được tạo ra với một mục đích giúp con người có cuộc sống thoải mái dễ dàng hơn Những sản phẩm tiên tiến liên quan đến rất nhiều lĩnh vực bao gồm: giải trí, đi lại, học tập… các thiết bị di động thông minh, các thiết bị điện tử, các hệ thống thông tin, mạng lưới Internet toàn cầu, trí thông minh nhân tạo… Trong đó, không thể không kể đến ô tô Đã từng có thời điểm, người ta nhìn vào sự phát triển của ngành công nghiệp ô tô để đánh giá sự phát triển của quốc gia đó
Ngành công nghiệp ô tô càng ngày càng phát triển, nó giúp kinh tế phát triển con người có lợi ích được sử dụng công nghệ mới, nhưng vấn đề đặt ra là con người phải có thêm kiến thức để quản lý, sử dụng, thậm chí là phát triển công nghệ đó lên một tầm cao hơn Để làm được việc đó, giờ đây không chỉ thông qua việc học lý thuyết mà còn phải kết hợp với thực hành trực tiếp Nó giúp con người đối mặt với vấn đề và giải quyết vấn đề một cách cụ thể nhất
Qua những điều nêu ở trên, nhóm nhận thấy việc trang bị thật tốt cho mình kiến thức lý thuyết là chưa đủ, bản thân phải đối mặt với vấn đề thực tế nhiều hơn trước khi bước vào công việc trong tương lai Tuy nhiên, sinh viên hiện nay khá tự tin vào kiến thức mình đã học mà bỏ quên đi tính trải nghiệm thực tế Nhận thấy được việc đó, chúng em đã cùng nhau tìm hiểu và xin phép được sự hướng dẫn của giảng viên Nguyễn Thiện Dinh để thực hiện đề tài “Thiết kế phần mềm chẩn đoán các cảm biến – cơ cấu chấp hành hệ thống điều khiển động cơ” nhằm hỗ trợ giảng viên giảng dạy và đưa sinh viên ứng dụng lý thuyết đã học vào gần với thực tế hơn
1.2 Thực trạng hiện tại
1.2.1 Tình hình ngoài nước
Năm 2019, một nhóm nghiên cứu sinh tại Khoa Giáo dục Kỹ thuật Ô tô, Đại học Negeri Yogyakarta, Indonesia bao gồm M.Wakid, T.Usman và B.Sulistyo đã thực hiện nghiên cứu “Project Based Learning Model to Increase the Competency of Automotive Engineering Teachers Candidates” [1] Nghiên cứu này nhằm tạo ra một mô hình học dựa trên dự án cho giáo dục nghề nghiệp (Project-Based Learning model - PjBL)
Trang 21trong việc học thực hành các khóa học về ô tô về điện thân xe Sản phẩm của nghiên cứu này là một mô hình PjBL cho giáo dục nghề nghiệp trong lĩnh vực ô tô đã được đánh giá và khẳng định phù hợp để sử dụng như một mô hình học trong lĩnh vực ô tô của giáo dục nghề nghiệp Sinh viên tham gia thực nghiệm cũng đã cho các phản hồi rất tích cực về kết quả của nghiên cứu và đánh giá rất cao các hiệu quả mà nghiên cứu mang lại
Vào tháng 6 năm 2023, trong một bài đăng có tựa đề “An example of an advanced sensor-based car automation system using Raspberry Pi with MACHINE LEARNING in Python source codes for real-times projects” [2], trên mạng xã hội Linkedln, tác giả Harisha Lakshan Warnakulasuriya đã đề cập đến việc kết nối giữa cảm biến và phần mềm dựa theo thời gian thực
1.2.2 Tình hình trong nước
Năm 2013, nhận thức được tầm quan trọng của việc giảng dạy kết hợp với sử dụng mô hình, ThS Châu Quang Hải tại trường Đại học Sư Phạm Kỹ Thuật TP.HCM đã tiến hành nghiên cứu và đề xuất đề tài nghiên cứu khoa học “Mô phỏng hệ thống EDC” để tạo ra một đĩa CD mô phỏng lại hệ thống EDC (Electronic Diesel Control – Hệ thống phun dầu điện tử) [3], giúp sinh viên có thể dễ dàng nghiên cứu cấu tạo và nguyên lý của hệ thống Thiết kế trên đĩa CD giúp việc trao đổi giữa các người dùng dễ dàng hơn
Việc áp dụng các nội dung Multimedia vào việc giảng dạy trong hệ thống điện ô tô ở nước ta còn hạn hẹp Tháng 11, năm 2013, ThS Đinh Tấn Ngọc của trường Đại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh đã tiến hành đề tài nghiên cứu “Ứng dụng MULTIMEDIA mô phỏng các hệ thống nhiên liệu trong động cơ Diesel bằng phần phần mềm Flash” [4] Đề tài đã bổ sung được nguồn tài liệu giảng dạy cho bộ môn thực tập động cơ Diesel thêm sinh động, trực quan với những hình ảnh và video thực tế, giúp cho công tác dạy và học được tốt hơn
Tháng 10 năm 2015, ThS Lê Khánh Tân đã thực hiện đề tài “Nghiên cứu, thiết kế, chế tạo thử nghiệm phần mềm chẩn đoán PAN của hệ thống điện điều khiển động cơ” [5] Đề tài đã chế tạo ra được mô hình để chẩn đoán PAN của hệ thống điện điều khiển
Trang 22động cơ, góp phần làm nâng cao hiệu quả giảng dạy và kỹ năng thực hành chẩn đoán của sinh viên Kế thừa thành công của đề tài trước, ThS Lê Khánh Tân tiếp tục thực hiện đề tài nghiên cứu chế tạo mô hình ứng dụng IOT trong việc thu thập dữ liệu trên ô tô vào năm 2019 [6] Đề tài đã rất thành công khi sử dụng kết hợp Arduino và các nền tảng của LabVIEW cho ra kết quả là một board mạch thu thập dữ liệu không dây và có thể hiển thị lên máy tính
Gần đây, tháng 7 năm 2023, nhóm hai bạn Lâm Duy Huy và Trần Vũ Hảo thực hiền đề tài tốt nghiệp mang tên “Nghiên cứu, thiết kế và chế tạo mô hình thực tập điện tử cơ bản trên ô tô” [7] Đề tài giúp sinh viên có thể thực hành ngay sau khi được học các lý thuyết về mạch điện, điều này giúp sinh viên quan sát trực quan hơn, nắm vững và ghi nhớ tốt hơn các kiến thức đã học, còn được trang bị các kỹ năng thực hành, phán đoán
Qua những đề tài nghiên cứu ở trên, có thể thấy được rằng việc áp dụng mô hình vào việc giảng dạy là một vấn đề đáng được quan tâm và đầu tư nhiều hơn Tuy nhiên, các công trình nghiên cứu trên mặc dù đã đưa ra được những giải pháp, áp dụng được nhiều kỹ thuật nhưng vẫn còn chưa khai thác hết được tiềm năng của phương pháp giảng dạy này Nắm bắt được điều đó, nhóm đã nghiên cứu và tìm hiểu, tiến hành đề tài có thể kết nối được giữa phần mềm máy tính và thiết bị phần cứng thông qua các phương thức giao tiếp ngoại vi, đồng thời tích hợp được nội dung giảng dạy để giúp cho việc truyền tải kiến thức đi đôi với thực hành, giúp việc học về cảm biến – cơ cấu chấp hành trực quan hơn, dễ tiếp cận với sinh viên hơn, cho sinh viên cái nhìn gần với thực tế hơn về các hệ thống trên xe cũng như các vấn đề mà những hệ thống sẽ gặp phải
1.3 Mục tiêu của đề tài
- Tìm hiểu cơ sở lý thuyết phần mềm Visual Studio Windows Forms để xây dựng phần mềm trên hệ điều hành Windows Tiến hành mô phỏng các chức năng của phần mềm và phần cứng trước khi tiến hành thực tế
- Lưu trữ dữ liệu sinh viên giúp giảng viên dễ dàng quản lý và kiểm tra học tập - Xây dựng được phần mềm hỗ trợ việc giảng dạy của giáo viên và giao tiếp được với phần cứng để giúp cho việc giảng dạy được trực quan hơn
Trang 23- Thư viện bài học với các bài giảng cơ bản về các cảm biến – cơ cấu chấp hành hệ thống điều khiển động cơ trên ô tô, hỗ trợ cho việc giảng dạy Giảng viên có thể bổ sung hoặc thay thế nội dung bài học, thực hành cho phù hợp với thực tế giảng dạy
1.4 Đối tượng và phạm vi nghiên cứu
Trong đề tài này, nhóm tập trung nghiên cứu các đối tượng: - Phần mềm Visual Studio Windows Form
- Arduino và cách giao tiếp giữa phần mềm và phần cứng (cảm biến và cơ cấu chấp hành)
- Giáo trình giảng dạy về điện tử cơ bản trên ô tô cho sinh viên
Phạm vi nghiên cứu của đề tài này sẽ tập trung vào việc thiết kế phần mềm Winforms có thể giao tiếp được với phần cứng, phần mềm gửi tín hiệu đến phần cứng, mạch điều khiển và mạch tạo pan, hiển thị chúng lên phần mềm
1.5 Phương pháp tiếp cận và nghiên cứu 1.5.1 Phương pháp tiếp cận
Để đạt được mục tiêu của đề tài, phương pháp tiếp cận của nhóm sẽ gồm:
- Nghiên cứu những kiến thức về ngôn ngữ lập trình C# được dùng trong WinForms để tạo ra một phần mềm có những tính năng cơ bản trong việc học hành và luyện tập
- Áp dụng các kiến thức về cảm biến, cơ cấu chấp hành hệ thống điều khiển động cơ ô tô đã học, sử dụng nguyên lý hoạt động của nhóm làm phần cứng, từ đó thiết kế phần mềm, sau đó kết hợp phần mềm với phần cứng
- Tìm hiểu về cách thiết lập lưu trữ phần mềm chẩn đoán
- Nghiên cứu các kiến thức khi chẩn đoán, xử lý lỗi của mạch điện, và xây dựng giáo án bài học
Trang 241.5.2 Phương pháp nghiên cứu
- Sử dụng tài liệu từ các nguồn trên Internet để sử dụng phần mềm WinForms - Tham khảo các tài liệu, giáo án từ thư viện, Internet để xây dựng giao diện, tính năng phần mềm
- Kết hợp với nhóm làm phần cứng để tạo ra sản phẩm hoàn chỉnh
1.6 Nội dung nghiên cứu
- Cơ sở lý thuyết về phần mềm Visual Studio Windows Form - Cơ sở lý thuyết về phần mềm Arduino
- Phương pháp giao tiếp giữa phần mềm Winform và Arduino thông qua SerialPort - Thiết lập giao diện phần mềm, cơ sở dữ liệu
- Thử nghiệm nhiều lần và đánh giá hiệu quả mà phần mềm mang lại
1.7 Các nội dung chính trong đề tài
Đề tài gồm 5 chương:
Chương 1: Tổng quan Chương 2: Cơ sở lý thuyết
Chương 3: Thiết kế phần mềm chẩn đoán các cảm biến – cơ cấu chấp hành hệ thống
điều khiển động cơ được biên soạn bằng Visual Studio Windows Forms
Chương 4: Kết quả và đánh giá Chương 5: Kết luận và kiến nghị
Trang 25CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về Visual Studio và Windows Forms
2.1.1 Visual Studio
Visual Studio được thiết lập vào năm 1997 và thuộc quyền sở hữu bởi Microsoft, tập đoàn này đã cho ra mắt hai phiên bản của Visual Studio là Professional và Enterprise Lúc ban đầu, phần mềm này có tên là Project Boston, nhưng sau đó được đổi tên lại vì được tích hợp thêm các công cụ phát triển và đóng gói sản phẩm duy nhất Trải qua quãng thời gian dài với nhiều phiên bản khác nhau, Visual Studio được chính thức phát hành vào tháng 7 năm 2015
Visual Studio là một môi trường phát triển tích hợp (Integrated Development Environment - IDE), được sản xuất bởi Microsoft Nó cung cấp cho người lập trình một bộ công cụ để phát triển các ứng dụng phần mềm cho nhiều nền tảng, bao gồm Windows, web, di động và đám mây
Visual Studio cung cấp nhiều tính năng hỗ trợ lập trình viên trong quá trình phát triển ứng dụng, bao gồm các trình biên tập mã, gỡ rối, kiểm tra lỗi, xây dựng, triển khai và quản lý mã nguồn Visual Studio hỗ trợ nhiều ngôn ngữ lập trình, bao gồm C#, Visual Basic, C++, JavaScript, TypeScript, Python, Ruby, và nhiều ngôn ngữ khác Visual Studio là một trong những môi trường phát triển phần mềm phổ biến nhất trên thế giới và được sử dụng rộng rãi trong cộng đồng lập trình viên
Trang 262.1.2 Visual Studio Windows Forms
Visual Studio Windows Forms là một công cụ lập trình hỗ trợ phát triển ứng dụng Windows Desktop WinForms là viết tắt của Windows Forms, là một phần của Microsoft NET Framework WinForms cung cấp một thư viện các thành phần giao diện người dùng (UI – User Interface) được xây dựng sẵn, giúp người lập trình có thể dễ dàng tạo ra các ứng dụng Windows với các tính năng giao diện đồ họa phức tạp
WinForms cung cấp cho nhà phát triển một số lợi ích như tính đồng nhất của giao diện người dùng, hỗ trợ kéo và thả để dễ dàng thêm các thành phần, và khả năng tương thích với các phiên bản Windows khác nhau Nó cũng cung cấp các công cụ để tạo ra các ứng dụng tương tác với cơ sở dữ liệu, xử lý đa luồng, và tích hợp các thư viện
WinForms được phát triển bằng ngôn ngữ lập trình C# (C Sharp) và được sử dụng trong môi trường phát triển NET Framework C# là ngôn ngữ lập trình hiện đại, đa nền tảng và được thiết kế để phát triển ứng dụng cho Windows, web, di động C# có cú pháp tương tự như Java và C++, nhưng có thêm một số tính năng mới và được cải tiến để giảm thiểu lỗi lập trình và tăng tính bảo mật Với Winforms, nhà phát triển có thể sử dụng C# để xây dựng các ứng dụng đồ họa mạnh mẽ và chuyên nghiệp cho Windows
Một số thành phần chính của WinForms bao gồm các control như TextBox, Button, Label, ComboBox, ListBox, DataGridView, ListView, ProgressBar, TabControl, và MenuStrip, cùng với các event và delegate để xử lý các sự kiện như Click, DoubleClick, KeyPress, MouseMove, và FormClosing [8] Ngoài ra, Winforms còn cung cấp các tính năng cho phép thêm hình ảnh, âm thanh và video vào ứng dụng, cũng như cho phép định dạng và hiển thị dữ liệu
Tóm lại, Visual Studio Winforms là một nền tảng phát triển ứng dụng đồ họa mạnh mẽ cho Windows, cung cấp cho nhà phát triển nhiều công cụ và tính năng để tạo ra các ứng dụng tương tác người dùng đa dạng và chuyên nghiệp
Trang 27Hình 2.2 Giao diện làm việc của Visual Studio Windows Form 2022 2.1.3 Các thành phần để người dùng làm việc của WinForms
Hình 2.3 Giao diện cửa sổ Source Code Winforms
Trang 28là nơi ta có thể viết và chỉnh sửa mã nguồn của ứng dụng, người dùng có thể thêm các đoạn mã, xử lý sự kiện, tạo lớp, khai báo biến, gọi các phương thức, và thực hiện các tác vụ lập trình khác Sử dụng các tính năng của trình soạn thảo để tăng hiệu suất và sắp xếp mã nguồn một cách dễ dàng
Cửa sổ Source Code Window cung cấp các tính năng như tô sáng cú pháp (syntax highlighting), gợi ý mã (code suggestion), kiểm tra lỗi cú pháp (syntax error checking), và điều hướng nhanh giữa các phần của mã nguồn Nó cũng cho phép người dùng thực hiện các tác vụ như tìm kiếm và thay thế, đánh dấu (bookmark) các đoạn mã quan trọng, ghi chú giải thích trong quá trình soạn thảo code và thực hiện kiểm tra đơn vị (unit testing)
Phía bên phải của ảnh minh họa trên là cửa sổ Solution Explorer, nơi hiển thị cấu trúc cây của Solution mà người dùng đang làm việc và cho phép ta tạo mới hay duyệt qua các dự án, thư mục và tệp bằng cách click chọn các dự án mà ta muốn kiểm tra trong Solution này Khi đặt chuột lên các cạnh của cửa sổ, phần mềm cho phép ta có thể mở rộng và thu gọn các nút để xem cấu trúc chi tiết của các thành phần
Hình 2.4 Giao diện cửa sổ Solution Explorer
Trang 29- Tạo mới dự án và tệp tin: Tạo mới các dự án, lớp, giao diện người dùng, các tệp tin mã nguồn và tài nguyên trong solution
- Tạo và quản lý các thư mục: Tạo và quản lý các thư mục để sắp xếp và nhóm các tệp tin liên quan trong Solution
- Chỉnh sửa và xóa tệp tin: Mở và chỉnh sửa mã nguồn, tệp tin thiết kế giao diện và tài nguyên khác trực tiếp từ cửa sổ Solution Explorer Ta cũng có thể xóa các tệp tin không cần thiết trong Solution
- Quản lý thuộc tính và tài nguyên: Chỉnh sửa các thuộc tính của các thành phần, quản lý tài nguyên (như hình ảnh, biểu đồ, văn bản) và liên kết chúng với dự án của mình
- Xây dựng và biên dịch: Xây dựng và biên dịch các dự án trong Solution từ cửa sổ Solution Explorer, cho phép kiểm tra lỗi, tạo tệp thực thi và các tệp đầu ra khác
Cửa sổ Solution Explorer giúp người soạn thảo tổ chức và quản lý mã nguồn, tài nguyên và các thành phần của ứng dụng WinForms một cách thuận tiện Nó là một công cụ quan trọng để tạo và phát triển các dự án trong môi trường phát triển Visual Studio
Trang 30Bên cạnh cửa sổ Source Code, cửa sổ Design (hay còn gọi là "Form Designer" hoặc "Visual Designer") trong WinForms là cửa sổ làm việc chính còn lại, nơi ta thiết kế giao diện người dùng của ứng dụng Nó cung cấp một giao diện trực quan cho phép ta kéo và thả các điều khiển (controls), tạo ra các bố cục (layouts) cho các cửa sổ và các thành phần khác trong ứng dụng
Khi mở một Form (cửa sổ) hoặc UserControl (điều khiển người dùng) trong cửa sổ Design, ta có thể:
- Thêm và sắp xếp các điều khiển: Chọn từ danh sách các điều khiển có sẵn (như nút, hộp văn bản, danh sách, hình ảnh ) và kéo chúng vào cửa sổ Design Ta được quyền di chuyển, thay đổi kích thước và sắp xếp các điều khiển để tạo bố cục mong muốn
- Thiết kế bố cục: Sử dụng các công cụ như container controls (Panel, GroupBox) và layout controls (TableLayoutPanel, FlowLayoutPanel) để tạo bố cục phù hợp với yêu cầu thiết kế của ứng dụng
- Đặt thuộc tính (Properties): Chỉnh sửa các thuộc tính của các điều khiển và cửa sổ, như kích thước, màu sắc, vị trí, chữ, hình ảnh từ cửa sổ Properties
- Xử lý sự kiện (Event): Gán các xử lý sự kiện cho các điều khiển thông qua giao diện người dùng, chẳng hạn như click chuột, nhập liệu, thay đổi giá trị Điều này giúp ta quản lý hành vi và tương tác của ứng dụng với người dùng
Cửa sổ Toolbox, là công cụ quan trọng trong Visual Studio Nó cung cấp các điều khiển (Controls) có sẵn cho người dùng dễ dàng sử dụng
Hình 2.6 Giao diện cửa sổ Toolbox
Trang 31Khi mở cửa sổ Toolbox, ta sẽ thấy một danh sách các hộp công cụ chứa các điều khiển phổ biến như nút (Button), hộp văn bản (TextBox), danh sách (ListBox), hộp kiểm (CheckBox), thanh trượt (Slider), hình ảnh và nhiều hơn nữa Người dùng chỉ cần kéo và thả các điều khiển từ cửa sổ Toolbox vào cửa sổ Design để tạo giao diện người dùng Cửa sổ Toolbox là một công cụ quan trọng giúp truy cập và sử dụng các điều khiển để tạo
giúp ta tiết kiệm thời gian và công sức trong quá trình phát triển ứng dụng của mình Dưới đây là mô tả cụ thể về tính năng của các Toolbox chính được sử dụng trong đề tài:
- Button (Nút nhấn): Button là một điều khiển quan trọng trong Windows Forms Nó thường được sử dụng để kích hoạt một hành động cụ thể trong ứng dụng khi người dùng nhấn vào nút Ta có thể tùy chỉnh văn bản hiển thị trên nút và thêm các xử lý sự kiện để xử lý các tương tác từ người dùng
- TextBox (Ô văn bản): TextBox cho phép người dùng nhập liệu từ bàn phím và cung cấp các phương thức để truy cập và sửa đổi văn bản trong ô
tĩnh cho người dùng Nó không cho phép người dùng tương tác trực tiếp với nó, nhưng nó có thể cung cấpcthôngctin hữucích hoặc chỉ dẫn cho người dùng Ta có thể định dạng văn bản, màu sắc và kích thước của Label để phù hợp với thiết kế giao diện của phần mềm
- ListBox (Danh sách): ListBox là một điều khiển cho phép hiển thị một danh sách các mục cho người dùng Người dùng có thể chọn một hoặc nhiều mục trong danh sách ListBox cung cấp các sự kiện để xử lý các thao tác của người dùng như chọn mục, xóa mục và kéo thả
- SerialPort: SerialPort là một thành phần cho phép giao tiếp với các thiết bị ngoại vi thông qua cổng nối tiếp (Serial Port) Sử dụng SerialPort để kết nối và giao tiếp với các
Trang 32- Panel (Bảng điều khiển): Panel là một điều khiển được sử dụng để tạo ra một vùng chứa hoặ cnhóm các điều khiển khác, cung cấp khả năng tạo ra các khu vực hoặc phân đoạn trong giao diện người dùng để sắp xếp và quản lý các điều khiển con
- PictureBox (Khung hình ảnh): PictureBox dùng để hiển thị hình ảnh trong ứng dụng, có thể gán hình ảnhctừ các nguồn như tệp tin, URL hoặc dữ liệu nhị phân Nó cung cấp các thuộc tính để điều chỉnh kích thước, vị trí và cách hiển thị hình ảnh trong PictureBox
- CheckedListBox (Danh sách kiểm tra): CheckedListBox là một điều khiển tương tự ListBox nhưng cho phép người dùng chọn nhiều mục trong danh sách bằng cách sử dụng các hộp kiểm Nó cho phép người dùng chọn hoặc bỏ chọn các mục từ danh sách và cung cấp các sự kiện để xử lý các thay đổi trong danh sách kiểm tra
Cửa sổ nằm ở bên phải là cửa sổ Properties (Thuộc tính), nơi hiển thị danh sách các thuộc tính của các điều khiển hoặc thành phần được chọn trong cửa sổ Design
Hình 2.7 Giao diện cửa sổ Properties
Trang 33Khi người dùng chọn một điều khiển trong cửa sổ Design, các thuộc tính của nó sẽ được hiển thị trong cửa sổ Properties Ta có thể chỉnh sửa các giá trị của các thuộc tính này để tùy chỉnh hành vi và giao diện của điều khiển
Các tính năng chính của cửa sổ Properties:
- Hiển thị các thuộc tính: Cửa sổ Properties liệt kê tất cả các thuộc tính có sẵn của điều khiển được chọn Điều này bao gồm các thuộc tính như kích thước, vị trí, màu sắc, chữ, hình ảnh, dữ liệu liên quan và nhiều hơn nữa
- Chỉnh sửa giá trị: Thay đổi giá trị của các thuộc tính bằng cách nhập trực tiếp vào ô thông tin hoặc sử dụng các điều khiển như danh sách thả xuống, hộp kiểm, nút chọn màu, v.v
- Xem thông tin mô tả: Khi chọn một thuộc tính, cửa sổ Properties hiển thị thông tin mô tả về thuộc tính đó, giúp hiểu rõ hơn về ý nghĩa và cách sử dụng của thuộc tính đó
- Gom nhóm thuộc tính: Các thuộc tính có thể được nhóm lại trong các nhóm để giúp ta tìm kiếm và quản lý thuộc tính dễ dàng hơn
2.2 Giới thiệu về Arduino
2.2.1 Phần mềm Arduino IDE
Arduino có nguồn gốc ở Ý vào thế kỷ thứ 9 và được đặt theo tên của vị vua của đất nước đó, Vua Arduino Arduino được chính thức công bố vào năm 2005 như một công cụ học tập dành cho sinh viên Một trong những nhà phát triển Arduino tại Viện Thiết kế Tương tác Ivrea Arduino là một mã nguồn mở được sử dụng để xây dựng các ứng dụng điện tử tương tác với nhau hoặc với môi trường Nó có thể kết nối với máy tính hoặc tự kết nối với nhau
Arduino là một nền tảng phát triển thiết bị điện tử được thiết kế để dễ dàng sử dụng, giúp cho người dùng có thể tạo ra các thiết bị điện tử và các ứng dụng IoT (Internet of Things) một cách nhanh chóng và dễ dàng Arduino gồm các module phần cứng có thể được lắp ráp với nhau để tạo ra các mạch điện tử đơn giản hoặc phức tạp, và được lập
Trang 34Mỗi board Arduino đều có một bộ vi xử lý, các cổng kết nối Input/Output và các module phần cứng khác như giao tiếp USB, Ethernet, Wifi, Bluetooth, cảm biến, màn hình, đèn LED, motor, và nhiều thứ khác Người dùng có thể lập trình Arduino thông qua các ngôn ngữ lập trình như C/C++ hoặc các ngôn ngữ lập trình khác dựa trên đó Arduino được sử dụng rộng rãi trong các ứng dụng IoT, các dự án điện tử tại nhà hoặc trường học và cả trong các ứng dụng thực tiễn như trong đo lường, kiểm soát, quản lý tài nguyên Arduino là một nền tảng mạnh mẽ và đa dụng, giúp người dùng thực hiện các ứng dụng điện tử của riêng mình
Hình 2.8 Giao diện phần mềm Arduino IDE
2.2.2 Board Arduino Mega
Arduino Mega 2560 là một trong những board phổ biến và mạnh mẽ nhất trong hệ thống Arduino Nó cung cấp nhiều chân kết nối và tài nguyên phong phú, thường được dùng trong các dự án phức tạp và đa dạng
Trang 35Hình 2.9 Board Arduino Mega2560
Dưới đây là một số thông tin cơ bản về board Arduino Mega:
- Vi xử lý: Arduino Mega được trang bị vi xử lý ATmega2560 Đây là một vi xử lý 8-bit với tốc độ 16 MHz, cho phép xử lý nhanh chóng các tác vụ và điều khiển ngoại vi khác
- Chân kết nối: Arduino Mega có tổng cộng 54 chân kết nối digital (đầu vào và đầu ra), trong đó có 15 chân có thể sử dụng làm đầu ra PWM Ngoài ra, nó còn có 16 chân kết nối analog và 4 chân UART (Serial), 1 chân I2C và 1 chân SPI
- Bộ nhớ: Arduino Mega có bộ nhớ Flash 256 KB, trong đó khoảng 8 KB được sử dụng cho việc lưu trữ chương trình Nó cũng có bộ nhớ SRAM 8 KB và EEPROM 4 KB, cho phép lưu trữ và truy cập dữ liệu trong quá trình hoạt động
- Nguồn điện: Board hỗ trợ nguồn điện từ 7 đến 12V thông qua cổng nguồn DC hoặc từ 5V thông qua cổng USB Nguồn điện được cung cấp cho các ngoại vi thông qua các chân kết nối
- Hỗ trợ phần mềm: Arduino Mega được hỗ trợ bởi Arduino IDE, môi trường lập trình dễ sử dụng và phổ biến Người dùng có thể viết mã, tải lên và chạy chương trình trên board Arduino Mega thông qua giao diện đơn giản của IDE
Trang 36Nó được sử dụng rộng rãi trong lĩnh vực điều khiển robot, hệ thống tự động hóa, đèn LED, máy in 3D và nhiều ứng dụng khác
2.3 Cơ sở dữ liệu SQLite
Cơ sở dữ liệu (database) là hệ thống bao gồm rất nhiều thông tin, dữ liệu được xây dựng theo một cấu trúc nhất định nhằm đáp ứng nhu cầu khai thác, sử dụng của nhiều người hay chạy nhiều chương trình cùng một lúc Cơ sở dữ liệu thường có những quy tắc và điều khiện tích hợp để duy trì tính nhất quán của cơ sở dữ liệu
Hình 2.10 Cấu trúc cơ sở dữ liệu
SQLite là một hệ quản trị cơ sở dữ liệu hay còn gọi là hệ thống cơ sở dữ liệu quan hệ nhỏ gọn, khác với các hệ quản trị khác như MySQL, SQL Server, Ocracle, PostgreSQL… SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine truyền thống, không cần mô hình client-server nên rất nhỏ gọn SQLite được sử dụng vào rất nhiều chương trình từ desktop đến mobile hay là website Nó không phải là cấu hình nên không cần cài đặt Với SQLite database được lưu trữ trên một tập tin duy nhất Chính vì lẽ đó, nhóm đã quyết định chọn SQLite làm cơ sở liệu lưu trữ thông tin đăng nhập và tiến độ học tập của sinh viên
Trang 37Hình 2.11 Giao diện tài khoản SQLite 2.4 Giao tiếp UART
UART (Universal Asynchronous Receiver – Transmitter) là một giao diện hoạt động trong việc truyền và nhận dữ liệu trong hệ thống điện tử Nó được sử dụng để giao tiếp giữa các thành phần điện tử, chẳng hạn như vi xử lý, vi điều khiển, cảm biến và thiết bị ngoại vi