arduino-joystick/Readme.md

34 lines
2.3 KiB
Markdown
Raw Normal View History

2015-11-13 05:57:57 +00:00
# Arduino Joystick library
This is a library that builds and sends USB HID Joystick reports, making it easy to build USB Joysticks with Arduino.
2015-11-05 03:02:09 +00:00
2015-11-13 05:57:57 +00:00
## Dependencies
* After uploading your sketch, your Arduino's USB communication chip will need to be programmed with the arduino-big-joystick firmware (or similar). See <https://github.com/harlequin-tech/arduino-usb> for more info.
* The Bounce2 library, available at <https://github.com/thomasfredericks/Bounce2>.
* The Analog-Digital Multiplexers library, available at <https://github.com/stechio/arduino-ad-mux-lib>.
2015-11-13 05:57:57 +00:00
## Installation
1. Install dependencies as above, or if using `arduino-cli`, with:
arduino-cli lib install Bounce2
arduino-cli lib install "Analog-Digital Multiplexers"
2. Put the arduino-joystick directory into your Arduino libraries directory.
2015-11-13 05:58:24 +00:00
2021-11-24 06:04:21 +00:00
## Compiling and running the example code via SimulIDE
1. Run `make` from the `example` directory.
2. Load `example.simu` in SimulIDE.
3. Right-click on the Arduino component, and click "load firmware". Select the `.hex` file created in the `example/` directory.
4. Click the red `Power Circuit` icon at the top of the SimulIDE window.
2015-11-13 05:58:24 +00:00
## Usage
2021-11-24 06:04:21 +00:00
1. In your arduino sketch, add the include:
2015-11-13 05:57:57 +00:00
#include <Joystick.h>
2015-11-13 05:58:24 +00:00
2. Create a Joystick object:
Joystick joystick(true);
2021-11-24 06:04:21 +00:00
3. Add buttons and axes in `setup()` with the `Add*` functions from `Joystick.h`. Call `joystick.Update()` in your `loop()` function. Also call `joystick.Init()` during `setup()`.
4. Upload the sketch, connect to the serial monitor (at 115200 baud) and test the buttons.
5. Set the joystick's `debug` parameter to `false` and re-upload the sketch. The arduino will NOT work in joystick mode with debug set to `true`!
6. Flash the `arduino-big-joystick` firmware onto the USB Controller.
2021-11-24 06:04:21 +00:00
### Advanced usage: multiplexers, matrices
2021-11-24 06:04:21 +00:00
If you need more buttons than your board has pins, this library supports keyboard-style scan matrices as well as multiplexers. **(FIXME: multiplexers aren't working yet)** See the example sketch in the `example/` directory for usage details. Note that, for matrices, the *rows* are the inputs that will be read, and the *columns* are the outputs that will sink the current. Current should flow (via diodes) from the rows to the columns. See the `example.simu` SimulIDE file for an example circuit.