Skip to content

Repository files navigation

Contrôleur Interactif Pico - Spectromètre PEEKBot

Ce système MicroPython pilote un moteur pas-à-pas (A4988) et effectue des mesures de puissance optique synchronisées via un ADC ADS1115 (16-bit). Conçu pour l'acquisition de données spectrales de haute précision depuis main.py

Fonctionnalités Clés

  • Recherche de Pic Intelligente : Algorithme à 4 phases (approche, balayage, ralliement et micro-scan) pour compenser le backlash mécanique.
  • Acquisition Automatisée : Commande scan avec écriture directe sur la mémoire flash pour éviter les erreurs de mémoire (RAM).
  • Calibration compare : Mode différentiel (Noir vs Lumière) pour isoler le bruit électronique.
  • Calcul de Puissance : Conversion temps réel en µW basée sur la responsivité ($A/W$) et la résistance de charge ($R_{load} = 13.9,k\Omega$).
  • Sécurité Active : En cas d'interruption (Ctrl+C), le moteur retourne automatiquement à sa position d'origine.

Guide des Commandes

Commande Paramètres Description
scan [angle] [délai] Scan complet sur l'angle donné. Sauvegarde dans spectro_data.csv.
find_peak [angle] [délai] Localise le pic d'intensité maximum et s'y aligne (inclus micro-scan).
read [resp] Affiche en temps réel : ADC, Tension (mV) et Puissance (µW).
compare (aucun) Procédure de calibration Noir/Lumière. Sauvegarde dans compare_results.csv.
move [pas] [délai] Déplacement manuel simple (sans capture ADC par défaut).
ms [1, 2, 4, 8, 16] Change la résolution du microstepping (1/n).
pos (aucun) Affiche la position absolue actuelle et le mode microstepping.
zero (aucun) Réinitialise la position actuelle comme étant l'origine (0).
lamp [1/0] Allume ou éteint la source lumineuse (GP12).
on / off (aucun) Active (maintien) ou désactive (repos/froid) le moteur.
clear (aucun) Nettoyage : Supprime tous les fichiers .csv de la mémoire flash.
save (aucun) Exporte les données du dernier move vers stepper_data.csv.
exit (aucun) Arrête proprement le programme.

Configuration Matérielle (Raspberry Pi Pico)

Connexions I2C & ADC

  • I2C0 : SDA (GP16), SCL (GP17) @ 400kHz.
  • ADS1115 : Adresse 0x48, Gain +/- 2.048V.
  • Entrée : Mode différentiel (A0-A1) pour éliminer le bruit de mode commun.

Driver Moteur (A4988)

  • Signaux : STEP (11), DIR (10), ENABLE (9).
  • Microstepping : MS1 (8), MS2 (7), MS3 (6).
  • Gestion : SLEEP (4), RESET (5).
  • Réduction mécanique : Facteur de 90 (engrenages/vis).

About

Software for the Canadian Space Agency PEEKbot Rover's Spectrometer. Aims at detecting water concentrations on Moon's soil.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages