[Conseil] Table leds rgb 16x16 tactile pilotée par le port série

Bonjour tout le monde !

Alors voilà, je me lance dans un projet qui va être sacrément long mais je suis motivé et j'ai prévu de faire ça sur une longue période de temps. J'ai vu les réalisations de certains possesseurs d'Arduino qui ont fait de très belles tables basses à base de LEDs et j'aimerais me lancer dans l'aventure.
Le but étant d'arriver à quelque chose comme ça, mais avec une grille de 16x16 :

Chaque diode sera insérée dans un petit "casier". Le tout sera recouvert d'une surface opaque, puis d'une plaque de verre. Cela devrait donner un effet "tuiles de couleurs" à la surface.

J'ai cependant quelques questions...

J'aimerais piloter l'affichage avec un ordinateur (peut-être bien un Raspberry Pi pour des histoires de prix et d'encombrement). Cela signifie utiliser le port série. D'après mes calculs (faux ?), et en supposant que l'affichage soit immédiat (complètement faux ?), mettre à jour 768 LEDs se ferait avec :
3 * 2^8 (nb de leds) * 2^4 (nb de couleurs différentes que je m'autorise par led) bits = 3 * 2^(12) bits
Du coup, à 9600 bps il faut déjà 1,28 secondes pour changer l'affichage de toutes les leds. Si on passe à 115200bps ça fait 9 changements par seconde (mais le taux d'erreur augmente ?).

Bref, ça me paraît raisonnable vu que les leds ne changeront pas toutes en même temps... Par contre, j'aurais aimé connaître le temps nécessaire pour que, une fois l'information transmise, l'affichage se fasse ? Idéalement, j'aimerais utiliser la mystérieuse librairie ShiftMatrixPWM qui paraît si prometteuse mais je ne vois nul part où la télécharger !

Voilà donc ma première question : est-ce raisonnable de vouloir piloter autant de LEDs RBG via le port série ? À terme j'aimerais avoir plusieurs applications sur ma table, par exemple des petits jeux comme pong ou encore tetris, mais aussi l'affichage de l'heure, d'une petite enveloppe en cas d'email en attente de lecture. Bref, des applications ne demandant pas un rafraîchissement énorme.

Ensuite, comme je suis très ambitieux, j'aimerais avoir quelque chose de tactile... Jouer à pong "avec la main", quel pied (pardon) !

Pour ce faire, je compte coller du papier d'aluminium dans chacun des petits casiers dans lesquels seront les diodes et utiliser la librairie CapSense. Cela me ferait donc 256 informations supplémentaires à récupérer et à envoyer via le port série, que je traiterais avec l'ordinateur, et qui changerait l'affichage en conséquence. Sans compter que je pencherais plutôt pour deux feuilles d'alu par casier avec des résistances différentes, pour avoir une idée de la distance de la main de l'utilisateur (soit 512 informations). Cela permettrait de différencier un appui ("clique") sur une tuile et un balayage de la main d'un bout à l'autre de la table (qui aurait une autre fonction).

Bref, encore une fois, j'ai peur de ne pas pouvoir transmettre l'information assez vite sur mon port série. Dois-je alors envisager deux Arduino, un pour l'affichage et un pour la surface tactile ?

Ou peut-être la réponse se trouve-t-elle dans l'Arduino Leonardo ? Aurait-il par chance un bitrate supérieur de par sa nature (je ne trouve pas d'info à ce sujet, mais je n'ai sans doute pas utilisé les bons mots-clefs) ?

Un grand merci si vous avez eu le courage de lire jusqu'au bout ! Merci aussi si vous avez craqué au milieu :wink:

Et merci d'avance pour tous vos conseils !