Arduino Joystick Mouse Enclosure
thingiverse
Enclosure for a joystick mouse made from an Arduino Pro Micro, joystick module, and tac switch. Margins are tight, so recommend lightly filing the inner tracks of the enclosure, and/or the rough sides of the boards themselves to slide them in easier. The solder points on the Arduino also need to be low profile and facing inward, and the excess solder under the joystick board needs to be clipped off. Modified Arduino code to support right-click on pin 2: /* HID Joystick Mouse Example by: Jim Lindblom date: 1/12/2012 license: MIT License - Feel free to use this code for any purpose. No restrictions. Just keep this license if you go on to use this code in your future endeavors! Reuse and share. This is very simplistic code that allows you to turn the SparkFun Thumb Joystick (http://www.sparkfun.com/products/9032) into an HID Mouse. The select button on the joystick is set up as the mouse left click. */ #include <Mouse.h> int horzPin = A0; // Analog output of horizontal joystick pin int vertPin = A1; // Analog output of vertical joystick pin int selPin = 9; // select button pin of joystick int rclPin = 2; // select button pin of joystick int vertZero, horzZero; // Stores the initial value of each axis, usually around 512 int vertValue, horzValue; // Stores current analog output of each axis const int sensitivity = 200; // Higher sensitivity value = slower mouse, should be <= about 500 int mouseClickFlag = 0; int rightClickFlag = 0; //int invertMouse = 1; //Invert joystick based on orientation int invertMouse = -1; //Noninverted joystick based on orientation void setup() { pinMode(horzPin, INPUT); // Set both analog pins as inputs pinMode(vertPin, INPUT); pinMode(selPin, INPUT); // set button select pin as input digitalWrite(selPin, HIGH); // Pull button select pin high pinMode(rclPin, INPUT); // set button select pin as input digitalWrite(rclPin, HIGH); // Pull button select pin high delay(1000); // short delay to let outputs settle vertZero = analogRead(vertPin); // get the initial values horzZero = analogRead(horzPin); // Joystick should be in neutral position when reading these Mouse.begin(); //Init mouse emulation } void loop() { vertValue = analogRead(vertPin) - vertZero; // read vertical offset horzValue = analogRead(horzPin) - horzZero; // read horizontal offset if (vertValue != 0) Mouse.move(0, ((vertValue / sensitivity)), 0); // move mouse on y axis if (horzValue != 0) Mouse.move((invertMouse * (horzValue / sensitivity)), 0, 0); // move mouse on x axis if ((digitalRead(selPin) == 0) && (!mouseClickFlag)) // if the joystick button is pressed { mouseClickFlag = 1; Mouse.press(MOUSE_LEFT); // click the left button down } else if ((digitalRead(selPin)) && (mouseClickFlag)) // if the joystick button is not pressed { mouseClickFlag = 0; Mouse.release(MOUSE_LEFT); // release the left button } if ((digitalRead(rclPin) == 0) && (!rightClickFlag)) // if the joystick button is pressed { rightClickFlag = 1; Mouse.press(MOUSE_RIGHT); // click the left button down } else if ((digitalRead(rclPin)) && (rightClickFlag)) // if the joystick button is not pressed { rightClickFlag = 0; Mouse.release(MOUSE_RIGHT); // release the left button } }
With this file you will be able to print Arduino Joystick Mouse Enclosure with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Arduino Joystick Mouse Enclosure.