Tải bản đầy đủ (.docx) (28 trang)

BẢNG QUẢNG cáo TIẾNG VIỆT (có code và mạch in)

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 (729.92 KB, 28 trang )

BẢNG QUẢNG CÁO TIẾNG VIỆT


MỤC LỤC


DANH MỤC CÁC HÌNH VẼ


DANH MỤC CÁC BẢNG BIỂU


DANH MỤC CÁC TỪ VIẾT TẮT
RISC

Reduced Instructions Set Computer

LED

Light emitting diode

UART

Universal Asynchronous Receiver – Transmitter


ĐỒ ÁN 2
Trang 6/24

CHƯƠNG 1.


GIỚI THIỆU ĐỀ TÀI

1.1 TỔNG QUAN:
- Thiết kế hệ thống hiển thị led ma trận.
- Hiển thị led ma trận bằng chữ tiếng việt có dấu.
- Cho phép người dùng thay đỗi chữ trên bảng mã led bằng Bluetooth điều khiển
từ xa thông qua app arduino.
- Hệ thống ổn định và hiển thị đúng yêu cầu người dùng.
1.2 YÊU CẦU ĐỀ TÀI:
- Thiết kế bảng quảng cáo sử dụng LED ma trận,hiển thị tiếng việt.
- Thông tin hiển thị được gởi từ smartphone thông qua bluetooth.
- Xây dựng thư viện hiển thị tiếng việt.
1.3 ĐỊNH HƯỚNG THỰC HIỆN:
- Thiết lập sơ đồ khối cho hệ thống
- Tìm hiểu quá trình quét led ma trận và truyền nhận bluetooth, nguyên lý hoạt
động.
- Tìm hiểu các linh kiện liên quan.
- Hoàn thành code cho phần lập trình và thi công phần cứng.

CHƯƠNG 1.

THIẾT KẾ HỆ THỐNG

1.4 SƠ ĐỒ KHỐI HỆ THỐNG

Khối
Nguồn
Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú



ĐỒ ÁN 2
Trang 7/24

Truyền

Arduino

bluetooth

Khối vi

Khối hiển

điều khiển

thị(LED ma

app

trận P10)

1.1.1 Giải thích sơ đồ
Kết nối hệ thống LED ma trận dựa trên sơ đồ khối, cấp nguồn cho khối vi điều
khiển và khối hiển thị. Đầu tiên khối Arduino app truyền dữ liệu từ smartphone đến
khối vi điều khiển thông qua module bluetooth, sau đó tương tác với khối điều khiển
bằng các chân RX, TX, nếu dữ liệu khối điểu khiển nhận được đúng với dữ liệu đã
được lưu trữ trong thư viện thì khối điều khiển sẽ tương tác với khối hiển thị, khối
hiển thị sẽ hiển thị dữ liệu lên bảng mã LED P10 hiển thị dữ liệu mong muốn.


1.1.2

Chọn linh kiện cho các khối

