1 / 2
Arduino Joystick Mouse Enclosure — zdjęcie 1
1 / 2

Arduino Joystick Mouse Enclosure

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

Enclosure for a joystick mouse made from an Arduino Pro Micro, joystick module, and tac switch.

Ocena
0 / 5
Polubienia
6
Pobrania
52
Wydruki
0
Wyświetlenia
489
Oceny
0

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Other Ideas
Licencja
Creative Commons — Attribution

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 } }

Category: DIY

Tagi