Le cube magique:

En voulant apprendre à utiliser le module RP2040-Zero en utilisant micropython pour piloter les leds adressables WS2812, il fallait un exemple concret.
C'est le cube magique:



Il utilise :
- 6 matrices de 8x8 leds WS2812B
- un module RP2040-Zero
- un module analogique accéléromètre GY61
- une structure imprimée 3D
- un accu Li-Ion format 18650 de 9900mAh et son support
- un module stepup réglable entre 4 et 5V
- un module chargeur USB-C
- des interrupteurs miniature et 2 diodes schootky  1N5818
Et un programme en micropython pour animer les leds.

La structure comporte 6 faces cadres collées , certaines avec des plots de calage (celle qui contient la prise usb de charge est laissée libre et fixée par 2 vis pour pouvoir accéder à la prise usb du RP2040 qui reste interne.
le cadre sans cale
le cadre avec cale
le cadre avec 2 switches et la prise usb du chargeur: le module chargeur est collé et  inséré dessus
le cadre avec 3 prises usb-c
 
L'accu sur son support se cale juste.
   

Le logiciel:
L'intérêt du RP2040 est qu'il a une bonne performance (deux coeurs à 125MHz) et est très facile à programmer, si on utilise l'interpréteur micropython.
En appuyant BOOST en même temps que RESET, le module monte comme un disque sur le pc.
Il suffit d'y copier :
- l'interpréteur micropython: fichier .UF2
- le fichier main.py et les fichiers associés graphics.py, matrix8x8.py, ws2812.py adc.py
Ensuite le reset exécute micropyhton qui importe main.py, lui-même important les autres fichiers.

Les switches sW1,SW2,SW3 permettent de choisir l'effet affichés, s'ils sont en l'air un tirage aléatoire enchaîne successivement  l'effet affiché. Le module accéléromètre (optionnel), modifie les paramètres de certains effets si on secoue le cube.
Les switches SW3,SW2,SW1 codent l'effet choisi:
0
image aléatoire
1
spirale
2
nombre de 00 à 99
3
dé à jouer
4
rainbow
5
carré
6
lignes
7
tirage aléatoire de l'effet

Il est très facile de modifier (rajouter des effets et de sswitches  par exemple) et tester le programme python, j'utilise Thonny  pour cela.