tebl / RC6502-Apple-1-Replica

An expandable SBC-version of the Apple 1 computer, easy to get started with and lot of cool stuff that can be added to it!
https://hvetebolle.blogspot.no/p/rc6502.html
GNU General Public License v3.0
150 stars 35 forks source link

Problem while using joystick as mouse #43

Open BinaryBark27 opened 2 years ago

BinaryBark27 commented 2 years ago

the code I copied from the Arduino IDE website is showing an error. showing"MOUSE not defined" I have even included the MOUSE library

problem

here is the code

include

/* JoystickMouseControl

Controls the mouse from a joystick on an Arduino Leonardo, Micro or Due. Uses a pushbutton to turn on and off mouse control, and a second pushbutton to click the left mouse button.

Hardware:

include

// set pin numbers for switch, joystick axes, and LED: const int switchPin = 2; // switch to turn on and off mouse control const int mouseButton = 3; // input pin for the mouse pushButton const int xAxis = A0; // joystick X axis const int yAxis = A1; // joystick Y axis const int ledPin = 5; // Mouse control LED

// parameters for reading the joystick: int range = 12; // output range of X or Y movement int responseDelay = 5; // response delay of the mouse, in ms int threshold = range / 4; // resting threshold int center = range / 2; // resting position value

bool mouseIsActive = false; // whether or not to control the mouse int lastSwitchState = LOW; // previous switch state

void setup() { pinMode(switchPin, INPUT); // the switch pin pinMode(ledPin, OUTPUT); // the LED pin // take control of the mouse: Mouse.begin(); }

void loop() { // read the switch: int switchState = digitalRead(switchPin); // if it's changed and it's high, toggle the mouse state: if (switchState != lastSwitchState) { if (switchState == HIGH) { mouseIsActive = !mouseIsActive; // turn on LED to indicate mouse state: digitalWrite(ledPin, mouseIsActive); } } // save switch state for next comparison: lastSwitchState = switchState;

// read and scale the two axes: int xReading = readAxis(A0); int yReading = readAxis(A1);

// if the mouse control state is active, move the mouse: if (mouseIsActive) { Mouse.move(xReading, yReading, 0); }

// read the mouse button and click or not click: // if the mouse button is pressed: if (digitalRead(mouseButton) == HIGH) { // if the mouse is not pressed, press it: if (!Mouse.isPressed(MOUSE_LEFT)) { Mouse.press(MOUSE_LEFT); } } // else the mouse button is not pressed: else { // if the mouse is pressed, release it: if (Mouse.isPressed(MOUSE_LEFT)) { Mouse.release(MOUSE_LEFT); } }

delay(responseDelay); }

/ reads an axis (0 or 1 for x or y) and scales the analog input range to a range from 0 to /

int readAxis(int thisAxis) { // read the analog input: int reading = analogRead(thisAxis);

// map the reading from the analog input range to the output range: reading = map(reading, 0, 1023, 0, range);

// if the output reading is outside from the rest position threshold, use it: int distance = reading - center;

if (abs(distance) < threshold) { distance = 0; }

// return the distance for this axis: return distance; }

tebl commented 2 years ago

I can't offer any specific advice as this probably isn't related to the RC6502 computer, especially since mice were mostly unknown in the era of computers that it belongs to. From having tinkered with similar things, the specific error you're experiencing might simply be that you're trying to use the library with an MCU that does not include USB-host capability (Arduino Uno, Nano etc) while you instead need something like an Arduino Pro Micro or Arduino Leonardo.

fre. 5. aug. 2022 kl. 15:59 skrev BinaryBark27 @.***>:

the code I copied from the Arduino IDE website is showing an error. showing"MOUSE not defined" I have even included the MOUSE library

[image: problem] https://user-images.githubusercontent.com/101661472/183092131-8a81c97e-7582-4051-9058-eed73be1f273.jpg

here is the code

include

/* JoystickMouseControl

Controls the mouse from a joystick on an Arduino Leonardo, Micro or Due. Uses a pushbutton to turn on and off mouse control, and a second pushbutton to click the left mouse button.

Hardware:

  • 2-axis joystick connected to pins A0 and A1
  • pushbuttons connected to pin D2 and D3

The mouse movement is always relative. This sketch reads two analog inputs that range from 0 to 1023 (or less on either end) and translates them into ranges of -6 to 6. The sketch assumes that the joystick resting values are around the middle of the range, but that they vary within a threshold.

WARNING: When you use the Mouse.move() command, the Arduino takes over your mouse! Make sure you have control before you use the command. This sketch includes a pushbutton to toggle the mouse control state, so you can turn on and off mouse control.

created 15 Sep 2011 updated 28 Mar 2012 by Tom Igoe

This example code is in the public domain.

https://www.arduino.cc/en/Tutorial/BuiltInExamples/JoystickMouseControl */

include

// set pin numbers for switch, joystick axes, and LED: const int switchPin = 2; // switch to turn on and off mouse control const int mouseButton = 3; // input pin for the mouse pushButton const int xAxis = A0; // joystick X axis const int yAxis = A1; // joystick Y axis const int ledPin = 5; // Mouse control LED

// parameters for reading the joystick: int range = 12; // output range of X or Y movement int responseDelay = 5; // response delay of the mouse, in ms int threshold = range / 4; // resting threshold int center = range / 2; // resting position value

bool mouseIsActive = false; // whether or not to control the mouse int lastSwitchState = LOW; // previous switch state

void setup() { pinMode(switchPin, INPUT); // the switch pin pinMode(ledPin, OUTPUT); // the LED pin // take control of the mouse: Mouse.begin(); }

void loop() { // read the switch: int switchState = digitalRead(switchPin); // if it's changed and it's high, toggle the mouse state: if (switchState != lastSwitchState) { if (switchState == HIGH) { mouseIsActive = !mouseIsActive; // turn on LED to indicate mouse state: digitalWrite(ledPin, mouseIsActive); } } // save switch state for next comparison: lastSwitchState = switchState;

// read and scale the two axes: int xReading = readAxis(A0); int yReading = readAxis(A1);

// if the mouse control state is active, move the mouse: if (mouseIsActive) { Mouse.move(xReading, yReading, 0); }

// read the mouse button and click or not click: // if the mouse button is pressed: if (digitalRead(mouseButton) == HIGH) { // if the mouse is not pressed, press it: if (!Mouse.isPressed(MOUSE_LEFT)) { Mouse.press(MOUSE_LEFT); } } // else the mouse button is not pressed: else { // if the mouse is pressed, release it: if (Mouse.isPressed(MOUSE_LEFT)) { Mouse.release(MOUSE_LEFT); } }

delay(responseDelay); }

/ reads an axis (0 or 1 for x or y) and scales the analog input range to a range from 0 to /

int readAxis(int thisAxis) { // read the analog input: int reading = analogRead(thisAxis);

// map the reading from the analog input range to the output range: reading = map(reading, 0, 1023, 0, range);

// if the output reading is outside from the rest position threshold, use it: int distance = reading - center;

if (abs(distance) < threshold) { distance = 0; }

// return the distance for this axis: return distance; }

— Reply to this email directly, view it on GitHub https://github.com/tebl/RC6502-Apple-1-Replica/issues/43, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGEF6IPD67MRQWWFIWPT53LVXUM23ANCNFSM55WFXR4Q . You are receiving this because you are subscribed to this thread.Message ID: @.***>