Want to create interactive content? It’s easy in Genially!
VEX Limpio
Alejandro Plaza Agudo
Created on March 25, 2025
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Alumnos: Pau Segura, Alex Plaza, Victor Fenoy, Iker García Profesor: Pol Valverde Curso: 2024-2025
Código limpio: C++ VEX
Índice
main.cpp
motores.cpp
motores.h
robot.cpp
robot.h
Resumen de los cambios
Main.cpp
Después
Antes
Añadir delay
Se ha agregado wait(20, msec) al bucle para evitar saturar el procesador con un bucle infinito sin pausa. Así conseguimos optimizar el rendimiento del robot.
Mejora de legibilidad
Se ha cambiado while(1) a while(true). Para que sea más claro y facilitar la comprensión.
Eliminación de prefijo vex::
Se ha cambiado vex::brain a brain para que sea consistente con using namespace vex; y que el código sea más limpio.
motores.cpp
Después
Antes
Organización con comentarios
Se han añadido secciones con comentarios (// Tren motriz izquierdo)... Así, se mejora la estructura y facilita la escalabilidad al agregar más componentes y es más fácil de mantener y entender para otras personas.
Código comentado
Se ha eliminado la línea comentada duplicada de M1 porque era redundante y ensuciaba el archivo. Así conseguimos un código más limpio.
Conflicto de puertos
Se ha cambiado DrivetrainInertial de PORT12 a PORT20. PORT12 ya estaba usado por leftMotorB, lo que causaría un error en hardware. Con esta resolución, evitamos fallos en la ejecución del robot por puertos duplicados.
Corrección de sintaxis
Se han simplificado las declaraciones como vex::motor leftMotorA = vex::motor(...) a motor leftMotorA(...); ya que la sintaxis original era demasiado complicada y extensa sin necesidad. Así se reducen las líneas y se mejora la legibilidad.
Eliminación de prefijos vex:::
Se ha eliminado vex:: de todas las definiciones (vex::motor → motor); ya que el using namespace vex; en motores.h ya lo permite. Asi conseguimos un código más limpio y legible, manteniendo consistencia.
motores.h
Se ha eliminado el prefijo vex:: de las declaraciones (extern vex::brain Brain → extern brain Brain). El using namespace vex; ya hace que el prefijo sea innecesario. Con este cambio, conseguimos un código más conciso y consistente, reduciendo redundancia.
Después
Antes
robot.cpp
Después
Antes
activarHidraculica()
Hemos optimizado el toggle simplificando la lógica con !parteInferiorIsActive para que sea más legible.Se ha movido el wait(200, msec) fuera del if-else. Para que actúe como debounce para evitar toggles rápidos.
trag()
Se ha cambiado la segunda condición de ButtonL2 a ButtonR1. Porque inicialmente ambas condiciones usaban el mismo botón.Hemos agregado un stop else { M2.stop(); } para detener el motor si no hay entrada y que no se vaya moviendo siempre.
mbase()
Se ha cambiado AX_4 = Controller1.Axis3 a Axis4. Porqur en el AX_4 debería usar un eje diferente para control diferencial. Con este cambio consiguimos un movimiento del robot más preciso.Las variables locales ahora declaradas como double AX_3 y AX_4 dentro de la función porque no necesitan ser miembros de clase.
robot.h
Después
Antes
Conservación de parteInferiorIsActive
Hemos mantenido esta variable como miembro porque el estado debe persistir entre llamadas a activarHidraculica().
Eliminación de variables innecesarias
Se ha quitado double AX_3 y double AX_4 porque solo se usan localmente en mbase() y no necesitan persistir como miembros. Así se reduce el uso de memoria y simplifica la clase.
Añadir guardas de inclusión
Se ha agregado #ifndef ROBOT_H, #define ROBOT_H, y #endif para evitar ponerlo duplicado en otros proyectos. De este modo, se mejora la escalabilidad y previene errores de redefinición.
Resumen de los cambios
Eliminación de variables innecesarias y optimización de funciones.
Comentarios estructurados, guardas de inclusión en Robot.h
Ajuste de puertos (PORT12 → PORT20), corrección de lógica en botones y ejes.
Se añadió wait(20, msec) para evitar sobrecarga.
Cambio de while(1) → while(true), optimización de estructuras.
|| Mayor eficiencia:
|| Organización mejorada:
|| Correcciones clave:
|| Rendimiento optimizado:
|| Mejor legibilidad:
Eliminación de vex:: y simplificación de sintaxis.
ll Código más limpio: