1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ kỹ thuật điện tử, viễn thông: Thiết kế và thi công hệ thống quang báo sử dụng led dây

105 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Và Thi Công Hệ Thống Quang Báo Sử Dụng Led Dây
Tác giả Nguyễn Hữu Tâm, Nguyễn Thế Trường
Người hướng dẫn ThS. Phan Vân Hoàn
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử, Viễn Thông
Thể loại đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 105
Dung lượng 7,91 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (19)
    • 1.1 ĐẶT VẤN ĐỀ (19)
    • 1.2 MỤC TIÊU (19)
    • 1.3 NỘI DUNG NGHIÊN CỨU (20)
    • 1.4 GIỚI HẠN (20)
    • 1.5 BỐ CỤC CỦA ĐỒ ÁN (20)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (21)
    • 2.1 KỸ THUẬT ĐIỀU CHẾ PWM (23)
    • 2.2 PHƯƠNG PHÁP TRUYỀN DỮ LIỆU DMA (25)
    • 2.3 CHUẨN GIAO TIẾP SDIO (27)
    • 2.4 NGẮT TRONG VI ĐIỀU KHIỂN (29)
    • 2.5 CHUẨN TRUYỀN DỮ LIỆU UART (31)
    • 2.6 CHUẨN GIAO TIẾP I2C (Master - Slave) (34)
    • 2.7 PHƯƠNG PHÁP ĐIỀU KHIỂN LED ............ Error! Bookmark not defined. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ (0)
    • 3.1 SƠ ĐỒ KHỐI (37)
    • 3.2 TÍNH TOÁN VÀ THIẾT KẾ (38)
      • 3.2.1 Khối xử lý trung tâm (38)
      • 3.2.2 Khối thu thập, xử lý dữ liệu (0)
      • 3.2.3 Khối mở rộng I/O (45)
      • 3.2.4 Khối thời gian thực (56)
      • 3.2.5 Khối nguồn (59)
    • 3.3 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH (60)
  • CHƯƠNG 4: THI CÔNG HỆ THỐNG (21)
    • 4.1 GIỚI THIỆU (61)
    • 4.2 THI CÔNG HỆ THỐNG (61)
      • 4.2.1 Thi công bo mạch (0)
      • 4.2.2 Lắp ráp và kiểm tra (63)
    • 4.3 THI CÔNG MÔ HÌNH (63)
    • 4.4 LẬP TRÌNH HỆ THỐNG (65)
      • 4.4.1 Lưu đồ giải thuật (65)
      • 4.4.2 Phần mềm lập trình cho vi điều khiển (0)
      • 4.4.3 Phần mềm lập trình ứng dụng cho điện thoại (0)
      • 4.4.4 Phần mềm lập trình cho ESP32 (0)
    • 4.5 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC (85)
      • 4.5.1 Hướng dẫn sử dụng phần cứng (85)
      • 4.5.2 Hướng dẫn sử dụng phần mềm (85)
  • CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ (21)
    • 5.1 KẾT QUẢ (90)
      • 5.1.1 Tương tác giữa phầm mềm điều khiển với hệ thống LED (90)
      • 5.1.2 Mạch chạy thực tế (94)
    • 5.2 NHẬN XÉT (96)
    • 5.3 ĐÁNH GIÁ (96)
  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỀN ĐỀ TÀI (21)
    • 6.1 KẾT LUẬN (97)
    • 6.2 HƯỚNG PHÁT TRIỂN (97)
  • TÀI LIỆU THAM KHẢO (99)
  • PHỤ LỤC (100)

Nội dung

Nhằm mục đích giới thiệu và thúc đẩy sự áp dụng của các công nghệ mới trong đời sống hàng ngày, cũng như tạo ra sự nhận biết về tầm quan trọng của các hệ thống đèn quảng cáo, một nhóm n

TỔNG QUAN

ĐẶT VẤN ĐỀ

Trong bối cảnh xã hội và công nghệ phát triển nhanh chóng, việc truyền đạt thông tin trở thành yếu tố quan trọng đối với cá nhân và doanh nghiệp Đặc biệt trong kinh doanh, việc quảng cáo và truyền tải thông điệp đến người tiêu dùng là thiết yếu Ngành công nghiệp quảng cáo đã ra đời và không ngừng phát triển, luôn thích ứng với công nghệ mới Do đó, việc quảng cáo không chỉ cần sự sáng tạo mà còn yêu cầu đổi mới liên tục với các phương pháp và công nghệ tiên tiến.

Biển quảng cáo vẫn là một hình thức quảng cáo phổ biến tại Việt Nam, bao gồm nhiều loại như poster, áp phích và màn hình điện tử lớn Bảng thông tin điện tử đã trở thành một phương pháp hiệu quả, xuất hiện ở nhiều địa điểm như cửa hàng, trung tâm thương mại và sân bay Nhờ tính linh hoạt và khả năng thu hút sự chú ý, các bảng thông tin điện tử là công cụ quan trọng trong chiến lược quảng cáo của doanh nghiệp Để nâng cao nhận thức về hệ thống LED quang báo, nhóm đã nghiên cứu và giới thiệu hệ thống "Thiết kế và thi công hệ thống quang báo sử dụng LED dây".

MỤC TIÊU

Nhóm phát triển hệ thống quang báo sử dụng LED hạt gạo với độ phân giải 128x64 pixel, cho phép hiển thị hình ảnh, hiệu ứng chữ có dấu và đồng hồ thời gian Hệ thống được điều khiển thông qua ứng dụng trên điện thoại qua kết nối Bluetooth.

NỘI DUNG NGHIÊN CỨU

Trong quá trình thực hiện đồ án, nhóm đã giải quyết và hoàn chỉnh các nội dung như sau:

- Nội dung 1: Nghiên cứu nhiều loại dây LED hiển thị được ba màu RGB trên thị trường

- Nội dung 2: Nghiên cứu cách thức giao tiếp, điều khiển các dây LED

- Nội dung 3: Nghiên cứu xây dựng cách thức chuyển đổi hình ảnh bất kì ra ảnh bitmap để hiển thị trên dây LED theo mong muốn

- Nội dung 4: Lập trình điều khiển hiển thị ma trận LED

- Nội dung 5: Thiết kế và tính toán các linh kiện phần cứng cho sản phẩm

- Nội dung 6: Thi công phần cứng, thử nghiệm và hiệu chỉnh sản phẩm

- Nội dung 7: Tiến hành viết báo cáo thực hiện

- Nội dung 8: Bảo vệ đồ án.

GIỚI HẠN

- Đề tài sử dụng vi điều khiển làm khối điều khiển trung tâm của hệ thống

- Kích thước LED hiển thị: 64x128

- Nguồn cung cấp cho hệ thống là bộ nguồn tổ ong 5V – 70A

- Đề tài thiết kế mạch in PCB, rửa mạch PCB 1 lớp và thi công hàn linh kiện lên board

- Hệ thống có thiết kế vỏ hộp bảo vệ với cách kết nối sử dụng các jack đực cái giúp người dùng dễ dàng kết nối.

BỐ CỤC CỦA ĐỒ ÁN

Bố cục của đề tài “Thiết kế và thi công hệ thống quang báo sử dụng LED dây” được trình bày như sau:

Trong chương này, nhóm nghiên cứu sẽ nêu rõ lý do chọn đề tài, mục tiêu nghiên cứu, nội dung nghiên cứu, phạm vi giới hạn của đề tài và cấu trúc của đồ án.

CƠ SỞ LÝ THUYẾT

KỸ THUẬT ĐIỀU CHẾ PWM

PWM (Điều chế độ rộng xung) là một kỹ thuật điều khiển phổ biến trong điện tử và tự động hóa Phương pháp này cho phép điều chỉnh điện áp ra tải thông qua việc thay đổi độ rộng của chuỗi xung vuông, từ đó làm thay đổi điện áp đầu ra.

