The Versalino Control Arduino Gamepad board was designed originally for use with the Versalino Rove as an external Joystick/push-button controller. The design has been used at the Colorado Engineering Summit, and the What If festival with great success.
The Versalino Control is an official Versalino Loadboard, and as such is manufactured here is Colorado Springs, Colorado by our team. For those of you who don’t know all official Versalino boards are manufactured in the United States (even the boards). It is and has been our goal to make as many of our designs as possible in the US and we are proud to make the Versalino Control for you.
As the board has been adopted into more and more projects it has been used in many new ways, and it is my hope that this guide will help you get a better understanding of the design, and function of the Versalino Control 1.0 board. If there are any questions I don’t answer in this article please do not hesitate to reply to this post with your questions or to add a question to our Questions & Answers section.
Versalino Control Arduino Gamepad Layout/Pin-Out:
First off the Versalino Control is a full fledged Versalino Loadboard designed to work with the Versalino BUS architecture. That said it can be wired directly to a standard Arduino Uno/Arduino Mega pin-out (particularly if you only need one or two of it’s functions).
The Versalino Control Arduino Gamepad was one of the first Versalino loadboards to take full advantage of the right angle Versalino Loadboard capabilities by reducing it’s own size significantly from the original 35 by 55 mm loadboard pattern. This board was designed to take minimal space while still maximizing it’s bus usage.
As can be seen in the layout diagram to the right, the board is broken down into five major components (other than the Versalino BUS along the far Right).
First in the middle of the board is an RGB LED that can be controlled by the PWM pins on the Versalino bus. The RGB LED is connected as follows: Green BUSA/B.P1, Red BUSA/B.P2, Blue BUSA/B.P3, or more simply G = P1, R = P2, B = P3. The use of an RGB LED is mean’t to provide you with a way to give various indications to a player.
The RGB LEDs original intended usage was to indicate the team color of the person controlling a Versalino Rove. The RGB LED was later adapted for usage to idicate obstacle proximity, and to flash in accordance with touch sensors to indicate a crash. That said I am sure you can think of a ton of ways to use it in your particular applications as an Arduino Gamepad, or robotic controller.
Next we have two static push buttons, BTN1 is connected to D2 (BUSA/B.D2) and BTN2 is connected to D3 (BUSA/B.D3). Both buttons are simple static push buttons, and they connect to ground when pressed. The reason that we use ground for all Arduino/Versalino push-buttons is because of the fact that an internal pull-up resistor is available on ATMEGA328P-PU (Arduino/Versalino Uno controller) Input Output pins. We are able to use this Pull-Up Resistor to prevent false readings on inputs. More details on the usage of these buttons will be provided in the next section of this article.
Finally the core function that most have used the Versalino Control Arduino Gamepad for is to connect Joysticks, and DPADs to their project controllers. The ports on the right and left are designed to connect the Virtuabotix 1P DPAD and Virtuabotix Joystick modules easily to your project with relative simplicity. The key advantage to the design is that you can swap the Joystick and 1P DPAD to opposite sides (ideal if you need to be able to accommodate right handed, and left handed players at different times).
NOTE: This board does not work with two joysticks connected because one of the Analog inputs ends up being shared between the two sticks.
Though the diagram is fairly clear on how the two ports are wired I will go into a little detail on why it is wired that way. The first thing you should notice is that the two ports are virtually identical, but that they are rotated 180 degrees from each-other. This is so that boards can be swapped from on side to the other without modification. As you can see Analog Input A2 is shared between both ports, which is why only one joystick can be used at a time.
|G||Ground||Common ground between the Versalino Control Arduino Gamepad and your Arduino/Versalino|
|A1||JOY PORT L||First Analog Pin on Left Joystick Port|
|A2||JOY PORT L & R||Shared Analog Pin 2 on Right & Left Joystick Ports|
|A3||JOY PORT R||First Analog Pin on Right Joystick Port|
|D1||JOY PORT D2 (L&R)||Though D2 is printed on the silk screen, this pin actually corresponds to D1 on the Versalino BUS. This will be changed on the next rev of the Versalino Gamepad. The D2 refers to the Arduino pin 2 that BUSA.D1 is attached to on the Versalino.|
|P1||Green LED||This pin controls the brightness of the Green element of the RGB LED|
|D2||JOY PORT D2 (L&R)||Though D2 is printed on the silk screen, this pin actually corresponds to D1 on the Versalino BUS. This will be changed on the next rev of the Versalino Gamepad. The D2 refers to the Arduino pin 2 that BUSA.D1 is attached to on the Versalino.|
|P2||Red LED||This pin controls the brightness of the Red element of the RGB LED|
|D3||JOY PORT D2 (L&R)||Though D2 is printed on the silk screen, this pin actually corresponds to D1 on the Versalino BUS. This will be changed on the next rev of the Versalino Gamepad. The D2 refers to the Arduino pin 2 that BUSA.D1 is attached to on the Versalino.|
|P3||Blue LED||This pin controls the brightness of the Blue element of the RGB LED|
|VDD||Vdd||Supply 3.3 to 5.0 Volts|
Versalino Control Arduino Gamepad Project ideas & Examples:
Now there are already a few resources out there for the Versalino Control board coding, most notably is an extensive joystick and protocol guide I wrote a while ago for the development of a robotic control and communication system ton of things you can do with the Versalino Control board. That said you are not restricted in any way on what you do with the board in your projects.
A board like this could easily be integrated with our Versalino LCD & Keypad board to create an LCD screen based video game, or you could connect the board together in your own housing to a PC, MAC, or Linux computer to control real video games with your Versalino Control board! Either way we can’t wait to see what you put together. Be sure to send us a message or reply to this post if you have a project you would like to share.