Recovid / Controller

Sensors, electro-valves and controller
MIT License
3 stars 9 forks source link

Prévenir l'enroulement à contre-sens en cas de non-détection des limites home (switch A & B) #42

Open arnaud-clere opened 4 years ago

arnaud-clere commented 4 years ago

Le mouvement motor_release doit absolument être limité en cas de non-détection d'une des 2 limites "home 1" ou "home 2" car si une seule défaille, le moteur risque de dérouler toute la cordelette puis l'enrouler à contre sens avec une compression répétée du ballon (le moteur semble décrocher un temps puis repartir en compression).

Si on revient jusqu'à pos < -X steps il faut arrêter le mouvement et repartir à 0 NB1 : on a perdu des pas mais on pense que le BAVU est effectivement complètement relâché NB2 : X ne doit pas dépasser le secteur angulaire de recouvrement de la cordelette (?)

arnaud-clere commented 4 years ago

Il est possible de suivre un décompte théorique des pas envoyés en press qui fonctionne en DMA même si le mouvement est interrompu, mais ça demande un travail de mise au point directement sur le matériel. Il faudrait alors utiliser un mouvement DMA pour le release avec la même technique

Seulement après, on peut mettre une "butée soft" avec des actions a décider au niveau controller je pense (normalement on est en exiration donc voies aériennes patient au repos)...

si stepTheoric<-stepsSoftLimit : motor_stop() // a minima ! _motor_lost = true // signaler le prb vie EventGroup FreeRTOS ?