Skip to content

Commit

Permalink
added debug options for joystick shield
Browse files Browse the repository at this point in the history
  • Loading branch information
option8 committed May 15, 2014
1 parent 2710210 commit 331884f
Show file tree
Hide file tree
Showing 4 changed files with 366 additions and 0 deletions.
Binary file modified .DS_Store
Binary file not shown.
169 changes: 169 additions & 0 deletions Joystick-Shield/joystick_shield_debug/joystick_shield_debug.ino
@@ -0,0 +1,169 @@
/*
Thanks to Dagen Brock:
BASIC program to test joystick in Apple II emulators:
5 DP = .10: REM Deadzone Percentage
10 XLEFT = 0:YUP = 0:XRIGHT = 279:YBOT = 159: REM Screen Bounds
15 REM Set target box coordinates
20 HALF = XRIGHT / 2:D1 = INT (HALF - (HALF * DP)):D2 = INT (HALF + (HALF * DP))
25 HALF = YBOT / 2:D3 = INT (HALF - (HALF * DP)):D4 = INT (HALF + (HALF * DP))
30 HGR : HCOLOR= 3
35 REM Draw edge box
40 X1 = XLEFT:Y1 = YUP:X2 = XRIGHT:Y2 = YBOT: GOSUB 2000:X1 = X1 + 1:X2 = X2 - 1:Y1 = Y1 + 1:Y2 = Y2 - 1: GOSUB 2000
50 P0 = PDL (0):P1 = PDL (1): GOSUB 3000
55 PRINT P0,P1
60 GOTO 50
2000 HPLOT X1,Y1 TO X1,Y2: HPLOT X1,Y2 TO X2,Y2: HPLOT X2,Y2 TO X2,Y1: HPLOT X2,Y1 TO X1,Y1
2002 RETURN
3000 X = INT (P0 * 274 / 255 + 2):Y = INT (P1 * 154 / 255 + 2)
3010 X1 = X:X2 = X + 1:Y1 = Y:Y2 = Y1 + 1: GOSUB 2000
3020 GOSUB 4000: HCOLOR= 0: GOSUB 2000: HCOLOR= 3
3050 RETURN
4000 HPLOT D1,D3 TO D1,D4: HPLOT D1,D4 TO D2,D4: HPLOT D2,D4 TO D2,D3: HPLOT D2,D3 TO D1,D3
4010 RETURN : REM End Draw Target Box
*/




/* Read Joystick
*/


int XPin = A8;
int YPin = A7;

int Button0Pin = 9;
int Button1Pin = 10;

int JoystickX;
int JoystickY;

int XMax = 0;
int YMax = 0;
int XMin = 1023;
int YMin = 1023;


/*
adjust CalibrationMax up if the range on your joystick is too restricted to calibrate
adjust down if your joystick "jumps" around a lot. 800 seems to be a pretty good spot for the sticks i've tested.
*/

// int CalibrationMax = 800; // allows for weird "jumpy" joystick potentiometers. these things are 30 years old, after all.
int CalibrationMax = 9999; // no limit.




void setup() {
// Serial.begin(9600);

pinMode(Button0Pin, INPUT);
pinMode(Button1Pin, INPUT);

Joystick.useManualSend(true);

}

