En mai fais ce qu’il te plaît. J’ai profité d’avoir un peu de temps pour faire un petit side project. Comme de nombreux utilisateurs, il peut m’arriver de dépasser mon quota d’utilisation de Claude et de m’en rendre compte seulement au moment où celui-ci est atteint… Plutôt que de devoir consulter régulièrement cette information, j’ai conçu un mini tableau de bord pour suivre ma consommation de tokens Claude sur Pico Display.
J’aimerais bien étendre le tableau de bord avec une intégration Codex. Dans les fonctionnalités complémentaires en tête, j’aimerais ajouter un système de notifications avec des LEDs qui m’indiqueraient l’état du client Claude : tâche terminée, demande d’approbation pour des modifications. J’aime bien le format du petit écran qui pourrait s’intégrer au dessus d’un clavier. Pour plus d’informations, voir le commentaire.
Pour le matériel je l’avais dans un tiroir mais on peut tout retrouver sur Kubii Ecran Raspberry Pico
Prise en main de de pico display en C++
J’ai commencé par cloner le boilerplate mis à disposition par Pimoroni https://github.com/pimoroni/pico-boilerplate
J’ai dû adapter un peu la procédure du readme du boilerplate parce que je suis sur macOS Apple Silicon et JetBrains CLion. J’ai dû compiler le code sur la Raspberry Pi Pico 2020, qui utilise un microcontrôleur ARM Cortex-M. J’ai dû installer le compilateur GCC pour processeurs ARM embarqués sans système d’exploitation avec gcc-arm-embedded.
brew update
brew install git cmake ninja python
brew install --cask gcc-arm-embedded
Pour vérifier les versions installées:
arm-none-eabi-gcc --version
cmake --version
ninja --version
J’ai également cloné le :
git clone https://github.com/raspberrypi/pico-sdkpico-sdk dépend d’autres dépôts Git inclus comme submodules donc je les récupère avec la commande :
cd pico-sdk <br>git submodule update --initComme mentionné dans le README, j’ai dû configurer la chemin vers le SDK en variable d’environnement:
echo 'export PICO_SDK_PATH="$HOME/Desktop/projet-pico-claude/pico-sdk"' >> ~/.zshrc <br>source ~/.zshrc<br>echo $PICO_SDK_PATHJ’ai téléchargé la librairie mise à disposition par Pimoroni:
git clone https://github.com/pimoroni/pimoroni-pico<br>cd pico-boilerplateLa structure de mon dossier de projet:
clementis@mac-1 ~ % cd Desktop/projet-pico-claude <br>clementis@mac-1 projet-pico-claude % ll<br>Permissions Size User Date Modified Name<br>drwxr-xr-x@ - clementis 13 mai 11:04 .idea<br>drwxr-xr-x@ - clementis 13 mai 11:08 pico-boilerplate<br>drwxr-xr-x@ - clementis 13 mai 10:57 pico-sdk<br>drwxr-xr-x@ - clementis 13 mai 11:05 pimoroni-picoJe peux enfin valider que le projet compile bien:
cd ~/Desktop/projet-pico-claude/pico-boilerplate
mkdir -p build
cd build
cmake .. \
-G Ninja \
-DPICO_SDK_PATH="$HOME/Desktop/projet-pico-claude/pico-sdk" \
-DPIMORONI_PICO_PATH="$HOME/Desktop/projet-pico-claude/pimoroni-pico"cmake ne compile pas directement. Il lit les fichiers du CMakeLists.txt du boilerplate et détecte le SDK Pico, les sources… Puis génère des fichiers de build pour Ninja. Pour builder il suffit d’exécuter ninja
ninja
On peut valider que la compilation a bien produit le fichier uf2
find . -name "*.uf2"
Ensuite pour téléverser le programme il suffit de flasher le Pico, pour ça on suit les étapes suivantes:
- Débranche le Pico.
- Maintenir le bouton BOOTSEL.
- Le brancher en USB.
- Le pico monte comme un disque externe.
- Copier le .uf2 dessus.

It works. Enfin j’ai juste eu un problème, j’utilisais un SDK pour une mauvaise taille d’écran en partant du boilerplate… Que j’ai fixé dans le code du projet.


Pout éviter la manipulation répétitive de brancher et débrancher l’USB, j’ai ajouté un bouton de reset entre la broche RUN et GND pour redémarrer facilement la Pico, ce qui met le RUN à la masse lorsque j’appuie sur le bouton.
Suivi de la consommation de tokens de Claude
Tout ça c’était pour l’introduction, pour le projet en tant que tel, je mets le code à disposition ici https://github.com/clement-software/Pico-LLM-Viewer avec les informations dans le README. Pour éviter de vous faire recompiler le projet, je mets directement à disposition le fichier pico-llm-viewer.uf2 dans le dossier à mettre sur la raspberry pico. Et pour déclencher le script qui va envoyer la donnée au Pico, il est possible d’utiliser la commande make daemon et d’en faire un script à l’ouverture de session sur mac avec un LaunchAgent. Pour windows et linux, il devrait y avoir des ajustements à faire.

