How to Custom Driver Station Input(ie Potentiometer)

programming
java

#1

I’m wondering how I would go about making custom inputs for my driverstation, say a potentiometer that controls a servo on the robot. How would I go about attaching the potentiometer to the laptop? Would I have to find one that has a usb output, or connect it to something else that then connects to the laptop?
Once I figure that out, I’m guessing I would have to create my own class(code) for it since I doubt something like creating a joystick input would work lol.
Thanks for the help!


#2

This would be your best bet, they are still available via firstchoice. We use it for a custom secondary drivers station. The laptop sees it as a joystick, there a so many input/output options.

https://firstchoicebyandymark.com/fc-msp-exp430f5529lp


#3

Check out the Launch Pad on First Choice. This is how we do it. You wire custom buttons to the board and they show up as a joystick on your Driverstation. https://www.firstchoicebyandymark.com/everything


#4

Our team (4915) simply uses software to add some driver input. We run a python-based driver station, and can add HTML input elemets (sliders, buttons ect.) which map to keys in networktables. We used this last year to controll the speed of our climber.


#5

I really like using a USB HID board which is easy to wire, easy to control (look just like another joystick) and gets the job done without using up too many resources.


#6

We’ve used both the MSP430 LaunchPad pointed out by pugsly14 and cpapplefamily and the Cypress PSoC 5LP Prototyping Kit (also available from FIRST Choice at https://firstchoicebyandymark.com/fc-cy8ckit-059). Last year we used one of each, one for a homemade joystick for our driver and the other for our operator’s control panel.

In both cases, once you load the right firmware onto the board, the devices appear to the computer (and your robot code) as another joystick. To set up the potentiometer you asked about, connect the fixed potentiometer terminals to Vcc and ground, and the wiper (variable terminal) to one of the analog inputs. From your code, read the right analog axis from the right joystick, and feed that value into the servo.

Using the MSP430 LaunchPad as a game pad for FRC is well documented at https://web.archive.org/web/20180623211645/http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Operator_Interface_for_FIRST_Robotics_Competition.

Using the Cypress Kit as a game pad for FRC is less-well documented at https://community.cypress.com/thread/30090. (But all of the detail about attaching buttons, LEDs, and analog inputs in the MSP430 documentation can be applied here as well.)

The advantages of the MSP430 are that everything you need to get it up and running is installed as part of the FRC NI Update, and no soldering is required. (You do have to be able to make 0.1" header connections one way or another.) The biggest downside to the MSP430 is that you need to calibrate your analog inputs through the Windows joystick calibration before they’re useful. (They may have fixed this this year, I haven’t checked. If not, you can avoid the calibration issue by using our firmware which fixes this problem - https://github.com/CougarProgramming623/MSP430-Gamepad/releases/tag/20181118 .)

The advantages of the Cypress kit are that you get many more digital inputs and outputs, and the I/O pins are laid out a bit more sanely. The downsides are that you need to download and install the PSoC Programmer (to load firmware on the device) on your own, and you need to solder pin headers onto the board.


Keyboard Input in DS Java?
#7

Hmm alright. Just for future knowledge, do you know of any good networktable guides? I’ve seen and heard of it quite alot, just haven’t needed to use them but it I go with an approach like this, I might have to
Thanks!