Longan nano: RISC-V s prťavým displejom - prehrávanie videosekvencie
Malé nič, vhodné ako lapač prachu na poličku.
EdizonTN, 16.11.2019-21:00

Tak vlastne, pre displej som sa ulakomil na celý kit.

Kit vyprodukovali v čínskej manufaktúre Sipeed, ponúka ho Seeed Studio za cenu 4.90 USD, ale za dopravu pýtali ďaľších 5 USD, tak som použil aliexpress. Tam bol v ponuke (daný obchodník ho už neponúka) za smiešnych 7 USD s dopravou zadarmo a tak, aby som ušetril pár šušňov, ulakomil som sa.
Na ali sa dá nájsť stále, len si treba dať pozor - niektorí ho ponúkajú bez displeja.

Kit teda prišiel a ja, plný očakávania z kvality displeja, som sa hneď rozbehol vyskúšať ho. Predpokladal som, že nejaká demo aplikácia na ňom bude.

No uzemnil ma USB konektor na kite. Samozrejme som si nepreveril, aký konektor výrobca použil a on tam bol USB-C.
A ja fakt v dielni nemám jediný USB-C kábel!

Problém vyriešil miestny predajca držiakov na mobil, ktorý mi tento kábel predal za smiešnych 7 Eur.
Aspoň bol v peknej krabičke...

Ďalší šok bol po zapojení. Demo aplikácia na kite síce bola, no čítala grafické dáta z mikro SD karty (nie je súčasť dodávky), ale demo dáta boli v čierno-bielom prevedení... hajzli.

