Immagini e animazioni con led-image-viewer

Led-image-viewer è un eseguibile di esempio che consente di visualizzare immagini sul display lcd.

Provate a scaricare ad esempio questa gif animata (per 4 pannelli):

E lanciate l'animazione con il seguente comando:

sudo ./led-image-viewer -c4 -b50 pesci.gif

Oppure scaricare questa immagine jpg

E visualizzatela con il seguente comando:

sudo ./led-image-viewer -c4 -b50 eyes.jpg

Scaricare questa immagine png con sfondo trasparente

E visualizzatela con il seguente comando:

sudo ./led-image-viewer -c4 -b50 g.png

Generazione GIF animate da Keynote

Per creare le animazioni d'esempio ho usato Keynote su Mac. Questi sono i passaggi necessari per farlo.

Creare l'animazione in un formato proporzionale gestibile da Keynote.

Ad esempio per un pannello composto da una riga di 4 moduli pari 128x32 pixel, su Keynote andrà fatta un'animazione da 1024x256. Sotto questa misura Keynote non è in grado di lavorare. Il formato dell'animazione si può settare dal pannello Document, Slide size Custom 1024x256.

Esportare l'animazione come video QuickTime

Selezionare il formato di esportazione Custom 1024x256.

Trasformare il video in gif animata

Per poter visualizzare l'animazione sul pannello a led con il software sviluppato da Henner Zeller bisogna convertire il file video in una gif animata di dimensioni pari alla risoluzione del pannello da usare.

Per fare questo io ho usato ffmpeg, una utility molto versatilte e popolare disponibile sotto Linux. Occorre usare una release molto recente di ffmpeg in quanto bisogna sfruttare una funzione di filtro di ffmpeg disponibile solo su versioni recenti.

Quella che ho usato io è quella disponibile sull'ultima release di Linux Ubuntu, la 15.10, ed è la versione 2.7.5 da installare con il comando sudo apt-get install ffmpeg

Dato che il formato gif funziona con un pallette di colori massima da 256, per creare un'animazione con i colori simili all'originale occorre eseguire usare una sequenza di comandi ffmpeg per estrarre una pallette dal video originale con i colori più vicini possibili a quelli effettivamente usati per poi riapplicarla nella conversione.

La spiegazione dettagliata di questo processo è descritta su questo link:

#!/bin/sh

palette="palette.png"
filters="fps=30,scale=128:-1:flags=lanczos"
ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2

Oltre a convertire il file, loscript effettua anche un downscale dell'immagine a 128 pixel di larghezza.

Salvate questo file in una directory Linux:

Rendetelo eseguibile con il comando:

$ chmod +x m4vtogif.sh

E lanciate la conversione con il comando:

$ ./m4vtogif.sh pesci.m4v pesci.gif

Compilazione ffmpeg su Raspberry

Per poter convertire direttamente su Raspberry i file video generati da Keynote o altri editor video è possibile compilare ffmpeg in modo da poterlo lanciare direttamente sulla Raspberry.

La procedura di compilazione messa e punto e provata da Alessio è la seguente:

cd /usr/src
sudo git clone git://git.videolan.org/x264
cd x264
sudo ./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
sudo make -j4
sudo make install

cd /usr/src
sudo git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
sudo make -j4
sudo make install

File utilizzati

Di seguito i file usati per generare l'esempio di animazione dei pesci a 128x32 pixel. Adatto per un pannello da 4 moduli su singola linea

The TanzoLab Project

Il TanzoLab è una iniziativa senza fini di lucro, nata da un'idea di Sergio Tanzilli socio fondatore di Acme Systems srl nel Novembre 2015, per trasferire ad appassionati di elettronica e informatica, professionisti e aziende nel settore, le conoscenze necessarie per poter creare prodotti embedded adatti per la produzione industriale.

Le attività del TanzoLab si svolgono ogni mercoledi sera, salvo casi speciali, dalle ore 18:30 presso i locali della Acme Systems srl e consistono in:

  • Talk monotematici a cura di professionisti in vari settori tecnologici
  • Workshop pratici su elettronica embedded, produzione e informatica
  • Progettazione e realizzazione di nuovi prodotti embedded per l'IT

Le attività vengono coordinate tramite questo sito, in cui vengono pubblicati tutti i lavori svolti o in via di sviluppo, e tramite un gruppo Telegram con cui per interagire direttamente via chat con gli altri membri.