TỔNG QUAN
ĐẶT VẤN ĐỀ
Thời gian là tài sản quý giá nhất của mỗi con người, và một khi đã trôi qua, nó sẽ không bao giờ trở lại Việc sắp xếp thời gian hợp lý giúp chúng ta hoàn thành mục tiêu, nâng cao hiệu suất làm việc và tận hưởng những khoảnh khắc hạnh phúc bên gia đình và người thân mà không phải hối tiếc.
Trên thị trường hiện nay, đồng hồ kim và đồng hồ số đơn giản chủ yếu được sử dụng để xem giờ, trong khi thiết kế đồng hồ LED ma trận sử dụng vi điều khiển giúp người dùng theo dõi thời gian hiệu quả hơn Đồng hồ này không chỉ cập nhật chính xác thời gian hiện tại mà còn có khả năng hiển thị hình ảnh, video, hiệu ứng và trò chơi, mang lại trải nghiệm giải trí thú vị cho người dùng Sản phẩm này không chỉ gần gũi và độc đáo mà còn dễ sử dụng, đồng thời có tiềm năng thương mại hóa cao, tạo ra nguồn kinh tế đáng kể.
Thiết bị sử dụng vi điều khiển để xử lý, mang lại độ chính xác cao và khả năng giao tiếp với các module như LED, Wifi, Bluetooth, tạo thành một hệ thống hoàn chỉnh.
Nhiều nghiên cứu và Đồ Án Tốt Nghiệp (ĐATN) đã được thực hiện, nổi bật là đề tài “Thiết kế đồng hồ hiển thị trên ma trận LED RGB sử dụng Vi Điều Khiển” của Trương Minh Châu và Phan Tấn Kha năm 2018, tạo ra sản phẩm hoàn chỉnh với tính thẩm mỹ cao và khả năng thương mại hóa Tiếp theo, đề tài “Bảng led ma trận điều khiển bằng ứng dụng android” của Trần Châu Phong và Nguyễn Minh Đức năm 2019, ứng dụng xu hướng điều khiển thiết bị qua ứng dụng Android, đang phát triển mạnh mẽ Từ những nghiên cứu này, nhóm đề xuất thực hiện thiết kế và thi công một hệ thống ứng dụng sử dụng vi điều khiển.
Hệ thống "Thiết kế và thi công hệ thống đồng hồ led ma trận điều khiển bằng điện thoại" có khả năng hiển thị đồng hồ, chữ, hình ảnh, video, hiệu ứng nháy theo nhạc, và hỗ trợ một số trò chơi.
MỤC TIÊU
Nhóm em sẽ thiết kế và thi công mô hình hệ thống bảng LED MATRIX, với mục đích hiển thị thời gian, chữ có dấu, hình ảnh, hiệu ứng, video, nháy theo nhạc và chơi trò chơi Tất cả thông tin và chế độ hiển thị sẽ được điều khiển qua ứng dụng trên điện thoại Android.
NỘI DUNG NGHIÊN CỨU
Trong quá trình thực hiện Đồ án tốt nghiệp với đề tài “Thiết kế và thi công đồng hồ led ma trận điều khiển bằng điện thoại android”, nhóm chúng em đã hoàn thành các nội dung chủ yếu như thiết kế mạch điện, lập trình ứng dụng trên nền tảng Android, và lắp ráp hệ thống đồng hồ led.
- Nội dung 1: Tìm hiểu các Module Led P5.
- Nội dung 2: Tìm hiểu về KIT Node MCU ESP8266, KIT
STM32H743XIH6 giao tiếp không dây wifi và bluetooth.
- Nội dung 3: Nghiên cứu viết ra một app Android để điều khiển.
- Nội dung 4: Tiến hành viết code hoàn thiện.
- Nội dung 5: Thiết kế và tính toán các thông số phần cứng của mạch.
- Nội dung 6: Thi công mạch, chạy thử nghiệm ban đầu, điều chỉnh các thông số.
Thử nghiệm và điều chỉnh hệ thống cùng chương trình là cần thiết để tối ưu hóa hiệu suất Việc đánh giá các thông số của mô hình so với thực tế giúp đảm bảo tính chính xác và hiệu quả của hệ thống.
- Nội dung 8: Viết báo cáo thực hiện.
- Nội dung 9: Bảo vệ luận văn.
GIỚI HẠN
Các thông số giới hạn của đề tài bao gồm:
- Kích thước phần Led hiển thị: 256x128.
- Ứng dụng điện thoại chỉ chạy được trên hệ điều hành Android.
- Nội dung hiển thị chỉ gồm đồng hồ, chữ có dấu, hình ảnh, hiệu ứng, video, nháy theo nhạc và một số trò chơi.
BỐ CỤC
Đề tài: “Thiết kế và thi công hệ thống đồng hồ led ma trận điều khiển bằng điện thoại” được trình bày với bố cục như sau:
Trong chương này, nhóm em sẽ trình bày lý do lựa chọn đề tài, xác định mục tiêu nghiên cứu, nội dung chính của nghiên cứu, các giới hạn về thông số, và bố cục của đồ án.
•Chương 2: Cơ sở lý thuyết
Chương này 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 mô hình, bao gồm lý thuyết, khái niệm chuẩn giao tiếp, phần mềm ứng dụng, hướng dẫn quét LED, và các công cụ cần thiết.
•Chương 3: Tính toán và thiết kế
Chương này trình bày sơ đồ khối hệ thống, mô tả chức năng của từng khối, đồng thời thực hiện tính toán, thiết kế và lựa chọn linh kiện cho từng phần Cuối cùng, các khối sẽ được kết nối với nhau để tạo thành một hệ thống hoàn chỉnh.
•Chương 4: Thi công hệ thống
Chương này hướng dẫn cài đặt hệ điều hành và thư viện, cùng với các phương pháp điều khiển và hiển thị Nó cũng trình bày lưu đồ giải thuật, các bước thi công mạch, sơ đồ mạch layout, và quy trình lắp ráp mô hình Cuối cùng, chương cung cấp hướng dẫn sử dụng chi tiết.
•Chương 5: Kết quả - Nhận xét – Đánh giá
Chương này nêu lên kết quả đạt được so với yêu cầu ban đầu, nhận xét và đánh giá mô hình.
•Chương 6: Kết luận và hướng phát triển
Chương này tổng kết những kết quả đã đạt được, đồng thời phân tích ưu và nhược điểm của đề tài, nhằm đề xuất hướng phát triển để ứng dụng hiệu quả vào thực tế.
CƠ SỞ LÝ THUYẾT
CÁC CHUẨN GIAO TIẾP
2.1.1 Giới thiệu về mạng không dây
WIFI, viết tắt của Wireless Fidelity, là mạng không dây sử dụng sóng vô tuyến để truyền tín hiệu Sóng này tương tự như sóng điện thoại, sóng truyền hình và sóng radio, nhưng có tần số hoạt động khác nhau.
Wifi hoạt động chủ yếu trên băng tần 54 Mbps, tuân theo chuẩn IEEE 802.11, và lý thuyết có thể đạt tín hiệu mạnh nhất trong khoảng cách 31 mét Tuy nhiên, trong thực tế, khoảng cách này thường bị rút ngắn do sự xuất hiện của nhiều vật cản trên đường truyền sóng Wifi.
Sóng wifi hoạt động ở tần số từ 2,5Ghz đến 5Ghz, cho phép truyền tải nhiều dữ liệu nhưng với phạm vi hạn chế; trong khi đó, các loại sóng tần số thấp có thể truyền xa hơn Để kết nối Wifi, cần có bộ thu phát, nơi thông tin từ mạng Internet được chuyển đổi từ kết nối hữu tuyến sang tín hiệu vô tuyến Tín hiệu này sau đó được các thiết bị di động thu nhận và giải mã thành dữ liệu cần thiết Quá trình cũng có thể thực hiện ngược lại, khi tín hiệu vô tuyến từ Adapter được giải mã và gửi qua Internet.
Hình 2 1 Sơ đồ mô tả hoạt động của wifi
2.1.2 Giới thiệu về Bluetooth a Giới thiệu
Bluetooth là công nghệ truyền thông không dây tầm ngắn, cho phép các thiết bị điện tử giao tiếp và truyền dữ liệu qua khoảng cách ngắn Công nghệ này hỗ trợ kết nối giữa thiết bị di động và thiết bị cố định, mang lại sự tiện lợi trong việc chia sẻ thông tin.
Bluetooth là một công nghệ giao tiếp không dây sử dụng sóng radio trong dải tần 2.4GHz đến 2.480GHz, gần giống với Wifi Khác với Wifi, Bluetooth sử dụng phương pháp "nhảy tần trải phổ" (Frequency Hopping Spread Spectrum), cho phép băng tần hoạt động thay đổi liên tục qua 79 kênh trong khoảng tần số này.
Bluetooth có khả năng đạt tốc độ truyền dữ liệu lên đến 1Mb/s, với khả năng hỗ trợ tốc độ tối đa 720 Kbps trong khoảng cách từ 10m đến 100m Kết nối Bluetooth có những ưu điểm như dễ dàng sử dụng và tiết kiệm năng lượng, nhưng cũng tồn tại nhược điểm như khoảng cách hạn chế và tốc độ truyền tải không ổn định trong môi trường đông đúc.
• Không cần dùng dây cáp nên rất gọn gàng.
• Không làm ảnh hưởng sức khỏe con người.
• Khả năng bảo mật cao.
• Không gây nhiễu cho thiết bị không dây khác.
• Khả năng tương thích cao giữa các thiết bị.
• Tốc độ thấp (tối đa chỉ khoảng 720kbps).
• Kết nối có khi bị yếu nếu có nhiều vật cản.
• Thời gian thiết lập không nhanh.
2.1.3 Chuẩn giao tiếp UART a Giới thiệu
UART, viết tắt của Universal Asynchronous Receiver-Transmitter, là công nghệ truyền dữ liệu nối tiếp bất đồng bộ Hệ thống này bao gồm một đường phát dữ liệu và một đường nhận dữ liệu, hoạt động mà không cần tín hiệu xung clock, do đó được gọi là bất đồng bộ.
UART thường được dùng trong máy tính công nghiệp, truyền thông, vi điều khiển, hay một số các thiết bị truyền tin khác.
Hình 2 2 Hệ thống truyền dữ liệu bất đồng bộ. b Các thông số UART
Hình 2 3 Khung truyền dữ liệu của chuẩn giao tiếp UART
Dưới đây là các thông số thường có của UART:
Tốc độ baud là số bit được truyền trong một giây, và việc cài đặt tốc độ baud là rất quan trọng Để quá trình truyền và nhận không đồng bộ diễn ra thành công, các thiết bị tham gia cần thống nhất về khoảng thời gian truyền dữ liệu.
1 bit truyền, hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này gọi là tốc độ Baud.
Khung truyền (frame) là yếu tố quan trọng trong quá trình truyền thông nối tiếp, đặc biệt là nối tiếp không đồng bộ, vì nó giúp giảm thiểu nguy cơ mất mát hoặc sai lệch dữ liệu Để đảm bảo thành công trong việc truyền và nhận thông tin, khung truyền cần tuân theo các quy định nhất định, bao gồm số bit truyền mỗi lần, các bit báo hiệu như bit Start và bit Stop, cũng như các bit kiểm tra như Parity Bên cạnh đó, khung truyền cũng quy định số lượng bit trong mỗi gói dữ liệu.
Start Bit là bit đầu tiên trong một frame truyền, có nhiệm vụ thông báo cho thiết bị nhận biết rằng một gói dữ liệu sắp được gửi đến Dữ liệu (data) cần truyền là thông tin chính mà người dùng muốn gửi và nhận, không nhất thiết phải là gói 8 bit; với AVR, bạn có thể quy định số lượng bit của data là 5, 6, 7, 8 hoặc 9, tương tự cho nhiều thiết bị hỗ trợ UART khác Trong giao thức truyền thông nối tiếp UART, bit nhỏ nhất (LSB - Least Significant Bit) sẽ được truyền trước, sau đó là bit lớn nhất (MSB - Most Significant Bit).
Bit parity là một phương pháp kiểm tra tính chính xác của dữ liệu truyền, bao gồm hai loại: parity chẵn và parity lẻ Parity chẵn yêu cầu tổng số lượng bit 1, bao gồm cả bit parity, phải là số chẵn, trong khi parity lẻ yêu cầu tổng số bit 1 phải là số lẻ Việc sử dụng bit parity không bắt buộc, do đó người dùng có thể lựa chọn áp dụng hoặc không tùy theo nhu cầu.
Stop bit là một hoặc nhiều bit dùng để thông báo cho thiết bị nhận rằng gói dữ liệu đã được gửi hoàn tất Sau khi nhận được stop bit, thiết bị nhận sẽ kiểm tra khung truyền để xác minh tính chính xác của dữ liệu.
2.1.4 Giao thức truyền UDP a Giới thiệu
UDP, hay Giao thức Datagram Người dùng, là một phần của bộ giao thức Internet cho phép các chương trình trên máy tính khác nhau giao tiếp Khác với TCP/IP, UDP gửi các gói tin ngắn gọi là datagram, giúp truyền tải nhanh chóng Tuy nhiên, UDP không có chức năng kiểm tra lỗi, do đó không đảm bảo toàn vẹn dữ liệu.
- UDP là loại giao thức không trạng thái, không cần thiết lập các kết nối trước khi gửi gói tin.
- UDP chỉ quan tâm tới việc truyền gói tin đi và không nhận lại (bán song công).
- UDP không quan tâm tới việc có gửi chính xác gói tin tới đúng địa chỉ hay không, không có cơ chế phục hồi dữ liệu bị mất.
Giao thức UDP là lựa chọn nhanh chóng và hiệu quả cho các mục tiêu nhỏ với yêu cầu thời gian nghiêm ngặt Cách thức hoạt động của UDP cho phép truyền tải dữ liệu mà không cần thiết lập kết nối trước, giúp giảm độ trễ và tăng tốc độ truyền tải thông tin.
Giao thức UDP hoạt động tương tự như TCP nhưng không cung cấp kiểm tra lỗi khi truyền gói tin, cho phép các thiết bị giao tiếp nhanh hơn Khi sử dụng UDP, người gửi gửi các gói tin đến người nhận mà không chờ xác nhận, dẫn đến việc nếu người nhận bỏ lỡ gói tin, chúng sẽ không được gửi lại Một số ứng dụng phổ biến sử dụng giao thức UDP bao gồm DNS (Domain Name System), Voice over IP, ứng dụng streaming media, Trivial File Transfer Protocol (TFTP), và game trực tuyến.
2.1.5 ADC (Mạch chuyển đổi tương tự sang số) a Giới thiệu
PHẦN CỨNG
Khối xử lý trung tâm đóng vai trò quan trọng trong việc nhận, xử lý dữ liệu và xuất tín hiệu điều khiển đến khối hiển thị Để đáp ứng yêu cầu về tốc độ và độ chính xác, dữ liệu cần được xử lý liên tục Trong bối cảnh này, nhóm quyết định lựa chọn STM32H743 làm bộ xử lý trung tâm cho hệ thống.
STM32H743 là vi điều khiển tiên tiến dựa trên nền tảng lõi ARM Cortex-M7, được thiết kế bởi hãng ARM Lõi ARM Cortex-M7 là phiên bản cải tiến của lõi ARM truyền thống, đã đóng góp vào thành công lớn của ARM trong ngành công nghệ.
Hình 2 4 Hình ảnh thực tế của STM32H743XI
Vi điều khiển STM32H743XI sử dụng lõi RISC 32-bit ARM Cortex-M7, mang lại hiệu suất cao với tốc độ lên đến 400 MHz Chip này được trang bị bộ DSP instruction và MPU (memory protection unit), giúp nâng cao tính bảo mật cho hệ thống.
STM32H743XI sở hữu bộ nhớ Flash lên đến 2Mbytes và bộ nhớ RAM khoảng 1Mbytes, bao gồm 192 Kbytes TCM RAM, 864 Kbytes SRAM và 4 Kbytes backup SRAM, cho phép xử lý dữ liệu nhanh chóng và hiệu quả.
Vi điều khiển khiển hoạt động ở nhiệt độ từ -40 đến 85 độ C với điện áp giới hạn từ 1.62 đến 3.6 V.
Node MCU ESP8266 là nền tảng IoT mở, dựa trên chip Wifi ESP8266, cho phép kết nối dễ dàng chỉ với vài thao tác Với kích thước nhỏ gọn và tính linh hoạt cao, module này có thể kết nối với các thiết bị ngoại vi, giúp hoàn thiện các dự án và sản phẩm một cách nhanh chóng và đơn giản.
Trong hệ thống này Node MCU ESP8266 nhận dữ liệu từ app Android và truyền dữ liệu cho khối xử lý trung tâm.
Hình 2 5 Hình ảnh thực tế của Node MCU ESP8266
• WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n.
• Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0)
• Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
• Bộ nhớ Flash: 4MB - Giao tiếp: Cable Micro USB
• Hỗ trợ bảo mật: WPA/WPA2
• Tích hợp giao thức TCP/IP
Để thiết lập giao tiếp ESP với STM32H743, bạn chỉ cần kết nối chân TX của ESP với chân RX của STM32H743 và chân RX của ESP với chân TX của vi điều khiển để thực hiện việc truyền nhận dữ liệu.
Hình 2 6 Giao tiếp ESP8266 với STM32H743
Dữ liệu từ Node MCU ESP8266 sẽ được gửi đến STM32H743 để xử lý Kết nối giữa hai vi điều khiển này sử dụng chuẩn giao tiếp UART Dưới đây là bảng kết nối các chân giữa STM32H743 và Node MCU ESP8266.
Bảng 2 1 Kết nối giữa STM32H743 và ESP8266.
Cách nối dây cho NodeMCU vào STM32H743 như sau:
Dây Vin Node MCU ESP8266 nối vào nguồn 5V của STM32H743 và dây GND Node MCU nối vào chân GND của STM32H743.
Dây TX của Node MCU ESP8266 nối vào chân số RX của STM32H743 và dây RX của Node MCU ESP8266 nối chân TX của STM32H743.
Nối GND chung giữa STM32H743 và Node MCU ESP8266, thiết lập cả 2 có cùng tốc độ Baud.
Node MCU ESP8266 và STM32H743 giao tiếp qua tín hiệu truyền nhận liên tục Khi STM32H743 gửi dữ liệu qua chân TX, dữ liệu này được nhận tại chân RX của Node MCU ESP8266 để lưu trữ và xử lý Ngược lại, khi Node MCU ESP8266 gửi tín hiệu qua chân TX, dữ liệu sẽ được đưa vào chân RX của STM32H743 để tương tự lưu trữ và xử lý.
Module LED P5 fullcolor trong nhà được ưa chuộng nhờ khả năng hiển thị thông tin từ các khối khác, giúp người dùng dễ dàng quan sát Sản phẩm này phù hợp cho nhiều lĩnh vực như quảng cáo, bảng hiệu công ty và màn hình trong các sự kiện, hội nghị.
Hình 2 7 Ứng dụng của LED MATRIX Fullcolor
- Lý do chọn loại Module này:
• Là loại module LED rất phổ biến trên thị trường và đang được sử dụng rộng rãi tại Việt Nam.
• Giá thành không quá đắt.
• Mở rộng kích thước bảng đơn giản, không cần thay đổi phần cứng.
• Kích thước 1 tấm 16cm x 32cm, chỉ cần cấp nguồn và nối với nhau qua dây cáp tín hiệu là bảng đã được lắp xong.
Module fullcolor trong nhà P5 của hãng có khả năng hiển thị chữ với đa dạng màu sắc, kết hợp cùng video sắc nét, tạo nên những bảng led full color và màn hình led ấn tượng.
• Lắp đặt nhanh chóng, sử dụng đơn giản.
• Màn hình dễ dàng tháo lắp, sửa chữa khi có sự cố xảy ra.
• Vận hành và sử dụng dễ dàng.
• Màn hình LED P5 ngoài trời có độ ổn định cao ít chết điểm so với các loại màn hình trong nhà khác.
• Chi phí đầu tư một màn hình P5 nhỏ, phù hợp với nhiều đối tượng sử dụng.
• Bóng khá thưa nên hình ảnh khi nhìn gần không sắc nét, không mịn.
Hình 2 8 Hình ảnh thực tế của Module LED MAXTRIX fullcolor P5
- Cấu tạo của module bao gồm:
• 24 IC ghi dịch 16 bit ICN2028BP.
• 2 IC ghi đệm dòng ICN74HC245TS.
• 1 cái là đầu vào dữ liệu, 1 cái là đầu ra (để mắc nối tiếp với tấm khác).
Hình 2 9 Sơ đồ chân của Module LED Maxtrix Fullcolor P5
- Jump DATA-IN cần chú ý tới các chân:
Hình 2 10 Sơ đồ chân DATA-IN của Module LED P5
Chân OE của IC ICN2012 đóng vai trò quan trọng trong việc điều khiển hoạt động của IC Khi OE=0, IC sẽ không hoạt động, dẫn đến việc tất cả các hàng LED đều tắt Do đó, chân này không chỉ có nhiệm vụ quét LED mà còn đảm nhiệm việc băm xung PWM để điều chỉnh độ sáng của bảng LED.
Chân A, B, C và D của IC ICN2012 có nhiệm vụ điều khiển ngõ ra, giúp giải mã 4 bit thành 16 bit Điều này cho phép xuất dữ liệu từ hàng thứ 0 đến hàng thứ 16.
• CLK: Chân tạo xung đẩy dữ liệu vào của ICN2028BP.
• LAT: Chân tạo xung xuất dữ liệu trong ICN2028BP ra ngoài.
• DATA (R1, G1, B1, R2, G2, B2): Là các chân dữ liệu màu từ IC dịch
ICN74HC245TS 16 bit là một vi mạch với chân R hiển thị màu đỏ, chân G cho màu xanh lá và chân B cho màu xanh dương, tạo ra ba màu cơ bản để xuất ra nhiều màu sắc khác nhau.
Hình 2 11 Sơ đồ chân DATA-OUT của Module LED P5
- Jump DATA-OUT đối diện cũng có sơ đồ giống như thế và các chân OE, A, B,
C, D, CLK, LAT của 2 jump thực chất nối thông với nhau Duy chỉ có chân DATA là khác nhau Jump DATA-OUT cho phép nối các module lại với nhau bằng cách nối Jump DATA-OUT vào Jump DATA-IN, nguyên nhân chúng có thể nối lại được với nhau do các chân DATA R1, G1, B1, R2, B2, G2 là chân dữ liệu từ ic dịch ICN74HC245TS xuất dữ liệu từ nối tiếp ra song song, do đó việc nối 2 jump với nhau thực chất là ghép các ic dịch ICN74HC245TS dịch lại với nhau.
• Tín hiệu OE: tích cực mức logic cao (5V) cho phép chốt hàng
• Tín hiệu chọn hàng: A, B, C, D là đường tín hiệu cho phép chọn hàng hiển thị.
• Tín hiệu LAT: Tín hiệu cho phép chốt dữ liệu ra cột.
• Tín hiệu CLK: xung đưa dữ liệu ra IC ghi dịch.
• Tín hiệu DATA: đưa dữ liệu cần hiển thị ra bảng LED.
- Phương pháp quét của mudule:
• Quét theo tỉ lệ 1/16 (Mỗi lần quét tích cực 16 hàng).
• Tất cả mô đun có 32 hàng, 64 cột Tại 1 thời điểm nhất định sẽ có 2 hàng đồng thời được nối với nguồn Vcc (được cho phép sáng).
Bảng 2 2 Các thông số của các chân A, B, C, D quét hàng
Chân D Chân C Chân B Chân A Hàng tích cực
Khi A=B=C=D=0 thì hàng 0,16 sẽ được cho phép hiển thị dữ liệu.
Khi A=1, B=C=D=0 thì hàng 1,17 được tích cực, sẽ được cho phép hiển thị dữ liệu.
Khi A=0, B=1, C=D=0, hàng 2,18 sẽ được kích hoạt, và quy tắc này áp dụng cho các hàng còn lại Để hiển thị hàng trên bảng LED MATRIX, chúng ta cần lặp lại các bước quy trình cho mỗi hàng.
TÍNH TOÁN THIẾT KẾ
GIỚI THIỆU
Hệ thống yêu cầu thay đổi thông tin trên bảng Led thông qua ứng dụng Android Tất cả các thao tác từ điện thoại sẽ được gửi đến vi điều khiển để xử lý dữ liệu và hiển thị Nhóm sẽ thiết kế sơ đồ khối, từ đó lựa chọn linh kiện phù hợp, tính toán công suất cho hệ thống, và cuối cùng phát triển ứng dụng Android để điều khiển hệ thống.
Hệ thống cần phải điều khiển hoạt động một cách chính xác và kịp thời, đáp ứng nhanh chóng các yêu cầu khi có sự thay đổi hiệu ứng hiển thị từ ứng dụng Android.
Hệ thống cần đảm bảo tính thẩm mỹ, với kết cấu chắc chắn và gọn nhẹ để dễ dàng di chuyển Giao diện điều khiển phải được thiết kế sao cho dễ sử dụng.
THIẾT KẾ SƠ ĐỒ KHỐI
Nhằm đáp ứng được các yêu cầu đã đặt ra của hệ thống Nhóm đã thiết kế ra sơ đồ khối cho hệ thống như hình sau:
Hình 3 1 Sơ đồ khối của hệ thống
Sơ đồ khối của hệ thống gồm 6 khối cơ bản với chức năng của từng khối như sau:
Khối App Android là ứng dụng di động có nhiệm vụ chính là nhận diện các thao tác của người dùng, sau đó chuyển đổi các lệnh này thành gói dữ liệu điều khiển Những gói dữ liệu này sẽ được gửi về khối thu thập dữ liệu để tiến hành xử lý.
Khối thu thập và xử lý dữ liệu có nhiệm vụ nhận dữ liệu điều khiển từ ứng dụng Android, sau đó chuyển tiếp các yêu cầu này đến khối xử lý trung tâm để xử lý Đồng thời, khối này cũng thực hiện việc trao đổi dữ liệu giữa ứng dụng Android và khối xử lý trung tâm.
Khối xử lý trung tâm có nhiệm vụ chính là nhận và xử lý các yêu cầu từ khối thu thập dữ liệu Sau khi xử lý, dữ liệu sẽ được gửi lên khối hiển thị Ngoài ra, khối này còn thực hiện việc trao đổi và xử lý dữ liệu giữa các module trong khối thu thập dữ liệu và ứng dụng Android.
Khối hiển thị: có chức năng hiển thị dữ liệu đã được xử lý lên màn hình.
Khối âm thanh có nhiệm vụ nhận tín hiệu âm thanh qua module Bluetooth, khuếch đại tín hiệu để phát ra loa, và truyền tín hiệu âm thanh đến khối xử lý trung tâm Tại đây, vi điều khiển sẽ đọc giá trị điện áp của âm thanh để xử lý.
Khối nguồn là thành phần cung cấp năng lượng cho toàn bộ hệ thống, bao gồm khối hiển thị, khối xử lý trung tâm, các module thu thập dữ liệu và khối âm thanh.
TÍNH TOÁN VÀ THIẾT KẾ MẠCH
3.3.1 Khối xử lý trung tâm
Chức năng chính của hệ thống là tiếp nhận và xử lý dữ liệu điều khiển từ khối thu thập, sau đó xuất tín hiệu điều khiển ra khối hiển thị Hệ thống cũng cho phép trao đổi dữ liệu liên tục giữa các module trong khối thu thập, đảm bảo quá trình hoạt động diễn ra một cách mượt mà.
Khối xử lý trung tâm đóng vai trò quan trọng trong việc tiếp nhận tín hiệu từ ứng dụng Android và các cảm biến, đồng thời xử lý dữ liệu và xuất tín hiệu điều khiển đến khối hiển thị Để đảm bảo quá trình hiển thị diễn ra liên tục, dữ liệu cần được xử lý nhanh chóng và chính xác, tránh gián đoạn ảnh hưởng đến thông tin hiển thị Do đó, nhóm đã quyết định chọn STM32H743 làm bộ xử lý trung tâm, một dòng chip mới của ST Microelectronic với khả năng xử lý mạnh mẽ, giúp điều khiển hệ thống chính xác và giảm thiểu sai sót.
Hình 3 2 Hình ảnh thực tế của STM32H743XIH6
Vi điều khiển STM32H743 được tích hợp trong module STM32H743, điện áp hoạt động của vi điều khiển là 3.3v và 5v qua IC giảm áp ASM1770.
Hình 3 3 Sơ đồ chân AMS1117
Vi điều khiển STM32H743 được sản xuất dựa trên lõi RISC 32-bit ARM Cortex-M7 hiệu xuất cao với tốc độ hoạt động lên đến 400 Mhz.
STM32H743 sở hữu bộ nhớ Flash lên đến 2Mbytes và bộ nhớ RAM khoảng 1Mbytes, bao gồm 192 Kbytes TCM RAM, 864 Kbytes SRAM và 4Kbytes backup SRAM, cho phép xử lý dữ liệu nhanh chóng và hiệu quả.
Vi điều khiển hoạt động ở khoảng nhiệt độ từ -40 đến 85⁰C với điện áp giới hạn từ 1.62 đến 3.6V.
Số cổng I/O là 168 cổng, điện áp ngõ ra của các I/O từ 1.62 đến 3.6V. Các ngõ ra I/O có khả năng ngắt nhanh lên đến 133Mhz.
Bảng 3 1 Thông số ngoại vi của vi điều khiển STM32H743XI
RAM 864 Kbytes SRAM, 4Kbytes backup SRAM)
4 - SPDIFRX Giao tiếp truyền thông kỹ thuật số 1 - SWPMI
Hình 3 4 Sơ đồ khối của vi điều khiển STM32H743XI
Hình 3 5 Sơ đồ nguyên lý của khối xử lý trung tâm
Giải thích sơ đồ nguyên lý:
PIN_VBAT là pin 3.3V dùng để nuôi khối thời gian thực có trong vi điều khiển, giúp khối này luôn chạy đúng thời gian.
DOMINO1 cung cấp nguồn 5V cho vi điều khiển, trong khi J3 cung cấp nguồn 3.3V Cả hai nguồn đều có thể sử dụng cho vi điều khiển, nhưng nhóm ưu tiên nguồn 5V vì module STM32H743 đã tích hợp mạch giảm áp 3.3V Việc sử dụng mạch giảm áp tích hợp mang lại ưu thế về độ ổn định cao hơn so với thiết kế tự chế và giúp tiết kiệm không gian.
J1 là các chân dùng để giao tiếp với khối thu thập và xử lý dữ liệu bao gồm các chân TX, RX, chân 3.3V và chân GND.
3.3.2 Khối thu thập và xử lý dữ liệu
Khối này có nhiệm vụ nhận các gói dữ liệu điều khiển từ ứng dụng Android và truyền tải chúng qua giao tiếp UART đến khối xử lý trung tâm Tại đây, các dữ liệu sẽ được xử lý và hiển thị kết quả.
NodeMCU là một mạch vi điều khiển tích hợp module Wifi ESP8266, cho phép điều khiển các thiết bị điện tử một cách hiệu quả Với kích thước nhỏ gọn, NodeMCU dễ dàng kết nối với các thiết bị ngoại vi, tạo ra hệ thống hoàn chỉnh và đầy đủ chức năng Đặc biệt, thiết bị này còn có khả năng thiết lập mạng wifi nội bộ (Access Point), cho phép các thiết bị kết nối và trao đổi dữ liệu mà không cần kết nối phần cứng trực tiếp.
Access Point là thiết bị tạo ra mạng không dây cục bộ, hoạt động như một trạm truyền và nhận dữ liệu, thường được gọi là bộ thu phát wifi Nó kết nối người dùng với những người dùng khác trong cùng một mạng, giúp tăng cường khả năng truy cập và chia sẻ thông tin.
Hình 3 6 Ảnh thực tế NodeMCU ESP8266
Hình 3 7 Sơ đồ chân của NodeMCU ESP8266
- Các thông số kỹ thuật:
• MCU: ESP8266EX - Vi điều khiển 32bit, tiết kiệm năng lượng
• Hỗ trợ bảo mật WPA/WPA2
• Tích hợp giao thức TCP/IP
• Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0)
• Số chân Analog Input: 1 độ phân giải 10bit (điện áp vào tối đa 3.3V)
• LED RGB: 1 LED kết nối với 3 chân R(15), G(12), B(13)
• Quang trở: Kết nối với chân analog A0
• Hỗ trợ kiết nối với smart phone (IOS và Android)
• Tốc độ truyền Serial (Baurate): 115200 (Max)
• Điện áp ra I/O: Tối đa 3.6V
• Chế độ hoạt động: AP, STA và (AP + STA)
• Các ngôn ngữ có thể lập trình được: C/C++, NodeMCU –
- Sơ đồ nguyên lý của khối thu thập
Để giao tiếp giữa vi điều khiển STM32H743 và ESP8266, cần kết nối theo chuẩn UART, với chân TX, RX của ESP8266 nối với chân RX, TX của vi điều khiển Dữ liệu từ khối App Android và cảm biến DHT11 sẽ được ESP8266 gửi đến STM32H743 để xử lý.
Hình 3 9 Giao tiếp Uart giữa STM32H743 với ESP8266
NodeMCU và STM32H743 giao tiếp thông qua việc truyền dữ liệu giữa các chân TX và RX Khi STM32H743 gửi dữ liệu từ chân TX, dữ liệu sẽ được nhận và xử lý tại chân RX của NodeMCU Ngược lại, khi NodeMCU gửi dữ liệu từ chân TX, nó sẽ được truyền vào chân RX của STM32H743 để xử lý Quá trình này diễn ra liên tục, đảm bảo việc truyền dữ liệu không bị gián đoạn.
Hiển thị đồng hồ với nhiều hiệu ứng đa dạng như hình ảnh, ảnh động, hiệu ứng khung và nền, cùng với các trò chơi như xe tăng và xếp hình Tất cả các hiệu ứng chuyển đổi này được điều khiển dễ dàng thông qua ứng dụng Android.
Hình 3 10 Ứng dụng led matrix trong đời sống hằng ngày
Để hiển thị nội dung một cách sinh động, nhóm đã quyết định chọn module LED Matrix P5 làm màn hình hiển thị Việc sử dụng 16 tấm LED nhiều màu giúp tạo ra nhiều sắc thái màu sắc, làm cho nội dung trở nên thu hút và hấp dẫn hơn đối với người xem.
Lý do chọn Module LED P5:
Là loại LED đang phổ biến trong thị trường hiện nay và được sử dụng rộng rãi trong lĩnh vực quảng cáo.
Giá cả phù hợp không quá đắt.
Modele LED fullcolor có thể hiển thị nội dung với rất nhiều mà sắc, kết hợp với các hình ảnh đẹp sẽ tạo nên những khung hình lung linh.
Bạn có thể dễ dàng mở rộng kích thước LED mà không cần thay đổi phần cứng Chỉ cần kết nối các dây tín hiệu với nhau qua dây bus và cấp nguồn cho module mới.
Bảng 3 2 Thông số kỹ thuật module LED matrix P5
Kích thước module 16cm x 32cm
Khoảng cách điểm ảnh 5mm
Kiểu quét 1/16scan Độ phân giải 32 x 64 pixels
Nhiệt độ hoạt động Từ -20 đến 60C Độ ẩm hoạt động 10% - 90%
Hình 3 12 Sơ đồ kết nối giữa STM32 với Led matrix P5
Data1 Module 1 Module 2 Module 3 Module 4
Data2 Module 5 Module 6 Module 7 Module 8
Data3 Module 9 Module 10 Module 11 Module 12
Data4 Module 13 Module 14 Module 15 Module 16
Hình 3 13 Sơ đồ bố trí các module Led P5
Theo sơ đồ bố trí như trên ta sẽ được một màn hình hiển thị gồm 16 module LED P5 với độ phân giải: 128 x 256 x 3 = 98304 pixel.
Các chân data của module Led kết nối với các GPIO của STM32H743 theo bảng sau:
Bảng 3 3 Kết nối giữa STM32 với LED P5
Quá trình quét các hàng được thực hiện từ chân PA0 đến PA3, cho phép quét LED một cách dễ dàng hơn bằng cách quét song song bốn khối Dữ liệu sẽ được truyền ra song song cho bốn khối, theo thứ tự từ khối một đến khối bốn.
3.3.4 Khối âm thanh a Mạch Bluetooth
Âm thanh được nhận qua Bluetooth từ điện thoại sẽ được khuếch đại qua mạch công suất và phát ra loa Đồng thời, tín hiệu âm thanh cũng được chuyển đến khối xử lý trung tâm để thực hiện lấy mẫu và phân tích FFT.
Module Bluetooth 4.0 MP3 BM3 có khả năng thu nhận tín hiệu âm thanh không dây và truyền tín hiệu này qua mạch khuếch đại công suất để phát ra loa.
- Thông số kỹ thuật: Điện áp hoạt động 5V
Có hai chế độ truy cập tùy chọn:
• Đầu vào bluetooth có thể kết nối với smartphone, laptop…
• Đầu vào USB b Mạch công suất
Nhận tín hiệu âm thanh từ module Bluetooth và khuếch đại lên biên độ đủ lớn để đưa ra loa.
THI CÔNG HỆ THỐNG
GIỚI THIỆU
Sau khi hoàn tất thiết kế sơ đồ nguyên lý cho hệ thống, nhóm tiến hành thi công mô hình với hai phần chính: thi công phần cứng và thi công phần mềm.
Kết nối 16 module LED ma trận thành 4 hàng, mỗi hàng gồm 4 module, yêu cầu thiết lập dây nguồn và dây tín hiệu giữa các LED Phần điều khiển và hiển thị được kết nối qua dây bus, trong khi các bộ phận như nguồn cung cấp và khối điều khiển được gắn phía sau bảng LED để nâng cao tính thẩm mỹ cho sản phẩm.
Phần mềm giúp xây dựng lưu đồ giải thuật và lập trình cho hệ thống, từ khởi đầu đến kết thúc Chương trình được thiết kế dựa trên nguyên lý hoạt động của hệ thống, áp dụng giải thuật điều khiển một cách tối ưu nhất vào sản phẩm.
Quá trình thi công hệ thống phải đảm bảo tất cả những yêu cầu về thiết kế mà nhóm đã đặt ra ban đầu.
THI CÔNG HỆ THỐNG
Mạch chủ yếu được ghép lại từ các module rời nên nhóm đã thiết kết board có các jack cắm để liên kết các module lại với nhau.
Mạch in gồm 2 mặt và các đường dây ở mặt trên và mặt dưới được nối với nhau thông qua các lỗ via.
Mạch được vẽ bằng phần mềm Proteus cho ra mạch in như sau:
Hình 4 1 Mạch in sau khi vẽ xong Bảng 4 1 Danh sách linh kiện sử dụng trong mạch
Tên linh kiện Loại Số lượng
Mạch công suất âm thanh 1
4.2.2 Lắp ráp và kiểm tra
Quy trình lắp ráp và kiểm tra mạch diễn ra theo các bước sau:
Sau khi hoàn tất việc vẽ mạch bằng phần mềm, bạn cần in và ủi mạch lên board đồng bằng phương pháp thủ công Sau khi ủi, hãy gỡ bỏ lớp giấy để lại đường mực trên mạch và sử dụng bút lông để tô lại các đường dây bị đứt nếu có.
Bước 2: Ngâm mạch trong hóa chất để loại bỏ hết phần đồng thừa và chỉ còn lại các đường dây điện.
Bước 3: Tiến hành chà sạch lớp mực in và khoan lỗ chân linh kiện rồi quét nhựa thông để bảo vệ mạch.
Bước 4: Dùng đồng hồ chỉnh thang đo điện trở x1 để kiểm tra các đường mạch có bị đứt hay ngắn mạch không.
Bước 5: Hàn tất cả các linh kiện như hàng rào, jack cắm… vào board đồng rồi kiểm tra lại tất cả các mối hàn xem có chắc chưa.
Bước 6: Gắn board STM32H743, ESP8266, mạch âm thanh bluetooth và mạch công suất âm thanh vào mạch vừa hàn xong.
Bước 7: Cấp nguồn kiểm tra mạch xem có sự cố nóng bất thường hay không, sau đó nạp chuong trình cho mạch chạy thử.
Bước 8: Hoàn thành mạch dùng mica trong làm khung bảo vệ cho mạch.
THI CÔNG MÔ HÌNH
Bộ khung LED đóng vai trò quan trọng trong việc định hình và cố định bộ nguồn cũng như mạch, nên cần đảm bảo tính chắc chắn và nhẹ nhàng để thuận tiện cho việc di chuyển và lắp đặt Khung được chế tạo từ sắt với kích thước được mô tả cụ thể trong hình ảnh.
Hình 4 2 Kích thước khung sắt
LẬP TRÌNH HỆ THỐNG
Khởi tạo Gửi dữ liệu sang hệ thống STM32H743
ESP phát Sai nhận dữ liệu từ
Sai Đúng Đúng Điện thoại STM32 xử lý Sai kết nối WiFi các dữ liệu
WiFi thành ra Led P5 và công hiển thị Đúng Đọc dư liệu Kết thúc từ điện thoại 1
Hình 4 3 Lưu đồ chính hệ thống
Khi khởi động, ESP8266 phát WiFi và cho phép điện thoại kết nối với mạng này Sau khi kết nối thành công, ESP8266 nhận dữ liệu từ điện thoại để điều khiển Dữ liệu này sau đó được gửi đến STM32H743 để xử lý và điều khiển hiển thị trên LED.
- Khởi tạo giao thức truyền UDP
Kiểm tra dữ liệu truyền Sai từ wifi Đúng
Truyền dữ liệu qua STM32 bằng uart
Khởi tạo các hàm cần thiết như UART để giao tiếp với vi điều khiển, thiết lập chế độ phát wifi AP (access point) và khởi tạo giao thức truyền nhận dữ liệu là các bước quan trọng trong quá trình phát triển hệ thống.
Trong vòng lặp vô hạn, ESP8266 kiểm tra dữ liệu từ điện thoại; nếu nhận được dữ liệu, nó sẽ truyền thông qua giao tiếp UART đến STM32 Sau đó, ESP8266 tiếp tục quay lại bước thứ hai để thực hiện vòng lặp.
Nhận dữ liệu từ ESP qua uart bằng DMA Đọc dữ liệu
Uart[0] Sai Uart[0] Sai Uart[0] Sai Uart[0] Sai Uart[0] Sai Uart[0] Sai Uart[0] Sai bằng n bằng s bằng t bằng k bằng p bằng v bằng m Đúng Đúng Đúng Đúng Đúng Đúng Đúng
Hiển thị Game Game Game Paint Video Nháy theo nội dung snake ternist tank nhạc
Uart[1] Sai Uart[1] Sai Uart[1] Sai Uart[1] Sai Uart[1] Sai Uart[1] Sai bằng h bằng a bằng d bằng f bằng k bằng b Đúng Đúng Đúng Đúng Đúng Đúng
Hiển thị Hiển thị Điều chỉnh Hiển thị nhiệt Hiển thị hiệu Hiển thị hiệu đồng hồ ảnh độ sáng độ độ ẩm ứng khung ứng nền
Hình 4 5 Lưu đồ vi điều khiển STM32H743
Sau khi khởi tạo các hàm cần thiết cho chân IO, TIMER1, USB device và PWM, vi điều khiển sẽ nhận dữ liệu qua UART sử dụng DMA với chiều dài mảng là 84.
Nếu byte thứ 0 uart[0] = ‘n’ cho phép hiển thị nội dung dữ liệu từ điện thoại bao gồm vị trí, màu và nội dung.
Khi byte thứ 0 uart[0] = 'n', byte thứ nhất uart[1] sẽ xác định chức năng: nếu là 'h' sẽ hiển thị đồng hồ, 'd' cho phép chỉnh độ sáng, 'a' để hiển thị hình ảnh, 'b' để hiển thị các hiệu ứng nền, và 'k' để hiển thị hiệu ứng khung.
Nhận dữ liệu từ ESP
Phân tích dữ liệu nhận được vt_mangchu lớn hơn 0 và nhỏ hơn 9 Đúng Đưa dữ liệu vào mangnd[vt_mangchu][] Sai
Nhận dữ liệu màu từ chuỗi gửi đến
Xuất mangnd[][] ra màn hình
Tt_dich Sai Tt_dich Sai Tt_dich bằng k bằng t bằng p Đúng Đúng Đúng Đứng vị trí củ Dịch trái Dịch phải Sai mangnd[] mangnd[] mangnd[]
Hình 4 6 Lưu đồ hiển thị nôị dung
Sau khi nhận dữ liệu từ ESP8266, vi điều khiển sẽ phân tích chuỗi dữ liệu Nếu vị trí mảng chữ thỏa mãn điều kiện lớn hơn 0 và nhỏ hơn 9, dữ liệu sẽ được đưa vào mảng nội dung để hiển thị Tiếp theo, vi điều khiển kiểm tra biến trạng thái dịch: nếu trạng thái là 't', mảng nội dung sẽ được dịch sang trái; nếu là 'p', mảng sẽ dịch sang phải; và nếu là 'k', vị trí sẽ giữ cố định.
Nhận dữ liệu từ ESP
Phân tích chuỗi dữ liệu Ảnh bằng 1 Đúng logokhoa
Sai Ảnh Sai Ảnh Sai Ảnh Sai Ảnh Sai Ảnh bằng 2 bằng 3 bằng 4 bằng 5 bằng 6 Đúng Đúng Đúng Đúng Đúng logospkt tdhspkt biendao bongda ruongdong
Hình 4 7 Lưu đồ hiển thị ảnh
Khi nhận dữ liệu từ ESP, tiến hành phân tích chuỗi dữ liệu Nếu biến ảnh bằng một, hiển thị 'logokhoa'; bằng hai, hiển thị 'logospkt'; bằng ba, hiển thị 'tdhspkt'; bằng bốn, hiển thị 'biendao'; bằng năm, hiển thị 'bongda'; và bằng sáu, hiển thị 'ruongdong' Nếu gamma được bật, hình ảnh sẽ được xử lý qua hàm gamma, giúp hiển thị rõ nét hơn so với khi không bật gamma Cuối cùng, hình ảnh sẽ được hiển thị trên bảng LED.
Bắt đầu Đọc dữ liệu từ ESP Đọc giờ phút giây từ chuỗi dữ liệu
Nếu giờ phút giây khác với giá trị ban đầu Đúng
Cấu hình giờ phút giây trên RTC
Thiết lập giá trị giờ, phút, giây Đọc vị trí cột trên chuỗi dữ liệu
Hiển thị đồng hồ Kết thúc
Hình 4 8 Lưu đồ điều khiển đồng hồ
Để cập nhật thời gian chính xác, tiến hành đọc chuỗi dữ liệu từ ESP, lấy giá trị giờ, phút và giây Nếu có sự thay đổi so với giá trị trước đó, cấu hình lại giờ, phút, giây trên RTC Cuối cùng, đọc dữ liệu vị trí hiển thị đồng hồ và hiển thị lên màn hình.
Bắt đầu Đọc dữ liệu từ ESP Gán giá trị cho pwmht Đọc dữ liệu độ sáng từ chuỗi dữ liệu
Giá trị PWM thay đổi Đúng
Sai Gán giá trị mới cho PWM
Vi điều khiển đầu tiên đọc dữ liệu từ ESP và gán giá trị mặc định cho pwmht Sau đó, nó đọc dữ liệu độ sáng từ chuỗi gửi về và so sánh với giá trị PWM trước đó Nếu giá trị này thay đổi, vi điều khiển sẽ cấu hình lại PWM và gán giá trị mới Cuối cùng, độ sáng của hiệu ứng hiển thị trên màn hình sẽ được điều chỉnh.
Bắt đầu Đọc chuỗi dữ liệu từ ESP Hiệu ứng nền bằng 1 Đúng Pháo hoa Sai Hiệu ứng nền bằng 3 Đúng
Trái tim Sai Kết thúc
Đọc chuỗi dữ liệu từ ESP, nếu biến hiệu ứng nền bằng một, hiển thị 'Pháo hoa'; nếu bằng ba, hiển thị 'Trái tim'.
Bắt đầu Đọc chuỗi dữ liệu từ ESP
Hiệu ứng khung bằng 1 Đúng khung1 Sai
Hình 4 11 Lưu đồ điều khiển hiệu ứng khung
Vi điều khiển sẽ đọc dữ liệu từ ESP và kiểm tra hiệu ứng; nếu hiệu ứng bằng một, nó sẽ hiển thị 'khung 1'.
Gán vị trí X và Y Trạng thái paint bằng false Đọc tọa độ được gửi từ ESP Đọc dữ liệu màu được gửi từ ESP
Vị trí X Sai Trạng thái tha hoặcY thay đổi tăng 1 Đúng
Trạng thái tha Gán vị trí mới cho X bằng 2 Gán vị trí mới cho Y
Gán vị trí Manghti[0] cho màu Đỏ Đúng
Gán vị trí Manghti[0] cho màu Trạng thái Trạng thái tha bằng 0
Xanh Sai paint bằng true Trạng thái paint bằng
Gán vị trí Manghti[0] cho màu false
Gán trạng thái paint bằng true
Gán dữ liệu màu, vị trí vào hàm MATRIX_line
Lưu đồ điều khiển paint bắt đầu bằng việc gán vị trí cho trục x và y cùng với trạng thái paint Sau đó, tọa độ và dữ liệu màu từ ESP được đọc và so sánh với vị trí trước đó Nếu có sự thay đổi, vị trí mới sẽ được gán cho trục x và y Tiếp theo, nếu trạng thái paint đúng, dữ liệu màu và vị trí sẽ được gán vào hàm Matrix_line để giải mã và hiển thị Nếu trạng thái paint sai, dữ liệu màu sẽ được lưu vào Manght[0] và trạng thái paint sẽ được gán lại là đúng, sau đó tiến hành giải mã để hiển thị Nếu không có sự thay đổi ở vị trí trục x và y, biến ‘tttha’ sẽ được tăng lên một đơn vị; nếu giá trị này bằng 2, nó sẽ được gán lại thành 0 và trạng thái paint sẽ trở thành sai Nếu ‘tttha’ không bằng 2, quá trình giải mã và hiển thị sẽ tiếp tục diễn ra.
Ttạng thái chơi bằng 0 Đúng
Uart[1] Sai bằng 0 Đúng Xóa màn hình
Vẽ khung trò chơi Uart[1] bằng Rotate tăng thêm 1
1 Biến Rotate lớn hơn hoặc bằng 3 Đúng
Rotate bằng 0 Sai Uart[1] bằng Đúng
Vị trí Y tăng thêm 1 Sai Uart[1] bằng 0
Uart[1] Sai Uart[1] bằng bằng Đúng Đúng
Vị trí X tăng Vị trí X thêm 1 giảm 1
Sai Uart[1] bằng Đúng Giữ nguyên vị Sai trí trục X Cấu hình khối theo vị trí x,y hình dạng khối,hướng xoay
Di chuyển khối xuống phía dưới và xếp vào vị trí 2
Kiểm tra hàng có kín các ô chưa Đúng
Xóa các biến vị trí, xoay về giá trị 0
Không xếp khối vào vị trí được nữa Đúng
In ra màn hình Game Over
Vẽ kín khung chữ nhật
Hình 4 13 Lưu đồ game TETRIS
Khi bắt đầu trò chơi TETRIS, màn hình sẽ hiển thị "TETRIS PRESS ANY KEY" và nhấn nút OK để khởi động Trò chơi sẽ tạo ra khung và các khối hình Nhấn nút OK trên màn hình điều khiển sẽ làm tăng biến Rotate lên một đơn vị, trong khi nhấn nút xuống sẽ tăng biến vị trí Y, giúp khối di chuyển xuống nhanh hơn Nhấn hai nút trái phải sẽ điều chỉnh biến vị trí X, còn nếu không nhấn, khối sẽ giữ nguyên vị trí và hướng Trò chơi sẽ kết thúc khi các khối đã xếp đầy khung và không còn chỗ cho khối mới.
Gán vị trí video vào biến tạm
Gán giá trị vị trí mới vào biến vị trí video
Nhận dữ liệu từ máy tính qua USB
Đầu tiên, gán vị trí trục x và y của video vào biến tạm, sau đó đọc vị trí mới và so sánh với vị trí cũ Nếu hai vị trí khác nhau, gán vị trí mới vào biến vị trí video Tiếp theo, xóa màn hình và nhận dữ liệu từ máy tính để giải mã và hiển thị video Nếu vị trí video không thay đổi, tiếp tục nhận dữ liệu từ máy tính và giải mã video để hiển thị.
Gán giá trị ADC Sai bằng 0 Đọc giá trị ADC Giá trị ADC thay đổi Đúng
Hiển thị các cột led Kết thúc
Vi điều khiển sẽ khởi tạo ADC để đọc giá trị điện áp từ tín hiệu âm thanh Nếu giá trị này khác với giá trị ban đầu, nó sẽ được đưa vào phân tích FFT Kết quả sẽ được hiển thị dưới dạng các cột LED, với chiều cao tương ứng với mức điện áp mà vi điều khiển đã đọc.
4.4.2 Phần mềm lập trình cho vi điều khiển a Phần mềm lập trình STM32Cube và Keil C
TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
4.5.1 Hướng dẫn sử dụng phần cứng
Bước 1: Cắm nguồn 220V để cấp nguồn cho hệ thống
Bước 2: Sử dụng điện thoại kết nối với Wifi ESPAP
4.5.2 Hướng dẫn sử dụng phần mềm
Bước 1: Kết nối Wifi ESPAP trên điện thoại Android.
Hình 4 31 Wifi của hệ thống
Bước 2: Mở logo ứng dụng DO_AN_TN trên điện thoại Android
Bước 3: Giao diện App Tùy theo nhu cầu người sử dụng muốn hiển thị Ví dụ ta muốn hiển thị chữ ta chọn Text trên màn hình
Hình 4 33 Giao diện màn hình chính
Bước 4: Lúc này hiện trên màn hình với giao diện như sau:
Hình 4 34 Giao diện của Text
Để hiển thị thông tin, người dùng cần nhập nội dung vào phần tương ứng và xác định vị trí hiển thị bằng cách chỉ định hàng (từ 0 đến 127) và cột (từ 0 đến 255) Để tạo màu sắc mong muốn, điều chỉnh ba màu cơ bản Red, Green, Blue theo tỷ lệ phù hợp Hệ thống hỗ trợ ba chế độ hiển thị: dịch trái, dịch phải và bình thường, cho phép chữ chạy từ phải qua trái hoặc ngược lại, hoặc hiển thị tĩnh Người dùng có thể chọn chế độ hiển thị theo nhu cầu và nhấn “Thực hiện” để áp dụng Để hiển thị nhiều chữ chạy trên nhiều hàng, lặp lại các bước đã hướng dẫn Để tắt hiển thị, nhấn “Clear” để xóa màn hình.
Khi muốn chơi game ta bấm chọn “Game Play” lúc này màn hình sẽ hiển thị như sau:
Hình 4 35 Giao diện Game Play
Chúng ta sẽ lựa chọn các game phù hợp như xếp hình và xe tăng, tùy theo sở thích của người chơi Game xếp hình sử dụng các nút điều khiển như “Trái”, “Phải” để di chuyển, nút xuống để tăng tốc độ và nút “OK” để thay đổi hướng của các khối Đối với game xe tăng, người chơi sử dụng các nút điều hướng để điều chỉnh hướng đi và nút “OK” để bắn Khi không muốn chơi nữa, người dùng chỉ cần bấm nút để thoát.
“clear1” để xóa màn hình.
Khi muốn hiển thị đồng hồ ta nhấn vào “CLOCK” trên màn hình chính, lúc này giao diện đồng hộ sẽ hiển thị như sau:
Hình 4 36 Giao diện điều khiển đồng hồ
Chúng ta cần điều chỉnh thời gian cho phù hợp với hiện tại bằng cách sử dụng thanh điều chỉnh dưới bảng đồng hồ Để hiển thị thời gian, hãy nhấn nút “BẬT”, và nếu muốn tắt hiển thị, chỉ cần nhấn nút “TẮT”.
Khi muốn sử dụng hiệu ứng paint ta nhấp vào biểu tượng paint giao diện hiện ra như sau:
Hiệu ứng Paint cho phép người dùng vẽ trực tiếp trên màn hình điện thoại, với các hình ảnh sẽ hiện lên bảng LED Ở góc phải màn hình có ba nút chọn màu để người dùng dễ dàng lựa chọn màu sắc mong muốn, cùng với nút clear giúp xóa toàn bộ màn hình khi cần thiết.
Hiệu ứng nháy theo nhạc cho phép các cột LED nhấp nháy tương ứng với biên độ tín hiệu âm thanh, tạo ra một trải nghiệm trực quan sống động Người dùng có thể dễ dàng điều chỉnh chế độ này thông qua hai nút ON và OFF, giúp bật hoặc tắt hiệu ứng nháy theo nhạc theo nhu cầu.
Hình 4 38 Chế độ nháy theo nhạc
Tương tự như thế ta sẽ sử dụng các hiệu ứng khác như độ sáng, hình ảnh,video….