Optimisation de la détection de blocage
Description de la fonctionnalité
La version FAST 1.3.8 optimise la fonction de détection de blocage, offrant une capacité de détection de blocage plus précise et des options de configuration flexibles. Cette fonctionnalité surveille en temps réel l'extrusion de l'extrudeuse et met automatiquement en pause l'impression et avertit l'utilisateur en cas de détection de blocage ou de rupture de filament.
Exigence de version du système : Cette fonctionnalité nécessite une version du système FlyOS-Fast supérieure ou égale à v1.3.8 pour fonctionner correctement.
Méthode de configuration
- Ajoutez la configuration suivante dans le fichier
printer.cfg: - Veuillez noter qu'il s'agit d'une configuration de référence, les paramètres spécifiques peuvent nécessiter des ajustements selon la situation réelle
[filament_blockage_detection my_sensor]
switch_pin: ^PA10
extruder: extruder
distance_per_edge: 0.232
detection_length: 3
pause_on_runout: True
runout_gcode: M118 打印中堵料
insert_gcode: M118 空闲时恢复
Paramètres de base :
| Paramètre | Valeur par défaut | Description |
|---|---|---|
switch_pin | Obligatoire | La broche du capteur de détection de blocage, ^ indique l'activation de la résistance de tirage |
extruder | extruder | Le nom de l'extrudeur associé |
distance_per_edge | Obligatoire | La distance de déplacement du filament correspondant à chaque impulsion du capteur (mm), mise à jour automatiquement après calibration |
detection_length | 7.0 | La distance de glissement dépassant ce seuil (mm) et confirmée plusieurs fois consécutivement est considérée comme un blocage |
recovery_length | detection_length * 0.5 | Lorsque la distance de glissement redescend en dessous de cette valeur (mm), le retour à l'état normal est effectué |
pause_on_runout | — | Indique si la impression doit être automatiquement mise en pause lors de la détection d'un blocage |
runout_gcode | — | Le G-code exécuté lors de la détection d'un blocage |
insert_gcode | — | Le G-code exécuté lors de la détection de la reprise du filament |
Paramètres avancés (il suffit généralement d'utiliser les valeurs par défaut) :
| Paramètre | Valeur par défaut | Description |
|---|---|---|
window_length | detection_length * 3 | Longueur de la fenêtre glissante (mm) |
retraction_min_delta | 0.050 | Le déplacement d'extrusion minimal pour déterminer un mouvement de rétraction (mm), en dessous de cette valeur il est considéré comme statique |
blockage_sample_count | 2 | Nombre de confirmations consécutives de dépassement du seuil, après quoi un blocage est déterminé (1-5) |
Le paramètre distance_per_edge calcule automatiquement la valeur optimale après l'exécution de la commande de calibration CALIBRATE_FILAMENT_BLOCKAGE, et est sauvegardé de manière permanente dans le fichier de configuration via la commande SAVE_CONFIG. Lors de la configuration initiale, une valeur quelconque peut être saisie, elle sera automatiquement écrasée après la calibration.
Étapes de calibration
Pour garantir la précision de la détection, il est recommandé d'effectuer une calibration du capteur avant utilisation.
Étape 1 : Chauffer la buse
Chauffez la buse à sa température de fonctionnement normale (220 ℃ recommandé) :
M104 S220
M109 S220
Étape 2 : Exécuter la commande de calibration
Une fois la buse à la température cible, exécutez la commande de calibration suivante :
CALIBRATE_FILAMENT_BLOCKAGE SENSOR=my_sensor TEMPERATURE=220
Paramètres de la commande :
| Paramètre | Valeur par défaut | Description |
|---|---|---|
SENSOR | Obligatoire | Nom du capteur, correspondant à [filament_blockage_detection my_sensor] dans la configuration |
TEMPERATURE | Obligatoire | Température de la buse lors de la calibration (℃) |
DISTANCE | 30.0 | Longueur d'extrusion par cycle de calibration (mm) |
COUNT | 5 | Nombre de cycles de calibration (1-20), moyenne sur plusieurs cycles |
SPEED | 2.0 | Vitesse d'extrusion (mm/s) |
SETTLE_TIME | 0.375 | Temps de stabilisation en secondes après chaque extrusion pour attendre le rapport du capteur |
MIN_EDGES | 1 | Nombre minimum d'impulsions capturées par cycle, en dessous duquel une erreur est signalée |
Pendant la calibration, le système effectue automatiquement plusieurs cycles d'extrusion, compte les impulsions de l'encodeur pour chaque cycle, calcule le distance_per_edge optimal et affiche le résultat.
Exemple de sortie de calibration :
Filament blockage sensor my_sensor calibration round 1/5:
edge_count_delta: 130
implied_distance_per_edge: 0.230769 mm
...
Filament blockage sensor my_sensor calibration result:
samples: 130, 129, 131, 130, 128
average_edge_count: 129.600
calibrated_distance_per_edge: 0.231481 mm
The SAVE_CONFIG command will update the printer config file
with this parameter and restart the printer.
Étape 3 : Sauvegarder le résultat de calibration
Une fois la calibration terminée, exécutez la commande suivante pour sauvegarder le nouveau distance_per_edge dans le fichier de configuration et redémarrer Klipper :
SAVE_CONFIG
Vérifier l'état du capteur
La commande QUERY_FILAMENT_BLOCKAGE permet de consulter en temps réel les données de mesure du capteur, notamment la longueur d'extrusion, la distance mesurée par l'encodeur et le glissement.
QUERY_FILAMENT_BLOCKAGE SENSOR=my_sensor
Description des champs retournés :
| Champ | Description |
|---|---|
total_extruded_distance | Distance totale commandée à l'extrudeur (mm) — c'est-à-dire la longueur totale d'avance commandée par Klipper |
total_measured_distance | Distance totale réellement mesurée par l'encodeur (mm) — la quantité de déplacement du filament réellement détectée par le capteur |
raw_measured_distance | Distance brute mesurée par l'encodeur (mm) — valeur cumulée sans détermination de direction |
expected_distance | Distance d'extrusion attendue depuis le dernier changement de direction (mm) |
measured_distance | Distance réellement mesurée dans la fenêtre actuelle (mm) |
slip_distance | Distance de glissement (mm) — différence entre la distance attendue et la distance mesurée ; dépasse detection_length déclenche la détection de blocage |
measured_speed | Vitesse de mesure actuelle (mm/s) |
edge_count | Nombre cumulé d'impulsions de l'encodeur |
pending_blockage_count | Nombre actuel de confirmations consécutives de dépassement de seuil ; atteint blockage_sample_count pour déterminer un blocage |
in_retraction | Indique si une rétraction est en cours (True/False) |
blocked | Indique si un blocage a été déterminé (True/False) |
printing | Indique si une impression est en cours (True/False) |
Cas d'utilisation :
- Diagnostiquer les fausses alertes de blocage : comparer
total_extruded_distanceettotal_measured_distance; si l'écart continue d'augmenter, cela signifie que le déplacement du filament détecté par l'encodeur est en retard sur la commande d'extrusion, ce qui peut indiquer un patinage - Vérifier le bon fonctionnement du capteur : consulter
measured_speedpendant l'impression ; une extrusion normale doit afficher une lecture de vitesse stable - Suivre la tendance du glissement : lorsque
slip_distances'approche dedetection_length, il faut être vigilant ; si le dépassement persiste, suspendre l'impression
Dépannage
Problème 1 : La détection de blocage ne se déclenche pas
Causes possibles :
- Le capteur n'est pas correctement connecté
- Configuration incorrecte de
switch_pin - Firmware de la carte de contrôle non mis à jour
Solutions :
- Vérifiez la connexion matérielle du capteur
- Confirmez que la configuration de la broche correspond au matériel réel
- Mettez à jour le firmware de la carte de contrôle vers la dernière version
Problème 2 : Fausse détection de blocage
Causes possibles :
- Paramètre
distance_per_edgeinexact - Seuil
detection_lengthréglé trop bas
Solutions :
- Réexécutez la commande de calibration
- Augmentez la valeur de
detection_lengthde manière appropriée (recommandé : 3-5 mm)
Problème 3 : Échec de la calibration
Causes possibles :
- La température de la buse n'atteint pas la valeur requise
- Panne matérielle du capteur
Solutions :
- Vérifiez que la buse est chauffée à la température spécifiée
- Vérifiez si le capteur fonctionne correctement
- Essayez de redémarrer le service Klipper
Recommandations d'utilisation
- Il est recommandé de recalibrer le capteur à chaque changement de marque ou de diamètre de filament
- Vérifiez régulièrement l'état du capteur pour garantir la précision de détection
- Si la fonction de détection de blocage n'a pas été utilisée pendant une longue période, il est recommandé de recalibrer avant utilisation
Conseils d'utilisation
- Il est recommandé de recalibrer le capteur à chaque changement de marque ou de diamètre de consommable
- Vérifiez régulièrement l'état du capteur pour garantir la précision de détection
- Si la fonction de détection de bourrage n'a pas été utilisée pendant une longue période, il est recommandé de recalibrer avant de l'utiliser à nouveau