Tiểu luận báo cáo bài tập lớn môn đồ án thiết kế hệ thống nhúng

Đồ án nghiên cứu Tiểu luận báo cáo bài tập lớn môn đồ án thiết kế hệ thống nhúng, thiết kế chi tiết, tính toán kỹ thuật theo tiêu chuẩn, đánh giá tính khả thi dự án.

Chuyên ngành

Đồ án Thiết kế Hệ thống Nhúng

Người đăng

Ẩn danh

Thể loại

Báo cáo bài tập lớn

2022

42
17
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn toàn tập báo cáo đồ án thiết kế hệ thống nhúng

Một tiểu luận báo cáo bài tập lớn môn đồ án thiết kế hệ thống nhúng không chỉ là bài kiểm tra cuối kỳ. Nó là bản tổng kết toàn bộ kiến thức và kỹ năng thực hành. Báo cáo phản ánh khả năng từ lên ý tưởng, lựa chọn linh kiện, thiết kế mạch PCB, đến lập trình nhúng và gỡ lỗi. Cấu trúc của một báo cáo cần rõ ràng, mạch lạc, thể hiện tư duy logic. Nó thường bắt đầu bằng việc giới thiệu tổng quan về đề tài, nêu bật tính cấp thiết và mục tiêu nghiên cứu. Phần tiếp theo trình bày cơ sở lý thuyết, phân tích các công nghệ và linh kiện cốt lõi như vi điều khiển (microcontroller), cảm biến (sensor), và các chuẩn giao tiếp. Điểm nhấn của báo cáo là quá trình thiết kế và thi công hệ thống. Phần này mô tả chi tiết từ sơ đồ nguyên lý đến việc triển khai mã nguồn. Một báo cáo xuất sắc phải thể hiện được sự am hiểu sâu sắc về các dòng microcontroller phổ biến như Arduino, STM32, hay ESP32. Hơn nữa, việc giải thích logic trong lập trình C cho nhúng hoặc Python cho hệ thống nhúng là yếu tố then chốt để chứng minh năng lực. Cuối cùng, phần kết quả, đánh giá và định hướng phát triển sẽ kết lại bài báo cáo. Nó không chỉ trình bày sản phẩm hoàn thiện mà còn phân tích các ưu nhược điểm và đề xuất các cải tiến trong tương lai. Đây là cơ hội để thể hiện tầm nhìn và khả năng tư duy phản biện.

1.1. Tầm quan trọng của việc lựa chọn vi điều khiển phù hợp

Lựa chọn vi điều khiển là quyết định nền tảng, ảnh hưởng đến toàn bộ quá trình thực hiện đồ án thiết kế hệ thống nhúng. Mỗi dòng microcontroller có ưu và nhược điểm riêng. Ví dụ, Arduino (cụ thể là Arduino Uno R3 với chip ATmega328) rất phù hợp cho người mới bắt đầu nhờ cộng đồng hỗ trợ lớn và thư viện phong phú. Ngược lại, STM32 cung cấp hiệu năng vượt trội, nhiều ngoại vi phức tạp hơn, phù hợp cho các ứng dụng yêu cầu xử lý tốc độ cao. Các dòng chip như ESP8266ESP32 là lựa chọn hàng đầu cho các dự án Internet of Things (IoT) nhờ tích hợp sẵn kết nối Wi-Fi và Bluetooth. Việc lựa chọn sai có thể dẫn đến hạn chế về tài nguyên (bộ nhớ Flash, SRAM), không đủ chân I/O, hoặc không hỗ trợ các giao thức cần thiết. Do đó, cần phân tích kỹ yêu cầu của đề tài trước khi đưa ra quyết định cuối cùng.

1.2. Cấu trúc chuẩn của một tiểu luận báo cáo chuyên nghiệp

