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 :

  1. Génération de la clé (si vous n’en avez pas) :
    ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
  2. Installation de la clé sur le Pi :
    ssh-copy-id pi@gamepi.local
    (Remarque : Utilisez l’adresse IP si le nom gamepi.local n’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 :

  1. Dossier de projet : Créé automatiquement lors du premier déploiement.
  2. 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

Shell

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

Shell

C’est le script « cerveau » qui automatise le cycle complet.

  1. Il appelle deploy.sh.
  2. Il se connecte au Pi via SSH.
  3. Il vérifie l’existence d’un environnement virtuel (~/gamepi_env).
  4. Il exécute le script Python spécifié en argument.

4. Mode Opératoire (Workflow Digital)

Initialisation (Une seule fois)

  1. Clé SSH : Installer la clé sur le Pi pour éviter de taper le mot de passe :
    ssh-copy-id pi@gamepi.local
  2. 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 ?

  1. Côté PC : Créez un nouveau dossier (ex: mon_nouveau_projet).
  2. Copie des outils : Copiez les fichiers deploy.sh et run_on_pi.sh dans ce nouveau dossier.
  3. Lancement : Exécutez ./run_on_pi.sh script.py. Le dossier ~/mon_nouveau_projet sera créé automatiquement sur le Pi.

Environnements Virtuels Dédiés

Chaque projet peut avoir son propre environnement pour ses bibliothèques spécifiques :

  1. Création du venv (nommé automatiquement venv_NOMDUPROJET) :
    ssh pi@gamepi.local "python3 -m venv ~/venv_mon_nouveau_projet"
  2. Utilisation : Le script run_on_pi.sh dé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_HOST dans deploy.sh.

Améliorations possibles

  1. Gestion des Variables d’Environnement : Ajouter un fichier .env synchronisé pour gérer les secrets (clés API, etc.).
  2. Logs Distants : Rediriger les erreurs vers un fichier log local sur le PC pour une analyse ultérieure.
  3. 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).
  4. Auto-Install : Ajouter une fonction au script pour installer automatiquement les requirements.txt sur le Pi s’ils ont été modifiés.