Trong nguyên lý điều chế độ rộng xung, xung vuông có chu kỳ hằng số nhưng độ rộng xung thay đổi, dẫn đến sự biến đổi của hệ số công tác (hay còn gọi là hệ số chu kỳ) Hệ số công tác được định nghĩa là tỷ lệ giữa thời gian tín hiệu xung ở mức cao và tổng thời gian một chu kỳ, thường được biểu diễn dưới dạng phần trăm.

Công thức tính hệ số chu kỳ: Duty Cycle = Độ rộng xung(t)

Hình 2.1: Các ví dụ về xung PWM với các mức duty cycle khác nhau

Điện áp trung bình có thể được tính toán với các hệ số chu kỳ khác nhau Cụ thể, ở cấp độ 25%, điện áp trung bình của 5V là 1.25V (5 x 25%) Ở cấp độ 50%, điện áp trung bình đạt 2.5V (5 x 50%) Cuối cùng, ở cấp độ 75%, điện áp trung bình là 3.75V (5 x 75%).

Phương pháp điều chế xung PWM được ứng dụng rộng rãi trong các mô hình điều khiển, đặc biệt là trong bộ động cơ, xung áp, điều áp và đèn LED Công nghệ PWM không chỉ giúp tăng hiệu suất làm việc của thiết bị mà còn ổn định dòng điện tải ra, từ đó nâng cao độ ổn định của hệ thống và giảm thiểu nguy cơ quá dòng.

Trong điều khiển động cơ, tín hiệu PWM (Pulse Width Modulation) được áp dụng để điều chỉnh tốc độ quay của động cơ bằng cách thay đổi điện áp trung bình cung cấp cho nó Việc này cho phép người sử dụng kiểm soát hoàn toàn tốc độ và độ ổn định của động cơ, mang lại hiệu suất hoạt động tối ưu.

Trong điều khiển đèn LED, PWM được sử dụng để điều chỉnh độ sáng bằng cách thay đổi thời gian mà LED được bật trong mỗi chu kỳ

Trong lĩnh vực viễn thông, PWM (Pulse Width Modulation) là một phương pháp điều chế tín hiệu hiệu quả, trong đó các giá trị dữ liệu được mã hóa tại đầu gửi và đầu nhận thông qua độ rộng xung tương ứng.

Hình 2.2: Mã hoá dữ liệu dùng phương pháp PWM

PHƯƠNG PHÁP TRUYỀN DỮ LIỆU DMA

Trước khi đi sâu vào cơ chế DMA, nhóm nghiên cứu sẽ giới thiệu về cơ chế hoạt động cơ bản của hệ thống, cụ thể là cơ chế Master – Slave.

Hình 2.3 minh họa các thành phần trong vi xử lý ARM, trong đó CPU điều khiển giao tiếp dữ liệu với bộ nhớ RAM và các thiết bị ngoại vi qua các đường bus Các thiết bị ngoại vi, hay còn gọi là Peripherals, có thể được CPU giao tiếp thông qua nhiều giao thức truyền thông khác nhau như UART, I2C, SPI, USB, với cơ chế Master-Slave Trong cơ chế này, CPU đóng vai trò là Master, trong khi các thiết bị ngoại vi và bộ nhớ hoạt động như Slave, và quá trình giao tiếp giữa các thiết bị Slave được điều khiển bởi CPU (Master).

CPU không chỉ thực hiện các lệnh mà còn cần giao tiếp với bộ nhớ RAM để đọc và thực hiện chương trình Việc truyền dữ liệu liên tục giữa RAM và các thiết bị ngoại vi có thể làm chậm hệ thống và gây thất thoát dữ liệu Để giảm tải cho CPU và nâng cao hiệu suất hệ thống, một Master khác, gọi là DMA, sẽ đảm nhận công việc truyền dữ liệu này.

DMA (Direct Memory Access) là cơ chế cho phép các thiết bị ngoại vi truy cập trực tiếp vào bộ nhớ chính mà không cần CPU can thiệp, giúp giảm tải công việc cho CPU.

Bộ điều khiển DMA trong STM32F407VET6 bao gồm hai bộ điều khiển DMA chung (DMA1 và DMA2), mỗi bộ có 8 luồng và mỗi luồng có 8 kênh Chúng hỗ trợ các giao dịch từ bộ nhớ sang bộ nhớ, từ thiết bị ngoại vi sang bộ nhớ và ngược lại Mỗi luồng được trang bị một bộ đệm FIFO nhằm tối ưu băng thông hệ thống DMA hoạt động với hai chế độ là FIFO và Trực tiếp, đồng thời các kênh có thể được lập trình với 4 mức ưu tiên khác nhau: Cao nhất, cao, vừa và thấp.

DMA có khả năng tương tác với các thiết bị ngoại vi thông qua nhiều giao thức truyền thông khác nhau, bao gồm SPI, I2S, I2C, USART, DAC, SDIO, ADC và các bộ đếm thời gian của vi điều khiển.

DMA là một tính năng quan trọng trong vi điều khiển STM32 của STMicroelectronics, cho phép thực hiện các tác vụ truyền dữ liệu nhanh chóng mà không cần sự can thiệp của CPU Nhờ đó, hiệu suất hệ thống được tối ưu hóa và thời gian xử lý của CPU được giảm thiểu.

CHUẨN GIAO TIẾP SDIO

SDIO (Secure Digital Input/Output) là một giao diện tiêu chuẩn cho phép kết nối các thiết bị lưu trữ như thẻ nhớ SD và microSD với các thiết bị điện tử như máy tính, điện thoại và vi điều khiển.

Giao diện SDIO kết hợp tín hiệu I/O với giao thức truyền dữ liệu của thẻ SD, cho phép truyền dữ liệu nhanh chóng và hiệu quả giữa thiết bị chủ như vi điều khiển và các thiết bị lưu trữ SD SDIO thường được ứng dụng trong các hệ thống nhúng, điện thoại di động, máy ảnh số và máy nghe nhạc, đáp ứng nhu cầu lưu trữ dữ liệu của người dùng.

Hình 2.4: Sơ đồ khối SDIO

- Khối chuyển đổi SDIO cung cấp tất cả các chức năng đặc trưng cho thẻ như xung clock, lệnh truyền, dữ liệu

- Giao tiếp APB2 truy cập các thanh ghi của bộ chuyển đổi SDIO, và tạo ra tín hiệu ngắt và yêu cầu DMA

❖ SDIO sử dụng 2 tín hiệu xung clock:

- Xung clock cho bộ chuyển đổi SDIOCLK lên tới 50MHz (48Mhz khi được sử dụng cùng với USB)

- Xung clock của khối APB2 (PCLK2)

Tần số của PCLK2 và SDIO_CK phải tuân thủ theo công thức sau

❖ Mô hình kết nối trong STM32F407VET6:

Hình 2.5: Sơ đồ kết nối đầu đọc SD Card với STM32F407VET6

SDIO trên STM32F407VET6 hỗ trợ các chế độ truyền dữ liệu phổ biến như:

- Chế độ 1-bit: Sử dụng chân D0 (DAT0) làm đường truyền dữ liệu duy nhất

- Chế độ 4-bit: Sử dụng chân D0, D1, D2, D3 làm 4 đường dữ liệu để truyền dữ liệu Đây là chế độ có thể tận dụng được tối đa băng thông của SDIO

SDIO không chỉ hoạt động ở chế độ 1-bit và 4-bit mà còn hỗ trợ chế độ SPI, tuy nhiên, chế độ SPI ít được ưa chuộng trong các ứng dụng yêu cầu hiệu suất cao do không khai thác hết băng thông của SDIO SDIO mang lại lợi ích truyền dữ liệu tốc độ cao, nâng cao hiệu suất giữa thiết bị chủ và thiết bị lưu trữ Nó hỗ trợ nhiều chế độ truyền dữ liệu như đọc, ghi và xóa, cho phép quản lý dữ liệu trên thiết bị lưu trữ SD Về bảo mật, một số phiên bản SDIO tích hợp các tính năng như mã hóa và kiểm soát truy cập, bảo vệ dữ liệu khỏi truy cập trái phép Vi điều khiển STM32 của STMicroelectronics, chẳng hạn như STMF407VET6, thường tích hợp giao diện SDIO, tạo điều kiện thuận lợi cho việc kết nối và phát triển ứng dụng lưu trữ dữ liệu một cách linh hoạt.