- Khối arduino app: chọn phần mềm trên smartphone.
Bảng 3-1: BẢNG BỘ KÍ TỰ ĐẶC BIỆT ĐỂ HIỂN THỊ LED MA TRẬN
P10
Kí tự truyền
!
$
(


#
%
&
Bảng quảng cáo tiếng việt

Kí tự hiển thị
â
ă
ơ
Ô
Ư
Á
À
Ã



SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 8/24

*
)
+
,
.
/
:
;
<
=
>
\
?
@
[
]
^
`









Ú
Ù

Ũ
Ĩ
Í
Ì


È
É


- Khối nguồn: 1 nguồn phát 5Vdc.
- Khối vi điều khiển: 1 vi điều khiển ATmega328P
- Khối hiển thị : Bảng led ma trận P10 16x32.
1.5 TÌM HIỂU LINH KIỆN
1.1.3 Module Bluetooth HC-05:

Hình 2-1: MODULE BLUETOOTH HC-05 [1]

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 9/24


Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 10/24

1.1.1.1

Các thông số kỹ thuật

-

Điện thế hoạt động của UART 3.3-5V.
Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động

-

truyền nhận bình thường 8 mA.
Baudrate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200,

-

38400, 57600, 115200.
Kích thước của module chính: 28 mm x 15 mm x 2.35 mm.
Dải tần sóng hoạt động: 2.4GHz.
Độ phân giải: 500dpi.
Chuẩn giao tiếp: UART (TTL logical logic)

Bluetooth protocol: Bluetooth Specification v2.0+EDRo.

Các chế độ hoạt động
HC-05 có hai chế độ hoạt động là Command Mode và Data Mode. Ở chế độ
1.1.1.2

Command Mode ta có thể giao tiếp với module thông qua cổng serial trên module
bằng tập lệnh AT quen thuộc. Ở chế độ Data Mode module có thể truyền nhận dữ
liệu tới module bluetooth khác. Chân KEY dùng để chuyển đổi qua lại giữa hai chế
độ này. Có hai cách để bạn có thể chuyển module hoạt động trong chế độ Data
Mode (đọc tài liệu Tiếng Việt trên một số Web thấy chỗ này thường bị viết sai)
-

Nếu đưa chân này lên mức logic cao trước khi cấp nguồn module sẽ đưa
vào chế độ Command Mode với baudrate mặc định 38400. Chế độ này
khá hữu ích khi bạn không biết baudrate trong module được thiết lập ở
tốc độ bao nhiêu. Khi chuyển sang chế độ này đèn led trên module sẽ
nháy chậm (khoảng 2s) và ngược lại khi chân KEY nối với mức logic
thấp trước khi cấp nguồn module sẽ hoạt động chế độ Data Mode.

-

Nếu module đang hoạt động ở chế Data Mode để có thể đưa module vào
hoạt động ở chế độ Command Mode bạn đưa chân KEY lên mức cao.
Lúc này module sẽ vào chế độ Command Mode nhưng với tốc độ Baud
Rate được bạn thiết lập lần cuối cùng. Vì thế bạn phải biết baudrate hiện
tại của thiết bị để có thể tương tác được với nó. Chú ý nếu module của
bạn chưa thiết lập lại lần nào thì mặc định của nó như sau:

Bảng quảng cáo tiếng việt


SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 11/24

-

Baudrate 9600, data 8 bits, stop bits 1, parity : none, handshake: none

-

Passkey: 1234

-

Device Name: HC-05

Ở chế độ Data Mode HC-05 có thể hoạt động như một master hoặc slave tùy vào
việc bạn cấu hình (riêng HC-06 bạn chỉ có thể cấu hình ở chế độ SLAVE)


Ở chế độ SLAVE: bạn cần thiết lập kết nối từ smartphone, laptop, usb
bluetooth để dò tìm module sau đó pair với mã PIN là 1234. Sau khi pair
thành công, bạn đã có 1 cổng serial từ xa hoạt động ở baud rate 9600.



Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1

module bluetooth HC-06, usb bluetooth, bluetooth của laptop...) và tiến hành
pair chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone.
Sơ đồ chân HC-05:
KEY: Chân này để chọn chế độ hoạt động AT Mode hoặc Data Mode.

1.1.1.3


VCC chân này có thể cấp nguồn từ 3.6V đến 6V bên trong module đã có một
ic nguồn chuyển về điện áp 3.3V và cấp cho IC BC417.


GND nối với chân nguồn GND



TXD,RXD đây là hai chân UART để giao tiếp module hoạt động ở mức logic
3.3V



STATE các bạn chỉ cần thả nổi và không cần quan tâm đến chân này.
Tập lệnh AT của Module Bluetooth HC-05:
AT: Lệnh test, nó sẽ trả về OK nếu module đã hoạt động ở Command Mode

1.1.1.4

AT+VERSION? :trả về firmware hiện tại của module
AT+UART=9600,0,0 ( thiết lập baudrate 9600,1 bit stop, no parity)
Các lệnh ở chế độ Master:


Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 12/24

AT+RMAAD : ngắt kết nối với các thiết bị đã ghép
AT+ROLE=1 : đặt là module ở master
AT+RESET: reset lại thiết bị
AT+CMODE=0: Cho phép kết nối với bất kì địa chỉ nào
AT+INQM=0,5,5: Dừng tìm kiếm thiết bị khi đã tìm được 5 thiết bị hoặc
sau 5s
AT+PSWD=1234 Set Pin cho thiết bị
AT+INQ: Bắt đầu tìm kiếm thiết bị để ghép nối
Sau lệnh này một loạt các thiết bị tìm thấy được hiện thị. Định ra kết quả
sau lệnh này như sau

INQ:address,type,signal

Phần địa chỉ (address) sẽ có định dạng như sau: 0123:4:567890. Để sử
dụng địa chỉ này trong các lệnh tiếp theo ta phải thay dấu “:” thành “,”
0123:4:567890 -> 0123,4,5678
AT+PAIR=<address>,<timeout> : Đặt timeout(s) khi kết nối với 1 địa chỉ
slave
AT+LINK=<address> Kết nối với slave

Các lệnh ở chế độ Slave:

AT+ORGL: Reset lại cài đặt mặc định
AT+RMAAD: Xóa mọi thiết bị đã ghép nối
AT+ROLE=0: Đặt là chế độ SLAVE
AT+ADDR: Hiển thị địa chỉ của SLAVE
Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 13/24

1.1.4 Led ma trận P10 16x32:

Hình 2-2: LED MA TRẬN P10 [3]
-

Các thông số kĩ thuật Led ma trận P10:
Kích thước module-p10 : 160 * 320 mm
Khoảng cách điểm ảnh : 10mm ( tính từ tâm bóng này đến tâm bóng

-

kia )
Số lượng điểm ảnh trên một tấm module p10 : 512 led
Số lượng tấm module trên 1 m2 là 20 tấm Led
Màu sắc hiển thị : Đỏ
Điện áp hoạt động: điện áp 1 chiều 5V-DC
Dòng điện tiêu thụ tính trên 1 tấm module: 2,5 A
Công suất tiêu thụ tối đa tính trên 1 tấm module: 12,5 W

Khoảng cách nhìn tốt nhất >=5m

1.1.1.5

1.1.1.6

Nguyên lý hoạt động:

Hình 2-3: SƠ ĐỒ KẾT NỐI IC 74HC595 TRONG LED MA TRẬN P10 [2]

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 14/24

-

Module 16x32 đơn sắc có 16 hàng và 32 cột,có 16 con 74hc595 là ic

-

ghi dịch 8 bit mắc nối tiếp nhau.
Tất cả các chân anot của mỗi hàng được nối chung vào nhau , được cấp

-

điện qua Mofet và ic 74hc138.

4 con 74hc595 trên cùng phụ trách bật tắt 4 hàng led trên cùng là
1,2,3,4. cụ thể con 1 bật tắt 8 led đầu tiên,con 2 bật tắt 8 led tiếp,con 3

-

bật tắt 8 led tiếp theo,con 3 bật tắt 8 led cuối cùng.
4 con 74hc595 tếp theo phụ trách bật tắt 4 hàng led là 5,6,7,8. cụ thể
con 5 bật tắt 8 led đầu tiên,con 6 bật tắt 8 led tiếp theo ,con 7 bật tắt 8

-

led tiếp theo,con 8 bật tắt 8 led cuối cùng.
4 con 74hc595 tếp theo phụ trách bật tắt 4 hàng led là 9,10,11,12. cụ thể
con 9 bật tắt 8 led đầu tiên,con 10 bật tắt 8 led tiếp theo ,con 11 bật tắt 8

-

led tiếp theo,con 12 bật tắt 8 led cuối cùng.
4 con 74hc595 cuối cùng phụ trách bật tắt 4 hàng led là 13,14,15,16. cụ
thể con 13 bật tắt 8 led đầu tiên,con 14 bật tắt 8 led tiếp theo ,con 15 bật
tắt 8 led tiếp theo,con 16 bật tắt 8 led cuối cùng.

1.1.1.7

Các chân điều khiển

Hình 2-4: SƠ ĐỒ KẾT NỐI CHÂN LED MA TRẬN P10 [3]
-

Tín hiệu OE : tích cực mức logic cao (5V) cho phép chốt hàng ( hàng

tương ứng với 2 tín hiệu A,B được nối đất )

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 15/24

-

Tín hiệu chọn hàng : A,B là 2 đường tín hiệu cho phép chọn hàng hiển thị
Tín hiệu CLK : Tín hiệu cho phép chốt dữ liệu ra cột .
Tín hiệu SCK : 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.

1.1.5 Vi điều khiển ATmega328P-PU

Hình 2-5: VI ĐIIỀU KHIỂN ATEMEGA328-PU [4]
Atmega328 là một chíp vi điều khiển được sản xuất bời hãng Atmel thuộc
họ MegaAVR có sức mạnh hơn hẳn Atmega8. Atmega 328 là một bộ vi điều

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 16/24


khiển 8 bít dựa trên kiến trúc RISC bộ nhớ chương trình 32KB ISP flash có thể
ghi xóa hàng nghìn lần, 1KB EEPROM, một bộ nhớ RAM vô cùng lớn trong
thế giới vi xử lý 8 bít (2KB SRAM)

Hình 2-6: Sơ đồ chân của vi điều khiển ATmega328 [5]

Với 23 chân có thể sử dụng cho các kết nối vào hoặc ra i/O, 32 thanh ghi, 3
bộ timer/counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector
ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C. Ngoài ra có thể sử
dụng bộ biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới 8 kênh, khả năng
lập trình được watchdog timer, hoạt động với 5 chế độ nguồn, có thể sử dụng
tới 6 kênh điều chế độ rộng xung (PWM), hỗ trợ bootloader.
Atemega328 có khả năng hoạt động trong một dải điện áp rộng (1.8V –
5.5V), tốc độ thực thi (thông lượng) 1MIPS trên 1MHz.

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 17/24

Các thông số vi điều khiển Atemega328P:
-

Kiến trúc: AVR 8 bit

-


Xung nhịp lớn nhất: 20MHz

-

Bộ nhớ EEPROM: 1KB

-

Bộ nhớ RAM: 2KB

-

Bộ nhớ chương trình FLASH: 32 KB

-

Điện áp hoạt động: 1.8V đến 5.5V

-

Số kênh xung PWM: 6 kênh (1 timer 2 kênh)

-

Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit

CHƯƠNG 2.

THIẾT KẾ CHI TIẾT


1.6 THIẾT KẾ MẠCH LAYOUT
1.1.6 Mạch nguồn:

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 18/24

Hình 3-1: Layout mạch nguồn 5v

1.1.7 Mạch khối xử lý:

Hình 3-2: Layout mạch xử lý chính

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 19/24

1.7 THIẾT KẾ MẠCH IN:
1.1.8 Mạch nguồn:

Hình 3-3: Mạch in mạch nguồn 5v


1.1.9 Mạch khối xử lý:

Hình 3-4: Mạch in mạch xử lý chính

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 20/24

1.8 GIẢI THÍCH HOẠT ĐỘNG:
Ban đầu khởi động hệ thống nguồn cấp nguồn cho khối vi điều khiển và khối
hiển thị là led ma trận P10 16x32. Tiếp đến điều khiển Arduino app truyền dữ liệu từ
smartphone đến khối vi điều khiển Atemega thông qua module bluetooth, sau đó
tương tác với khối điều khiển bằng các chân RX, TX, nếu dữ liệu khối điểu khiển
Atemega nhận được đúng với dữ liệu đã được lưu trữ trong thư viện thì khối điều
khiển sẽ tương tác với khối hiển thị P10, khối hiển thị led ma trận P10 sẽ lấy dữ liệu
thư viện tiếng việt đã được nạp vào Atemega để hiển thị lên led ma trận P10 với dòng
chữ mong muốn của người dùng..

CHƯƠNG 3.

THI CÔNG MẠCH

1.9 YÊU CẦU
- Tìm hiểu về vi điều khiển ATmega328P-PU.
-


Tìm hiểu về led ma trận P10 16x32.

-

Xây dựng thư viện hiển thị tiếng việt.

-

Tìm hiểu module Bluetooth HC-05.

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 21/24

-

Lắp ráp và thi công mạch.

-

Viết chương trình điều khiển.

1.10 KẾT QUẢ THI CÔNG
Sau quá trình thi công, mạch chạy đảm bảo yêu cầu của đề tài được giao, hệ
thống chạy ỗn định hiển thị led rõ, truyền nhận dữ liệu đảm bảo yêu cầu của đề

tài.

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 22/24

CHƯƠNG 4.

KẾT LUẬN

1.11 KẾT LUÂN VỀ ĐỀ TÀI
Kết quả thu được trong suốt quá trình thực hiện đề tài:
-

Hoàn thành thiết kế và thi công mạch, mạch còn thiếu sót nhưng đã đáp ứng
chạy đúng yêu cầu đề tài được giao.

-

Sản phẩm được hoàn thành có thể hiển thị tiếng việt trong bảng quảng cáo led
thuận tiện việc thay đỗi chữ mà không cần phải thiết kế lại phần cứng,….

Nhược điểm:
-

Hệ thống kí tự còn ít và chưa đẹp mắt cho người xem, hạn chế về mặt quy

mô.
1.12 HƯỚNG PHÁT TRIỂN
Đề tài còn nhiều hạn chế về chuyên môn và khá sơ sài vì thiếu thời gian và

kiến thức nên cần phát triển về nhiều mặt như là: tạo mã font đẹp mắt ưa nhìn
hơn, bộ kí tự đầy đủ để thuận tiện cho người dùng.
Em hi vọng sau thành công bước đầu của đề tài mong quý thầy cô ủng hộ và
góp ý chân thành để đề tài có thể hoàn thiện hơn về sau có thể đóng góp cho cộng
đồng.

TÀI LIỆU THAM KHẢO

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 23/24

NGUỒN HÌNH ẢNH
1 hshop.com.vn
2 arduinovn.com
3 mcu.banlinhkien.vn
4 Quantrimang.com
5 Mualinhkien.vn
6 google.com

Bảng quảng cáo tiếng việt


SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 24/24

PHỤ LỤC A
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include "SystemFont5x7.h"

//Fire up the DMD library as dmd
#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);
#define max_char 100
char message[max_char];
char r_char;
byte index = 0;
int i;

/*-------------------------------------------------------------------------------------Interrupt handler for Timer1 (TimerOne) driven DMD refresh scanning,
this gets
called at the period set in Timer1.initialize();
--------------------------------------------------------------------------------------*/
void ScanDMD()
{
dmd.scanDisplayBySPI();
}


Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


ĐỒ ÁN 2
Trang 25/24

/*-------------------------------------------------------------------------------------setup
Called by the Arduino architecture before the main loop begins
--------------------------------------------------------------------------------------*/
void setup(void)
{
Timer1.initialize( 3000 );
Timer1.attachInterrupt( ScanDMD );
dmd.clearScreen( true );
Serial.begin(9600);
}
/*-------------------------------------------------------------------------------------loop
Arduino architecture main loop
--------------------------------------------------------------------------------------*/
void loop(void)
{
if(Serial.available()){
for(i=0; i<99; i++){
message[i] = '\0';
}
index=0;
}

while(Serial.available() > 0){
if(index < (max_char-1))
{
r_char = Serial.read();
message[index] = r_char;

Bảng quảng cáo tiếng việt

SVTH: Hồ Văn Anh Tú


×