No a tak nastúpil proces generovania vlastných grafických dát.


  1. DEMO firmware
    Kit Longan nano obsahuje aplikáciu, ktorá po spustení hľadá na karte dva binárne súbory:
    - logo.bin
    - bmp.bin

    Súbor logo.bin obsahuje logo výrobcu Sipeed, síce v červenej farbe ale aj tak, nič moc.
    Po spustení sa toto logo zobrazí na krátky čas na displeji a následne sa začne prehrávať sekvencia obrázkov zo súboru bmp.bin.
    Naozaj sa jedná o obrázky bmp, ktoré sú spakované v jednom súbore.
    Prehráva sa vlastne animácia bad_apple - neviem či má názov niečo naznačiť, alebo je to nejaká ich tradičná skazka.

    Firmware je písaný v akomsi platformio prostredí (používa fatfs od ChaN-a) ktoré sa mi nepodarilo rozbehať, aj keď teda píšu že stačí pár klikov na myšku. Asi mám inú myšku.

    Nastal teda čas pre plán B: skúsiť vygenerovať vlastný bmp.bin súbor.

  2. Dokumentácia
    No hrôza.
    Čítanie rozsypaného čaju mi zatiaľ nejde, takže google translátor dostal zabrať. V angličtine totiž toho moc nie je.
    Stránky s wiki popisom sú tu, lenže práve popis súborov s grafikou tam nefunguje.
    Treba sa prepnúť na východoázijské nárečie.

    Z toho som vyextrahoval postup.


  3. Tvorba sekvenčného súboru z prehrávaného videa
    Vopred upozorňujem, že PC (používam Windows) musí mať nainštalovaný python interpreter.

    Ako som už spomenul, Longan nano dokáže zobrazovať bmp súbory. Ich rýchlou zmenou navodzuje pocit prehrávania videa (nie, zvukový výstup doska nemá).
    Vygenerovať takúto sekvenciu obrázkov je možné jednoduchým zachytávaním obrazovky počas prehrávania a následným zbalením do jednoho binárneho súboru.

    Postup.
    1. PotPlayer - pre začiatok, si treba stiahnúť a nahodiť tento mediálny prehrávač a otvoriť obľúbené video, ktoré ma byť zobrazené na 0.96 palcovom displeji s rozlíšením 160x80 pixelov (no, na p-éčko je to fakt malý displej).
      - Po spustení prehrávača, treba pomocou CTRL+G - "Consecutive Image Capturer" - nastaviť ukladanie zachytených obrázkov videa do súborov.
      Potrebné nastavenie: Formát BMP, rozmer: 160x80. Maximálny čas prehrávania: podľa frekvencie zachytávania, pričom maximálny čas by mal byť 219 sekúnd (t.j. 2190 snímok každých 100ms)
      - Spustiť prehrávanie videa a následne spustiť capturer.
      Po dosiahnutí nastaveného počtu zachytených snímkov, nasleduje ich úprava na požadovanú farebnú hĺbku.

    2. potrebný je program XNViewMP, ktorý dokáže hromadne meniť vlastnosti obrázkov
      - Takže, najskôr treba nasmerovat XnViewMP na adresár so zachytenými obrázkami.
      - Pomocou CTR+U otvoriť hromadnú konverziu.
      - Nastaviť VSTUP: zmeniť zotriedenie tak, aby prvý snímok bol navrchu.
      - OPERÁCIE: pridať operáciu "zmeniť farebnú hĺbku" a nastaviť na 24 bitov.
      - VÝSTUP: určiť výstupný adresár. Názov súboru nastaviť na # (číslované súbory).
      - A spustiť.
      Vo výstupnm adresári sa objavia zachytené obrazovky s názvami 1.bmp až xx.bmp (podľa toho, koľko bolo vstupných).

      Zachytávanie v linuxe
      1. ffmpeg -i inputvideo.mkv -s 160x80 -pix_fmt bgr24 thumb%04d.bmp -hide_banner






    3. Nasleduje spakovanie do jedného binárneho súboru. K tomu je k dispozícii zbalený archív s tromi python skript súbormi (ha - pre toto treba python na počítači!).
      Tieto skripty rozbaliť a nakopírovať do adresára s vygenerovanými a skonvertovanými bmp súbormi.
      - V súbore genhex.py je potrebné zmeniť počet opakovní for cyklu v riadku "while num <= xxxx:" na počet, ktorý zodpovedá poslednému názvu obrázku (xxx zmeniť na číslo).
      - cez command line spustiť skript genhex.py
      - výsledný súbor bmp.bin už len stačí nakopírovať na SD kartu do hlavného adresára.

      A v linuxe
      Upraviť genhex.py:
      1. os.system("python bmp2hex.py -kbin thumb{0:04}.bmp".format(num))



    4. v hlavnom adresári musí byť aj súbor s logom (logo.bin). Pôvodný sa dá použiť tento.


      Po zasunútí karty do Longan nano dosky a pripojení USB-C kábla k počítaču (teraz iba pre napájanie) vidno výsledok (1100 zachyteným obrázkov).
      https://youtu.be/1aanJGTd3_Y




  4. Tvorba sekvenčného súboru z vytvorenej animácie
    Taktiež som bol zvedavý, ako budú vypadať pohyblivé obrázky vytvorené z mojej animácie.
    1. Na tento účel je potrebný Synfyg studio (Open Source)
      Po stiahnutí a spustení, som vytvoril krátku animáciu. Hlavne mi išlo o zobrazenie farebnej škály, tak mením farbu pozadiu textu.
    2. Vytvorenú animáciu som exportoval do bmp (program priamo uložil sekvenciu bmp obrázkov - jupijé).
    3. V skripte genhex.py som upravil riadok:
      1. os.system("python.exe bmp2hex.py -kbin {0}.bmp".format(num))

      na
      1. os.system("python.exe bmp2hex.py -kbin {0}{1:04d}.bmp".format("nazovobrazkov.",num))

      Úprava bola potrebná, pretože vstupné súbory mali trošku neočakávaný formát číslovania.
    4. Vygenerovany bmp.bin bol prenesený na sd kartu.

      Výsledok:
      https://youtu.be/EVIbLVxEF9Y




Samozrejme, vďaka kvalite mojeho snímacieho zariadenia, nie je kvalita obrazovky na jútrubke príliš vidno.
No pri okometrickom pozorovaní, je kvalita farieb a pozorovacie uhly tohto malinkého displeja výborná.

Inak, napadla ma neskutočná blbosť čo s kitom spraviť.....

Download materiálov k Longan nano.


Edit 16.11.2019
Andy poskytol postup odskúšaný pod linuxom, je dopísaný v článku. A samozrejme video z jeho tvorby (viz nižšie).
Ďakujem Andy.




tento článok je z mikroZONE
( https://mikrozone.sk/pluginy/content/content.php?content.147 )