Joystick Mouse Control
Using the Mouse library, you can controls a computer's onscreen cursor with an Arduino Leonardo, Micro, or Due. This particular example uses a pushbutton to turn on and off mouse control with a joystick.
Cursor movement from the Arduino is always relative. So every time the analog input is read, the cursor's position is updated relative to it's current position.
Two analog inputs ranging from 0 to 1023 are translated to ranges of -12 to 12. The sketch assumes that the joystick resting values are around the middle of the range, but that they vary within a threshold.
The pushbutton allows you to toggle mouse control on and off. As an option you may connect a status LED to pin 5 that lights upwhen the Arduino is controlling the mouse. A second pushbutton may be connected with another 10k ohm pulldown (to GND) resistor to D3 to act as the left click of the mouse.
NB: When you use the Mouse.move() command, the Arduino takes over your computer's cursor! To insure you don't lose control of your computer while running a sketch with this function, make sure to set up a controller before you call Mouse.move(). This sketch includes a pushbutton to toggle the mouse control state, so you can turn on and off mouse control.
Hardware Required
Arduino Leonardo, Micro, or Due board
2 axis joystick
momentary pushbutton (possibly integrated in the joystick)
LED
220 ohm resistor
10k ohm resistor (if needed as pulldown)
Circuit
Connect your Leonardo board to your computer with a micro-USB cable. The pushbutton is connected to pin 6. If you're using a part like the Joystick shield pictured below, you may not need a pulldown resistor. The x-axis on the joystick is connected to analog in 0, the y-axis is on analog in 1.
Schematic
Code
See Also
KeyboardLogout - Logs out the current user with key commands.
KeyboardMessage - Sends a text string when a button is pressed.
KeyboardReprogram - Opens a new window in the Arduino IDE and reprograms the Leonardo with a simple blink program.
KeyboardSerial - Reads a byte from the serial port, and sends back a keystroke.
KeyboardAndMouseControl - Demonstrates the Mouse and Keyboard commands in one program.
ButtonMouseControl - Control cursor movement with 5 pushbuttons.
Last revision 2015/07/29 by SM