void loop() {


/* auto calibrate:
save X, Y.
compare them to historical high/low values.
if higher/lower, reset highest/lowest variable
highest == 1023
lowest == 0
midway between now == 512
*/
JoystickX = 1023 - analogRead(XPin); // needs to be inverted!
JoystickY = 1023 - analogRead(YPin);

/* auto calibrate:
save X, Y.
compare them to historical high/low values.
if higher/lower, reset highest/lowest variable
highest == 1023
lowest == 0
midway between now == 512
*/
// record the maximum sensor value
// if ((JoystickX < CalibrationMax) && (JoystickX > XMax)) {
if (JoystickX > XMax) {
XMax = JoystickX;
}

// record the minimum sensor value
if (JoystickX < XMin) {
XMin = JoystickX;
}
// record the maximum sensor value
// if ((JoystickY < CalibrationMax) && (JoystickY > YMax)) {
if (JoystickY > YMax) {
YMax = JoystickY;
}

// record the minimum sensor value
if (JoystickY < YMin) {
YMin = JoystickY;
}


JoystickX = map(JoystickX, XMin, XMax, 0, 1023);
JoystickY = map(JoystickY, YMin, YMax, 0, 1023);


Joystick.X(JoystickX);
Joystick.Y(JoystickY);

Joystick.button(1, digitalRead(Button0Pin));
Joystick.button(2, digitalRead(Button1Pin));

Joystick.send_now();

/*
Serial.print(XMin);
Serial.print(" -- ");
Serial.print(JoystickX);
Serial.print(" -- ");
Serial.print(XMax);
Serial.print(" -- || -- ");
Serial.print(YMin);
Serial.print(" -- ");
Serial.print(JoystickY);
Serial.print(" -- ");
Serial.println(YMax);
delay(100);
*/

/*
Serial.print(JoystickX);
Serial.print(" -- ");
Serial.print(JoystickY);
Serial.print(" -- ");
Serial.print(digitalRead(Button0Pin));
Serial.print(" -- ");
Serial.print(digitalRead(Button1Pin));
Serial.println();
delay(100);
*/
}
169 changes: 169 additions & 0 deletions Joystick-Shield/joystick_shield_no_limit/joystick_shield_no_limit.ino
@@ -0,0 +1,169 @@
/*
Thanks to Dagen Brock:
BASIC program to test joystick in Apple II emulators:
5 DP = .10: REM Deadzone Percentage
10 XLEFT = 0:YUP = 0:XRIGHT = 279:YBOT = 159: REM Screen Bounds
15 REM Set target box coordinates
20 HALF = XRIGHT / 2:D1 = INT (HALF - (HALF * DP)):D2 = INT (HALF + (HALF * DP))
25 HALF = YBOT / 2:D3 = INT (HALF - (HALF * DP)):D4 = INT (HALF + (HALF * DP))
30 HGR : HCOLOR= 3
35 REM Draw edge box
40 X1 = XLEFT:Y1 = YUP:X2 = XRIGHT:Y2 = YBOT: GOSUB 2000:X1 = X1 + 1:X2 = X2 - 1:Y1 = Y1 + 1:Y2 = Y2 - 1: GOSUB 2000
50 P0 = PDL (0):P1 = PDL (1): GOSUB 3000
55 PRINT P0,P1
60 GOTO 50
2000 HPLOT X1,Y1 TO X1,Y2: HPLOT X1,Y2 TO X2,Y2: HPLOT X2,Y2 TO X2,Y1: HPLOT X2,Y1 TO X1,Y1
2002 RETURN
3000 X = INT (P0 * 274 / 255 + 2):Y = INT (P1 * 154 / 255 + 2)
3010 X1 = X:X2 = X + 1:Y1 = Y:Y2 = Y1 + 1: GOSUB 2000
3020 GOSUB 4000: HCOLOR= 0: GOSUB 2000: HCOLOR= 3
3050 RETURN
4000 HPLOT D1,D3 TO D1,D4: HPLOT D1,D4 TO D2,D4: HPLOT D2,D4 TO D2,D3: HPLOT D2,D3 TO D1,D3
4010 RETURN : REM End Draw Target Box
*/




/* Read Joystick
*/


int XPin = A8;
int YPin = A7;

int Button0Pin = 9;
int Button1Pin = 10;

int JoystickX;
int JoystickY;

int XMax = 0;
int YMax = 0;
int XMin = 1023;
int YMin = 1023;


/*
adjust CalibrationMax up if the range on your joystick is too restricted to calibrate
adjust down if your joystick "jumps" around a lot. 800 seems to be a pretty good spot for the sticks i've tested.
*/

// int CalibrationMax = 800; // allows for weird "jumpy" joystick potentiometers. these things are 30 years old, after all.
int CalibrationMax = 9999; // no limit.




void setup() {
// Serial.begin(9600);

pinMode(Button0Pin, INPUT);
pinMode(Button1Pin, INPUT);

Joystick.useManualSend(true);

}

