Самодельная клавиатура с макросами на базе Arduino Pro Micro

Здравствуйте!

Это клавиатура на 30 кнопок, на одну такую кнопку, можно запрограммировать какое то действие, или даже последовательность из нескольких действий.

Homemade Arduino ProMicro Macro Keyboard

Для проекта использую:

Плату Arduino ProMicro, на базе микроконтроллера ATmega32U4, макетную плату из гетинакса 9 на 15 сантиметров, 30 кнопок, 5 сопротивлений на 22 килоома, 5 сопротивлений на 1 киллоом, 25 сопротивлений на 600 ом, немного проводов, и понадобится коробочка, которая послужит корпусом для клавиатуры.

Схема проекта

 Arduino PRO Micro 32u4

Скетч для сканирования кнопок.


//Начало скетча


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

void loop() {
  int sensor = analogRead(A3);
  Serial.println(sensor);
  delay(1);
}


//Конец скетча




Скетч с шестью запрограммированными кнопками.


//Начало скетча


#include "Keyboard.h" // библиотека для эмуляции клавиатуры

void setup() {
}

void loop() {
  int sensor = analogRead(A3);
  //1
  if ((sensor > 268) && (sensor < 288)) {
    Keyboard.print("login_1"); Keyboard.write(KEY_TAB);
    Keyboard.print("password_1"); Keyboard.write(KEY_RETURN); delay(1000);
  }
  //2
  if ((sensor > 405) && (sensor < 425)) {
    Keyboard.print("login_2"); Keyboard.write(KEY_TAB);
    Keyboard.print("password_2"); Keyboard.write(KEY_RETURN); delay(1000);
  }
  //3
  if ((sensor > 552) && (sensor < 572)) {
    Keyboard.println("Yflt.cm 'nj dbltj dfv gjyhfdbkjcm? Cnfdmnt kfqr b gjlgbibntcm yf vjq rfyfk!"); delay(1000);
  }
  //Keyboard.println("Ghbdtn vbh! ");delay(1000);}
  //4
  if ((sensor > 696) && (sensor < 716)) {
    Keyboard.print("Gtxfnyfz dthcbz dct[ vjb[ ghjtrnjd yf[jlbncz gj flhtce ");
    Keyboard.press(KEY_LEFT_SHIFT);
    Keyboard.press(KEY_LEFT_ALT);
    delay(100);
    Keyboard.releaseAll();
    Keyboard.print("kolotushkin.com");
    Keyboard.press(KEY_LEFT_SHIFT);
    Keyboard.press(KEY_LEFT_ALT);
    delay(100);
    Keyboard.releaseAll();
    Keyboard.write(KEY_RETURN); delay(1000);
  }
  //5
  if ((sensor > 848) && (sensor < 868)) {
    Keyboard.write(KEY_LEFT_ALT);
    Keyboard.write(KEY_RIGHT_ARROW);
    Keyboard.write(KEY_RIGHT_ARROW);
    Keyboard.write(KEY_RIGHT_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_RIGHT_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_RETURN);
    Keyboard.write(KEY_TAB);
    delay(500);
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_RETURN);
    delay(1000);
  }
  //6
  if (sensor > 1013) {
    Keyboard.press(KEY_LEFT_SHIFT);
    Keyboard.press(KEY_LEFT_ALT);
    delay(100);
    Keyboard.releaseAll();
    Keyboard.write(KEY_LEFT_ALT); delay(100);
    Keyboard.print("u"); //г
    Keyboard.print("a"); //ф
    Keyboard.write(KEY_RIGHT_ARROW);
    Keyboard.write(KEY_RIGHT_ARROW);
    Keyboard.write(KEY_RIGHT_ARROW);
    Keyboard.write(KEY_RETURN);
    Keyboard.write(KEY_LEFT_ALT); delay(100);
    Keyboard.print("u"); //г
    Keyboard.print("p"); //з
    Keyboard.print("a"); //ф
    Keyboard.write(KEY_DOWN_ARROW);
    Keyboard.write(KEY_RETURN);
    Keyboard.write(KEY_LEFT_ALT); delay(100);
    Keyboard.print("u"); //г
    Keyboard.print("2"); //2
    Keyboard.write(KEY_LEFT_ALT); delay(100);
    Keyboard.print("u"); //г
    Keyboard.print("w"); //ц
    Keyboard.write(KEY_TAB);
    Keyboard.write(KEY_TAB);
    Keyboard.write(KEY_TAB);
    Keyboard.write(KEY_TAB);
    Keyboard.write(KEY_TAB);
    Keyboard.write(KEY_TAB);
    Keyboard.write(KEY_TAB);
    Keyboard.print("0");
    Keyboard.write(KEY_TAB);
    Keyboard.print("0");
    Keyboard.write(KEY_TAB);
    Keyboard.print("0");
    Keyboard.write(KEY_RETURN);
    Keyboard.press(KEY_LEFT_SHIFT);
    Keyboard.press(KEY_LEFT_ALT);
    delay(100);
    Keyboard.releaseAll();
    delay(1000);
  }
  delay(1);
}


//Конец скетча




Подробное видео "Самодельная клавиатура с макросами на базе Arduino ProMicro"


 Самодельная клавиатура с макросами на базе Arduino ProMicro