Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
904,32 KB
Nội dung
TRƯỜNG ĐẠI HỌC KỸ THUẬT – CÔNG NGHỆ CẦN THƠ KHOA CƠ KHÍ ĐỒ ÁN VI ĐIỀU KHIỂN TẠO HIỆU ỨNG CHẠY CHỮ TRÊN LED MA TRẬN P10 CÁN BỘ HƯỚNG DẪN SINH VIÊN THỰC HIỆN Ths Đường Khánh Sơn Hồ Đắc Đặng Thông (1350322) Nguyễn Hữu Khánh (1800213) Phạm Trọng Nguyên (1800022) Ngành: ĐKTĐ0118 Cần Thơ – 2020 TRƯỜNG ĐẠI HỌC KỸ THUẬT – CÔNG NGHỆ CẦN THƠ KHOA CƠ KHÍ ĐỒ ÁN VI ĐIỀU KHIỂN TẠO HIỆU ỨNG CHẠY CHỮ TRÊN LED MA TRẬN P10 CÁN BỘ HƯỚNG DẪN SINH VIÊN THỰC HIỆN Ths Đường Khánh Sơn Hồ Đắc Đặng Thông (1350322) Nguyễn Hữu Khánh (1800213) Phạm Trọng Nguyên (1800022) Ngành: ĐKTĐ0118 Cần Thơ – 2020 MỤC LỤC CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU 1.1 Đặt vấn đề 1.2 Nội dung đề tài 1.3 Đối tượng nghiên cứu CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 LED ma trận phương pháp qu 2.1.1 2.1.2 2.2 Led ma trận P10 2.2.1 2.2.2 2.2.3 2.3 Giao thức SPI 2.4 Vi điều khiển Arduino Uno 2.4.1 2.4.2 2.5 Ngơn ngữ lập trình Arduino CHƯƠNG KẾT QUẢ THỰC HIỆN 3.1 Sơ đồ khối 3.2 Kết nối phần cứng 3.2.1 3.2.2 3.3 Viết chương trình Arduino U 3.3.1 3.3.2 i CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁP TRIỂN 4.1 Kết luận 4.1.1 4.1.2 4.2 Hướng pháp triển TÀI LIỆU THAM KHẢO ii DANH SÁCH HÌNH ẢNH 2.1 Sơ đồ chân IC ghi dịch 2.2 Giao tiếp SPI chế độ Master – Slave 2.3 Sơ đồ chân Arduino Uno 3.1 Sơ đồ khối 3.2 Sơ đồ kết nối module LED P10 với Arduino Uno (Nguồn: c com) iii DANH SÁCH BẢNG 2.1 Thông tin phần cứng Arduino Uno iv CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU 1.1 Đặt vấn đề Thông tin liên lạc vấn đề quan tâm xã hội Ngay từ ngày xưa, người biết vận dụng có sẵn để truyền tin lửa, âm thanh, dấu hiệu,… Ngày nay, với phát triển xã hội ngày có nhiều cách tiếp cận với thơng tin Ta biết thơng tin qua báo chí, truyền hình, mạng internet, qua pano, áp phích… Thơng tin cần phải truyền nhanh chóng, kịp thời phổ biến rộng rãi tồn xã hội Và việc thu thập thông tin kịp thời, xác yếu tố quan trọng thành công lĩnh vực Các thiết bị tựđộng điều khiển từ xa qua thiết bị chủ điều khiển trực tiếp qua hệ thống máy tính Việc sử dụng vi điều khiển để điều khiển hiển thị có nhiều ưu điểm mà phương pháp truyền thống panơ, áp phích khơng có việc điều chỉnh thông tin cách nhanh chóng cách thay đổi phần mềm Với lý trên, nhóm thực đề tài đưa cách thức phục vụ thông tin dùng quang báo Nội dung nghiên cứu đề tài tạo bảng quang báo ứng dụng việc hiển thị truyền thông nơi công cộng công ty, nhà xưởng, ngã tư báo hiệu,… Thế giới ngày phát triển lĩnh vực điều khiển cần phải mở rộng Việc ứng dụng mạng truyền thông công nghiệp vào sản xuất mang lại nhiều thuận lợi cho xã hội lồi người, thơng tin cập nhật nhanh chóng điều khiển cách xác 1.2 Nội dung đề tài • Nghiên cứu tìm phương án điều khiển xử lý liệu cho bảng led ma trận hiển thị • Thi cơng bảng quang báo hiển thị kích thước 16x32 điểm ảnh • Viết chương trình chạy chữ led ma trận 1.3 Đối tượng nghiên cứu • Phương pháp quét led lập trình vi điều khiển • Led ma trận P10 • Vi điều khiển Arduino Uno CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 LED ma trận phương pháp quét LED 2.1.1 LED ma trận LED ma trận bảng LED gồm m × n LED, cực âm LED nối chung với nhau, cực dương LED nối chung với 2.1.2 Phương pháp quét LED • Đầu tiên điều khiển tất số LED hàng cột đầu tiên, OFF tất LED • Tiếp tục điều khiển tất số LED hàng cột tiếp theo, OFF tất LED • Lặp lại trình hết hàng cột • Do tốc độ bật tắt nhanh mắc người có lưu ảnh nên tạo hình ảnh hồn chỉnh 2.2 Led ma trận P10 2.2.1 Cấu tạo module LED P10 Module LED P10 có cấu tạo gồm: • 10 IC ghi dịch 74HC595 • IC điệm dịng HM3214 • IC giải mã 74HC138 • Connector đầu vào Connector đầu 2.2.2 IC ghi dịch 75HC595 Nguyên lý hoạt động IC ghi dịch 74HC595: • Mơ tả chức chân: – Input: chân DS: đầu vào liệu nối tiếp Tại thời điểm đưa vào bit Hình 2.1: Sơ đồ chân IC ghi dịch – Output: từ chân Q0 − Q7 Xuất liệu chân OE tích cực mức thấp có xung tích cực sườn âm chân chốt ST_CP – Output – Enable: chân OE: chân cho phép tích cực mức thấp Khi mức cao khơng đầu cho phép ′ – SQH: chân Q7 : chân liệu nối tiếp Dùng để nối tiếp với IC 75HC595 khác, liệu truyền cho IC nhận đủ bit – Shift clock: chân SH_CP: có xung clock tích cực sườn dương bit dịch vào IC – Latch clock: chân ST_CP: xung chốt liệu Khi có xung clock tích cực sườn dương cho phép xuất liệu – Chiều dịch bit: từ Q0 → Q7 – Reset: chân MR: chân mức thấp liệu bị xóa • Ngun lý hoạt động: – Khi bit đưa vào chân DS, muốn đẩy bit vào ghi phải kích xung vào chân SH_CP (xung sườn dương từ lên 1) Làm vậy, ghi đủ bit – Dữ liệu bit ghi chưa thể xuất được, cần tạo xung lên chân ST_CP (xung sườn dương từ lên 1) ′ – Khi liệu bit số bit cịn dư đươc đưa đến chân Q7 Kết nối ′ chân Q7 với chân DS IC để mở rộng chân 2.2.3 Phương pháp điều khiển LED P10 • Chân CLK: đưa data vào chân IC ghi dịch • Chân LAT: Chân chốt data (đẩy data lưu IC ghi dịch ngồi LED) • Chân OE: Chân cho phép bảng LED sáng (OE = bảng LED phép sáng), OE = bảng LED tắt • Chân A, B: chân dùng để điều khiển quét LED 2.3 Giao thức SPI SPI (Serial Peripheral Bus) chuẩn truyền thông nối tiếp tốc độ cao hãng Motorola đề xuất Đây kiểu truyền thông Master – Slave, có chip Master điều phối q trình tuyền thông chip Slaves điều khiển Master truyền thơng xảy Master Slave SPI cách truyền song công (full duplex) nghĩa thời điểm trình truyền nhận xảy đồng thời SPI đơi gọi chuẩn truyền thơng “4 dây” có đường giao tiếp chuẩn SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) SS (Slave Select) Hình thể kết SPI chip Master chip Slave thơng qua đường Hình 2.2: Giao tiếp SPI chế độ Master – Slave • SCK: Xung giữ nhịp cho giao tiếp SPI, SPI chuẩn truyền đồng nên cần đường giữ nhịp, nhịp chân SCK báo bit liệu đến Đây điểm khác biệt với truyền thông không đồng mà biết chuẩn UART Sự tồn chân SCK giúp trình tuyền bị lỗi tốc độ truyền SPI đạt cao Xung nhịp tạo chip Master • MISO – Master Input/Slave Output: chip Master đường Input cịn chip Slave MISO lại Output MISO Master Slaves nối trực tiếp với • MOSI – Master Output/Slave Input: chip Master đường Output cịn chip Slave MOSI Input MOSI Master Slaves nối trực tiếp với • SS – Slave Select: SS đường chọn Slave cần giap tiếp, chip Slave đường SS mức cao không làm việc Nếu chip Master kéo đường SS Slave xuống mức thấp việc giao tiếp xảy Master Slave Chỉ có đường SS Slave có nhiều đường điều khiển SS Master, tùy thuộc vào thiết kế người dùng 2.4 Vi điều khiển Arduino Uno 2.4.1 Giới thiệu vi điều khiển Arduino Arduino bo mạch vi xử lý dùng để lập trình tương tác với thiết bị phần cứng cảm biến, động cơ, đèn thiết bị khác Arduino cung cấp môi trường phát triển ứng dụng dễ sử dụng với ngôn ngữ lập trình học nhanh chóng, giá thành thấp tính chất nguồn mở từ phần cứng tới phần mềm 2.4.2 Sơ đồ chân Arduino Uno Sơ đồ chân Arduino Uno: Hình 2.3 Arduino Uno sử dụng vi điều khiển Atmega328 Vi điều khiển Arduino Nano có 14 chân dùng xử lý tín hiệu số, chân xử lý tín hiệu analog, thạch anh dao động 16MHz (Bảng 2.1) 2.5 Ngơn ngữ lập trình Arduino Sử dụng ngơn ngữ lập trình C/C++ để viết chương trình cho Arduino Sử dụng cơng cụ lập trình VSCode PlatformIO để viết, biên dịch nạp chương trình cho Arduino Cấu trúc chương trình Arduino gồm thành phần sau: • Thư viện, thêm vào chương trình cú pháp: #include #include "Library.h" Hình 2.3: Sơ đồ chân Arduino Uno (Nguồn tham khảo hshop.vn) • Phần khai báo hằng, khai báo biến: #define PI 3.14 const PI = 3.14; int counter = 0; float number = 1.0; • Phần cài đặt (chỉ chạy lần chương trình khởi động): void setup() { } • Phần chương trình (vịng lặp vơ tận) void loop() { } Bảng 2.1: Thông tin phần cứng Arduino Uno Vi điều khiển Điện áp nguồn Điện áp đầu vào Số chân Digital I/O Số chân Analog Bộ nhớ Flash SRAM EEPROM Xung nhịp • Các chương trình con: void my_function_1() { } void my_function_2() { } Khi tạo project thành công với PlatformIO, có file tên platformio.ini, nội dung file: [env:uno] platform = atmelavr 3board = uno 4framework = arduino CHƯƠNG KẾT QUẢ THỰC HIỆN 3.1 Sơ đồ khối Thiết kế mạch Led chạy chữ gồm có thành phần (Hình 3.1): • Nguồn cấp cho mạch: sử dụng nguồn tổ ong có dịng lớn để cấp nguồn cho vi điều khiển module LED P10 hoạt động • Vi điều khiển Arduino Uno: điều khiển module Led P10 qua giao tiếp SPI • Module LED P10: hiển thị nội dung nhận từ vi điều khiển Module LED P10 Hình 3.1: Sơ đồ khối 3.2 Kết nối phần cứng 3.2.1 Phần cứng • Nguồn 5VDC/5A cấp nguồn cho module LED P10 (a) Nguồn tổ ong 5VDC • Module LED P10 (a) Mặt trước module LED P10 (b) Mặt sau module LED P10 • Vi điều khiển Arduino Uno (a) Vi điều khiển Arduino Uno • Dây nguồn, header nối nối module LED P10 Arduino Uno 10 3.2.2 Kết nối module LED P10 với Arduino Uno (a) Module LED P10 GND A B CLK SCKL DATA (b) Hình 3.2: Sơ đồ kết nối module LED P10 với Arduino Uno (Nguồn: circuitdigest.com) Lưu ý, kết nối theo thứ tự chân khai báo Bảng 3.2b để sử dụng thư viện freetronics/DMD không cần chỉnh sửa thư viện 3.3 Viết chương trình Arduino Uno điều khiển chạy chữ LED P10 Giao tiếp với module LED P10 thông qua giao thức SPI kỹ thuật quét LED 3.3.1 Thư viện Sử dụng hai thư viện sau để điều khiển LED P10 Arduino: https://github.com/PaulStoffregen/TimerOne.git https://github.com/freetronics/DMD.git 11 3.3.2 Chương trình điều khiển LED P10 Arduino Uno – Thay đổi font: thư viện DMD hỗ trợ số font sau: • Chương trình điều khiển chạy chữ: * System5x7 #include * Arial_14 #include #include #include #include * Arial_Black_16 * Arial_Black_16_ISO_8859_1 #define ROW #define COLUMN 10 #define FONT Arial_Black_16_ISO_8859_1 #define TIME_SPEED 45 – Tốc độ chạy chữ: 11 12 const char *TEXT = "Display Text On Module LED P10 With Arduino Uno"; #define TIME_SPEED 45 13 14 DMD led_module(ROW, COLUMN); 15 16 void scan_module() { led_module.scanDisplayBySPI(); } 17 18 void setup() { 19 Timer1.initialize(2000); 20 Timer1.attachInterrupt(scan_module); 21 led_module.clearScreen(true); 22 } 23 24 25 void loop() { led_module.selectFont(FONT); led_module.drawMarquee(TEXT, strlen(TEXT), 32 * ROW, 0); unsigned long start = millis(); 26 27 29 unsigned long timming = start; boolean flag = false; 30 while (!flag) { 28 if (timming + TIME_SPEED < millis()) { flag = led_module.stepMarquee(-1, 0); timming = millis(); 31 32 33 } 34 } 35 36 } • Một số tùy chỉnh: – Nội dung hiển thị: 12 const char *TEXT = "Display Text On P10 LED module With Arduino Uno"; 13 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁP TRIỂN 4.1 Kết luận 4.1.1 Kết đạt • Biết cách lập trình cho vi điều khiển Arduino Uno • Tạo hiệu ứng chạy chữ module LED ma trận P10 • Sử dụng thư viện có sẳn cộng đồng Arduino để phát triển ứng dụng 4.1.2 Hạn chế Chưa hiển thị ngôn ngữ tiếng Việt lên LED ma trận (thư viện freetronics/DMD chưa hỗ trợ) 4.2 Hướng pháp triển • Xây dựng mã hiển thị ngôn ngữ tiếng Việt lên LED ma trận tích hợp vào thư viện freetronics/DMD • Mở rộng thêm nhiều module LED ma trận để hiển thị nhiều hình ảnh khác, phức tạp 14 TÀI LIỆU THAM KHẢO Đường Khánh Sơn – Giáo trình Vi điều khiển, ĐH Kỹ Thuật – Công nghệ Cần Thơ Đào Nguyện – Tìm hiểu module LED ma trận P10 – Tự học iot, lập trình nhúng Cộng đồng Arduino Việt Name – Ngơn ngữ lập trình Arduino 15 ... • Vi? ??t chương trình chạy chữ led ma trận 1.3 Đối tượng nghiên cứu • Phương pháp qt led lập trình vi điều khiển • Led ma trận P10 • Vi điều khiển Arduino Uno CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 LED ma trận. .. THƠ KHOA CƠ KHÍ ĐỒ ÁN VI ĐIỀU KHIỂN TẠO HIỆU ỨNG CHẠY CHỮ TRÊN LED MA TRẬN P10 CÁN BỘ HƯỚNG DẪN SINH VI? ?N THỰC HIỆN Ths Đường Khánh Sơn Hồ Đắc Đặng Thông (1350322) Nguyễn Hữu Khánh (1800213) Phạm... cho vi điều khiển Arduino Uno • Tạo hiệu ứng chạy chữ module LED ma trận P10 • Sử dụng thư vi? ??n có sẳn cộng đồng Arduino để phát triển ứng dụng 4.1.2 Hạn chế Chưa hiển thị ngôn ngữ tiếng Vi? ??t