Một bản báo cáo đồ án hệ thống nhúng chuyên nghiệp cần tuân thủ một cấu trúc logic và khoa học. Cấu trúc này thường bao gồm các phần chính: Lời cảm ơn, Mục lục, Tổng quan (Giới thiệu linh kiện), Cơ sở lý thuyết (Phân tích công nghệ), Vận dụng (Thiết kế và Thi công), Kết quả và Nhận xét, và cuối cùng là Tài liệu tham khảo. Trong phần tổng quan, cần liệt kê và mô tả ngắn gọn thông số kỹ thuật của từng linh kiện như trong báo cáo mẫu: Arduino Uno R3, Module L298, Động cơ giảm tốc, LCD1602. Phần cơ sở lý thuyết phải đi sâu vào các chuẩn giao tiếp như UART, SPI, I2C và các công nghệ cốt lõi như hệ điều hành thời gian thực (RTOS). Phần vận dụng là trọng tâm, trình bày chi tiết sơ đồ kết nối, lưu đồ thuật toán và giải thích các đoạn mã nguồn đồ án nhúng quan trọng. Việc trình bày logic, rõ ràng giúp người đọc dễ dàng theo dõi và đánh giá cao chất lượng của đồ án.

II. Top 5 thách thức lớn khi làm đồ án thiết kế hệ thống nhúng

Thực hiện một đồ án thiết kế hệ thống nhúng luôn đi kèm với nhiều thách thức. Thách thức đầu tiên là tích hợp phần cứng. Việc kết nối các module khác nhau, đặc biệt là những module yêu cầu mức điện áp logic khác nhau (ví dụ 3.3V và 5V), thường gây ra lỗi khó phát hiện. Thứ hai, việc thiết kế mạch PCB tối ưu đòi hỏi kiến thức về nhiễu điện từ (EMI) và bố trí linh kiện hợp lý. Một thiết kế PCB kém có thể làm hệ thống hoạt động không ổn định. Thách thức thứ ba nằm ở phần lập trình nhúng. Quản lý tài nguyên hạn chế của vi điều khiển, xử lý ngắt và đảm bảo hệ thống phản hồi kịp thời là những bài toán không hề đơn giản. Đặc biệt, khi ứng dụng một hệ điều hành thời gian thực (RTOS), việc quản lý các tác vụ (task) và tránh các vấn đề như 'deadlock' hay 'race condition' đòi hỏi sự am hiểu sâu sắc. Thách thức thứ tư là gỡ lỗi (debugging). Không giống như phần mềm máy tính, việc debug trên hệ thống nhúng phức tạp hơn do phải tương tác trực tiếp với phần cứng. Các công cụ như mô phỏng Proteus có thể hỗ trợ nhưng không thể thay thế hoàn toàn việc kiểm thử trên mạch thật. Cuối cùng, việc tìm kiếm tài liệu tham khảo hệ thống nhúng chính xác và đáng tin cậy cũng là một khó khăn, đòi hỏi kỹ năng tự học và nghiên cứu.

2.1. Vấn đề tương thích phần cứng và thiết kế mạch PCB

Một trong những trở ngại lớn nhất là đảm bảo sự tương thích giữa các linh kiện. Ví dụ, trong tài liệu gốc, nhóm sinh viên phải sử dụng "Mạch chuyển mức tín hiệu PS2" để giao tiếp tay cầm PS2 (hoạt động ở 3.3V) với Arduino (hoạt động ở 5V). Bỏ qua chi tiết này có thể làm hỏng bộ nhận tín hiệu. Tương tự, khi thiết kế mạch PCB, việc đi dây nguồn và dây tín hiệu cần được tính toán cẩn thận. Dây tín hiệu tốc độ cao cần được giữ càng ngắn càng tốt và tránh đi song song với dây nguồn để giảm nhiễu. Việc không có tụ lọc nhiễu tại các IC hoặc module cũng là một lỗi thiết kế phổ biến, gây ra sự mất ổn định cho toàn bộ hệ thống.

2.2. Khó khăn trong lập trình đa nhiệm và quản lý thời gian

Với các hệ thống phức tạp, việc xử lý nhiều công việc đồng thời là bắt buộc. Ví dụ, hệ thống xe điều khiển trong báo cáo mẫu cần đồng thời: đọc dữ liệu từ tay cầm PS2, nhận lệnh qua Bluetooth, cập nhật thông tin lên màn hình LCD và điều khiển động cơ. Nếu sử dụng cấu trúc vòng lặp đơn (super-loop), một tác vụ bị trễ có thể ảnh hưởng đến toàn bộ hệ thống. Đây là lúc hệ điều hành thời gian thực (real-time operating system - RTOS) phát huy vai trò. Tuy nhiên, việc học và áp dụng một RTOS như FreeRTOS không đơn giản. Lập trình viên phải hiểu rõ các khái niệm như Task, Semaphore, Queue, và cách Scheduler hoạt động để phân chia tài nguyên CPU một cách hiệu quả, đảm bảo các tác vụ quan trọng được ưu tiên thực thi đúng thời hạn.

