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
- Recherche de Pic Intelligente : Algorithme à 4 phases (approche, balayage, ralliement et micro-scan) pour compenser le backlash mécanique.
-
Acquisition Automatisée : Commande
scanavec é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.
| 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. |
- 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.
- 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).