Après mon voyage à Berlin en janvier dernier, j’ai découvert avec joie la plaquette électronique de base Arduino, et le Lol Shield de Jimmie P Rodgers.

Nous avions même fait, avec Coucouf, un Tetris, un Pong et un Space Invader sur la base de ce même couple Arduino+LolShield

En mai dernier, après avoir acquis plusieurs panneaux de 8×32 leds de chez Sure, j’ai donc écrit un pilote pour écrire des textes sur ces panneaux, et voici donc comment …

C’est donc en mai 2010 que j’ai commandé 7 exemplaires du Sure0832, un panneau de 8 par 32 leds (rouge ici, mais il existe en vert ou orange). Ce panneau se pilote avec 3 fils, plus l’alimentation.

sure0832.jpg
un Sure0832 de face

J’ai donc codé une librairie pour piloter et afficher de jolis caractères de taille variable sur ce panneau, et le relier à d’autres pour monter finalement une grande planche de bois contenant 7 panneaux mis bout à bout !

Sure0832_2.jpg
Le led panel d’Octopuce !

Sure0832_3.jpg
Le bloc électronique avec l’arduino apparent pour faire « artisanal »

Avouons que l’arduino est un peu « lent » en CPU pure pour piloter tous ces panneau, mais le résultat n’est pas mal du tout …


Petite anecdote : lors de la programmation de la librairie pour 1 panneau, cela marchait très bien. Arrivé à 2 ou plus, le programme plantait immanquablement. Je n’avais visiblement pas assez de RAM pour cela !

Après avoir épluché mon code, j’ai fini par trouver le coupable : le tableau contenant la police de caractère était déclaré comme
uint8_t font1[]. Or, ce n’était pas une variable, mais juste une constante ! Il fallait bien évidemment le déclarer comme const uint8_t font1[] pour qu’il ne soit pas recopié en RAM (!!!) au démarrage du programme, mais uniquement utilisé directement en flash !

(souvenez-vous que l’arduino a 32Ko de flash, mais uniquement 2Ko de RAM !!!)

Je vous confie donc le code de ma librairie, largement inspirés de divers exemples trouvés sur le web, l’ensemble de ce que je produit ici étant sous licence GPL v2 ou ultérieure.

Sure 0832 Led Driver for Arduino

Catégories : français