III. Phương pháp thiết kế phần cứng cho đồ án hệ thống nhúng

Thiết kế phần cứng là xương sống của mọi đồ án thiết kế hệ thống nhúng. Quá trình này bắt đầu bằng việc vẽ sơ đồ nguyên lý (schematic). Sơ đồ nguyên lý là bản thiết kế logic, mô tả cách các linh kiện được kết nối với nhau. Nó phải chi tiết, rõ ràng và tuân thủ các quy ước chuẩn. Sau khi hoàn thiện sơ đồ, bước tiếp theo là thiết kế layout cho mạch in PCB. Giai đoạn này quyết định hiệu suất vật lý của hệ thống. Các yếu tố cần quan tâm bao gồm kích thước đường mạch, khoảng cách giữa các đường, vị trí đặt linh kiện và khả năng tản nhiệt. Việc lựa chọn linh kiện cũng cực kỳ quan trọng. Cần ưu tiên các linh kiện phổ biến, dễ tìm kiếm và có đầy đủ tài liệu kỹ thuật (datasheet). Đối với các module phức tạp, như module cảm biến (sensor) hay cơ cấu chấp hành (actuator), việc kiểm tra kỹ điện áp hoạt động và giao thức giao tiếp là bắt buộc. Ví dụ, báo cáo mẫu đã sử dụng module L298 để điều khiển động cơ, đây là lựa chọn phổ biến vì khả năng điều khiển hai động cơ DC với dòng tải lên đến 2A. Việc sử dụng các công cụ mô phỏng Proteus giúp kiểm tra sơ bộ hoạt động của mạch trước khi tiến hành gia công PCB, giúp tiết kiệm thời gian và chi phí.

3.1. Phân tích các chuẩn giao tiếp UART SPI và I2C phổ biến

Hầu hết các hệ thống nhúng đều sử dụng các chuẩn giao tiếp nối tiếp để kết nối vi điều khiển với các module ngoại vi. UART (Universal Asynchronous Receiver/Transmitter) là chuẩn giao tiếp điểm-điểm đơn giản, thường được dùng để kết nối với module Bluetooth (như HC-06 trong đồ án mẫu) hoặc giao tiếp với máy tính để gỡ lỗi. I2C (Inter-Integrated Circuit) chỉ sử dụng hai dây (SDA và SCL) để kết nối nhiều thiết bị slave với một hoặc nhiều master, rất hiệu quả khi cần giao tiếp với nhiều cảm biến hoặc màn hình LCD (như module chuyển đổi LCD sang I2C). SPI (Serial Peripheral Interface) là chuẩn giao tiếp song công, tốc độ cao, thường được dùng cho các thiết bị yêu cầu băng thông lớn như thẻ nhớ SD hoặc màn hình hiển thị đồ họa. Hiểu rõ ưu nhược điểm của từng chuẩn giúp lựa chọn phương thức kết nối tối ưu cho từng thành phần trong hệ thống.

3.2. Kỹ thuật kết nối cảm biến và cơ cấu chấp hành hiệu quả

Kết nối cảm biến (sensor)cơ cấu chấp hành (actuator) là cốt lõi của việc tương tác với môi trường vật lý. Đối với cảm biến, cần chú ý đến loại tín hiệu đầu ra (analog hay digital), điện áp hoạt động và giao thức truyền dữ liệu. Đối với cơ cấu chấp hành như động cơ, rơ le, cần có mạch đệm công suất (driver). Ví dụ, chân I/O của Arduino chỉ cung cấp dòng điện rất nhỏ, không đủ để chạy động cơ. Do đó, phải sử dụng một mạch driver như L298. Module L298 hoạt động như một cầu H kép, cho phép vi điều khiển điều khiển chiều quay và tốc độ của động cơ một cách dễ dàng thông qua tín hiệu logic và PWM. Việc thiết kế đúng mạch công suất không chỉ đảm bảo thiết bị hoạt động mà còn bảo vệ vi điều khiển khỏi các dòng điện ngược có thể gây hỏng hóc.

