You are on page 1of 20

TRƯỜ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


HÀ NỘI – 2023

MỤC LỤC
TÓ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.
CHƯƠ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ư
tố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.
Chươ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
Breadboard
Nguồ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ế.
Chip đ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.
MẠCH CẢM BIẾN ÂM THANH KY-037
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
củ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
};
int 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


 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.
void 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
TÀI LIỆU THAM KHẢO
HƯỚ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:
TT Họ và tên Lớp
1 Nguyễn Văn A
2 Nguyễn Thị B
3 …..

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ó)
Hướ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)
+ (năm công bố), (đặt trong ngoặc đơn, dấu phẩy sau ngoặc đơn)
+ “tên bài báo”, (đặt trong ngặc kép, không in nghiêng, dấu phẩy cuối tên)
+ Tên tạp chí hoặc tên sách, (in nghiêng, dấu phẩy cuối tên)
+ tập (không có dấu ngăn cách)
+ (số), (đặt trong ngoặc đơn, dấu phẩy sau ngoặc đơn)
+ Các số trang, (gạch ngang giữa hai chữ số, dấu chấm kết thúc)

TÀI LIỆU THAM KHẢO


Tiếng Việt
1. Nguyễn Văn A (2009), Giáo trình quản trị tài chính, Nhà xuất bản Thống kê, Hà Nội.
2. Bộ Công thương (2010), Báo cáo tổng kết 5 năm…., Hà Nội.
3. Trần Sơn Hải (2011), Phát triển nguồn nhân lực ngành du lịch khu vực duyên hải Nam Trung
Bộ và Tây Nguyên, Luận án Tiến sĩ Quản lý hành chính công, Học viện Hành chính, Hà Nội.

4. Lê Xuân H & Nguyễn Thị B (2009), “Tổng quan kinh tế Việt Nam năm 2010 và khuyến
nghị chính sách cho năm 2011”, Tạp chí Y, số 150, tr. 7-13.
5. Nguyễn Hữu Lam (2007), Quản lý tri thức - Một xu hướng của quản trị kinh doanh hiện đại.
Http://saga.vn/Kynangquanly/Lythuyetquantri/6869.saga. Truy cập ngày 28/10/2008.
6. Thủ tướng chính phủ (2013), Quyết định phê duyệt “ Quy hoạch tổng thể phát triển du lịch Việt
Nam đến năm 2020, tầm nhìn đến năm 2030”, Quyết định 201/QĐ-TTg ngày 22 tháng 01 năm
2013.
Tiếng Anh
7. Anderson J.E. (1985), The Relative Inefficiency of Quota, The Cheese Case, American
Economic Review, 75(1), pp. 178- 90.
8. Borkakati R. P., Virmani S. S. (1997), Genetics of thermosensitive genic male sterility in Rice,
Euphytica 88, pp. 1-7.
9. Central Statistical Oraganisation (1995), Statistical Year Book, Beijing.

You might also like