The most effective platform for us to use this year is VEX. VEX provides Robot C, so we tried that tool. However, Robot C is no longer developed, and has no support for V5, and the site directed us to VEXcode.
VEXcode has proven to be a more beneficial solution for our needs for several reasons:
- The block-based development environment is very similar to tools like Scratch, which many team members are familiar with.
- It’s easy to see what code is being generated, and to directly modify that code if needed.
- It has strong support for the MC55 motor controllers.
- The build and deploy process is extremely fast.
MOVEMENT
Because our robot needed to be highly maneuverable, we designed our program to use dual drive controls, where each joystick controls one week. VEXcode has out-of-the-box support for this, but it only works with motor devices and not the MC55 controller blocks. Since we were unsure of the implications of using the motor blocks directly, we chose the MC55 blocks and developed the code ourselves.
In this implementations, the percentage the joystick is moved forward is equal to the percentage of the wheel’s velocity, allowing our divers to move the robot slower or faster. If the joystick is moved down/backwards, that corresponds to a negative velocity, causing the motor to turn backwards.
ELEVATOR WINCH
In order to raise and lower the power cable grabber, we used a winch attached to a motor. We used the two buttons on the controller to control the winch. When the up button is pressed, the motor spins one direction and hen the other is pressed, the tor spins the opposite direction. We added a section of code that tells the motor to stop spinning once the button is released. This way the motor doesn’t continue spinning when we aren’t pressing any buttons.
HABITAT MODULE SYSTEM
Two buttons are used to control the servo. When one button is pressed the servo turns to position 180 degrees. When the other button is pressed, the servo turns to position -180 degrees.