IV. Bí quyết lập trình đa nhiệm với hệ điều hành thời gian thực

Trong các đồ án thiết kế hệ thống nhúng hiện đại, việc xử lý đồng thời nhiều tác vụ là yêu cầu gần như bắt buộc. Đây là lúc hệ điều hành thời gian thực (RTOS) trở thành công cụ đắc lực. FreeRTOS là một trong những hệ điều hành nhúng phổ biến nhất, được sử dụng rộng rãi trên các dòng vi điều khiển từ Arduino, ESP32 đến STM32. Thay vì viết tất cả logic vào một vòng lặp vô tận (while(1)), RTOS cho phép chia nhỏ chương trình thành các tác vụ (Task) độc lập. Mỗi Task xử lý một chức năng cụ thể, ví dụ: một Task đọc cảm biến, một Task điều khiển động cơ, một Task giao tiếp mạng. Bộ lập lịch (Scheduler) của RTOS sẽ quản lý việc chuyển đổi CPU giữa các Task này, tạo ra ảo giác rằng chúng đang chạy song song. Điều này giúp mã nguồn trở nên module hóa, dễ quản lý, bảo trì và mở rộng. Hơn nữa, RTOS cung cấp các cơ chế đồng bộ hóa và giao tiếp giữa các Task như Queues, Semaphores, Mutexes, giúp giải quyết các bài toán chia sẻ tài nguyên một cách an toàn. Như trong đồ án mẫu, nhóm sinh viên đã tạo ra hai Task chính: một để xử lý giao tiếp và một để điều khiển xe, cho thấy sự ưu việt của phương pháp này.

4.1. Giới thiệu FreeRTOS Khi nào và tại sao nên sử dụng

Quyết định sử dụng FreeRTOS phụ thuộc vào độ phức tạp của ứng dụng. FreeRTOS là cần thiết khi một dự án có nhiều luồng xử lý độc lập cần chạy đồng thời, ví dụ như vừa thu thập dữ liệu cảm biến, vừa xử lý giao thức IoT, vừa cập nhật giao diện người dùng. Sử dụng RTOS giúp đơn giản hóa thiết kế phần mềm, tăng tính đáp ứng của hệ thống và dễ dàng quản lý các tác vụ có mức độ ưu tiên khác nhau. Tài liệu báo cáo đã chứng minh tính hiệu quả khi áp dụng FreeRTOS để xử lý đồng thời tín hiệu từ tay cầm PS2 và module Bluetooth. Điều này sẽ rất khó thực hiện một cách mượt mà nếu chỉ dùng phương pháp lập trình tuần tự truyền thống.

4.2. Lập trình C cho nhúng Tối ưu mã nguồn đồ án với RTOS

Việc tích hợp FreeRTOS vào dự án đòi hỏi kỹ năng lập trình C cho nhúng vững chắc. Cần hiểu rõ về con trỏ, quản lý bộ nhớ và cấu trúc dữ liệu. Khi tạo một Task bằng hàm xTaskCreate(), lập trình viên phải cấp phát một vùng nhớ (stack size) đủ lớn cho Task đó. Nếu cấp phát quá ít, hệ thống sẽ gặp lỗi tràn stack (stack overflow). Ngược lại, cấp phát quá nhiều sẽ lãng phí bộ nhớ SRAM vốn đã hạn chế của vi điều khiển. Ngoài ra, việc sử dụng các hàm API của FreeRTOS như vTaskDelay() thay vì các hàm delay truyền thống là rất quan trọng. vTaskDelay() sẽ đưa Task vào trạng thái chờ (Blocked), giải phóng CPU cho các Task khác, trong khi hàm delay thông thường sẽ chiếm dụng hoàn toàn CPU, làm tê liệt khả năng đa nhiệm của hệ thống.

V. Phân tích kết quả đồ án Xe điều khiển qua PS2 và IoT