NGẮT TRONG VI ĐIỀU KHIỂN

Ngắt là một tính năng thiết yếu trong hầu hết các vi điều khiển tích hợp hiện nay, đóng vai trò quan trọng trong việc quản lý và xử lý các sự kiện Để hiểu rõ hơn về ngắt, chúng ta sẽ xem xét một ví dụ cụ thể.

Trong một hệ thống, vi điều khiển đóng vai trò như một bác sĩ, phục vụ các thiết bị được điều khiển Những thiết bị này là những "bệnh nhân" cần sự chăm sóc và điều chỉnh từ vi điều khiển để hoạt động hiệu quả.

Bác sĩ thăm khám từng bệnh nhân theo thứ tự, nhưng phương pháp này có thể dẫn đến tình huống khẩn cấp không được xử lý kịp thời Nếu một bệnh nhân trong tình trạng cấp cứu chưa tới lượt được hỏi thăm, họ có thể không nhận được sự chăm sóc cần thiết Để cải thiện tình hình này, phương pháp “ngắt” nên được áp dụng, giúp bác sĩ nhanh chóng can thiệp vào các trường hợp khẩn cấp, đảm bảo mọi bệnh nhân đều được chăm sóc đúng lúc.

Khi bệnh nhân gặp trường hợp khẩn cấp, họ cần thông báo ngay cho bác sĩ để dừng các công việc hiện tại và tiến hành chăm sóc Sau khi xử lý tình huống khẩn cấp, bác sĩ sẽ quay lại tiếp tục công việc đang dở Đây là một ví dụ điển hình về phương pháp ngắt (Interrupts) trong vi điều khiển.

Trong phương pháp sử dụng ngắt:

Khi vi điều khiển hoặc vi xử lý đang chạy chương trình chính, bất kỳ can thiệp nào từ bên ngoài hoặc bên trong sẽ khiến vi điều khiển tạm dừng chương trình đó để thực hiện một chương trình khác, được gọi là chương trình phục vụ ngắt (ISR) Chương trình ISR sẽ được thực hiện cho đến khi hoàn thành, sau đó vi điều khiển sẽ tiếp tục chương trình chính.

Vi điều khiển liên tục kiểm tra tình trạng các thiết bị và tạm dừng chương trình chính để phục vụ thiết bị có yêu cầu Tuy nhiên, phương pháp này tốn nhiều thời gian vì không phải thiết bị nào cũng cần phục vụ ngay, dẫn đến lãng phí tài nguyên hệ thống Khi có nhiều thiết bị, phương án này trở nên kém hiệu quả và gây chậm trễ cho các thiết bị cần được phục vụ.

Phương pháp sử dụng ngắt mang lại nhiều lợi ích hơn so với phương pháp thăm dò, đặc biệt là trong việc tiết kiệm tài nguyên và thời gian cho vi điều khiển Để hiểu rõ hơn về quá trình ngắt, hãy tham khảo sơ đồ hình 2.4.

Hình 2.6: Quá trình thực hiện ngắt trong vi điều khiển Trong quá trình thực hiện ngắt, vi điều khiển sẽ thực hiện qua năm bước sau:

Vi điều khiển thực hiện chương trình chính và khi xảy ra ngắt, nó sẽ hoàn thành lệnh hiện tại Sau đó, địa chỉ lệnh tiếp theo trong thanh ghi Program Counter (PC) sẽ được lưu vào ngăn xếp (Stack).

- Lưu trạng thái hiện tại của chương trình

Xóa bit trong thanh ghi Status cho phép vi điều khiển chuyển từ chế độ tiết kiệm năng lượng về chế độ hoạt động bình thường Bit này cũng có thể được kích hoạt để hỗ trợ xử lý các ngắt chồng chéo.

- Thực hiện chương trình phục vụ ngắt (ISR) bằng cách nạp địa chỉ của lệnh đầu

Sau khi hoàn thành chương trình phục vụ ngắt, vi điều khiển sẽ khôi phục các thông tin được lưu trong ngăn xếp Điều này bao gồm địa chỉ của câu lệnh tiếp theo, các trạng thái của chương trình chính, và bật lại bit cho phép ngắt toàn cục.

Hình 2.7: Thực hiện chương trình chính, bị ngắt và kết thúc ngắt Điểm mạnh của phương pháp ngắt so với Polling:

Vi điều khiển có khả năng phục vụ nhiều thiết bị khác nhau, mỗi thiết bị nhận được sự chú ý dựa trên mức ưu tiên được gán Tuy nhiên, trong phương pháp thăm dò, không thể gán mức ưu tiên cho các thiết bị, vì vi điều khiển phải kiểm tra từng thiết bị theo thứ tự.

- Tiết kiệm tài nguyên và thời gian cho vi điều khiển khi không cần phải liên tục thăm dò các thiết bị không cần phục vụ

CHUẨN TRUYỀN DỮ LIỆU UART

UART (Universal Asynchronous Receiver/Transmitter) là một trong những giao thức truyền thông nối tiếp phổ biến nhất cho hệ thống nhúng, cho phép truyền dữ liệu từng byte một trong chế độ không đồng bộ mà không cần tín hiệu đồng bộ giữa thiết bị gửi và nhận Giao thức này thường được sử dụng để thiết lập truyền thông song công giữa các thiết bị như vi điều khiển và máy tính, giữa các vi điều khiển, cũng như kết nối với các module ngoại vi như RFID, Wi-Fi, và Bluetooth UART là chuẩn giao tiếp quan trọng trong ngành công nghiệp.

Giao tiếp UART sử dụng hai đường truyền để trao đổi dữ liệu giữa các thiết bị: ˍ TX (Transmiter) – Đường truyền dữ liệu ˍ RX (Receiver) – Đường nhận dữ liệu

Để kết nối hai thiết bị theo chuẩn UART, chân Tx của thiết bị này được nối với chân Rx của thiết bị kia, và ngược lại, đồng thời hai thiết bị cần có chân nối đất GND kết nối với nhau Chuẩn UART cho phép truyền dữ liệu nối tiếp qua ba chế độ: song công (full duplex) cho phép giao tiếp truyền và nhận dữ liệu cùng lúc, bán song công (half duplex) chỉ cho phép nhận hoặc truyền dữ liệu tại một thời điểm, và đơn công (simplex) chỉ cho phép truyền hoặc nhận dữ liệu.

Cách thành phần phải lưu ý trong giao tiếp UART

Tốc độ baud là đơn vị đo lường tốc độ truyền dữ liệu trong các hệ thống giây Trong giao tiếp UART, việc đảm bảo tốc độ truyền giữa bên truyền và bên nhận phải hoàn toàn khớp nhau là rất quan trọng.

Để đảm bảo quá trình truyền dữ liệu hiệu quả, không chỉ tốc độ baud giữa thiết bị truyền và nhận cần phải đồng nhất mà cấu trúc khung truyền cũng phải được cấu hình đồng bộ Khung truyền bao gồm một bit bắt đầu, các bit kết thúc, bit kiểm tra chẵn lẻ và các bit dữ liệu, xác định số bit trong mỗi lần truyền.

Hình 2.9: Khung truyền dữ liệu UART

 Start bit (Bit khởi đầu) – Kí hiệu trong hình 2.9: St

Bit khởi đầu là bit đầu tiên được gửi để đánh dấu sự bắt đầu của quá trình truyền dữ liệu Khi không có dữ liệu, đường truyền thường duy trì ở mức điện áp cao, và bit khởi đầu sẽ được gửi để kéo đường truyền xuống mức điện áp thấp “0” Do đó, bit khởi đầu luôn có điện áp thấp (0V) và là một phần quan trọng trong khung truyền dữ liệu.

