Using a Gamepad
Last updated
Last updated
While our robot is able to do a lot autonomously, more often than not we need, or want, to input commands using a gamepad. There is a wide variety of gamepads that are compatible with the Driver Hub. For this tutorial we will be focusing on a generic PS4 controller, such as the, REV USB PS4 Compatible Gamepad, or an Etpark Wired Controller.
To initialize the gamepad that will act as User 1 (gamepad1, in code) press the options button and the Cross/A button on the gamepad at the same time. To initialize User 2 ( gamepad2, in code) press the options button and the Circle/B button at the same time.
All buttons on a gamepad can be programmed to a specific task or behavior. Let's take a look at the breakdown of each button, their associated block name, and the type of data they output:
PS4 Controllers | Generic USB Gamepad | Blocks | Data Type |
---|---|---|---|
Cross | a | Boolean | |
Circle | b | Boolean | |
Triangle | y | Boolean | |
Square | x | Boolean | |
Dpad Up | Dpad Up | Boolean | |
Dpad Down | Dpad Down | Boolean | |
Dpad Left | Dpad Left | Boolean | |
Dpad Right | Dpad Right | Boolean | |
Left Bumper | Left Bumper | Boolean | |
Right Bumper | Right Bumper | Boolean | |
Left Trigger | Left Trigger | Float | |
Right Trigger | Right Trigger | Float | |
PS | Home | Boolean | |
Options | Start/Options | Boolean | |
Share | Back/Share | Boolean | |
Left Stick Button | Left Stick Button | Boolean | |
Left Stick X Axis | Left Stick X Axis | Float | |
Left Stick Y Axis | Left Stick Y Axis | Float | |
Right Stick Button | Right Stick Button | Boolean | |
Right Stick X Axis | Right Stick X Axis | Float | |
Right Stick Y Axis | Right Stick Y Axis | Float |
The gamepad outputs two types of data back to the Control Hub to be used within the program:
Boolean data has two possible values: True and False. These two values can also be represented by On and Off or 1 and 0.
The buttons, bumpers, and triggers on the gamepad provide boolean data to our robot! For example, a button that is not pressed will return a value of False (or 0) and a button that is pressed will return the value True (or 1).
Float data is a number that can include decimal places and positive or negative values.
On the gamepad, the float data returned will be between 1 and -1 for the joystick's position on each axis. Some examples of possible values are 0.44, 0, -0.29, or -1.