Phần kết quả là minh chứng rõ ràng nhất cho sự thành công của một đồ án thiết kế hệ thống nhúng. Trong báo cáo mẫu, sản phẩm là một chiếc xe robot có khả năng điều khiển kép: qua tay cầm PS2 không dây và qua ứng dụng di động thông qua Bluetooth. Việc hệ thống hoạt động ổn định trên cả hai chế độ cho thấy sự thành công trong việc tích hợp phần cứng và phát triển phần mềm. Màn hình LCD1602 hiển thị trạng thái hoạt động một cách trực quan, giúp người dùng dễ dàng theo dõi. Việc sử dụng FreeRTOS đã giải quyết bài toán xử lý đa luồng, cho phép hệ thống phản hồi mượt mà với các lệnh điều khiển từ cả hai nguồn đầu vào mà không có độ trễ đáng kể. Sản phẩm không chỉ đáp ứng yêu cầu của đề tài mà còn mở ra tiềm năng ứng dụng trong thực tế, chẳng hạn như robot tự hành đơn giản hoặc các nền tảng thử nghiệm cho Internet of Things (IoT). Đây là một ví dụ điển hình về việc áp dụng kiến thức lý thuyết vào xây dựng một sản phẩm cụ thể. Phân tích kết quả cũng cần chỉ ra những hạn chế, ví dụ như phạm vi điều khiển của Bluetooth, thời lượng pin, và đề xuất hướng khắc phục. Đây là một phần quan trọng trong bất kỳ báo cáo thực tập hệ thống nhúng hay đồ án nào.

5.1. Xây dựng sơ đồ nguyên lý và mô hình hoạt động thực tế

Từ sơ đồ nguyên lý lý thuyết đến mô hình vật lý là một quá trình đòi hỏi sự cẩn thận. Báo cáo đã trình bày rõ sơ đồ kết nối giữa Arduino UNO, module L298, bộ nhận tín hiệu PS2, module Bluetooth HC06 và màn hình LCD I2C. Hình ảnh sản phẩm thực tế cho thấy việc đi dây gọn gàng, bố trí linh kiện hợp lý trên khung xe. Sự tương ứng giữa thiết kế và thực thi là một điểm cộng lớn. Mô hình hoạt động ổn định, xe di chuyển chính xác theo các lệnh tiến, lùi, trái, phải từ cả hai giao diện điều khiển, chứng tỏ phần cứng và phần mềm đã được tích hợp thành công.

5.2. Đánh giá hiệu năng hệ thống khi áp dụng FreeRTOS

Việc sử dụng FreeRTOS mang lại hiệu quả rõ rệt. Hệ thống có khả năng chuyển đổi giữa hai chế độ điều khiển một cách linh hoạt. Khi người dùng nhấn nút trên tay cầm PS2, Task xử lý PS2 sẽ được thực thi và gửi lệnh đến động cơ. Đồng thời, Task xử lý Bluetooth vẫn ở trạng thái sẵn sàng nhận lệnh. Độ trễ từ khi nhấn nút đến khi xe phản hồi là rất thấp, đáp ứng yêu cầu của một hệ thống thời gian thực. Điều này cho thấy bộ lập lịch của RTOS đã hoạt động hiệu quả trong việc phân chia thời gian CPU cho các tác vụ, tối ưu hóa hiệu suất của vi điều khiển.

VI. Kết luận và định hướng phát triển cho đồ án hệ thống nhúng

Hoàn thành đồ án thiết kế hệ thống nhúng là một cột mốc quan trọng, đánh dấu sự trưởng thành trong kiến thức và kỹ năng của sinh viên. Báo cáo không chỉ tổng kết những gì đã làm được mà còn là cơ hội để nhìn lại toàn bộ quá trình, rút ra những kinh nghiệm quý báu. Từ việc lựa chọn vi điều khiển, thiết kế phần cứng, đến việc lập trình với ngôn ngữ C/C++ và áp dụng hệ điều hành thời gian thực, mỗi giai đoạn đều mang lại những bài học riêng. Đồ án xe điều khiển từ xa là một nền tảng vững chắc. Từ đây, có thể phát triển nhiều hướng đi mới. Ví dụ, tích hợp thêm các loại cảm biến (sensor) như cảm biến siêu âm để tránh vật cản, hoặc cảm biến dò line để xe di chuyển tự động theo vạch kẻ. Một hướng đi cao cấp hơn là nâng cấp microcontroller lên Raspberry Pi, kết hợp camera và các thuật toán xử lý ảnh, trí tuệ nhân tạo (AI) để tạo ra một robot tự hành thông minh. Việc kết nối hệ thống với một nền tảng đám mây để thu thập dữ liệu và điều khiển từ xa qua internet là một ứng dụng thực tiễn của Internet of Things (IoT). Việc tìm kiếm thêm các tài liệu tham khảo hệ thống nhúng và cập nhật công nghệ mới sẽ là chìa khóa để tiếp tục phát triển các dự án trong tương lai.