Trong quá trình truyền dữ liệu, các bit dữ liệu được đánh số từ 0 đến 8, như thể hiện trong hình 2.9 Những bit này được sắp xếp theo thứ tự, với bit có trọng số thấp (LSB) được gửi trước, trong khi bit có trọng số cao (MSB) được truyền sau cùng.

 Parity Bit (Bit kiểm tra chẵn/lẻ) - Kí hiệu trong hình 2.9: P

Bit Parity được sử dụng để đảm bảo tính toàn vẹn của dữ liệu trong quá trình truyền Khi bit Parity là '0', tổng số bit '1' trong dữ liệu, bao gồm cả bit Parity, sẽ luôn là số chẵn Ngược lại, nếu bit Parity là '1', tổng số bit '1' sẽ là số lẻ Việc sử dụng bit Parity không bắt buộc và có thể được loại bỏ khỏi khung truyền nếu không cần thiết.

 Stop bit (Bit kết thúc) - Kí hiệu trong hình 2.9: Sp

Stop bit là một thành phần thiết yếu trong khung truyền, tương tự như Start bit Chức năng của Stop bit là thông báo cho bộ truyền và nhận rằng gói dữ liệu đã được truyền xong Độ dài của Stop bit có thể là 1 bit, 1.5 bit, hoặc 2 bit, tùy thuộc vào cấu hình UART của ứng dụng.

PHƯƠNG PHÁP ĐIỀU KHIỂN LED Error! Bookmark not defined CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ

Trong chương này, chúng tôi sẽ trình bày tổng quan về các kiến thức cơ bản cần thiết để xây dựng hệ thống, bao gồm lý thuyết, giao thức truyền thông dữ liệu và phương pháp điều khiển LED.

Chương 3: Tính Toán và Thiết Kế

Trong chương này, nhóm sẽ trình bày thiết kế sơ đồ khối của hệ thống, giải thích chức năng của từng khối và thực hiện các tính toán cần thiết Chúng tôi sẽ so sánh và lựa chọn linh kiện phù hợp với yêu cầu của hệ thống Cuối cùng, nhóm sẽ chốt lại sơ đồ nguyên lý và tiến hành thiết kế mạch in PCB.

Chương 4: Thi Công Hệ Thống Và Kết Quả Thực Hiện

Trong chương này, chúng tôi sẽ trình bày chi tiết quá trình thi công và kết quả sau khi hoàn thành Bên cạnh đó, chúng tôi cũng sẽ giải thích lưu đồ giải thuật chính và lưu đồ giải thuật con của hệ thống Cuối cùng, chúng tôi sẽ trình bày kết quả thực hiện hệ thống.

Chương 5: Kết Quả, Nhận Xét, Đánh giá

Trong chương này, nhóm sẽ trình bày kết quả đạt được và so sánh với các mục tiêu ban đầu Chúng tôi sẽ phân tích số liệu và chất lượng hình ảnh hiển thị để đưa ra những nhận xét và đánh giá cụ thể.

Chương 6: Kết Luận và Hướng Phát Triển

Trong chương này, nhóm tổng kết những hoạt động đã thực hiện, đánh giá mức độ hoàn thành các mục tiêu đề tài, và đưa ra nhận xét về những ưu điểm cũng như khuyết điểm Dựa trên những đánh giá này, nhóm cũng đề xuất các hướng phát triển để ứng dụng đề tài một cách hiệu quả trong thực tiễn.

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Trong lĩnh vực thiết kế và thi công hệ thống quang báo, nhiều nhóm đã nghiên cứu và thực hiện các dự án tốt nghiệp, đặc biệt là ứng dụng LED MATRIX Các đề tài như "Thiết kế và thi công bảng quang báo", "Thiết kế và thi công hệ thống bảng báo giá", và "Thiết kế và thi công bảng LED MATRIX điều khiển bằng APP ANDROID" đã được hoàn thành Đề tài "Thiết kế và thi công bảng quang báo" phát triển bảng thông báo sử dụng LED MATRIX, cho phép hiển thị ký tự và hình ảnh đơn giản, hiệu quả trong truyền đạt thông tin Đề tài "Thiết kế và thi công hệ thống bảng báo giá" ứng dụng LED MATRIX để tạo bảng giá điện tử, giúp thay đổi giá sản phẩm nhanh chóng và chính xác, rất hữu ích cho siêu thị và cửa hàng bán lẻ Cuối cùng, đề tài "Thiết kế và thi công bảng LED MATRIX điều khiển bằng APP ANDROID" phát triển bảng LED MATRIX có thể điều khiển từ xa qua ứng dụng trên điện thoại Android, mang lại sự tiện lợi và linh hoạt trong quản lý thông tin hiển thị.

Cả ba đề tài đều áp dụng công nghệ LED MATRIX và đã đạt được những kết quả ấn tượng, tuy nhiên vẫn còn tồn tại một số hạn chế cần khắc phục Việc chuyển sang sử dụng LED dây thay vì LED MATRIX có thể mang lại nhiều lợi ích, đặc biệt là tính linh hoạt cao hơn trong thiết kế hình dạng và kích thước của bảng quang báo.

Dựa trên các nghiên cứu trước, đề tài "Thiết kế và thi công hệ thống quang báo sử dụng LED dây" sẽ tập trung vào việc khai thác ưu điểm của LED dây để tạo ra một hệ thống quang báo linh hoạt, dễ di chuyển và lắp đặt Nghiên cứu này nhằm mở rộng và hoàn thiện ứng dụng của công nghệ LED trong lĩnh vực quang báo.

Trong chương này, nhóm xin được trình bày những nền tảng kiến thức giúp tính toán, thiết kế và lập trình cho hệ thống này

2.1 KỸ THUẬT ĐIỀU CHẾ PWM

PWM, hay Điều chế độ rộng xung, là một kỹ thuật điều khiển phổ biến trong lĩnh vực điện tử và tự động hóa Phương pháp này cho phép điều chỉnh điện áp ra tải một cách hiệu quả Cụ thể, PWM hoạt động bằng cách thay đổi độ rộng của chuỗi xung vuông, từ đó làm biến đổi điện áp đầu ra.

Trong nguyên lý điều chế độ rộng xung, xung vuông có chu kỳ hằng số nhưng độ rộng xung thay đổi, dẫn đến sự biến đổi của hệ số công tác (hay hệ số chu kỳ) Hệ số công tác là tỷ lệ giữa thời gian tín hiệu xung ở mức cao và tổng thời gian một chu kỳ, thường được biểu diễn dưới dạng phần trăm.

Công thức tính hệ số chu kỳ: Duty Cycle = Độ rộng xung(t)

Hình 2.1: Các ví dụ về xung PWM với các mức duty cycle khác nhau

Điện áp trung bình có thể được tính toán với các hệ số chu kỳ khác nhau Cụ thể, ở mức 25%, điện áp trung bình của 5V là 1.25V; ở mức 50%, điện áp trung bình là 2.5V; và ở mức 75%, điện áp trung bình đạt 3.75V.

Phương pháp điều chế xung PWM được ứng dụng rộng rãi trong các mô hình điều khiển, đặc biệt là trong bộ động cơ, xung áp, điều áp và đèn LED Công nghệ PWM không chỉ giúp tăng hiệu suất làm việc của thiết bị mà còn ổn định dòng điện tải ra, từ đó nâng cao độ ổn định hoạt động của hệ thống và giảm thiểu nguy cơ quá dòng.

PWM được sử dụng trong điều khiển động cơ để điều chỉnh tốc độ quay bằng cách thay đổi điện áp trung bình cấp cho động cơ thông qua tín hiệu PWM Phương pháp này giúp người sử dụng kiểm soát hoàn toàn tốc độ quay và độ ổn định của động cơ.

Trong điều khiển đèn LED, PWM được sử dụng để điều chỉnh độ sáng bằng cách thay đổi thời gian mà LED được bật trong mỗi chu kỳ

Trong lĩnh vực viễn thông, PWM (Pulse Width Modulation) là một kỹ thuật điều chế tín hiệu, trong đó các giá trị dữ liệu được mã hóa tại đầu gửi và đầu nhận thông qua độ rộng xung tương ứng.

Hình 2.2: Mã hoá dữ liệu dùng phương pháp PWM

