Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

1.1.6 LED-Punktmatrix

Einführung

Wie der Name schon sagt, handelt es sich bei einer LED-Punktmatrix um eine Matrix, die aus LEDs besteht. Das Aufleuchten und Abdunkeln der LEDs formt verschiedene Zeichen und Muster.

Benötigte Komponenten

Für dieses Projekt benötigen wir folgende Komponenten.

../_images/list_dot.png

Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

Sie können diese auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

LED Matrix Modul

KAUFEN

Schaltplan

T-Board Name

physical

wiringPi

BCM

SPIMOSI

Pin 19

12

MOSI

SPICE0

Pin 24

10

CE0

SPISCLK

Pin 23

14

SCLK

../_images/schematic_dot.png

Experimentelle Verfahren

Schritt 1: Schalten Sie die Schaltung.

../_images/1.1.6fritzing.png

Schritt 2: Aktivieren Sie das SPI, bevor Sie mit dem Experiment beginnen, siehe SPI-Konfiguration für Details.

Schritt 3: Installieren Sie das Luma.LED_Matrix-Modul.

Schritt 4: Verzeichnis wechseln.

cd ~/raphael-kit/python/

Schritt 5: Führt das Python-Skript 1.1.6_LedMatrix.py mit dem Python-Interpreter aus der virtuellen Umgebung my_env aus.

sudo ~/my_env/bin/python3 1.1.6_LedMatrix.py

Nachdem der Code ausgeführt wurde, zeigt die LED-Matrix für zwei Sekunden ein Rechteck an, dann für zwei Sekunden den Text ‚A‘ und scrollt schließlich, um den Text „Hallo, schön dich zu sehen!“ anzuzeigen.

Code

Bemerkung

Sie können den untenstehenden Code Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen. Bevor Sie das tun, müssen Sie zum Quellcodepfad wie raphael-kit/python gehen. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um den Effekt zu sehen.

from luma.core.interface.serial import spi, noop
from luma.core.render import canvas
from luma.core.virtual import viewport
from luma.led_matrix.device import max7219
from luma.core.legacy import text
from luma.core.legacy.font import proportional, CP437_FONT, LCD_FONT
import time

serial = spi(port=0, device=0, gpio=noop())
device = max7219(serial, rotate=1)
virtual = viewport(device, width=200, height=400)

def displayRectangle():
   with canvas(device) as draw:
      draw.rectangle(device.bounding_box, outline="white", fill="black")

def displayLetter():
   with canvas(device) as draw:
      text(draw, (0, 0), "A", fill="white", font=proportional(CP437_FONT))

def scrollToDisplayText():
   with canvas(virtual) as draw:
      text(draw, (0, 0), "Hello, Nice to meet you!", fill="white", font=proportional(CP437_FONT))

   for offset in range(150):
      virtual.set_position((offset,0))
      time.sleep(0.1)

def main():
   while True:
      displayRectangle()
      time.sleep(2)
      displayLetter()
      time.sleep(2)
      scrollToDisplayText()

def destroy():
   pass

if __name__ == '__main__':
   try:
      main()
   except KeyboardInterrupt:
      destroy()

Code-Erklärung

from luma.core.interface.serial import spi, noop
from luma.core.render import canvas
from luma.core.virtual import viewport
from luma.led_matrix.device import max7219
from luma.core.legacy import text
from luma.core.legacy.font import proportional, CP437_FONT, LCD_FONT
import time

Importieren der relevanten Bibliotheken. Dabei ist luma.core eine Komponentenbibliothek, die eine Pillow-kompatible Leinwand für Python 3 sowie andere Zeichenprimitiven und Textrendering-Funktionen bereitstellt, die kleine Displays auf Raspberry Pi und anderen Einplatinencomputern unterstützen. Sie können unter https://luma-core.readthedocs.io/en/latest/intro.html mehr darüber erfahren.

serial = spi(port=0, device=0, gpio=noop())
device = max7219(serial, rotate=1)

Initialisierung der Klasse luma.led_matrix.device.max7219.

Bemerkung

Wenn Sie die Anzeigerichtung der LED-Matrix ändern möchten, können Sie dies tun, indem Sie den Wert von rotate ändern, wobei 0 keine Rotation bedeutet, 1 eine Rotation im Uhrzeigersinn von 90°, 2 eine Rotation von 180° und 3 eine Rotation im Uhrzeigersinn von 270° bedeutet.

def displayRectangle():
    with canvas(device) as draw:
        draw.rectangle(device.bounding_box, outline="white", fill="black")

Anzeige eines hohlen Rechtecks im Randbereich der LED-Matrix. Ändern Sie den Wert von fill in white, um ein gefülltes Rechteck anzuzeigen.

def displayLetter():
    with canvas(device) as draw:
        text(draw, (0, 0), "A", fill="white", font=proportional(CP437_FONT))

Ein „A“ wird auf dem Koordinatenpunkt (0, 0) der LED-Matrix angezeigt, wobei CP437_FONT eine Schriftart ist, die für 8*8-Punktmatrix-Bildschirme geeignet ist.

virtual = viewport(device, width=200, height=400)

Mit einer einzelnen 8x8 LED-Matrix kann kein Textzeile angezeigt werden. Wir müssen die Methode luma.core.virtual.viewport verwenden, damit der Text durch den virtuellen Viewport gescrollt werden kann.

def scrollToDisplayText():
    with canvas(virtual) as draw:
        text(draw, (0, 0), "Hallo, schön dich zu treffen!", fill="white", font=proportional(CP437_FONT))

    for offset in range(150):
        virtual.set_position((offset,0))
        time.sleep(0.1)

scrollToDisplayText() implementiert „Hallo, schön dich zu treffen!“ als scrollenden Text auf der LED-Matrix.

Zunächst übergeben wir virtual als Argument an die Funktion canvas(), damit wir das virtuelle Fenster als aktuelles Anzeigefenster verwenden können. Danach zeigt die Funktion text() „Hallo, schön dich zu treffen!“ auf der LED-Matrix an.

Mit der For-Schleife verschieben wir das virtuelle Fenster in X-Richtung, so dass wir den Text „Hallo, schön dich zu treffen!“ scrollend sehen können.

Phänomen-Bild

../_images/1.1.6led_dot_matrix.JPG