Post date: Apr 15, 2014 4:36:21 AM
We have not done a programming update in over a month, so here is a brief summary of what we have been doing.
We have written the state machine for the shooter, and it works. In order to make sure that we did not drive the motors past the position necessary to latch, we added a limit switch, which is a sensor that returns 1 when pressed and 0 when released. Additionally, we added the intake into our code, which consisted of the two pistons for the different positions and the motor for driving the roller.
We have also continued to work on autonomous, including writing a command that uses the camera to sense the hot goals. Building on that, we have created an autonomous sequence that looks for the hot goals and shoot and one that can take multiple balls and shoot them. Instead of creating a new state machine, we found that if we added booleans to the already existing update method that served the same function as if a button was pressed and was set by the autonomous commands.
Finally, to make adding PID loops into our code easier, we created a class that when given all of the parameters for a PID loop would return the required speed. Now all we have to do to implement a new PID loop, as we hope to do for the shooter, is pass it the P, I, and D factors, a few maximum values.
- Nandeeka
No hemos hecho una noticia de programación en más de un mes , así que aquí está un breve resumen de lo que hemos hecho.
Hemos hecho la máquina de estados para el tirador , y funciona. Para asegurarse de que no en coche de los motores más allá de la posición necesaria para enganchar , hemos añadido un final de carrera , que es un sensor que devuelve 1 cuando se presiona y 0 cuando se suelta. Además , hemos añadido la ingesta en nuestro código , que consistía en los dos pistones para las diferentes posiciones y el motor para accionar el rodillo .
También hemos seguido trabajar en la autónoma, incluyendo escribir un comando que utiliza la cámara para detectar los goles calientes. Basándose en eso, hemos creado una secuencia autónoma que busque los goles calientes y disparar, y que puede tomar más de una bola para dispararles. En lugar de crear una nueva máquina de estados, descubrimos que agregar booleans al método de actualización que ya existe es como pulsarse un botón, y los dos son establecidos por los comandos autónomos.
Por último, para facilitar la adición de lazos PID en nuestro código, hicimos una clase que, cuando tiene todos los parámetros de un circuito PID, volverá la velocidad requerida. Ahora todo lo que tenemos que hacer para poner en práctica un nuevo circuito PID , como esperamos hacer para el tirador , es pasarlo al factores de P, I, D unos valores máximos.
- Nandeeka