Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guardar valores de calibración en la "EEPROM" #12

Open
20leunam opened this issue Nov 11, 2019 · 4 comments
Open

Guardar valores de calibración en la "EEPROM" #12

20leunam opened this issue Nov 11, 2019 · 4 comments
Assignees
Labels
enhancement New feature or request pending Non-priority issue; to do later

Comments

@20leunam
Copy link
Member

Una vez realizada una calibración exitosa, y comprobada la fiabilidad del robot con esa calibración, guardar los valores calibrados en una EEPROM emulada, usando la memoria flash del STM32F4.
Info de interes:
Bulebots/bulebule#239

@20leunam
Copy link
Member Author

Esto cambia bastante el protocolo de inicialización del robot de la issue #4
Por ello es necesario un replanteamiento del sistema de funcionamiento para cuando tenga calibración guardada, para cuando no, para poder borrarla, y para poder guardarla.
Hago una primera propuesta:

  1. Sin calibración guardada (Switch, modo debug)
  • Encender robot
  • Inicializar timers, relojes, motores, etc.
  • Comprobar el estado de los Switches
  • Calibrar moviendo el robot.
  • Durante la calibración comprueba que los encoders hayan dado algún valor
  • Atender a los botones de configuración.
  • Probar el robot en pista, dar unas cuantas vueltas y estresarlo, intentando probocar el fallo para determinar que esa calibración funciona bien
  • Ir al modo debug y tener una nueva opción de guardado de calibración.
  1. Con calibración guardada (Switch, modo debug)
  • Encender robot
  • Inicializar timers, relojes, motores, etc.
  • Comprobar el estado de los Switches
  • Si encendiste el robot con el botón de Start pulsado, significa que quieres sobreescribir la calibración. Entonces, saltar el siguiente punto. Si no, saltar este punto.
  • Si no hay calibración guardada dar alarma... (RGB rojo, parpadeando rápido) si la hay continuar como si nada.
  • Pulsar botón de start, Arrancar durante 250ms los motores de tracción para comprobar el funcionamiento de los encoders, y volver a pulsar start para confirmar la comprobación
  • Atender a los botones de configuración.
  • Probar el robot en pista, dar unas cuantas vueltas y estresarlo, intentando provocar el fallo para determinar que esa calibración funciona bien
  • Ir al modo debug y tener una nueva opción de guardado de calibración.
  1. Con calibración guardada (Switch, modo competición)
  • Encender robot
  • Inicializar timers, relojes, motores, etc.
  • Comprobar el estado de los Switches
  • Si no hay calibración guardada dar alarma... (RGB rojo, parpadeando rápido) si la hay continuar como si nada.
  • Pulsar botón de start, Arrancar durante 250ms los motores de tracción para comprobar el funcionamiento de los encoders, y volver a pulsar start para confirmar la comprobación
  • Atender a los botones de configuración.
  • Probar el robot en pista, dar unas cuantas vueltas y estresarlo, intentando provocar el fallo para determinar que esa calibración funciona bien
  • Ir al modo debug y tener una nueva opción de guardado de calibración.

@robotaleh
Copy link
Member

Al margen de iniciar los motores de tracción durante 250ms para comprobar encoders, lo cual veo bien, creo que todo el proceso de guardado, borrado, ... de calibración es demasiado tedioso tanto para debug como para competición. Mi contra-propuesta es la siguiente:

  • Cada vez que se calibre el robot, se guarda y sobrescribe automáticamente los valores de calibración anteriores, estés en el switch que estés.

  • Al iniciar el programa, se comprueba si existe una calibración guardada y en caso de que así sea se encenderá el RGB directamente en Verde para confirmar la calibración. En caso de que se quiera descartar esa calibración, se deberá pulsar durante 1-2s el botón de confirmación iniciando de nuevo el proceso de calibración y posterior guardado de esos datos.

De esta forma se simplificaría la lógica de switches y se conserva la posibilidad de sobrescribir lo guardado.

@20leunam
Copy link
Member Author

Okay, me parece más simple. Por buscarle un poco las cosquillas...
"Al iniciar el programa, se comprueba si existe una calibración guardada y en caso de que así sea se encenderá el RGB directamente en Verde" dado que guarda automáticamente todas las calibraciones, si una calibración no sale bien, al encender el robot mostrará el color del estado de la calibración guardada, no siempre verde.

@20leunam
Copy link
Member Author

20leunam commented Nov 11, 2019

Dandole mas vueltas al sistema, resulta que asi se pierde la comprobación de que los sensores de línea están funcionando correctamente al dejar de hacer la calibración. Por ello abro una nueva issue para tratar este tema en concreto. #13

@robotaleh robotaleh added enhancement New feature or request pending Non-priority issue; to do later labels Nov 11, 2019
@robotaleh robotaleh self-assigned this Nov 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pending Non-priority issue; to do later
Projects
None yet
Development

No branches or pull requests

2 participants