6.1. Tổng kết kinh nghiệm từ báo cáo thực tập hệ thống nhúng

Kinh nghiệm rút ra từ đồ án này tương tự như một kỳ báo cáo thực tập hệ thống nhúng thu nhỏ. Sinh viên học được cách làm việc nhóm, phân chia công việc, và quản lý tiến độ dự án. Kỹ năng quan trọng nhất là khả năng gỡ lỗi một cách có hệ thống: cô lập vấn đề, kiểm tra từng phần (phần cứng, phần mềm), và sử dụng các công cụ hỗ trợ. Việc đọc và hiểu datasheet của linh kiện là một kỹ năng không thể thiếu. Cuối cùng, khả năng trình bày và viết báo cáo một cách rõ ràng, chuyên nghiệp cũng là một bài học quan trọng, giúp truyền đạt ý tưởng và kết quả nghiên cứu một cách hiệu quả.

6.2. Hướng phát triển Tích hợp AI và kết nối vạn vật IoT

Tương lai của hệ thống nhúng gắn liền với AI và Internet of Things (IoT). Mô hình xe hiện tại có thể được nâng cấp bằng cách thay thế Arduino bằng một board mạch mạnh hơn như Raspberry Pi hoặc Jetson Nano. Với camera, hệ thống có thể sử dụng các thư viện như OpenCV để nhận diện đối tượng, biển báo giao thông. Module ESP32 có thể được thêm vào để kết nối xe với mạng Wi-Fi, gửi dữ liệu từ các cảm biến lên một server cloud và nhận lệnh điều khiển từ bất kỳ đâu trên thế giới. Đây là những hướng phát triển không chỉ nâng cao tính năng của sản phẩm mà còn giúp sinh viên tiếp cận với những công nghệ tiên tiến nhất trong ngành.

16/09/2025

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

BỘ THÔNG TIN VÀ TRUYỀN THÔNG `` HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIẾN THÔNG ----- ----- BÁO CÁO BÀI TẬP LỚN MÔN: ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Giảng viên: Nguyễn Ngọc Minh Nhóm: 08 Thành viên nhóm: Nguyễn Mạnh Hùng – B18DCDT093 Nguyễn Văn Khởi – B18DCDT117 Phạm Minh Hạnh – B18DCDT065 Nguyễn Đức Anh - B18DCDT005 Hà Nội, tháng 5 năm 2022 Báo cáo đồ án hệ thống nhúng Nhóm 8 Lời cảm ơn Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép chúng em xin gửi lòng biết ơn đến quý thầy cô tại Học viện Công nghệ Bưu chính Viễn thông đã tạo điều kiện hỗ trợ, giúp đỡ chúng em suốt quá trình học tập và nghiên cứu vừa qua. Đặc biệt, trong học kỳ này, học viện đã tổ chức cho chúng em được tiếp cận với các môn học rất hữu ích đối với sinh viên. Chúng em xin chân thành cảm ơn thầy Nguyễn Ngọc Minh đã tận tâm hướng dẫn chúng em trong môn học đồ án thiết kế hệ thống nhúng. Thầy đã luôn bên cạnh, tạo điều kiện trong suốt quá trình nghiên cứu, động viên và giúp đỡ để chúng em hoàn thành tốt báo cáo này.