void loop() {


/* auto calibrate:
save X, Y.
compare them to historical high/low values.
if higher/lower, reset highest/lowest variable
highest == 1023
lowest == 0
midway between now == 512
*/
JoystickX = 1023 - analogRead(XPin); // needs to be inverted!
JoystickY = 1023 - analogRead(YPin);

/* auto calibrate:
save X, Y.
compare them to historical high/low values.
if higher/lower, reset highest/lowest variable
highest == 1023
lowest == 0
midway between now == 512
*/
// record the maximum sensor value
// if ((JoystickX < CalibrationMax) && (JoystickX > XMax)) {
if (JoystickX > XMax) {
XMax = JoystickX;
}

// record the minimum sensor value
if (JoystickX < XMin) {
XMin = JoystickX;
}
// record the maximum sensor value
// if ((JoystickY < CalibrationMax) && (JoystickY > YMax)) {
if (JoystickY > YMax) {
YMax = JoystickY;
}

// record the minimum sensor value
if (JoystickY < YMin) {
YMin = JoystickY;
}


JoystickX = map(JoystickX, XMin, XMax, 0, 1023);
JoystickY = map(JoystickY, YMin, YMax, 0, 1023);


Joystick.X(JoystickX);
Joystick.Y(JoystickY);

Joystick.button(1, digitalRead(Button0Pin));
Joystick.button(2, digitalRead(Button1Pin));

Joystick.send_now();

/*
Serial.print(XMin);
Serial.print(" -- ");
Serial.print(JoystickX);
Serial.print(" -- ");
Serial.print(XMax);
Serial.print(" -- || -- ");
Serial.print(YMin);
Serial.print(" -- ");
Serial.print(JoystickY);
Serial.print(" -- ");
Serial.println(YMax);
delay(100);
*/

/*
Serial.print(JoystickX);
Serial.print(" -- ");
Serial.print(JoystickY);
Serial.print(" -- ");
Serial.print(digitalRead(Button0Pin));
Serial.print(" -- ");
Serial.print(digitalRead(Button1Pin));
Serial.println();
delay(100);
*/
}
28 changes: 28 additions & 0 deletions USB_IIe_Kbd/Arduino/USB_IIe_Kbd/USB_IIe_Kbd.ino
Expand Up @@ -158,6 +158,9 @@ CTL = AVR A1 / 15
const int COLUMNS = 8;
const int ROWS = 10;


// QWERTY

int KEYS_ARRAY[ROWS][COLUMNS] = {
{ 0x29, 0x2B, 0x04, 0x1D, 0x54, 0x27, 0x55, 0x29 },

Expand All @@ -181,6 +184,31 @@ int KEYS_ARRAY[ROWS][COLUMNS] = {
};


// Add QWERTZ, AZERTY?

/*int KEYS_ARRAY[ROWS][COLUMNS] = {
{ 0x29, 0x2B, 0x04, 0x1D, 0x54, 0x27, 0x55, 0x29 },
{ 0x1E, 0x14, 0x07, 0x1B, 0x51, 0x52, 0x50, 0x4F },
{ 0x1F, 0x1a, 0x16, 0x06, 0x62, 0x5C, 0x60, 0x26 },
{ 0x20, 0x08, 0x0B, 0x19, 0x59, 0x5D, 0x61, 0x56 },
{ 0x21, 0x15, 0x09, 0x05, 0x5A, 0x5E, 0x63, 0x58 },
{ 0x23, 0x1C, 0x0A, 0x11, 0x5B, 0x5F, 0x57, 0x85 },
{ 0x22, 0x17, 0x0D, 0x10, 0x31, 0x35, 0x28, 0x2A },
{ 0x24, 0x18, 0x0E, 0x36, 0x2E, 0x13, 0x52, 0x51 },
{ 0x25, 0x0C, 0x33, 0x37, 0x27, 0x2F, 0x2C, 0x50 },
{ 0x26, 0x12, 0x0F, 0x38, 0x2D, 0x30, 0x34, 0x4F }
};
*/


/*
Expand Down

0 comments on commit 331884f

Please sign in to comment.