2.2 PHƯƠNG PHÁP TRUYỀN DỮ LIỆU DMA

Trước khi khám phá cơ chế DMA, nhóm nghiên cứu sẽ trình bày về cơ chế hoạt động cơ bản của hệ thống, cụ thể là cơ chế Master – Slave.

SƠ ĐỒ KHỐI

Trong quá trình phát triển hệ thống, nhóm đã trải qua nhiều lần điều chỉnh và cải tiến thiết kế, cuối cùng đã xác định được sơ đồ khối của hệ thống với các thành phần như được trình bày trong hình 3.1.

Hình 3.1: Sơ đồ khối của hệ thống

Chức năng của từng khối như sau:

Khối xử lý trung tâm là bộ phận quan trọng nhất của hệ thống, đảm nhiệm việc xử lý và trao đổi dữ liệu với các module trong khối lưu trữ Nó có nhiệm vụ đọc dữ liệu hình ảnh từ thẻ nhớ SD Card và bộ nhớ Flash, sau đó truyền tín hiệu đã được xử lý đến khối hiển thị.

- Khối App Android: Đây là ứng dụng chạy trên điện thoại Android, có nhiệm vụ gửi các lệnh điều khiển đến khối thu thập và xử lý dữ liệu

- Khối thu thập, xử lý dữ liệu: Khối này thu thập và gửi dữ liệu từ ứng dụng

Android với khối xử lý trung tâm để thực hiện các tác vụ được chỉ định

Khối mở rộng I/O bao gồm các IC chốt dữ liệu, có chức năng nhận tín hiệu từ vi điều khiển để hiển thị dữ liệu qua 8 dây LED tại vị trí tương ứng với IC.

- Khối hiển thị: Là các dây LED hiển thị, giao tiếp với khối mở rộng I/O, nhận dữ liệu và hiển thị tương ứng

- Khối thời gian thực: Được sử dụng để đọc dữ liệu từ module thời gian thực và gửi về cho khối xử lý trung tâm để xử lý

Khối nguồn đảm nhiệm vai trò cung cấp và duy trì các thông số dòng điện và áp suất cần thiết cho các khối khác trong hệ thống, giúp đảm bảo hoạt động ổn định và hiệu quả cho toàn bộ hệ thống.

TÍNH TOÁN VÀ THIẾT KẾ

Nhóm sẽ trình bày chi tiết về chức năng của từng khối trong hệ thống, phương án tính toán, lựa chọn linh kiện, thông số kỹ thuật và nguyên lý thiết kế.

3.2.1 Khối xử lý trung tâm

Khối xử lý trung tâm sẽ xử lý dữ liệu hình ảnh được lưu trong bộ nhớ Flash và

Thẻ SD gửi dữ liệu đến khối hiển thị, trong khi vi điều khiển truyền tín hiệu điều khiển đến các IC để truyền dữ liệu màu đến khối hiển thị theo phương pháp quét.

Thị trường hiện nay có nhiều dòng vi điều khiển phổ biến như ARM, ARDUINO, ESP32 và PIC Để chọn lựa vi điều khiển phù hợp với đề tài nghiên cứu, nhóm nghiên cứu đã tiến hành khảo sát theo bảng 3.1.

Bảng 3.1: Bảng so sánh các tiêu chí đánh giá giữa các vi điều khiển

Tốc độ xử lý tối đa

Các loại vi điều khiển

UART, 2C, CAN, USART, SPI, IEthernet

UART, CAN, USB, SART, SPI, LIN, SDIO, I2C, I2S, Ethernet

UART, SPI, HSPI, I2C, SDcard/SDIO.

Chân giao tiếp 40 chân 100 chân 30-38 chân 54 chân

Cơ chế DMA Không Có Có Không

Khi điều khiển nhiều dây LED, cần chú ý đến bộ nhớ, số lượng chân giao tiếp và cơ chế DMA của vi điều khiển Nhóm đã chọn STM32F407VET6 làm vi điều khiển cho khối xử lý trung tâm nhờ vào khả năng hỗ trợ nhiều giao thức truyền, thuận tiện cho việc mở rộng kết nối với các ngoại vi như SD Card Với bộ nhớ lớn, vi điều khiển này có thể lưu trữ nhiều video và hình ảnh để hiển thị Số lượng chân giao tiếp lên đến 100 chân hoàn toàn đáp ứng nhu cầu điều khiển nhiều ngoại vi và IC khác nhau cho dây LED Đặc biệt, cơ chế DMA cho phép truyền dữ liệu nhanh chóng mà không cần can thiệp của CPU, giúp tối ưu hóa hiệu suất hệ thống và giảm thiểu thời gian xử lý.

Hình 3.2: Kit phát triển vi điều khiển STM32F407VET6

Bộ vi xử lý 32-bit RISC Cortex-M4 Kernel hoạt động với tần số lên đến 168 MHz, kết hợp với bộ nhớ nhúng tốc độ cao, bao gồm 512KB bộ nhớ Flash và bộ nhớ RAM.

192 KB ˍ Giao tiếp ngoại vi:

+ Bộ chuyển đổi ADC: 12bits, 24 kênh

+ Bộ chuyển đổi DAC: 12 bits, 2 kênh

+ Bộ giao tiếp với thẻ nhớ SD Card SDIO ˍ Điện áp hoạt động: 1.8 tới 3.6V

Hình 3.3: Sơ đồ nguyên lý STM32F407VET6

❖ Giải thích sơ đồ nguyên lý

Vi điều khiển STM32F407VET6 được tích hợp sẵn trên bộ KIT, giúp đơn giản hóa quy trình sử dụng Người dùng chỉ cần cung cấp nguồn cho các chân 5V, 3.3V và GND để bắt đầu hoạt động.

3.2.2 Khối thu thập, xử lý dữ liệu

Khối thu thập và xử lý dữ liệu nhận tín hiệu điều khiển từ ứng dụng Android, sau đó xử lý và gửi tín hiệu đến khối xử lý trung tâm Kết quả được hiển thị tương ứng trên khối hiển thị.

Để kết nối với ứng dụng điều khiển, nhóm đã chọn tiêu chuẩn Bluetooth làm phương thức kết nối chính Người dùng có thể nhập nhiều loại dữ liệu, bao gồm văn bản có dấu và các số chỉ vị trí, thông qua ứng dụng Android trên điện thoại Do đó, nhóm quyết định sử dụng vi điều khiển tích hợp Bluetooth để xử lý các dữ liệu đa dạng này Sau khi dữ liệu được nhập, nó sẽ được chuyển đến khối xử lý trung tâm để tiếp tục xử lý.

Nhóm đã chọn vi điều khiển ESP32 cho khối này, một sản phẩm của Espressif Systems tích hợp Wi-Fi và Bluetooth ESP32 được biết đến là một trong những vi điều khiển phổ biến nhất trong cộng đồng phát triển IoT nhờ vào tính linh hoạt, hiệu suất cao và chi phí thấp Đây là lựa chọn tối ưu cho các ứng dụng lập trình liên quan đến điều khiển hệ thống qua Bluetooth và Wi-Fi.

Hình 3.4: Vi điều khiển ESP32

Sơ đồ chân vi điều khiển ESP32 như sau:

Hình 3.5: Sơ đồ chân vi điều khiển ESP32

Bảng 3.2: Thông số kỹ thuật của ESP32

Vi xử lý Dual-core 32-bit LX6 microprocessors

IC chính Wifi BLE SoC ESP32 ESP-WROOM-32

Giao thức mạng IPv4, IPv6, SSL, TCP/UDP/HTTP/FTP/MQTT

Bluetooth 4.2 BR/EDR BLE 2 chế độ điều khiển Điện áp nguồn 5V DC

Dòng điện sử dụng ~80mA

Có hỗ trợ SD-card, UART, SPI, ADC, DAC, SDIO, I2C, PWM, I2S,

Hình 3.6: Sơ đồ nguyên lý kết nối giữa STM32F407VET6 và ESP32

Để thiết lập giao tiếp giữa hai vi điều khiển, cần kết nối chân RX và TX của ESP32 với chân TX và RX của STM32F407VET6.

