ARM07 - Maticový LED zobrazovač

Možný bodový zisk 3+2+3 b
Vzorový program ARM07_LED.Matrix.zip
Vzorový program - rozšíření ARM07_LED.Matrix.zip

Zadání a kritéria

  • Navrhněte v jazyce C program ovládající maticový displej s 8×8 LEDkami
  • Na displeji zobrazte jeden z obrázků níže, 'X' značí svítící LED, případně si vymyslete vlastní tvary
  • Vykreslování na displej bude řídit časovač. Periodu obnovení zvolte takovou, aby se displej jevil statický tj. min 50 Hz na celý displej.

 XXXXXXXX        -----X--        XXXXX---        XX------
 X------X        ----XXX-        XXX--X--        X--XX---
 X------X        XXXX---X        XXX---X-        XX-X----
 X------X        X----X-X        X------X        X--XX-X-
 X------X        X------X        X------X        X--X--X-
 X------X        X-XX---X        -X----X-        ---XX-X-
 X------X        X-XX---X        --X--X--        ------X-
 XXXXXXXX        XXXXXXXX        ---XX---        ------XX

Při volbě pinů zkontrolujte, zda-li jsou volné. Například k pinu PA5, který může být použit jako SCK pro SPI1, je již připojena LED1. Po připojení pinu ke vstupu DIN desky bude LEDkou limitováno napětí na přibližně 2 V (záleží na pull-up odporu), což je pod minimální úrovní logické jedničky a deska se zobrazovačem tak nebude reagovat.

Rozšíření A

  • Základní program
  • Krátkým stiskem USER tlačítka (B1) budete přepínat mezi obrázky (1 b)
  • Dlouhým stiskem USER tlačítka aktivujte automatické přepínání mezi obrázky (1 b)
    • Přepínání deaktivujete následovným stiskem tlačítka (dlouhý nebo krátký)
Pro snadnější detekci krátkých a dlouhých stisků můžete využít Input Capture módu některého z časovačů. Tlačítko USER sice není připojené k žádnému časovači, ale můžete ke vstupu některého časovače připojit propojkou.

Rozšíření B

  • Rozšíření A
  • Přepínání obrázku bude animované. Obrázek se začne posouvat a prázdné místo doplněno pixely z dalšího obrázku (jako v zobrazovače v MHD). (1 b)
  • Přidejte ovládání pomocí UART (1 b)
  • Umožněte vložit nový obrázek nebo přepsat stávající. (1 b)
  • Navrhněte vlastní API pro příjem dat. Například:
    • Následující obrázek n<lf> (znak 'n' následovaný klávesou enter/znakem nového řádku)
    • Zapni animaci a<lf>
    • Nahraj obrázek uXXXXXXXXX——XX–…–XXXXXXXXX<lf> (znak 'u' následován 64 znaky s hodnotou pixelu).

Popis vzorového řešení

  • Pinout: MATRIX — Nucleo
    • VCC — 5 V
    • GND — GND
    • DIN — PA7/D11
    • CS — PB6/D10
    • CLK — PB3/D3
  • Ovládání
    • User Button (B1)
      • Krátký stisk — přepni na další obrázek
      • Dlouhý stisk — zapni/vypni automatické přepínání
    • Uart (115200n8)
      • h<lf> nápověda k ovládání
      • a<lf> zapni/vypni animování změny obrázku
      • n<lf> přepni na další obrázek
      • uIMG<lf> nahraj obrázek, u následováno 64 znaky bitmapy obrázku IMG, X nebo x značí rozsvícený pixel, jakýkoliv jiný znak značí zhasnutý pixel
courses/b2m37mam/homeworks/b_hw07.txt · Last modified: 2025/01/03 08:13 by krskajo1