Do kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ chưa hoàn hảo nên bài báo cáo sẽ còn nhiều thiếu sót, kính mong sự góp ý và giúp đỡ từ thầy. Cuối cùng chúng em xin kính chúc quý thầy cô dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau. Chúng em xin chân thành cảm ơn. Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 MỤC LỤC 1, Tổng quan 4 1.3 Động cơ giảm tốc 6 1.5 Mạch chuyển đổi giao tiếp LCD 8 1.6 Tay Điều Khiển PS2 Wireless Controller 8 1.7 Mạch chuyển mức tín hiệu PS2 9 2, Cơ sở lý thuyết 10 2.1 Chuẩn giao tiếp I2C 10 2.2 Giao thức truyền dữ liệu 10 2.2 Chuẩn giao tiếp UART 13 2.2 Giao thức truyên dữ liệu 14 2.3 Hệ điều hành thời gian thực FreeRTOS 15 2.2 Khi nào cần sử dụng RTOS ? 15 2.3 Tại sao lại phải dụng RTOS ? 16 2.4 Cách hoạt động của RTOS 16 2.5 Các khái niệm trong hệ điều hành thời gian thực RTOS 17 3 Vận dụng 19 3.1 Hình thành hệ thống 19 3.2 Giao tiếp HC06 với arudino 19 3.3 Giao tiếp tay cầm PS2 với arudino 21 3.4 Giao tiếp LCD1602 I2C 28 3.5 Sử dụng FreeRTOS trong hệ thống 29 4, Kết quả, nhận xét 36 5, Tài liệu tham khảo 37 Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 1, Tổng quan 1.1 Arduino ⮚ Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên nước Ý thiết kế và đưa ra đầu tiên vào năm 2005.

Mạch Arduino được sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau. Nó có thể thực hiện nhiều nhiệm vụ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác. Ngoài ra mạch còn có khả năng liên kết với nhiều module khác nhau như module đọc thẻ từ, ethernet shield, sim900A, ….để tăng khả ứng dụng của mạch. ⮚ Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit,….

Hiện phần cứng của Arduino có tất cả 6 phiên bản, Tuy nhiên phiên bản thường được sử dụng nhiều nhất là Arduino Uno và Arduino Mega.1 Cấu tạo của arduino Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 ⮚ Thông số cơ bản của Arduino Uno R3 ● Vi điều khiển Atmega 328 (họ 8 bit) ● Điện áp hoạt động 5V – DC (cấp qua cổng USB) ● Tần số hoạt động16 MHz ● Dòng tiêu thụ 30mA ● Điện áp vào khuyên dùng 7 – 12V – DC ● Điện áp vào giới hạn 6 – 20V – DC ● Số chân Digital I/O 14 (6 chân PWM) ● Số chân Analog 6 (độ phân giải 10 bit) ● Dòng tối đa trên mỗi chân I/O 30 mA ● Dòng ra tối đa (5V) 500 mA ● Dòng ra tối đa (3.3V) 50 mA ● Bộ nhớ flash 32 KB (Atmega328) với 0.5KB dùng bởi bootloader ● SRAM 2KB (Atmega328) ● EEPROM 1KB (Atmega328) 1.2 Module L298 ⮚ Mạch điều khiển động cơ DC L298 có khả năng điều khiển 2 động cơ DC, dòng tối đa 2A mỗi động cơ, mạch tích hợp diod bảo vệ và IC nguồn 7805 giúp cấp Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 nguồn 5VDC cho các module khác (chỉ sử dụng 5V này nếu nguồn cấp <12VDC).2 Module L298 ⮚ Thông số kỹ thuật: ● IC chính: L298 - Dual Full Bridge Driver ● Điện áp đầu vào: 5~30VDC ● Công suất tối đa: 25W 1 cầu (lưu ý công suất = dòng điện x điện áp nên áp cấp vào càng cao, dòng càng nhỏ, công suất có định 25W). ● Dòng tối đa cho mỗi cầu H là: 2A ● Mức điện áp logic: Low -0.3V~Vss ● Kích thước: 43x43x27mm 1.3 Động cơ giảm tốc ⮚ Cặp Động cơ DC giảm tốc V1 Dual Shaft Plastic Geared TT Motor + bánh xe là loại được lựa chọn và sử dụng nhiều nhất hiện nay cho các thiết kế khung Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 Robot, xe, thuyền,. , động cơ có chất lượng và giá thành vừa phải cùng với khả năng dễ lắp ráp đem đến chi phí tiết kiệm và sự tiện dụng cho người sử dụng.3 Động cơ giảm tốc màu vàng ⮚ Thông số kỹ thuật: ● Điện áp hoạt động : 3~9VDC ● Dòng điện tiêu thụ: 110~140mA ● Tỉ số truyền 1:48 ● 125 vòng/ 1 phút tại 3VDC. ● 208 vòng/ 1 phút tại 5VDC.4 Module LCD16x02 ⮚ Màn hình text LCD1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ sử dụng thích hợp cho những người mới học và làm dự án.

Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 Hình 1.4 Các chân pin LCD16x02 ⮚ Thông số kỹ thuật: ● Điện áp hoạt động là 5 V. ● Kích thước: 80 x 36 x 12.5 mm ● Chữ đen, nền xanh lá ● Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard. ● Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện. ● Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.

