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:
View
Practical Presentation
View
Smart Presentation
View
Essential Presentation
View
Akihabara Presentation
View
Pastel Color Presentation
View
Modern Presentation
View
Relaxing Presentation
Transcript
Código limpio: C++ VEX
Alumnos: Pau Segura, Alex Plaza, Victor Fenoy, Iker García Profesor: Pol Valverde Curso: 2024-2025
Índice
robot.cpp
main.cpp
robot.h
motores.cpp
motores.h
Resumen de los cambios
Main.cpp
Antes
Después
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.
Mejora de legibilidad
Se ha cambiado while(1) a while(true). Para que sea más claro y facilitar la comprensión.
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.
motores.cpp
Antes
Después
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.
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.
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.
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.
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.
motores.h
Antes
Después
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.
robot.cpp
Antes
Después
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.
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.
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.
robot.h
Antes
Después
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.
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.
Conservación de parteInferiorIsActive
Hemos mantenido esta variable como miembro porque el estado debe persistir entre llamadas a activarHidraculica().
Resumen de los cambios
ll Código más limpio:
Eliminación de vex:: y simplificación de sintaxis.
|| Mejor legibilidad:
Cambio de while(1) → while(true), optimización de estructuras.
|| Rendimiento optimizado:
Se añadió wait(20, msec) para evitar sobrecarga.
|| Correcciones clave:
Ajuste de puertos (PORT12 → PORT20), corrección de lógica en botones y ejes.
|| Organización mejorada:
Comentarios estructurados, guardas de inclusión en Robot.h
|| Mayor eficiencia:
Eliminación de variables innecesarias y optimización de funciones.