Hình 3.7: Giao tiếp giữa ESP32 và STM32F407VET6

Dữ liệu từ ESP32 sẽ được truyền đến STM32F407VET6 để xử lý, với hai vi điều khiển này kết nối qua giao thức UART Các chân cụ thể giữa ESP32 và STM32F407VET6 được thiết lập như sau:

Bảng 3.3: Kết nối giữa STM32F407VET6 và ESP32

Để kết nối GND chung, chân nguồn 3.3V của ESP32 cần được nối với chân 3.3V của STM32F407VET6 Chân TX của STM32F407VET6 sẽ được kết nối với chân RX của ESP32, và ngược lại, chân RX của STM32F407VET6 sẽ nối với chân TX của ESP32.

Khi kết nối RX của STM32F407VET6 với chân TX của ESP32, cần đảm bảo chân GND của cả hai vi điều khiển được nối chung Đồng thời, hãy thiết lập tốc độ baud cho cả hai thiết bị phải giống nhau để đảm bảo quá trình truyền dữ liệu diễn ra suôn sẻ.

Khối mở rộng I/O giúp mở rộng 8 chân ngõ ra PWM của vi điều khiển thành 128 chân PWM, cho phép điều khiển 128 dây LED Khối xử lý trung tâm có nhiệm vụ điều khiển khối mở rộng này, xuất dữ liệu tới khối hiển thị theo phương pháp quét, mỗi lần 8 dây LED.

Đề tài yêu cầu điều khiển 128 dây LED độc lập, nhưng gặp hạn chế về số ngõ ra PWM của vi điều khiển STM32F407VET6 Nhóm đã quyết định mở rộng I/O bằng cách sử dụng các IC có khả năng chốt dữ liệu Chúng em đã tham khảo và lập bảng so sánh một số IC phổ biến trên thị trường.

Bảng 3.4: So sánh các đặc tính giữa các IC chốt dữ liệu

Số chân dữ liệu vào

Số chân dữ liệu ra

Chân cho phép chốt dữ liệu

Khi mức cao cho phép chốt

Khi mức thấp không đổi

Khi xung clock là xung cạnh lên cho phép chốt

Khi xung cạnh xuống không đổi

Sử dụng 2 chân clock, một chân để dịch dữ liệu, một chân để chốt dữ liệu tại đầu ra

THI CÔNG HỆ THỐNG

GIỚI THIỆU

Sau khi hoàn thành thiết kế sơ đồ nguyên lý cho toàn hệ thống, nhóm đã chuyển sang giai đoạn thi công Quá trình thi công bao gồm hai phần chính: thi công phần cứng và lập trình phần mềm.

Nhóm thực hiện đã sử dụng phương pháp khò ống co nhiệt để cố định khoảng cách giữa các bóng LED là 4cm Để treo các dây LED, nhóm đã lắp ghép các thanh thép thành giàn giáo và tiến hành kết nối nguồn cung cấp cho các board, dây bus tín hiệu dữ liệu, dây tín hiệu điều khiển, cũng như kết nối các dây LED vào board một cách đầy đủ.

Về phần mềm: Thiết kế giao diện điều khiển và viết chương trình cho phần mềm điều khiển.

THI CÔNG HỆ THỐNG

Nhóm đã thiết kế 16 mạch in PCB, trong đó 15 board sử dụng IC 74HC573 để mở rộng I/O cho STM32 và kết nối hiển thị cho dây LED Một board trung tâm chứa vi điều khiển STM32F407VET6, kết nối với vi điều khiển ESP32 và một IC 74HC573 Dữ liệu được truyền từ vi điều khiển qua kết nối nối tiếp tới các board mở rộng điều khiển LED Mạch PCB được thiết kế bằng phần mềm Proteus 8.11 với kết quả đạt yêu cầu.

Hình 4.1: Kết quả in board mở rộng

Bảng 4.1: Danh sách linh kiện sử dụng trong mỗi mạch mở rộng

Tên linh kiện Loại Số lượng

Header đực 9 chân 2 Đầu Jack DC cái 5.5 x 2.1mm 1

Hình 4.2: Kết quả in của board trung tâm Bảng 4.2: Danh sách các linh kiện sử dụng trong mạch board trung tâm

Tên linh kiện Loại Số lượng

STM32F407VET6 Bộ KIT kết nối sẵn 1

Domino 3 chân 8 Đầu Jack DC cái 5.5 x 2.1mm 1

Hàng rào đực cong 8 chân 2

4.2.2 Lắp ráp và kiểm tra

Quy trình lắp ráp và kiểm tra các board mạch sẽ được thực hiện theo các bước sau:

Bước đầu tiên trong quá trình thiết kế mạch là sử dụng linh kiện đã chọn để tiến hành thiết kế trên phần mềm chuyên dụng Sau khi hoàn tất thiết kế, in mạch ra giấy bóng và ủi lên nhíp đồng đã chuẩn bị Cuối cùng, kiểm tra các đường mực trên nhíp đồng; nếu có dấu hiệu đứt hoặc mờ, sử dụng bút vẽ mạch để khắc phục.

Để tạo ra board đồng với các đường dây mong muốn, bước thứ hai là sử dụng hóa chất để ngâm board đồng, loại bỏ các phần đồng không cần thiết Tuy nhiên, sau quá trình này, lớp mực in vẫn còn trên bề mặt đồng.

Bước 3: Tiến hành loại bỏ lớp mực in bằng dung môi hữu cơ, sau đó tiến hành khoan các chân cho các linh kiện

Bước 4: Dùng VOM để kiểm tra các đường dây đồng trên board có bị đứt hay chạm không, nếu có thì sẽ được khắc phục ngay

Bước 5: Sắp xếp và hàn tất cả các linh kiện đã chuẩn bị vào board đồng Sau đó, sử dụng đồng hồ VOM để kiểm tra lại tất cả các mối hàn, đảm bảo chúng chắc chắn và kết nối đúng cách.

Bước 6: Đưa nguồn vào mạch để kiểm tra xem có sự cố nào xảy ra không và nạp chương trình vào mạch để thử nghiệm

Bước 7: Cuối cùng, hoàn thiện mạch bằng cách đặt vào hộp formex để treo lên giàn treo.

THI CÔNG MÔ HÌNH

Nhóm sử dụng thanh sắt để tạo khung cố định cho việc treo board mạch và dây LED, đồng thời cố định bộ nguồn Khung cần đảm bảo độ chắc chắn nhưng vẫn nhẹ để thuận tiện cho việc di chuyển và lắp đặt Kích thước khung được mô tả trong hình 4.3 dưới đây.

Hình 4.3: Kích thước khung sắt

Mô hình giá treo dây LED được thiết kế với LED kết nối tới domino trên mạch Nguồn điện và các board mạch sẽ được cố định chắc chắn bằng vít lên giàn treo, đảm bảo sự ổn định và an toàn cho hệ thống.

LẬP TRÌNH HỆ THỐNG

Hình 4.5: Sơ đồ giải thuật hệ thống

Giải thích lưu đồ hình 4.5:

Khi bắt đầu, ESP sẽ tự động phát sóng Bluetooth để kết nối với điện thoại Sau khi kết nối thành công, người dùng có thể điều khiển hệ thống LED thông qua điện thoại ESP nhận tín hiệu điều khiển từ điện thoại và gửi tín hiệu đó đến STM32 STM32 sẽ xử lý tín hiệu và hiển thị lên hệ thống LED.

Hình 4.6: Lưu đồ chương trình của ESP32

Giải thích lưu đồ hình 4.6:

Khi bắt đầu, chương trình sẽ khai báo serial monitor, khởi động Bluetooth và UART để giao tiếp với STM32 Nếu nhận được dữ liệu từ Bluetooth, chuỗi dữ liệu sẽ được đọc cho đến khi gặp ký tự \n và được xử lý bằng cách loại bỏ khoảng trắng ở đầu và cuối Vị trí của hai dấu phẩy đầu tiên trong chuỗi sẽ được tìm, tách và chuyển đổi các phần tử đầu tiên để lưu vào X và Y Nếu phần còn lại sau X và Y chứa các ký tự dùng để so sánh, X, Y và tín hiệu nhận sẽ được gửi cho STM32 qua UART Ngược lại, nếu không phải ký tự so sánh, chương trình sẽ kiểm tra vị trí tiếp theo; nếu là màu, nó sẽ tách và xác định phần văn bản trước màu, phần màu và phần sau màu Nếu phần văn bản sau màu chứa hiệu ứng, chương trình sẽ xử lý và mã hóa văn bản tiếng Việt, tạo chuỗi send_masseger bao gồm các thành phần X, Y, văn bản đã mã hóa, màu sắc và hiệu ứng Nếu không tìm thấy hiệu ứng, màu sắc, hai phần tử đầu hoặc không có dữ liệu từ Bluetooth, chương trình sẽ khởi động lại từ đầu.

Hình 4.7: Lưu đồ chương trình chính của STM32

Giải thích lưu đồ hình 4.7:

Khi khởi động chương trình, tên các file trên thẻ nhớ sẽ được khai báo, sau đó tiến hành đọc dữ liệu từ thẻ nhớ Chương trình sẽ nhận dữ liệu từ ESP32, xử lý tín hiệu để xuất nội dung mong muốn trên hệ thống LED Cuối cùng, hệ thống LED sẽ hiển thị nội dung và quay lại chờ nhận tín hiệu mới từ ESP.

Hình 4.8: Lưu đồ chương trình xử lý chuỗi nhận từ ESP32

Giải thích lưu đồ hình 4.8:

Khi bắt đầu, hệ thống sẽ nhận từng byte từ ESP32 và lưu vào mảng rx_data Sau đó, kiểm tra xem mảng có bị tràn hay không; nếu có, sẽ đặt lại rx_indx về 0 và bắt đầu lại Nếu không bị tràn, quá trình nhận byte sẽ tiếp tục cho đến khi nhận được ký tự '\n' Khi đó, các thành phần trong chuỗi sẽ được tách ra thành các biến token dựa trên dấu cách và lưu vào từng biến tương ứng.

Token1 được gán cho biến Y, trong khi token2 được gán cho biến X Token3 xác định xem có phải là từ khóa so sánh không; nếu đúng, dữ liệu sẽ được gán cho biến action, nếu không, chuỗi hex sẽ được giải mã sang mã UTF-8 và lưu vào mảng rx_uft8_data Token4 sẽ so sánh với các màu trong mảng color_name và gán giá trị cho mảng color_action Cuối cùng, token5 sẽ so sánh với các từ khóa để gán giá trị cho biến action, và biến rx_indx sẽ được đặt lại thành 0 để chuẩn bị cho chuỗi dữ liệu mới.

Hình 4.9: Lưu đồ giải thuật gửi tín hiệu một dây LED

Giải thích lưu đồ hình 4.9:

Để bắt đầu, chúng ta cần nhập các tham số thiết yếu như loại dây LED muốn điều khiển, timer và DMA đang sử dụng, mảng chứa xung PWM sẽ gửi đến các LED, cùng với kênh timer để phát PWM.

Vòng lặp sẽ xử lý từng LED trong dây LED bằng cách mã hóa các màu thành giá trị 24 bit, bao gồm 8 bit cho màu xanh lá, 8 bit cho màu đỏ và 8 bit cho màu xanh dương Nếu bit đang xét là 1, giá trị pwmData[indx] sẽ được đặt là 84; ngược lại, nếu bit là 0, giá trị pwmData[indx] sẽ là 21 Cuối cùng, biến indx sẽ được tăng lên để tiếp tục quá trình.

25 bit 0 để tạo khoảng trống chốt dữ liệu qua dây led tiếp theo

Địa chỉ của các thanh ghi được xác định theo kênh timer đang sử dụng PWM được khởi động để truyền dữ liệu từ biến pwmData đến CCR của timer qua DMA Sau khi biến datasentflag được đặt thành 1, quá trình truyền hoàn tất và biến cờ datasentflag được thiết lập lại thành 0 để bắt đầu quá trình mới Sau mỗi xung PWM trên một timer, một chương trình ngắt sẽ được kích hoạt để vô hiệu hóa DMA, dừng DMA cho tất cả timer và đặt biến cờ datasentflag thành 1.

Hình 4.10: Lưu đồ giải thuật chương trình đọc file từ thẻ SD Card

Giải thích lưu đồ hình 4.10:

Để bắt đầu chương trình, sử dụng hàm f_mount để kết nối với thẻ nhớ Sau khi kết nối thành công, mở file dữ liệu bằng hàm f_open Khi file đã được mở, tiến hành đọc nội dung file bằng hàm f_gets và lưu dữ liệu vào mảng data Tiếp theo, sử dụng hàm sscanf để tách và trích xuất các giá trị như vị trí và màu sắc, từ đó thiết lập màu cho các LED Quá trình này sẽ lặp lại cho đến khi tất cả dữ liệu trong file được đọc và xử lý hoàn tất.

Hình 4.11: Lưu đồ chương trình hiển thị thời gian thực

Giải thích lưu đồ hình 4.11:

Chương trình bắt đầu bằng việc cấu hình Module DS1307 và thiết lập thời gian để nhận tín hiệu hiển thị Khi nhận tín hiệu từ ESP32, chương trình sẽ xác định vị trí hiển thị đồng hồ và tín hiệu cho phép hiển thị Giá trị vị trí được đọc và gán vào hàm hiển thị đồng hồ Cuối cùng, đồng hồ sẽ được hiển thị trên hệ thống LED và chương trình sẽ kết thúc.

4.4.2 Phần mềm lập trình cho vi điều khiển

❖ Giới thiệu phần mềm lập trình STM32CubeMX

STM32CubeMX là phần mềm toàn diện do STMicroelectronics phát triển, hỗ trợ lập trình và phát triển ứng dụng cho vi điều khiển ARM STM32 Phần mềm này cung cấp công cụ và thư viện đa dạng, giúp đơn giản hóa quá trình phát triển phần mềm, từ việc cấu hình phần cứng như lựa chọn ngoại vi và xung clock đến triển khai mã nguồn.

STM32CubeMX là phần mềm lập trình vi điều khiển STM32 với giao diện thân thiện, giúp người dùng cấu hình và thực hiện các tác vụ một cách nhanh chóng và hiệu quả, nên rất được ưa chuộng trong cộng đồng lập trình.

❖ Các bước cấu hình cho vi điều khiển STM32 trên STM32CubeMX

Khi mở phần mềm STM32CubeMX, bạn cần nhấp vào "New Project" để bắt đầu tạo dự án mới Cửa sổ thiết lập sẽ xuất hiện, cho phép bạn lựa chọn dòng MCU (Series), dòng MCU (Lines), kiểu đóng gói của MCU (Package), chip xử lý (Core), cũng như các thông số về bộ nhớ (Memory) và thông tin liên quan đến Timer, ADC, và các thành phần khác.

Hình 4.12: Tạo project mới trên STM32CubeMX Đặt tên cho dự án, tuỳ chỉnh nơi lưu và ngôn ngữ lập trình sau đó nhấn Finish để hoàn tất

Hình 4.13: Tuỳ chỉnh thông tin cho project trên STM32CubeMX

Bước 2 : Thiết lập các thông tin về ngoại vi

Sau khi chọn MCU, bước tiếp theo là cấu hình các ngoại vi trong phần PinOut & Configuration của STM32CubeMX Bạn có thể cấu hình trực quan từng chân của MCU qua hình ảnh hiển thị ở khung bên phải, dựa trên các tính năng GPIO mà MCU hỗ trợ Chỉ cần nhấp vào từng chân và chọn chức năng tương ứng mà bạn cần thiết lập.

Hình 4.14: Cấu hình cho vi điều khiển STM32

Bước 3 : Cấu hình xung clock cho hệ thống tại thẻ Clock Configuration

Hình 4.15: Cấu hình xung clock trên STM32CubeMX

