Cette documentation détaille la mise en place d’un environnement de développement « Remote-to-Pi ». Elle permet de coder confortablement sur un PC puissant tout en exécutant et testant instantanément le code sur un Raspberry Pi Zero. Les tests ont été effectués sur un Raspberry Pi Zero 2 WH en utilisant Google Antigravity IA sur un PC local fonctionnant sous Linux Mint.

1. Objectifs du Projet
Le projet vise à résoudre l’impossibilité de faire tourner des outils gourmands (comme des IAs de codage ou des IDEs lourds) directement sur le Raspberry Pi Zero.
Les objectifs clés sont :
- Décentralisation : Conserver l’intelligence et l’édition sur le PC hôte.
- Automatisation : Transférer et exécuter le code en une seule commande.
- Isolation : Utiliser des environnements virtuels (venv) sur le Pi pour garantir la stabilité du système.
- Persistance : Assurer que la connexion survive aux redémarrages.
2. Guide d’Installation Pas-à-Pas
Étape 1 : Préparation du dossier de travail
Sur le PC hôte, créez un répertoire dédié à votre projet Raspberry Pi :
mkdir -p ~/env_gravity/gamepi13
cd ~/env_gravity/gamepi13
Étape 2 : Sécurisation de la connexion (SSH)
Pour permettre à l’IA et aux scripts de travailler sans interruption, nous configurons une clé SSH :
- Génération de la clé (si vous n’en avez pas) :
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" - Installation de la clé sur le Pi :
ssh-copy-id pi@gamepi.local
(Remarque : Utilisez l’adresse IP si le nomgamepi.localn’est pas résolu).
Étape 3 : Création des scripts d’automatisation
Créez les fichiers deploy.sh et run_on_pi.sh (voir section « Structure des Fichiers ») dans votre dossier et rendez-les exécutables :
chmod +x deploy.sh run_on_pi.sh
Étape 4 : Configuration de l’environnement distant
Préparez le Raspberry Pi à recevoir et exécuter le code proprement :
- Dossier de projet : Créé automatiquement lors du premier déploiement.
- Environnement Virtuel (Optionnel mais recommandé) :
ssh pi@gamepi.local "python3 -m venv ~/gamepi_env"
3. Dépendances et Prérequis
Matériel
- PC sous Linux (Mint/Debian recommandé).
- Raspberry Pi Zero 2 WH.
- Connexion réseau locale commune.
Logiciels (PC Hôte)
- OpenSSH Client : Pour la communication sécurisée.
- rsync : Pour la synchronisation efficace des fichiers.
- Clefs SSH (ED25519) : Pour l’accès sans mot de passe.
Logiciels (Raspberry Pi)
- Raspberry Pi OS (64-bit recommandé).
- Python 3.11+ avec le module
venv. - Avahi/mDNS : Pour la résolution du nom d’hôte
gamepi.local.
3. Structure des Fichiers de Commande
Le projet repose sur deux scripts principaux situés sur le PC hôte :
deploy.sh
Ce script gère l’envoi des fichiers. Il utilise rsync pour ne copier que les fichiers modifiés, ce qui est extrêmement rapide.
run_on_pi.sh
C’est le script « cerveau » qui automatise le cycle complet.
- Il appelle
deploy.sh. - Il se connecte au Pi via SSH.
- Il vérifie l’existence d’un environnement virtuel (
~/gamepi_env). - Il exécute le script Python spécifié en argument.
4. Mode Opératoire (Workflow Digital)
Initialisation (Une seule fois)
- Clé SSH : Installer la clé sur le Pi pour éviter de taper le mot de passe :
ssh-copy-id pi@gamepi.local - Environnement virtuel : Créer le venv sur le Pi :
ssh pi@gamepi.local "python3 -m venv ~/gamepi_env"
Utilisation Quotidienne
Pour tester un fichier nommé mon_script.py :
./run_on_pi.sh mon_script.py
5. Gestion Multi-Projets (Isolation Totale)
Le système est désormais conçu pour supporter un nombre illimité de projets indépendants sur le même Raspberry Pi sans qu’ils n’interfèrent entre eux.
Comment créer un nouveau projet ?
- Côté PC : Créez un nouveau dossier (ex:
mon_nouveau_projet). - Copie des outils : Copiez les fichiers
deploy.shetrun_on_pi.shdans ce nouveau dossier. - Lancement : Exécutez
./run_on_pi.sh script.py. Le dossier~/mon_nouveau_projetsera créé automatiquement sur le Pi.
Environnements Virtuels Dédiés
Chaque projet peut avoir son propre environnement pour ses bibliothèques spécifiques :
- Création du venv (nommé automatiquement
venv_NOMDUPROJET) :ssh pi@gamepi.local "python3 -m venv ~/venv_mon_nouveau_projet" - Utilisation : Le script
run_on_pi.shdétectera ce dossier et l’utilisera par défaut pour ce projet précis.
6. Maintenance et Évolutions
Maintenance
- Mise à jour des bibliothèques : Pour installer une nouvelle bibliothèque sur le Pi, utilisez le chemin du venv :
ssh pi@gamepi.local "~/gamepi_env/bin/pip install [nom_bibliotheque]" - Changement d’hôte : Si le nom du Pi change, modifiez simplement la variable
REMOTE_HOSTdansdeploy.sh.
Améliorations possibles
- Gestion des Variables d’Environnement : Ajouter un fichier
.envsynchronisé pour gérer les secrets (clés API, etc.). - Logs Distants : Rediriger les erreurs vers un fichier log local sur le PC pour une analyse ultérieure.
- Multi-Pi : Adapter les scripts pour accepter un deuxième argument définissant le Pi de destination (ex:
./run_on_pi.sh script.py pi_salon). - Auto-Install : Ajouter une fonction au script pour installer automatiquement les
requirements.txtsur le Pi s’ils ont été modifiés.