OPRobots / FujitoraBot

Robotracer - siguelíneas de alto rendimiento; con succión, tracción brushless en sistema tetra y procesador STM32F4
GNU General Public License v3.0
23 stars 2 forks source link

Control de error de encoders #10

Open 20leunam opened 5 years ago

20leunam commented 5 years ago

Realizar un control en todo momento de la carrera, de que los encoders están funcionando de manera correcta. En caso de detectar un fallo en el numero de pulsos ya sea, que cuenta de menos, o deja de contar, pasar inmediatamente al control de PWM para intentar salvar la carrera, y señalizar el fallo mediante alguún Led

20leunam commented 5 years ago

Una posible forma de detectar si los encoders están fallando seria mediante la señal de index de los encoders. En primer lugar medir el numero de pulsos que se cuentan desde un pulso de index hasta el siguiente, ver si el numero de pulsos SIEMPRE es igual, y después, comprobar en carrera cada vez que detecte el pulso de index si pasaron exactamente esos pulsos. En caso de que el numero de pulsos no sea 100% repetitivo, (Lo cual sería preocupante) poner un margen de X ticks de "tolerancia" asimilables. Si no da los pulsos comprendidos entre esa franja de ticks, notificar que encoder esta fallando mediante algún LED y cambiar de m/s a PWM. En caso de que uno de los encoders deje de funcionar totalmente, tampoco habrá pulso de index, para ello simplemente si no detecto ningún pulso en el ultimo milisegundo* Señalizar que encoder esta en fallo y pasar a PWM

*Previo a esto habría que comprobar cuantos pulsos da a velocidad mínima cada milisegundo, no valla a ser que sea muy poco tiempo como para detectar algún pulso, (Lo cual sería preocupante)