/******************************************************************************************************************************** Teensy PSX MACH3 PENDANT Feb 14, 2018 Patrick Griffin www.Ophelion.com wire function connect to ---- -------- --------- GRN unused cut BRN data pin 8 BLK 0vdc/ground pin RED 5vdc pin +5V YEL attention pin 7 ORG command pin 9 BLU clock pin 10 ********************************************************************************************************************************/ #include #define attPin 7 #define dataPin 8 #define cmdPin 9 #define clockPin 10 PSX2 PSX; void setup() { PSX.setupPins(dataPin, cmdPin, attPin, clockPin, 10); } void loop() { PSX.update(); /**************** * CYCLE FUNCTIONS */ // START BUTTON => START CYCLE if (PSX.risingEdge(psxStart)) { Keyboard.press(MODIFIERKEY_ALT); Keyboard.press(KEY_R); } else if (PSX.fallingEdge(psxStart)) { Keyboard.release(MODIFIERKEY_ALT); Keyboard.release(KEY_R); } // SELECT BUTTON => PAUSE CYCLE if (PSX.risingEdge(psxSelect)) { Keyboard.press(KEY_SPACE); } else if (PSX.fallingEdge(psxSelect)) { Keyboard.release(KEY_SPACE); } // TRIANGLE BUTTON => REWIND CYCLE if (PSX.risingEdge(psxTriangle)) { Keyboard.press(MODIFIERKEY_CTRL); Keyboard.press(KEY_W); } else if (PSX.fallingEdge(psxTriangle)) { Keyboard.release(MODIFIERKEY_CTRL); Keyboard.release(KEY_W); } // SQUARE BUTTON => ZERO Z if (PSX.risingEdge(psxSquare)) { Keyboard.press(MODIFIERKEY_ALT); Keyboard.press(KEY_Z); } else if (PSX.fallingEdge(psxSquare)) { Keyboard.release(MODIFIERKEY_ALT); Keyboard.release(KEY_Z); } // O BUTTON => if (PSX.risingEdge(psxO)) { } else if (PSX.fallingEdge(psxO)) { } // X BUTTON => STOP CYCLE if (PSX.risingEdge(psxX)) { Keyboard.press(MODIFIERKEY_ALT); Keyboard.press(KEY_S); } else if (PSX.fallingEdge(psxX)) { Keyboard.release(MODIFIERKEY_ALT); Keyboard.release(KEY_S); } /**************** * MOTORS */ // RIGHT BUTTON => X+ if (PSX.risingEdge(psxRight)) { Keyboard.press(KEY_RIGHT); } else if (PSX.fallingEdge(psxRight)) { Keyboard.release(KEY_RIGHT); } // LEFT BUTTON => X- if (PSX.risingEdge(psxLeft)) { Keyboard.press(KEY_LEFT); } else if (PSX.fallingEdge(psxLeft)) { Keyboard.release(KEY_LEFT); } // UP BUTTON => Y+ if (PSX.risingEdge(psxUp)) { Keyboard.press(KEY_UP); } else if (PSX.fallingEdge(psxUp)) { Keyboard.release(KEY_UP); } // DOWN BUTTON => Y- if (PSX.risingEdge(psxDown)) { Keyboard.press(KEY_DOWN); } else if (PSX.fallingEdge(psxDown)) { Keyboard.release(KEY_DOWN); } // L1 BUTTON => Z+ if (PSX.risingEdge(psxL1)) { Keyboard.press(KEYPAD_MINUS); } else if (PSX.fallingEdge(psxL1)) { Keyboard.release(KEYPAD_MINUS); } // L2 BUTTON => Z- if (PSX.risingEdge(psxL2)) { Keyboard.press(KEYPAD_PLUS); } else if (PSX.fallingEdge(psxL2)) { Keyboard.release(KEYPAD_PLUS); } // R1 BUTTON => A+ if (PSX.risingEdge(psxR1)) { Keyboard.press(MODIFIERKEY_ALT); Keyboard.press(KEYPAD_MINUS); } else if (PSX.fallingEdge(psxR1)) { Keyboard.release(MODIFIERKEY_ALT); Keyboard.release(KEYPAD_MINUS); } // R2 BUTTON => A- if (PSX.risingEdge(psxR2)) { Keyboard.press(MODIFIERKEY_ALT); Keyboard.press(KEYPAD_PLUS); } else if (PSX.fallingEdge(psxR2)) { Keyboard.release(MODIFIERKEY_ALT); Keyboard.release(KEYPAD_PLUS); } }