Mạch đèn LED nháy theo nhạc được sử dụng rộng rãi trong nhiều ứng dụng, như trang trí, biểu diễn âm nhạc, sân khấu, quảng cáo.. Nghiên cứu này có thể khám phá các phương pháp và công ngh
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN HỌC PHẦN LẬP TRÌNH HỆ THỐNG NHÚNG
MẠCH LED MATRIX NHÁY THEO NHẠC
Trang 2HÀ NỘI – 2023
MỤC LỤC
Trang 3TÓM TẮT
Bài báo cáo này tập trung vào việc tạo một hệ thống mạch đèn led nháy theo nhạc Trong bài báo cáo, nhóm nghiên cứu đã phân tích và hiểu cách thức hoạt động của mạch và tìm hiểu về các thành phần và chức năng của nó Sau đó, nhóm nghiên cứu đã thiết kế mạch có hiệu suất cao, nhằm nhận và phản ứng với tín hiệu âm thanh một cách chính xác và nhạy bén Nhóm đã tìm hiểu về các phương pháp và công nghệ để cải thiện hiệu suất của mạch
và tạo ra các hiệu ứng ánh sáng độc đáo và đa dạng
Trang 4CHƯƠNG I: GIỚI THIỆU TỔNG QUAN
1 Lý do nghiên cứu
Trong thời đại công nghiệp hóa hiện đại hóa hiện nay, chúng ta đang chứng kiến sự phát triển nhanh chóng của các ngành công nghệ Trong số các ngành công nghệ đang phát triển chúng ta không thể không nhắc đến mạch đèn LED Mạch đèn LED nháy theo nhạc được sử dụng rộng rãi trong nhiều ứng dụng, như trang trí, biểu diễn
âm nhạc, sân khấu, quảng cáo Mạch đèn LED nháy theo nhạc tạo ra hiệu ứng ánh sáng độc đáo và hấp dẫn Nghiên cứu về mạch này có thể giúp hiểu rõ hơn về cách thức hoạt động của mạch và cách tạo ra các hiệu ứng ánh sáng khác nhau Tính sáng tạo: Nghiên cứu mạch đèn LED nháy theo nhạc đòi hỏi sự sáng tạo trong việc thiết
kế và lập trình Nghiên cứu này có thể khám phá các phương pháp và công nghệ mới để tạo ra các hiệu ứng ánh sáng độc đáo và đáp ứng được âm nhạc Ngoài ra nghiên cứu mạch đèn LED nháy theo nhạc có thể cung cấp kiến thức về điện tử, lập trình và đồng thời cũng giúp rèn kỹ năng thiết kế mạch và lập trình Trong thực tế mạch đèn LED nháy theo nhạc đã được sử dụng rộng rãi, ví dụ như trong các thiết
bị âm thanh, đèn trang trí, và các sản phẩm điện tử khác Nghiên cứu về mạch này
có thể đóng góp vào việc phát triển các sản phẩm công nghệ mới
2 Mục tiêu nghiên cứu
Mục tiêu chính của dự án là nghiên cứu tập trung vào việc phân tích các thành phần
và chức năng của mạch, từ việc nhận tín hiệu âm thanh đến việc điều khiển đèn LED nháy theo nhạc Một mục tiêu quan trọng là thiết kế mạch có khả năng nhận và phản ứng với tín hiệu âm thanh một cách chính xác và nhạy bén Nghiên cứu này có thể tìm hiểu về các phương pháp và công nghệ để cải thiện hiệu suất của mạch Tạo
ra các hiệu ứng ánh sáng độc đáo và đa dạng: Mục tiêu này có thể tập trung vào việc tạo ra các hiệu ứng ánh sáng phù hợp với âm thanh, như nhấp nháy theo nhịp điệu, thay đổi màu sắc theo tần số âm thanh, hoặc tạo ra các hiệu ứng ánh sáng đồng bộ với âm nhạc Đánh giá và cải thiện hiệu suất của mạch: Mục tiêu này có thể tập trung vào việc đánh giá hiệu suất của mạch và tìm hiểu cách cải thiện nó, ví dụ như
Trang 5tối ưu hóa độ nhạy của mạch, giảm tiêu thụ năng lượng, hoặc tăng độ tin cậy và ổn định của mạch
3 Động cơ nghiên cứu
Theo suy nghĩ của nhóm em thì âm nhạc có tác dụng rất tốt với cuộc sống của con người, nó giúp cho chúng ta thư giãn đầu óc, ổn định tinh thần giảm stress học tập
và làm việc hiệu quả hơn Như nhà soạn nhạc Beethoven từng viết “Âm nhạc khiến tinh thần của con người bộc phát ra những đốm lửa” và sẽ hạnh phúc hơn nếu chúng
ta có thể kết hợp âm nhạc và ánh sáng Vì vậy, nhóm em đã có ý tưởng là làm mạch LED nháy theo nhạc để giúp mỗi người chúng ta có những phút giây thư giãn và thoải mái trong cuộc sống
4 Cấu trúc bài báo cáo
Bài báo cáo này sẽ được chia thành nhiều phần để cung cấp cái nhìn tổng quan về quy trình thiết kế và triển khai hệ thống Cụ thể, bài báo cáo sẽ bao gồm các phần sau: Giới thiệu, Nguyên lý hoạt động, Vật liệu và kết nối, Chương trình Arduino, Cài đặt và thử nghiệm, Kết quả và phân tích, Kết luận và Tài liệu tham khảo Chúng tôi hy vọng rằng bài báo cáo này sẽ cung cấp thông tin hữu ích và làm rõ cách cảm biến chuyển động và Arduino có thể được sử dụng để tạo ra một hệ thống thông minh và tiết kiệm năng lượng trong cuộc sống hàng ngày
Trang 6Chương II: PHƯƠNG PHÁP, CÁCH TIẾP CẬN ĐỀ TÀI
1 Giới thiệu mạch led nháy theo nhạc
2 Nguyên lý hoạt động
Led matrix sử dụng IC MAX7219 là một cách phổ biến để điều khiển nhiều LED 7-segment hoặc LED ma trận 8x8 Để làm cho Led matrix nháy theo nhạc, bạn cần thực hiện.Đầu tiên kết nối Led matrix và Arduino hoặc mạch điều khiển tương tự MAX7219 được kết nối với Arduino thông qua giao tiếp SPI Thông qua ba chân: DATA IN, LOAD CS, và CLOCK, bạn gửi dữ liệu đến MAX7219 để hiển thị trên Led matrix.Nhận tín hiệu âm thanh để nháy theo nhạc, bạn cần một nguồn tín hiệu
âm thanh như microphone hoặc cổng âm thanh từ thiết bị khác.Xử lý tín hiệu âm thanh dữ liệu âm thanh từ nguồn audio cần được xử lý để rút trích thông tin về độ mạnh của âm thanh tại mỗi thời điểm Bạn có thể sử dụng một mạch xử lý âm thanh như một bộ điều khiển DSP để thực hiện công việc này.Thực hiện phân tích âm thanh tại bước này, bạn có thể sử dụng phép biến đổi Fourier hoặc các phương pháp phân tích tín hiệu khác để chuyển đổi tín hiệu âm thanh thành dạng biểu đồ tần số hoặc độ mạnh của các tần số cụ thể.Điều khiển Led matrix dựa trên phân tích âm thanh dựa trên kết quả phân tích âm thanh, bạn có thể quyết định cách hiển thị dữ liệu trên Led matrix Ví dụ, bạn có thể thay đổi màu sắc, độ sáng hoặc vị trí của LED trên ma trận dựa trên thông tin về âm thanh.Lặp lại quá trình quá trình này sẽ được lặp lại liên tục để liên tục cập nhật hiển thị trên Led matrix dựa trên âm thanh đầu vào
3 Vật liệu kết nối
Thành phần bắt buộc
Arduino Nano
Mô-đun hiển thị ma trận điểm MAX7219 (8×32)
Cảm biến âm thanh
Dây kết nối
Trang 7Nguồn điện 5V
Giới thiệu về các bộ phận của bảng thông báo không dây Hiển thị ma trận điểm
Ma trận LED có sẵn trên thị trường với nhiều màu sắc khác nhau như màu đơn, màu kép và màu RGB Chúng cũng có sẵn ở các kích thước khác nhau như 5×7, 8×8, 16×16, 8×32, 32×32, v.v
Màn hình ma trận LED 8 × 32 này là vô số 4 Màn hình ma trận đơn được kết nối nội bộ Các màn hình này cũng có khả năng tách biệt với nhau vì mọi mô-đun đều mang cùng một chip Maxim MAX7219 và có thể được kết nối với cùng một kết nối nguồn và dữ liệu Đó là lý do tại sao nếu bất kỳ màn hình nào bị hỏng, chúng sẽ dễ dàng được thay thế
Trang 8Chip điều khiển LED MAX7219 Màn hình ma trận này có thể được điều khiển theo hai cách Một là cách song song trong đó dữ liệu song song được gửi đến từng hàng hoặc cột Cách thứ hai là cách nối tiếp trong đó dữ liệu được gửi nối tiếp và IC được sử dụng để chuyển đổi dữ liệu nối tiếp này thành dữ liệu song song
MAX7219 là trình điều khiển hiển thị cực âm chung với đầu vào nối tiếp và đầu ra song song Nó được sử dụng để kết nối bộ vi xử lý và bộ vi điều khiển với 64 đèn LED riêng lẻ Ma trận LED 8×8 được kết nối với MAX 7219 Dữ liệu đầu vào được nhận từ bo mạch Arduino đến MAX7219
Kết nối mạch hiển thị quang phổ âm thanh
Kết nối mạch hoàn chỉnh để giao tiếp với Màn hình ma trận điểm LED 32×8 và cảm biến âm thanh với Arduino Nano được mô tả bên dưới
Cả Màn hình ma trận điểm và cảm biến âm thanh đều đang sử dụng nguồn điện 5V
từ chân đầu ra Arduino Nano 5V Nhưng bạn có thể sử dụng nguồn điện bên ngoài
để cung cấp dòng điện tốt hơn Chân dữ liệu Analog của cảm biến âm thanh được kết nối với chân A0 của Arduino Nano
Cảm biến âm thanh là một loại module được sử dụng để nhận biết âm thanh Nói chung, module này được sử dụng để phát hiện cường độ của âm thanh Các ứng dụng
Trang 9của module này chủ yếu bao gồm công tắc, bảo mật, và giám sát Độ chính xác của cảm biến này có thể được thay đổi để dễ sử dụng
MẠCH ARDUINO
Chương trình kết nối
#include <arduinoFFT.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
MD_MAX72XX disp = MD_MAX72XX(MD_MAX72XX::FC16_HW, 10, 4);
arduinoFFT FFT = arduinoFFT();
double realComponent[64];
double imagComponent[64];
int spectralHeight[] = {0b00000000, 0b10000000, 0b11000000,
0b11100000, 0b11110000, 0b11111000,
0b11111100, 0b11111110, 0b11111111
Trang 10int index, c, value;
void setup()
{
disp.begin();
Serial.begin(9600);
}
void loop()
{
int sensitivity = map(analogRead(A6), 0, 1023, 50, 100);
Serial.println (analogRead(A6));
for (int i = 0; i < 64; i++)
{
realComponent[i] = analogRead(A0) / sensitivity;
imagComponent[i] = 0;
}
FFT.Windowing(realComponent, 64, FFT_WIN_TYP_HAMMING, FFT_FORWARD); FFT.Compute(realComponent, imagComponent, 64, FFT_FORWARD);
FFT.ComplexToMagnitude(realComponent, imagComponent, 64);
for (int i = 0; i < 32; i++)
{
realComponent[i] = constrain(realComponent[i], 0, 80);
realComponent[i] = map(realComponent[i], 0, 80, 0, 8);
index = realComponent[i];
value = spectralHeight[index];
c = 31 - i;
disp.setColumn(c, value);
}
}
GIẢI THÍCH CODE
Trang 11 Mã bạn đưa ra có một số thành phần quan trọng như sử dụng thư viện arduinoFFT, MD_MAX72xx, và SPI để điều khiển một dải đèn LED 8x8 và thực hiện phân tích biến đổi Fourier cho tín hiệu đầu vào từ cổng analog và hiển thị kết quả lên dải đèn LED Dưới đây là giải thích từng phần của mã:
#include: Đây là các câu lệnh để bao gồm các thư viện cần thiết arduinoFFT được sử dụng để thực hiện phân tích biến đổi Fourier, MD_MAX72xx để điều khiển dải đèn LED,
và SPI là giao thức liên quan đến giao tiếp ngoại vi
MD_MAX72XX disp = MD_MAX72XX(MD_MAX72XX::FC16_HW, 10, 4): Khởi tạo một đối tượng disp từ thư viện MD_MAX72xx để điều khiển dải đèn LED Đối tượng này được khởi tạo để sử dụng phần cứng FC16_HW với đường dẫn kết nối đèn LED thông qua chân 10 (DATA_IN) và chân 4 (LOAD_CS)
arduinoFFT FFT = arduinoFFT(): Khởi tạo một đối tượng FFT từ thư viện arduinoFFT để thực hiện phân tích biến đổi Fourier
double realComponent[64]; double imagComponent[64];: Khai báo hai mảng realComponent và imagComponent để lưu trữ phần thực và ảo của dữ liệu đầu vào Có 64 phần tử trong mỗi mảng, tương ứng với dải tần số được phân tích
int spectralHeight[]: Khai báo một mảng spectralHeight chứa giá trị để vẽ đồ thị tín hiệu lên dải đèn LED Mảng này được sử dụng để hiển thị mức cao của tần số tương ứng trên đèn LED
int index, c, value: Khai báo các biến index, c, và value để sử dụng trong vòng lặp sau đó
void setup(): Hàm setup() được gọi một lần khi bắt đầu chương trình Trong hàm này:
disp.begin() được gọi để khởi tạo dải đèn LED
Serial.begin(9600) được sử dụng để bắt đầu giao tiếp serial với tốc độ baud 9600
Trang 12void loop(): Hàm loop() chứa mã chương trình chính và được thực thi lặp đi lặp lại Trong hàm này:
sensitivity được tính dựa trên giá trị đọc từ cổng analog A6, được ánh xạ từ 0-1023 sang 50-100 Giá trị này được sử dụng để điều chỉnh độ nhạy của đầu vào
Dữ liệu từ cổng analog A0 được đọc và lưu vào mảng realComponent với điều chỉnh độ nhạy
Sau đó, dữ liệu trong realComponent được chuẩn bị và tính toán phân tích biến đổi Fourier
Kết quả được hiển thị lên dải đèn LED thông qua việc ánh xạ giá trị của realComponent sang spectralHeight và hiển thị trên các cột của dải đèn LED tương ứng với mức cao của tần số
4 Kết quả phân tích
Trang 13TÀI LIỆU THAM KHẢO
Trang 16HƯỚNG DẪN Báo cáo bài tập lớn học phần
1 Hình thức của báo cáo tổng kết bài tập lớn học phần
1.1 Báo cáo phải được trình bày ngắn gọn, rõ ràng, mạch lạc, sạch sẽ, không được tẩy xóa, có đánh số trang, đánh số bảng biểu, hình vẽ, đồ thị
1.2 Khổ giấy A4 (210 x 297 mm);
1.3 Số trang từ 20 trang đến 25 trang (không tính mục lục, tài liệu tham khảo và phụ lục); phông chữ Time New Roman, cỡ chữ 13- 14; dãn dòng: 1,3 - 1,5 line; lề trái 3 cm; lề phải,
lề trên, lề dưới: 2 cm
1.4 Số thứ tự của trang ở chính giữa và phía trên trang giấy
1.5 Không gạch dưới các từ, câu trong báo cáo tổng kết, không viết lời cảm ơn
2 Báo cáo tổng kết đề tài được trình bày theo trình tự sau
2.1 Trang bìa (Hình1); (in bìa xanh)(không đánh số trang)
2.2 Mục lục (trong mục lục bắt đầu danh mục bảng biểu sẽ đánh số trang là i, danh mục hình
vẽ là ii, danh mục các chữ viết tắt là ii, sau đó từ trang mở đầu mới đánh số trang là 1,
và tất cả đánh dấu trang trên giữa đầu trang giấy)
2.3 Danh mục bảng biểu: Bảng phải đánh số thứ tự và có tiêu đề Bảng, số thứ tự và tiêu đề bảng để cỡ chữ 13-14 Bảng phải có trích dẫn nguồn gốc rõ ràng, chính xác (trích nguồn
để chữ thường, nghiêng, căn phải) Tiêu đề đặt phía trên bảng, in đậm, nghiêng và được căn giữa
2.4 Danh mục sơ đồ, hình vẽ: Hình phải đánh số thứ tự và có tiêu đề Tiêu đề để cỡ chữ 13-14 Hình phải có trích dẫn nguồn gốc rõ ràng, chính xác Tiêu đề đặt phía dưới hình, in đậm, nghiêng và được căn giữa
2.5 Danh mục những từ viết tắt (xếp theo thứ tự bảng chữ cái);
2.6 Mở đầu: Giới thiệu tóm tắt về đề tài đang thực hiện
Thời gian thực hiện: tháng (từ tháng … năm đến tháng … năm …)
Nhóm sinh viên gồm:
Trang 171 Nguyễn Văn A
2 Nguyễn Thị B
Giảng viên hướng dẫn: ………
Dự kiến sản phẩm:
- Báo cáo bài tập lớn học phần:
- Hệ thống …
2.7 Nội dung báo cáo gồm:
Chương 1 Tổng quan về vấn đề nghiên cứu
- Giới thiệu, phân tích những nội dung nghiên cứu và thực hiện về:
+ Hệ thống nhúng
+ Lập trình hệ thống nhúng: công cụ và ngôn ngữ
+ Hệ thống đang nghiên cứu và thực hiện
+ Board nhúng và các cảm biến sử dụng trong hệ thống
Chương 2 Lập kế hoạch thực hiện, phân tích đánh giá hệ thống cần xây dựng
- Xây dựng kế hoạch thực hiện bài tập lớn học phần
Lập bảng kế hoạch thực hiện (Thời gian thực hiện, tiến độ thực hiện, kết quả) có thể thống
kê theo từng thành viên hoặc theo cả nhóm
- Xác định hệ thống cần được xây dựng (xác định bài toán cần thực hiện)
- Phân tích hệ thống cần được xây dựng
Chương 3 Xây dựng hệ thống
- Xây dựng hệ thống với các thiết bị vật lý
- Xây dựng phần mềm điều khiển hệ thống
- Vận hành thử nghiệm hệ thống và kết quả thử nghiệm
2.8 Kết luận và kiến nghị:
Những nội dung đã thực hiện:
Những nội dung chưa thực hiện:
Những khó khăn, vướng mắc (nếu có)
Trang 18Hướng giải quyết (nếu có)
Ứng dụng/sử dụng trong thực tiễn (nếu có)
2.9 Tài liệu tham khảo chỉ bao gồm các tài liệu được trích dẫn, sử dụng và đề cập tới để nghiên cứu và bàn luận trong báo cáo (được sắp xếp theo thứ tự bảng chữ cái); được trình bày theo trình tự: văn bản pháp qui; giáo trình, báo, tạp chí; bài viết của các tác giả; tài liệu trên trang thông tin điện tử… (và khi đưa lên trích dẫn trong báo cáo sẽ để ký hiệu theo số thứ tự của TLTK đó trong danh mục, ví dụ [1])
- Tài liệu tham khảo được xếp riêng theo từng ngôn ngữ (Việt, Anh, Pháp, Đức, Nga, Trung, Nhật, …) Các tài liệu bằng tiếng nước ngoài phải giữ nguyên văn, không phiên âm, không dịch,
kể cả tài liệu bằng tiếng Trung Quốc, Nhật… (đối với những tài liệu bằng ngôn ngữ còn ít người biết có thể thêm phần dịch tiếng Việt đi kém theo mỗi tài liệu)
- Tài liệu tham khảo xếp theo thứ tự ABC theo họ tên tác giả theo thông lệ của từng nước
+ Tác giả là người nưới ngoài: xếp thứ tự ABC theo họ
+ Tác giả là người Việt Nam: xếp theo thứ tự ABC theo tên nhưng vẫn giữ nguyên thứ tự thông thường của tên người Việt Nam, không đảo tên lên trước họ
+ Tài liệu không có tên tác giả thì xếp theo thứ tự ABC từ đầu của tên cơ quan ban hành báo cáo hay ấn phẩm, ví dụ: Tổng cục Thống kê xếp vào vần T, Bộ Giáo dục và Đào tạo xếp vào vần B, v.v…
- Tài liệu tham khảo là sách, luận án, báo cáo phải ghi đầy đủ các thông tin sau:
+ Tên các tác giả hoặc cơ quan ban hành (không có dấu ngăn cách)
+ (năm xuất bản), (đặt trong ngoặc đơn, dấu phẩy sau ngoặc đơn)
+ Tên sách, luận án hoặc báo cáo (in nghiêng, dấy phẩy cuối tên)
+ nhà xuất bản, (dấu phẩy cuối tên nhà xuất bản)
+ nơi xuất bản, (dấu chấm kết thúc tài liệu tham khảo)
(xem ví dụ trang tài liệu tham khảo số 2, 3, 4, 23, 30, 31, 32, 33)
- Tài liệu tham khảo là bài báo trong tạp chí, bài trong một cuốn sách… ghi đầy đủ các thông tin sau:
+ Tên các tác giả (không có dấu ngăn cách)