Markdown source

#Gestione pannelli a led RGB con Raspberry


<div class="row">
	<div class="col-md-9">
		<div class="text-success lead">
		Appunti sul funzionamento dei pannelli a Led RGB usando Raspberry Pi model B
		ed il software rpi-rgb-led-matrix di Henner Zeller
		</div>
	</div>
	<div class="col-md-3">
		<a href="https://github.com/hzeller/rpi-rgb-led-matrix">
		<img src="./henner.jpg">
		</a>
	</div>
</div>

<img src="./banner.jpg" title="Esempi di pannelli a 4 moduli">

## Cosa si può fare rpi-rgb-led-matrix

Rpi-rgb-led-matrix è un progetto creato da Henner Zeller che consente di pilotare dei
pannelli RGB a led direttamente dai pin di I/O della Raspberry Pi senza 
dover usare nessun ulteriore controller.

Con questo sistema si possono pilotare, a detta dell'autore, fino a tre righe
di 12 pannelli ognuna con una Raspberry Pi 2 Model B.

Quello che si può visualizzare sono immagini statiche, gif animate, scritte e grafica dinamiche. 
Non è possibile mandare video. Per i video occorre dell'hardware aggiuntivo di cui discuteremo in 
un altro articolo.

Tutti gli schemi elettrici e la documentazione per pilotare pannelli
è descritta sul repository GitHub di Henner Zeller disponibile su questo
indirizzo:

* [rpi-rgb-led-matrix](https://github.com/hzeller/rpi-rgb-led-matrix)

## Cosa serve per provare in pratica

* Un PC (Linux o Windows) o un Mac
* Una Raspberry Pi model B (meglio se di tipo 2)
* Una microSD da almeno 2GB almeno classe 4
* Una alimentatore per Raspberry
* Una alimentatore per Pannello RGB
* Almeno un pannello RGB con relativi cavetti
* Una connessione di rete

E' possibile acquistare buona parte del materiale elencato in fondo a questo articolo. ad
eccezione dell'adattatore tra il connerrore Raspberry ed il connettore del 
pannello RGB che andrà filato a mano.

## Come funziona un pannello RGB 32x32

<img class="float"  src="./ledpanel_p6.jpg"/>

I pannelli RGB hanno un connettore di ingresso a 16 pin dove 
inviare i dati da visualizzare ed un connettore di uscita a 16 pin 
dove inviare i dati per il pannello successivo.

Più pannelli possono essere messi in cascata e connessi tra loro tramite
cavi flat a 16 pin.

L'alimentazione a 5 volt viene fornita su un connettore a parte. Ogni pannello
può consumare quando acceso tutto bianco alla massima intensità fino a 4 ampere.

I segnali sul connettore dati sono:

* Tre linee dati per i colori R0, G0 e B0 del primo blocco di 16 linee
* Tre linee dati per i colori R1, G1 e B1 del secondo blocco di 16 linee
* Una linea di clock (CLK) 
* Una linea di strobe (STD)
* Una linea di output enable (OE)
* Quattro linee dati (A,B,C and D) per selezionare la riga a cui
inviare i dati Rx,Gx and Bx

Il pannello è logicamente diviso in due sezioni:

* Le prime 16 linee composte ognuna da 32 led a 3 colori
* Le secondo 16 linee composte ognuna da 32 led a 3 colori

Questo è uno schema a blocchi delle struttura interna di un pannello RGB

<img class="float"  src="./ledpanel_scheme.jpg"/>

## Connessioni elettriche

Sul repository [rpi-rgb-led-matrix](https://github.com/hzeller/rpi-rgb-led-matrix) 
sono descritte molto bene le interconnessioni elettriche tra la Raspberry Pi 
ed i pannelli RGB. Per i nostri esperimenti io ho usato le seguenti connessioni per 
poter per 4 pannelli su singola riga (128x32 pixel).

<img src="./raspberry2rgb.jpg" width="1024px">

E' possibile realizzare le connessioni usando una basetta millefori come illustrato in questa foto:

<img src="./adapter.jpg" >

Oppure aspettare qualche giorno e acquistare l'adattatore a tre vie prodotto da Acme Systems.

#Esempi

<ul class="nav nav-tabs">
	<li class="nav active"><a href="#led-image-viewer" data-toggle="tab">led-image-viewer</a></li>
	<li class="nav"><a href="#led-matrix" data-toggle="tab">led-matrix</a></li>
	<li class="nav"><a href="#raspberry_cubo" data-toggle="tab">Cubo luminoso</a></li>
</ul>

<div class="tab-content">
	<div class="tab-pane fade in active" id="led-image-viewer">
		@include='led-image-viewer'
	</div>
	<div class="tab-pane fade in" id="led-matrix">
		@include='led-matrix'
	</div>
	<div class="tab-pane fade in" id="raspberry_cubo">
		@include='raspberry_cubo'
	</div>
</div>

<hr/>

##Ringraziamenti

<a href="http://www.eliografica.com">
<img src="./eliografica.jpg">
</a>

Ringrazio <b>Alessio Camaioni</b> ([www.eliografica.com](http://www.eliografica.com)) per il supporto 
nella stesura di questo articolo ed il disegno di alcune delle immagini in esso riportare.