● Có thể được điều khiển với 6 dây tín hiệu ● Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật, xem thêm HD44780 datasheet để biết thêm chi tiết Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 1.5 Mạch chuyển đổi giao tiếp LCD ⮚ Để sử dụng các loại LCD có driver là HD44780(LCD 1602, LCD 2004,. ), cần có ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 để có thể giao tiếp với LCD. ⮚ Với module chuyển giao tiếp LCD sang I2C, các bạn chỉ cần 2 chân (SDA và SCL) của MCU kết nối với 2 chân (SDA và SCL) của module là đã có thể hiển thị thông tin lên LCD. Ngoài ra có thể điều chỉnh được độ tương phản bởi biến trở gắn trên module.6 Tay Điều Khiển PS2 Wireless Controller Hình 1.6 Tay cầm PS2 ⮚ Tay điều khiển PS2 Wireless Controller có chất lượng tốt, độ bền cao, khả năng bắt sóng lên đến 10m, xin lưu ý bộ nhận tín hiệu của Tay điều khiển PS2 Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 Wireless Controller sử dụng điện áp 3.3VDC cho cấp nguồn và giao tiếp, nếu các bạn giao tiếp với các vi điều khiển 5VDC thì cần thêm 1 đế chuyển mức điện áp giao tiếp từ 5VDC sang 3.3VDC để tránh trường hợp bộ nhận tín hiệu của tay bị cháy.

⮚ Thông số kỹ thuật: ● Tay điều khiển PS2 Wireless Controller ● Điện áp nguồn: 3.3VDC ● Điện áp giao tiếp: 3.3VDC ● Pin: 2xAAA ● Khoảng cách tối đa: 10m.7 Mạch chuyển mức tín hiệu PS2 Hình 1.7 Mạch chuyển tín hiệu tay cầm PS2 ⮚ Đế chuyển mức điện áp giao tiếp 3.3-5VDC PS2 PS3 Controller Adapter được sử dụng với các loại tay cầm điều khiển PS2, PS3 để chuyển mức điện áp giao tiếp tín hiệu của tay điều khiển từ 3.3VDC thành 5VDC và ngược lại để giao tiếp với các loại Vi Điều Khiển sử dụng 5VDC, tránh làm cháy tay điều khiển. Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 ⮚ Thông số kỹ thuật: ● Kết nối được với tay cầm PS2, PS3. ● Chuyển mức tín hiệu thành 3.3VDC và cấp nguồn cho tay cầm.2, Cơ sở lý thuyết 2, Cơ sở lý thuyết 2.1 Chuẩn giao tiếp I2C 2.1 Giới thiệu ⮚ I2C là tên viết tắt của cụm từ tiếng anh “Inter-Integrated Circuit”. Nó là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền tín hiệu.

⮚ Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC nào trên mạng I2C ⮚ Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART. Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết ⮚ Cơ chế đơn giản để xác thực dữ liệu được truyền ⮚ Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên bus I2C ⮚ Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối đơn giản với hai đường bus chung I2C Trang | Báo cáo đồ án hệ thống nhúng Nhóm 8 Hình 2.2 Giao thức truyền dữ liệu Giao thức sau đây (tập hợp các quy tắc) được theo sau bởi thiết bị Master và các thiết bị Slave để truyền dữ liệu giữa chúng. Dữ liệu được truyền giữa thiết bị Master và các thiết bị Slave thông qua một đường dữ liệu SDA duy nhất, thông qua các chuỗi có cấu trúc gồm các số 0 và 1 (bit).

Mỗi chuỗi số 0 và 1 được gọi là giao dịch (transaction) và dữ liệu trong mỗi giao dịch có cấu trúc như sau: Hình 2.2 Khung truyền I2C ⮚ Điều kiện bắt đầu (Start Condition) ● Bất cứ khi nào một thiết bị chủ / IC quyết định bắt đầu một giao dịch, nó sẽ chuyển mạch SDA từ mức điện áp cao xuống mức điện áp thấp trước khi đường SCL chuyển từ cao xuống thấp.

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