diff --git a/README.md b/README.md index a2963fc..afaa66d 100644 --- a/README.md +++ b/README.md @@ -45,11 +45,10 @@ d'analyse distantes. | Plateforme | Raspberry Pi 4 — Debian Linux | --- - ## Fonctionnalités - Pilotage du bras CNC en GRBL — déplacement automatique puits par puits -- calibration des multi-puits avec synchro base de données +- Calibration des multi-puits avec synchro base de données - Acquisition image haute définition via ArduCam (OpenCV + Picamera2) - Stockage des frames en base time série ReductStore - Sessions de scan paramétrables (grille complète ou sélection de puits) @@ -62,41 +61,43 @@ d'analyse distantes. - Interface administration Django (sqlite3 ou mariadb ou postgresql) - Suivi de progression des tâches longues par polling -## Planaire simulation de mouvement aléatoire +Supporte plusieurs planaires avec paramètres configurables via django ou csv. -Supporte plusieurs planaires avec paramètres configurables via arguments CLI. Export CSV par planaire compatible EthoVision XT. -Seuils EthoVision par défaut (configurables en arguments) : +### Seuils EthoVision par défaut (configurables via django ou csv) -- Immobile : déplacement < 0.2 mm/s -- Mobile : 0.2 à 1.5 mm/s -- Très mobile : > 1.5 mm/s +- **Immobile** : déplacement < 0.2 mm/s +- **Mobile** : 0.2 à 1.5 mm/s +- **Très mobile** : > 1.5 mm/s -- EthoVision CSV frames CSV summary -- ========== ========== =========== -- movedCenter-pointTotalmm total_distance_mm movedCenter_pointTotal_mm -- VelocityCenter-pointMeanmm/s velocity_mm_s velocity_mean_mm_s -- MovementMoving moving, duration_moving_s movement_moving_duration_s -- MovementNot Moving duration_stopped_s movement_not_moving_duration_s -- ImmobileFrequency / Duration mobility_state mobility_immobile_frequency/duration_s -- MobileFrequency / Duration mobility_state mobility_mobile_frequency/duration_s -- Highly mobileFrequency / Duration mobility_state mobility_highly_mobile_frequency/duration_s +| EthoVision | CSV frames | CSV summary | +|---|---|---| +| movedCenter-pointTotalmm | total_distance_mm | movedCenter_pointTotal_mm | +| VelocityCenter-pointMeanmm/s | velocity_mm_s | velocity_mean_mm_s | +| MovementMoving | moving, duration_moving_s | movement_moving_duration_s | +| MovementNot Moving | duration_stopped_s | movement_not_moving_duration_s | +| ImmobileFrequency / Duration | mobility_state | mobility_immobile_frequency/duration_s | +| MobileFrequency / Duration | mobility_state | mobility_mobile_frequency/duration_s | +| Highly mobileFrequency / Duration | mobility_state | mobility_highly_mobile_frequency/duration_s | + +### Métriques calculées + +- Distance totale parcourue (mm) → movedCenter-pointTotalmm +- Vitesse instantanée (mm/s) → VelocityCenter-pointMeanmm/s +- Durée cumulée en mouvement (s) → MovementMoving +- Durée cumulée à l'arrêt (s) → MovementNot Moving +- Fréquence et durée par état de mobilité → Mobility state (EthoVision) +- Distance à la paroi (mm) → thigmotactisme + +### Comportements + +- **Thigmotactisme** : attraction vers la paroi (--thigmotaxis) +- **Phototactisme** : fuite de la lumière (--photo-mode, --photo-strength) +- **Chimiotactisme** : attraction vers une source de nourriture (--chemo-strength) +- **Inter-individus** : évitement de contact, agrégation, répulsion chimique -Métriques calculées : - - Distance totale parcourue (mm) → movedCenter-pointTotalmm - - Vitesse instantanée (mm/s) → VelocityCenter-pointMeanmm/s - - Durée cumulée en mouvement (s) → MovementMoving - - Durée cumulée à l'arrêt (s) → MovementNot Moving - - Fréquence et durée par état de mobilité → Mobility state (EthoVision) - - Distance à la paroi (mm) → thigmotactisme - -Comportements simulés : - - Thigmotactisme : attraction vers la paroi (--thigmotaxis) - - Phototactisme : fuite de la lumière (--photo-mode, --photo-strength) - - Chimiotactisme : attraction vers une source de nourriture (--chemo-strength) - - Inter-individus : évitement de contact, agrégation, répulsion chimique --- ## Architecture diff --git a/test_tube_scanner/scanner/tasks.py b/test_tube_scanner/scanner/tasks.py index 2f375eb..b5c6373 100644 --- a/test_tube_scanner/scanner/tasks.py +++ b/test_tube_scanner/scanner/tasks.py @@ -196,6 +196,9 @@ def on_exports_done(results: list, session_id: str): @shared_task def scanning(session_id: str): + """ + Scanning différé. + """ try: scanner = task_manager.scanner scanner.cam.set_median(is_median=False) diff --git a/test_tube_scanner/scanner/templates/scanner/calibration.html b/test_tube_scanner/scanner/templates/scanner/calibration.html index c1587cd..b6995c3 100644 --- a/test_tube_scanner/scanner/templates/scanner/calibration.html +++ b/test_tube_scanner/scanner/templates/scanner/calibration.html @@ -9,7 +9,7 @@ {% block content %}