Best Tools for a Young Team Control Panel?

Hello!

I am a student from a second year team, and as an off-season task I would like to practice putting together a Operator Console / Control Panel, (sorta like this)](http://i.imgur.com/kBvFNh.jpg)the hope being that if this goes well, my team will develop another for next year’s game, and control our robot with something more than a pair of joysticks or gamepads, and an unreliable SmartDashboard

My question is this: What microcontroller, arduino, or other method would be best suited, given the below criteria?

Simplicity- We are a young team with little experience in this field. Little/simple programming and wiring preferred.

Reliability- Though this will start as an off-season challenge, a similar system (if successful) would be used for the official competition. Well manufactured and not-gonna-cut-out-in-the-middle-of-a-match would be good.

Durability- FRC is rough on mechanisms. Though the core would be protected, and though we plan not on dropping our station, mild impact tolerance is a plus.

Capability- Ideally, we would be able to have a half-dozen assorted buttons, a knob for autonomous selection, maybe a toggle switch, and a few indicator lights. Nothing too complicated.

Documentation- Preferably, a popular tool that we could get help with if needed.

I realise no one product might fulfill all these, but if you know something that comes close, I would greatly appreciate your advice.

Have a swell day!

For the past couple year my team has used the TI Launch Pad.

First of all they do an awesome job documenting how to use them here http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Operator_Interface_for_FIRST_Robotics_Competition

secondly, they are available for free through FIRSTchoice or if you need to buy them they are only $13 https://store.ti.com/msp-exp430f5529lp.aspx

We have had better luck with these than the other options that we tried (the cypress psoc 4, and arduino mega).

Greg

The CCI (custom control interface) by eStop Robotics is a really simple option for operator consoles, it only costs $40. According to the product specs it has 12 digital inputs (buttons, multi-position switches) and 4 analog inputs (dials, etc). That should be more than enough for an FRC robot!

1912 has used the cci several times in the past (2012-2013-2014). Very reliable, I don’t think we ever had one fail on us through 2 regionals + CMP + offseason events. It is quite simple to set up, since the CCI can be controlled like a joystick in LabVIEW, with the appropriate digital/analog outputs.
Here is a picture of our 2014 console, with 1 button, 1 3-position switch, and 2 2-position switches. There is an orange acrylic shield on the front and back faces of the console, and a polycarb shield on the bottom.

I have no experience using the TI LaunchPads, it seems like they have more advanced functionality but also a bit more setup.

1 Like

We got a Cypress PSoC in our kit of parts this year which looks like it would work. Basically you can use this, or the TI Launchpad, to create a custom controller that looks like a gamepad to the robot code. So you can activate buttons using whatever kinds of buttons or switches or contacts you like, and analog controls can be mapped to sliders, dials, sensors and so on.

We have also used the TI Launchpad for at least 4 different control boards over the last 3 years. It takes a little setup to find and program the correct firmware using the TI tools, but it then “just works” when you plug it in to a PC with a Micro USB cable.

It actually enumerates itself in the Driver Station as two complete “joysticks” with about 11 buttons on each and a few analog inputs. With some arcade buttons from Sparkfun and some wiring, you can focus more on programming the robot to use all these fun buttons.

For the mechanical work, we have a table router do this, but a coring drill bit of 1-1/8" makes quick work for arcade buttons we use. Some crimp tools and connectors and a terminal block for connecting all the grounds finishes it out. I can get a few photos if needed.

Thanks for your answers, everyone!
At least to start, looks like I will try the TI Launchpad.

My next question then:
What input methods do you suggest?

jmullins16 mentioned the Arcade Button from sparkfun, which looks reliable and simple.

For the dial, 3D printing a knob for a potentiometer looks to be a good solution,
how about toggle switches and/or sliders and the like?
Sparkfun seems to have many of these options, so any experience of the best(most reliable/useful) would be great!

We used this to get a dozen buttons easily. It uses standard joystick drivers, so nothing to load on the Driver Station.

Regarding input methods:

I presume that you will be using standard joysticks to actually drive the robot. That is where analog input is most useful.

Everything else is mostly digital input (on/off). So, you need some momentary contact buttons (turn on when pressed, turn off when released) like the arcade button, and some latching buttons (or switches) that are either on or off, and stay that way (great for selecting between various autonomous modes).

If you want to get fancy, you can have some buttons with LED. You might have a spin-up the shooting motors button, and when the motors are at the correct speed, the Shoot button lights up. Ditto if you integrate it with vision (when your vision system determines that you are lined up for the shot, the shoot button lights up.

I could see using an analog input to control the speed of a shooting motor. You would then want to display the value on the Driver Station. I see that more for calibration purposes, and not for actual game use - try various motor speeds. However, simple up/down buttons work for that too.

Note: If your Driver Station fails prior to a match, the FTA will give you a basic clamshell DS. Those work with standard USB joysticks. I have no idea if they have the TI Launchpad drivers loaded.

For our main buttons we have used NKK switches and have really liked them. The switches you see used in the red demo box on the wiki are NKK. They are a bit pricey, but generally much better quality than what you find on sparkfun.

There are a few other good suggestions for inputs/outputs including specific part numbers on the wiki as well. If your team hasn’t used their digikey voucher yet, this could be a good option. Just make sure you place an order soon, since the digikey voucher expires on Saturday.

The firmware you load on the TI LaunchPad makes it a HID joystick, so no drivers needed. You flash the LaunchPad once and it’ll work with any driver station laptop.

Adding a photo of a basic TI launchpad wired to about 18 buttons. Be sure to add strain relief on whatever USB cable you use to connect to the your board–TI Launchpad or anything else. Micro USB does not deal with lots of tugging very well.

I agree with the advice about most things being on/off type inputs or outputs. We had talked about using the analog inputs with sliders or potentiometers, but we decided pretty quickly that they would be useful only when tuning/calibrating. Having the drive team dial in a number on the SmartDashboard right before a match is doable, but we try very hard to reduce the number of things to remember at that stressful time.

Toggle switches are also useful for when you want to have a mode “held” with positive visual feedback to the user what state the robot is in.

Note how close you make the buttons. We have the operator do some chording as they operate multiple subsystems at one time, so you don’t want that to be too uncomfortable. Our first board we customized for the operator with a fan layout, but since then we decided that a simple grid tends to be easy to learn by everyone as opposed to be optimal for one person’s hand dimensions. But these are the fun things to tinker with after you get the first one built, and there’s always room to grow from a simple board.





Shameless advertisement: https://github.com/GarnetSquardon4901/Operator-Interface-Control-Board

Unfortunately, they’re not available for purchase. However, fortunately, all the design files are there on GitHub and if you’re feeling adventurous enough, you can build one yourself.

It acts as an Arduino Mega, provides you with FRC style connections (I/O compatible with PWM cables and pinout’s follow that of the RoboRIO or older control systems.

It has a LabVIEW library that sits in your dashboard that can communicate with the board over USB.

Thanks,
Ryan Nazaretian