Raspberry Pi LED Matrix

Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi với màn hình LED matrix. Cụ thể, chúng ta sẽ tìm hiểu:

Sau đó, việc tùy chỉnh code cho các LED matrix khác như 16x8, 64x8 và nhiều hơn nữa sẽ rất đơn giản.

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×FC-16 LED Matrix 32x8
1×FC-16 LED Matrix 8x8
1×Generic LED Matrix 8x8
1×Dây Jumper
1×Giắc Nguồn DC
1×Adapter Nguồn 5V cho Raspberry Pi
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về LED Matrix

Màn hình LED matrix thường được gọi là màn hình LED hoặc màn hình dot matrix.

LED matrix màn hình

LED Matrix có nhiều loại khác nhau. LED matrix dựa trên chip MAX7219 được sử dụng phổ biến với Raspberry Pi. Nó có những đặc điểm sau:

  • Một khối đơn lẻ bao gồm một đơn vị cơ bản của LED matrix, chứa một ma trận LED 8x8 (64 LED) và driver MAX7219.
  • Có hai loại khối có sẵn: module generic và module FC-16.
  • Bạn có thể tạo một LED matrix với một khối hoặc nhiều khối được kết nối theo chuỗi.
  • Các LED Matrix nhiều khối được chế tạo sẵn (ví dụ: 4-in-1, 8-in-1) cũng có sẵn để mua.
  • Ngoài ra, bạn có thể mua nhiều khối và đấu nối chúng lại để tạo thành một LED matrix với kích thước mong muốn.
  • Trong code Raspberry Pi, bạn sẽ cần khai báo kích thước của LED matrix mà bạn đang sử dụng.

Pinout của LED Matrix

LED matrix sơ đồ chân

LED Matrix được tạo thành từ một hoặc nhiều khối. Mỗi khối có hai nhóm chân:

  • Nhóm chân đầu vào:
    • VCC: kết nối với nguồn điện 5V.
    • GND: kết nối với đất (ground).
    • DIN: Chân dữ liệu, liên kết với chân GPIO10 (MOSI) của Raspberry Pi.
    • CS: Chip Select, liên kết với chân GPIO8 (SPI CE0) của Raspberry Pi.
    • CLK: Chân xung nhịp, liên kết với chân GPIO11 (SPI CLK) của Raspberry Pi.
  • Nhóm chân đầu ra:
    • VCC: kết nối với VCC trên module tiếp theo.
    • GND: kết nối với GND trên module tiếp theo.
    • DOUT: Data Out, liên kết với chân DIN của module tiếp theo.
    • CS: kết nối với CS trên module tiếp theo.
    • CLK: kết nối với CLK trên module tiếp theo.

Sơ Đồ Đấu Nối

Nếu LED matrix được tạo thành từ một khối đơn:

  • Kết nối nhóm chân đầu vào với Raspberry Pi
  • Để nhóm chân đầu ra không kết nối
Raspberry Pi 8x8 LED matrix fc-16 sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Raspberry Pi 8x8 LED matrix generic sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu LED matrix được chế tạo sẵn từ nhiều khối:

  • Kết nối nhóm chân đầu vào với Raspberry Pi
  • Để nhóm chân đầu ra không kết nối
Raspberry Pi LED matrix màn hình sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu LED matrix được tự tạo từ nhiều khối:

  • Kết nối nhóm chân đầu vào của khối đầu tiên với Raspberry Pi
  • Liên kết nhóm chân đầu ra của mỗi khối với nhóm chân đầu vào của khối tiếp theo
  • Để nhóm chân đầu ra của khối cuối cùng không kết nối
Raspberry Pi 32x8 LED matrix wiring fc-16 diagram

This image is created using Fritzing. Click to enlarge image

Vì Raspberry Pi được kết nối với LED matrix thông qua các chân SPI:

  • Chân GPIO9 (SCK) và GPIO11 (MOSI) của Raspberry Pi phải được sử dụng. Nếu bạn đang sử dụng bo mạch Raspberry Pi khác, hãy tham khảo tài liệu chính thức cho các chân SPI tương đương.
  • Chân GPIO8 (CS) có thể được thay đổi thành bất kỳ chân nào trên bo mạch Raspberry Pi. Hướng dẫn này sử dụng GPIO25 cho chân CS.

Raspberry Pi - Code LED Matrix

Code Raspberry Pi này dành cho màn hình LED matrix FC-16 32x8 với bốn khối. Nó có thể dễ dàng được điều chỉnh cho màn hình 8x8, 16x8, 64x8... bằng cách thay đổi hằng số BLOCK_NUM trong code.

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích khác cho Raspberry Pi trên Pi của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ như PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
  • Mới sử dụng Raspberry Pi? Hãy bắt đầu với hướng dẫn Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi thông qua SSH sử dụng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install luma.led_matrix
  • Tạo file script Python led_matrix.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-led-matrix from luma.led_matrix.device import max7219 from luma.core.interface.serial import spi, noop from luma.core.virtual import viewport, sevensegment from time import sleep CS_PIN = 25 # Replace with your actual CS pin BLOCK_NUM = 4 # Replace with your block number HEIGHT = 8 WIDTH = 8 * BLOCK_NUM # Define SPI interface serial = spi(port=0, device=0, gpio=noop(), cs=CS_PIN) # Define LED matrix device device = max7219(serial, cascaded=BLOCK_NUM, block_orientation=-90) # Define virtual device virtual = viewport(device, width=WIDTH, height=HEIGHT) # Create instance of sevensegment for text display ledMatrix = sevensegment(virtual) def clear_display(): ledMatrix.text = " " sleep(1) def display_text(text, alignment): ledMatrix.text = text ledMatrix.text_align = alignment sleep(2) try: while True: clear_display() display_text("Left", "left") display_text("Center", "center") display_text("Right", "right") clear_display() display_text("Invert", "center") sleep(2) ledMatrix.text = "1234" sleep(2) except KeyboardInterrupt: pass finally: device.cleanup()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 led_matrix.py
  • Kiểm tra LED matrix hiển thị văn bản.

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

Code Raspberry Pi LED Matrix – Cuộn Văn Bản

Nếu một thông điệp quá dài để hiển thị trên màn hình LED matrix, hiệu ứng cuộn văn bản có thể được sử dụng để in nó.

Code Raspberry Pi này minh họa cách cuộn một thông điệp trên màn hình LED matrix.

# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-led-matrix from luma.led_matrix.device import max7219 from luma.core.interface.serial import spi, noop from luma.core.virtual import viewport, sevensegment from luma.core.legacy import show_message from time import sleep CS_PIN = 25 # Replace with your actual CS pin BLOCK_NUM = 4 # Replace with your block number HEIGHT = 8 WIDTH = 8 * BLOCK_NUM # Define SPI interface serial = spi(port=0, device=0, gpio=noop(), cs=CS_PIN) # Define LED matrix device device = max7219(serial, cascaded=BLOCK_NUM, block_orientation=-90) # Define virtual device virtual = viewport(device, width=WIDTH, height=HEIGHT) # Create instance of sevensegment for text display ledMatrix = sevensegment(virtual) def clear_display(): ledMatrix.text = " " sleep(1) while True: if not device.is_animating(): ledMatrix.text = "Hello" show_message(device, ledMatrix.text, fill=None, font=None, scroll_delay=0.1) try: pass # Do other things if needed except KeyboardInterrupt: pass finally: device.cleanup()

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.