Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Work with Teensy++ 2.0 #11

Open
ghost opened this issue Mar 4, 2018 · 1 comment
Open

Work with Teensy++ 2.0 #11

ghost opened this issue Mar 4, 2018 · 1 comment

Comments

@ghost
Copy link

ghost commented Mar 4, 2018

I have edited a code for Teensy ++ 2.0
Sorry if I'm using Github wrong, I'm new here.

You should be family with 5 bit binary, but it's simple.
Possibility of up to 32 payloads with filenames like "00000.txt" - "11111.txt"

5 DIP
1 2 3 4 5
16 8 4 2 1
(16+8+4+2+1=31)

If DIP 00001 - File is same.

Remember, DIP SWITCH is PULLUP, so it works in reverse.
On = Off, on the DIP Switch itself.

//CODE:

/*

  • Author: Seytonic
  •     https://twitter.com/seytonic
    
  •     https://www.youtube.com/seytonic
    
  • GIT:
  •     https://github.com/Seytonic/Duckduino-microSD
    

*/
#include <SPI.h>
#include <SD.h>
#include <string.h>
#include "Keyboard.h"

File myFile;

boolean first = true;

//String DEFAULT_FILE_NAME = "";
//const char* DEFAULT_FILE_NAME = "script.txt";
//char* DEFAULT_FILE_NAME;

// change this to match your SD shield or module;
// Arduino Etihernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
// Teensy audio board: pin 10
// Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD
// Wiz820+SD board: pin 4
// Teensy 2.0: pin 0
// Teensy++ 2.0: pin 20

const int chipSelect = 20;

void setup() {
// Serial.begin(115200);
// Sets the given pins as switches for the dip switches
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(13, INPUT_PULLUP);
delay(500);
String dip1 = digitalRead(13);
String dip2 = digitalRead(12);
String dip3 = digitalRead(11);
String dip4 = digitalRead(10);
String dip5 = digitalRead(9);
String dipState = String(dip1 + dip2 + dip3 + dip4 + dip5);
String FILE_NAME = String(dipState + ".txt");

delay(100);
// Serial.print(F("DIP: "));
// Serial.println(dipState);
// Serial.print(F("File: "));
// Serial.println(FILE_NAME);

if (!SD.begin(chipSelect)) {
return;
}

// Desired file is opened
myFile = SD.open(FILE_NAME.c_str()); // DEFAULT_FILE_NAME
if (myFile) {
Keyboard.begin();

String line = "";
while (myFile.available()) {
  char m = myFile.read();
  if (m == '\n'){
    Line(line);
    line = "";
    }
    else if((int) m != 13)
    {
      line += m;
    }
}
Line(line);

myFile.close();

} else {
}

Keyboard.end();
}

void Line(String l)
{
int space_1 = l.indexOf(" ");
if (space_1 == -1)
{
Press(l);
}
else if (l.substring(0,space_1) == "STRING")
{
Keyboard.print(l.substring(space_1 + 1));
}
else if (l.substring(0,space_1) == "DELAY")
{
int delaytime = l.substring(space_1 + 1).toInt();
delay(delaytime);
}
else if(l.substring(0,space_1) == "REM"){}
else
{
String remain = l;

  while(remain.length() > 0)
  {
    int latest_space = remain.indexOf(" ");
    if (latest_space == -1)
    {
      Press(remain);
      remain = "";
    }
    else
    {
      Press(remain.substring(0, latest_space));
      remain = remain.substring(latest_space + 1);
    }
    delay(5);
  }

}

Keyboard.releaseAll();
}

void Press(String b)
{
if(b.length() == 1)
{
char c = b[0];
Keyboard.press(c);
}
else if (b.equals("ENTER"))
{
Keyboard.press(KEY_RETURN);
}
else if (b.equals("CTRL"))
{
Keyboard.press(KEY_LEFT_CTRL);
}
else if (b.equals("SHIFT"))
{
Keyboard.press(KEY_LEFT_SHIFT);
}
else if (b.equals("ALT"))
{
Keyboard.press(KEY_LEFT_ALT);
}
else if (b.equals("GUI"))
{
Keyboard.press(KEY_LEFT_GUI);
}
else if (b.equals("UP") || b.equals("UPARROW"))
{
Keyboard.press(KEY_UP_ARROW);
}
else if (b.equals("DOWN") || b.equals("DOWNARROW"))
{
Keyboard.press(KEY_DOWN_ARROW);
}
else if (b.equals("LEFT") || b.equals("LEFTARROW"))
{
Keyboard.press(KEY_LEFT_ARROW);
}
else if (b.equals("RIGHT") || b.equals("RIGHTARROW"))
{
Keyboard.press(KEY_RIGHT_ARROW);
}
else if (b.equals("DELETE"))
{
Keyboard.press(KEY_DELETE);
}
else if (b.equals("PAGEUP"))
{
Keyboard.press(KEY_PAGE_UP);
}
else if (b.equals("PAGEDOWN"))
{
Keyboard.press(KEY_PAGE_DOWN);
}
else if (b.equals("HOME"))
{
Keyboard.press(KEY_HOME);
}
else if (b.equals("ESC"))
{
Keyboard.press(KEY_ESC);
}
else if (b.equals("INSERT"))
{
Keyboard.press(KEY_INSERT);
}
else if (b.equals("TAB"))
{
Keyboard.press(KEY_TAB);
}
else if (b.equals("END"))
{
Keyboard.press(KEY_END);
}
else if (b.equals("CAPSLOCK"))
{
Keyboard.press(KEY_CAPS_LOCK);
}
else if (b.equals("F1"))
{
Keyboard.press(KEY_F1);
}
else if (b.equals("F2"))
{
Keyboard.press(KEY_F2);
}
else if (b.equals("F3"))
{
Keyboard.press(KEY_F3);
}
else if (b.equals("F4"))
{
Keyboard.press(KEY_F4);
}
else if (b.equals("F5"))
{
Keyboard.press(KEY_F5);
}
else if (b.equals("F6"))
{
Keyboard.press(KEY_F6);
}
else if (b.equals("F7"))
{
Keyboard.press(KEY_F7);
}
else if (b.equals("F8"))
{
Keyboard.press(KEY_F8);
}
else if (b.equals("F9"))
{
Keyboard.press(KEY_F9);
}
else if (b.equals("F10"))
{
Keyboard.press(KEY_F10);
}
else if (b.equals("F11"))
{
Keyboard.press(KEY_F11);
}
else if (b.equals("F12"))
{
Keyboard.press(KEY_F12);
}
}

void loop() {
// nothing happens after setup
}
// CODE END

Or DL here: https://www.adrive.com/public/wN9grt/TeensyPlusPlus2.0_5DIP_Duckduino-microSD.ino

@hellisabove
Copy link

Even tough this repo is dead I suggest you to fork the repo, add the changes that you made and create a pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant