Introducing ACCESS_OS: An V5 Controller GUI System

After losing many rounds of auton due to not having a unified auton selector system, I took it upon myself to create an auton selector that is user-friendly.

**Introducing ACCESS_OS: a GUI operating system (OS) that runs on the V5 Controller’s screen that allows users to modify the robot’s auton + preset options. **

Disclaimer: this isn’t really an OS, but it could be, if someone modifies it :wink:

HOW IT WORKS:

  1. Program starts
  2. While not connected to the competition switch, users can use the arrow keys to modify auton row (front or back), auton color (red or blue). It also lets drivers to pick their driving mode (Tank or RC). Pressing the A button will set the configuration.
  3. After exiting the selection menu, users are presented with the status GUI, a page that displays useful information about the options selected and current robot status (disabled, auton mode, driver mode, etc.)
  4. Everything else follows the normal procedures.

FOR DRIVERS:
WARNING: MAKE SURE YOU’RE NOT CONNECTED TO THE COMPETITION SWITCH WHEN YOU ARE TRYING TO CHANGE OPTIONS! IF THE SWITCH IS DISABLING YOUR ROBOT, YOU CAN’T MAKE ANY CHANGES!
Move the cursor with the up/down arrow buttons and change options with the left/right buttons.
Press A to comfirm and exit the configuation page.
Status GUI is just FYI, use it for brief checks on the robot’s status.

FOR PROGRAMMERS:
WARNING: YOU WILL NEED TO MERGE YOUR AUTONS CONTROLS INTO THE PRESET FUNCTIONS FOR ACCESS_OS TO WORK!
Create blue autons for autonFrontRow and autonBackRow. Use autonTurnTile when programming blue auton, it will automatically swap your left/right for red.
Put drive modes into tankDrive and RCDrive respectively. The driver will select the prefered mode during pre_auton.
If you want to print out some text, use GUI_printMSG() as replacement for the Controller.Screen.print() function. Currently you can only print up to 15 characters, future releases will include scrolling.

BUGS:

  1. When the competition switch changes from driver/disabled to auton, the options page might not refresh to reflect changes until the user presses A.
  2. There’s a delay in clearing the screen. Probably have to use built-in Screen.clearScreen() and Screen.clearLine().
  3. ??? (Please comment if you find some more bugs!)

FUTURE FEATURES:

  1. Text scrolling to pass the 15 char limit.
  2. Better code optimization.
  3. Make GUI_clearScreen and GUI_clearLine run faster.
  4. ???

Link: https://dev.azure.com/roboVEX/_git/ACCESS_OS

This is my first project using C++ Pro, so comments, complaints, critiques, and commits are greatly appreciated!

12 Likes

wow if I had v5 I’d use it.

3 Likes

Do you have a video? I don’t have access to V5, but I still want to see it in action.

1 Like

Here’s an video of an working older version. Unfortunately, I can’t upload the video as-is, so it’s compressed into a zip file.
ACCESS_OS_v0.6.zip (5.42 MB)

1 Like

Please just put it on YouTube.

1 Like

Just uploaded it to youtube over here: https://youtu.be/f5Cd5GpTSbA

2 Likes

New update to ACCESS_OS should be up in a few days. Expect Great Things™

1 Like

Splendid. I may just use this next season

3 Likes

Nice work. I like how it uses the screen on the controller/joystick for feedback to the driver. I would think that in competition that makes a difference as it puts the info on the status of the robot right at the user, so they know if everything is ok.

2 Likes

Agreed. Which is why I created this in the first place. It’s hard already that the robot isn’t always going to work in auton, but having no status on what the robot is doing makes it worse.

1 Like

Will be updating this in a few more days, the status updating loop of the program is creating rare input lag.

Any other features or bugs that I’ve missed? Please tell me!

1 Like

Ok, I’m going to sound like a nicen’t human being or this, but can people stop releasing their Auto selectors? Just about everyone already has either written their own solution to autonomous selection that they are already comfortable with, or doesn’t care enough to want it. There are already so many public programs with auto selectors. I don’t see a point in more people releasing more selectors. That being said, this one does stand out, since it has controller support rather than just v5 screen support.

This was posted on December 18. I have only seen three topics that had menu’s with their code since the existence of V5. To be honest, I like that people release their code because it allows other users to access and customize it for themselves.

6 Likes

That is correct. When people ask how to approach the problem, we point to the code we posted. We will have a revision after Worlds using VEX Code.

@DrewWHOOP I agree that others had tried and made better auton selectors than me. ACCESS_OS was create due to other auton selectors not having everything controlled on the controller + with status updates (there may have been newer programs that does that I may have missed)

@lacsap Maybe we should combine auton selectors? :smiley:

1 Like

We did add update to the controller, this way one person would configure the robot on the brain, while the second would verify settings - it does happen that a team will pick Red when they are starting on Blue. Happens in real life when plane lands in wrong country.

When I post the VEX Code version, it should be modular enough to drop in new features while not making it spiral out of control for novice teams to use.

2 Likes

how do you program that?

@tlaning Do you mean the menu or the status interface after selection?

NEW update [v1.1.0]: Now ACCESS_OS is a class that you can put into your own code!
NOTE: Documentation is still not complete, but hopefully it is commented and clear enough for programmers to understand what it does.

4 Likes

@robonxt Both the menu and the status interface after selections.