Tải bản đầy đủ (.pdf) (20 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (687.57 KB, 20 trang )

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. Ngồ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 7segment 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 ngồ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 tố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 tố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 ngồi phải giữ ngun 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.





×