Bước 4 : Cấu hình cho các Timer sử dụng trong hệ thống Nhóm sử dụng hai Timer

1 và Timer 5 với mỗi Timer sử dụng 4 kênh để xuất xung PWM qua các kênh DMA Các thông số cấu hình được thiết lập như hình ảnh dưới:

Hình 4.16: Cấu hình Timer 1 trên STM32CubeMX

Hình 4.17: Cấu hình Timer 5 trên STM32CubeMX

Hình 4.18: Các thông số của các kênh Timer

Bước 5 : Để có thể sử dụng thẻ nhớ SD Card, ta cấu hình chế độ đọc trong phần

SDIO Ở đây nhóm sử dụng chế đọc 1 bit

Hình 4.19: Cấu hình chế độ đọc của chuẩn SDIO

Bước 6 : Sau khi hoàn thành điều chỉnh và cấu hình các ngoại vi cần thiết, bạn có thể xuất mã nguồn đã được cấu hình từ STM32CubeMX

Hình 4.20: Tạo code trên STM32CubeMX

4.4.3 Phần mềm lập trình ứng dụng cho điện thoại

Android, hệ điều hành di động phát triển bởi Google trên nền tảng Linux, đã ra mắt lần đầu vào năm 2008 và nhanh chóng trở thành một trong những hệ điều hành phổ biến nhất toàn cầu Hệ điều hành này hỗ trợ đa dạng thiết bị, bao gồm điện thoại thông minh, máy tính bảng, đồng hồ thông minh và TV thông minh.

KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ

KẾT QUẢ

Sau một thời gian nghiên cứu tài liệu chuyên ngành và tham khảo thông tin từ internet, nhóm đã tích lũy được kiến thức đáng kể Những kiến thức này được áp dụng cùng với kinh nghiệm học tập tại đại học và sự hướng dẫn tận tâm từ giảng viên Nhờ vào những nỗ lực đó, nhóm đã thành công trong việc hoàn thành đồ án tốt nghiệp với đề tài "Hệ thống quảng bá bằng đèn LED dây".

5.1.1 Tương tác giữa phầm mềm điều khiển với hệ thống LED Để thuận tiện cho quá trình sử dụng của hệ thống, nhóm đã tiến hành nghiên cứu và phát triển một ứng dụng trên điện thoại android để điều khiển dàn LED của hệ thống Ứng dụng điều khiển có giao diện như sau:

Hình 5.1: Giao diện phần mềm điều khiển

Phần mềm điều khiển cung cấp ba chế độ: Clock, Text và Image Trong chế độ Clock, người dùng có thể chọn vị trí tùy ý, với khả năng hoạt động ổn định và chính xác theo thời gian Kết quả cho thấy chức năng đồng hồ số hoạt động hiệu quả.

Hình 5.2: Hình ảnh thực tế của chế độ hiển thị Clock

Chế độ thứ hai, gọi là chế độ Text, cho phép người dùng nhập văn bản với dấu, chữ thường hoặc chữ in hoa vào ô nhập Người dùng có thể chọn vị trí hiển thị, màu sắc và hiệu ứng cho chữ Cuối cùng, chỉ cần nhấn “Send” để hiển thị văn bản trên giàn LED.

Hình 5.3: Ví dụ điều khiển của Text

Hình 5.4: Hình ảnh thực tế hiện chữ “Đồ án tốt nghiệp” trên giàn LED

Hình 5.5: Hình ảnh thực tế hiện chữ “Led quang báo” trên giàn LED

Hệ thống hiển thị hoạt động hiệu quả với các thông số người dùng thao tác trong phần mềm điều khiển, như thể hiện trong hình 5.3 Kết quả điều khiển được hiển thị rõ ràng trong hình 5.4, trong khi hình 5.5 minh họa ví dụ về việc động đúng các màu sắc và hiệu ứng mà người dùng đã chọn.

Chế độ thứ ba, gọi là chế độ Image, cho phép người dùng trình chiếu hình ảnh trên hệ thống LED Để sử dụng chế độ này, người dùng chỉ cần nhập vị trí bắt đầu hiển thị và chọn hình ảnh mong muốn từ danh sách bên dưới.

Hình 5.6: Ví dụ của chế độ Image

Hình 5.7: Hình ảnh lá cờ quốc kì hiển thị trên giàn LED

Hình 5.6 minh họa thao tác người dùng trên phần mềm điều khiển, trong khi hình 5.7 thể hiện kết quả điều khiển với hình ảnh quốc kỳ Việt Nam Hệ thống hiển thị các hình ảnh đơn giản, ít chi tiết, và để người quan sát có thể nhìn rõ hơn, cần đứng ở khoảng cách xa Nhóm kết luận rằng hệ thống hoạt động khá hiệu quả trong chế độ hiển thị hình ảnh.

Chế độ Layout là chế độ lưu trữ tổng hợp các mẫu bố cục sẵn có, kết hợp nhiều chế độ hiển thị như hình ảnh, đồng hồ và văn bản.

Hình 5.8 minh họa chế độ Layout với sự kết hợp hiệu ứng khung, hình ảnh và ký tự, giúp hệ thống hiển thị kết quả một cách bắt mắt hơn.

Sau khi hoàn thành các board mạch trung tâm và board mở rộng, nhóm thực hiện đã cố định chúng lên giàn treo Kết quả đạt được là một hệ thống LED được bố trí đúng theo mục tiêu ban đầu và được cố định chắc chắn trên khung đã lắp đặt trước đó.

Hình 5.9: Kết quả của hệ thống giàn LED

Bài viết mô tả tổng cộng có 15 board mở rộng và 1 board chính điều khiển trung tâm được lắp cố định trên giàn Các dây LED được bố trí đều cách nhau 3cm, đảm bảo tính thẩm mỹ và hiệu quả Hệ thống hoạt động ổn định, không xảy ra tình trạng mất dữ liệu trong quá trình truyền.

Hình 5.10: Các board mở rộng được cố định trên giàn

NHẬN XÉT

Sau khi hoàn thành hệ thống, nhóm đã thực hiện thành công các nhiệm vụ đã đề ra, bao gồm việc tạo ứng dụng điều khiển trên điện thoại, gửi dữ liệu cần hiển thị qua vi xử lý và hiển thị nội dung một cách hiệu quả Sản phẩm hoạt động ổn định và thi công đạt tiêu chuẩn an toàn, với các dây kết nối được đảm bảo cách điện tốt.

Ngày đăng: 19/12/2024, 11:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Đình Phú, Chương 10: Điều chế độ rộng xung, “Giáo trình vi xử lý”, Trường ĐHSPKT, Tp.HCM, 2013 Sách, tạp chí
Tiêu đề: Giáo trình vi xử lý
[2] Trương Ngọc Anh, Nguyễn Đình Phú, Phan Vân Hoàn, Chương 6: Thực hành MODULE 4 – LCD 20x4, GLCD 128x64 “Giáo Trình Thực Hành: Vi Điều Khiển PIC”, trường ĐHSPKT, Tp.HCM, 2017 Sách, tạp chí
Tiêu đề: Giáo Trình Thực Hành: Vi Điều Khiển PIC
[3] Đặng Phước Hải Trang, Nguyễn Văn Phúc, Nguyễn Việt Hùng, Nguyễn Ngô Lâm, Chương 2: Các khái niệm cơ bản, Chương 4: Tín hiệu, “Kỹ Thuật Truyền Số Liệu”, Trường ĐHSPKT, Tp.HCM, 2013 Sách, tạp chí
Tiêu đề: Kỹ Thuật Truyền Số Liệu
[5] Phạm Võ Sơn Liêm, Hồ Quốc Trưởng, Thiết kế và thi công hệ thống bảng báo giá, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2018 Khác
[6] Đào Văn Đông, Trương Hữu Thắng, Thiết kế và thi công bảng quang báo, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2018 Khác
[7] Trần Châu Phong, Nguyễn Mình Đức, Thiết kế và thi công bảng LED MATRIX điều khiển bằng APP ANDROID, trường ĐHSPKT, TP.HCM, 2019 Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w