Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.19 KB | None | 0 0
  1.  
  2. uint8_t buf[8] = {
  3. 0 }; /* Keyboard report buffer */
  4.  
  5. #define KEY_P1_UP       0x52
  6. #define KEY_P1_DOWN     0x51
  7. #define KEY_P1_LEFT     0x50
  8. #define KEY_P1_RIGHT    0x4f
  9. #define KEY_P1_LCTRL    0xe0
  10. #define KEY_P1_ALT      0xe2
  11. #define KEY_P1_SPACE    0x2c
  12. #define KEY_P1_LSHIFT   0xe1
  13. #define KEY_P1_Z        0x1d
  14. #define KEY_P1_X        0x1b
  15. #define KEY_P1_5        0x22
  16. #define KEY_P1_1        0x1e
  17.  
  18. #define KEY_P2_R        0x15
  19. #define KEY_P2_F        0x09
  20. #define KEY_P2_D        0x07
  21. #define KEY_P2_G        0x0a
  22. #define KEY_P2_A        0x04
  23. #define KEY_P2_S        0x16
  24. #define KEY_P2_Q        0x14
  25. #define KEY_P2_W        0x1a
  26. #define KEY_P2_I        0x0c
  27. #define KEY_P2_K        0x0e
  28. #define KEY_P2_6        0x23
  29. #define KEY_P2_2        0x1f
  30.  
  31.  
  32. #define KEY_VOLUP       0x57
  33. #define KEY_VOLDOWN     0x56
  34. #define KEY_F7          0x40
  35. #define KEY_F8          0x41
  36. #define KEY_ENTER       0x28
  37. #define KEY_ESC         0x29
  38. #define KEY_P           0x13
  39. #define KEY_TAB         0x2b
  40.  
  41.  
  42. #define PIN_P1_UP      30
  43. #define PIN_P1_DOWN    31
  44. #define PIN_P1_LEFT    32
  45. #define PIN_P1_RIGHT   33
  46. #define PIN_P1_LCTRL   34
  47. #define PIN_P1_ALT     35
  48. #define PIN_P1_SPACE   36
  49. #define PIN_P1_LSHIFT  37
  50. #define PIN_P1_Z       38
  51. #define PIN_P1_X       39
  52. #define PIN_P1_5       40
  53. #define PIN_P1_1       41
  54.  
  55. #define PIN_P2_R       42
  56. #define PIN_P2_F       43
  57. #define PIN_P2_D       44
  58. #define PIN_P2_G       45
  59. #define PIN_P2_A       46
  60. #define PIN_P2_S       47
  61. #define PIN_P2_Q       48
  62. #define PIN_P2_W       49
  63. #define PIN_P2_I       50
  64. #define PIN_P2_K       51
  65. #define PIN_P2_6       52
  66. #define PIN_P2_2       53
  67.  
  68. int state = 1;
  69.  
  70. void setup()
  71. {
  72.   Serial.begin(9600);
  73.   randomSeed(analogRead(0));
  74.   delay(200);
  75.  
  76.   pinMode(PIN_P1_UP, INPUT);
  77.   pinMode(PIN_P1_DOWN, INPUT);
  78.   pinMode(PIN_P1_LEFT, INPUT);
  79.   pinMode(PIN_P1_RIGHT, INPUT);
  80.   pinMode(PIN_P1_LCTRL, INPUT);
  81.   pinMode(PIN_P1_ALT, INPUT);
  82.   pinMode(PIN_P1_SPACE, INPUT);
  83.   pinMode(PIN_P1_LSHIFT, INPUT);
  84.   pinMode(PIN_P1_Z, INPUT);
  85.   pinMode(PIN_P1_X, INPUT);
  86.   pinMode(PIN_P1_5, INPUT);
  87.   pinMode(PIN_P1_1, INPUT);
  88.  
  89.   pinMode(PIN_P2_R, INPUT);
  90.   pinMode(PIN_P2_F, INPUT);
  91.   pinMode(PIN_P2_D, INPUT);
  92.   pinMode(PIN_P2_G, INPUT);
  93.   pinMode(PIN_P2_A, INPUT);
  94.   pinMode(PIN_P2_S, INPUT);
  95.   pinMode(PIN_P2_Q, INPUT);
  96.   pinMode(PIN_P2_W, INPUT);
  97.   pinMode(PIN_P2_I, INPUT);
  98.   pinMode(PIN_P2_K, INPUT);
  99.   pinMode(PIN_P2_6, INPUT);
  100.   pinMode(PIN_P2_2, INPUT);
  101.  
  102.  
  103.   digitalWrite(PIN_P1_UP, 1);
  104.   digitalWrite(PIN_P1_DOWN, 1);
  105.   digitalWrite(PIN_P1_LEFT, 1);
  106.   digitalWrite(PIN_P1_RIGHT, 1);
  107.   digitalWrite(PIN_P1_LCTRL, 1);
  108.   digitalWrite(PIN_P1_ALT, 1);
  109.   digitalWrite(PIN_P1_SPACE, 1);
  110.   digitalWrite(PIN_P1_LSHIFT, 1);
  111.   digitalWrite(PIN_P1_Z, 1);
  112.   digitalWrite(PIN_P1_X, 1);
  113.   digitalWrite(PIN_P1_5, 1);
  114.   digitalWrite(PIN_P1_1, 1);
  115.  
  116.   digitalWrite(PIN_P2_R, 1);
  117.   digitalWrite(PIN_P2_F, 1);
  118.   digitalWrite(PIN_P2_D, 1);
  119.   digitalWrite(PIN_P2_G, 1);
  120.   digitalWrite(PIN_P2_A, 1);
  121.   digitalWrite(PIN_P2_S, 1);
  122.   digitalWrite(PIN_P2_Q, 1);
  123.   digitalWrite(PIN_P2_W, 1);
  124.   digitalWrite(PIN_P2_I, 1);
  125.   digitalWrite(PIN_P2_K, 1);
  126.   digitalWrite(PIN_P2_6, 1);
  127.   digitalWrite(PIN_P2_2, 1);
  128. }
  129.  
  130. void loop()
  131. {
  132.  
  133.  
  134.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_UP) == LOW)) {
  135.     buf[0] = 0;
  136.     buf[2] = KEY_VOLUP;
  137.     Serial.write(buf, 8);
  138.     releaseKey();
  139.     loop ();
  140.     }
  141.  
  142.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_DOWN) == LOW)) {
  143.     buf[0] = 0;
  144.     buf[2] = KEY_VOLDOWN;
  145.     Serial.write(buf, 8);
  146.     releaseKey();
  147.     loop ();
  148.     }
  149.    
  150.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_LEFT) == LOW)) {
  151.     buf[0] = 0;
  152.     buf[2] = KEY_F7;
  153.     Serial.write(buf, 8);
  154.     releaseKey();
  155.     loop ();
  156.     }
  157.    
  158.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_RIGHT) == LOW)) {
  159.     buf[0] = 0;
  160.     buf[2] = KEY_F8;
  161.     Serial.write(buf, 8);
  162.     releaseKey();
  163.     loop ();
  164.     }
  165.    
  166.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_LCTRL) == LOW)) {
  167.     buf[0] = 0;
  168.     buf[2] = KEY_ENTER;
  169.     Serial.write(buf, 8);
  170.     releaseKey();
  171.     loop ();
  172.     }
  173.  
  174.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_ALT) == LOW)) {
  175.     buf[0] = 0;
  176.     buf[2] = KEY_P;
  177.     Serial.write(buf, 8);
  178.     releaseKey();
  179.     loop ();
  180.     }
  181.  
  182.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_SPACE) == LOW)) {
  183.     buf[0] = 0;
  184.     buf[2] = KEY_P1_5;
  185.     Serial.write(buf, 8);
  186.     releaseKey();
  187.     loop ();
  188.     }
  189.    
  190.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_LSHIFT) == LOW)) {
  191.     buf[0] = 0;
  192.     buf[2] = KEY_ESC;
  193.     Serial.write(buf, 8);
  194.     releaseKey();
  195.     loop ();
  196.     }
  197.    
  198.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_Z) == LOW)) {
  199.     buf[0] = 0;
  200.     buf[2] = KEY_TAB;
  201.     Serial.write(buf, 8);
  202.     releaseKey();
  203.     loop ();
  204.     }
  205.    
  206.   if ((digitalRead(PIN_P1_1) == LOW) && (digitalRead(PIN_P1_X) == LOW)) {
  207.     buf[0] = 0;
  208.     buf[2] = KEY_P2_6;
  209.     Serial.write(buf, 8);
  210.     releaseKey();
  211.     loop ();
  212.     }
  213.  
  214.  
  215.   state = digitalRead(PIN_P1_UP);
  216.   if (state != 1) {
  217.     buf[0] = 0;
  218.     buf[2] = KEY_P1_UP;
  219.     Serial.write(buf, 8);
  220.     releaseKey();
  221.     //delay(200);
  222.   }
  223.  
  224.   state = digitalRead(PIN_P1_DOWN);
  225.   if (state != 1) {
  226.     buf[0] = 0;
  227.     buf[2] = KEY_P1_DOWN;
  228.     Serial.write(buf, 8);
  229.     releaseKey();
  230.     //delay(200);
  231.   }
  232.  
  233.   state = digitalRead(PIN_P1_LEFT);
  234.   if (state != 1) {
  235.     buf[0] = 0;
  236.     buf[2] = KEY_P1_LEFT;
  237.     Serial.write(buf, 8);
  238.     releaseKey();
  239.     //delay(200);
  240.   }
  241.  
  242.   state = digitalRead(PIN_P1_RIGHT);
  243.   if (state != 1) {
  244.     buf[0] = 0;
  245.     buf[2] = KEY_P1_RIGHT;
  246.     Serial.write(buf, 8);
  247.     releaseKey();
  248.     //delay(200);
  249.   }
  250.  
  251.   state = digitalRead(PIN_P1_LCTRL);
  252.   if (state != 1) {
  253.     buf[0] = 0;
  254.     buf[2] = KEY_P1_LCTRL;
  255.     Serial.write(buf, 8);
  256.     releaseKey();
  257.     //delay(200);
  258.   }
  259.  
  260.   state = digitalRead(PIN_P1_ALT);
  261.   if (state != 1) {
  262.     buf[0] = 0;
  263.     buf[2] = KEY_P1_ALT;
  264.     Serial.write(buf, 8);
  265.     releaseKey();
  266.     //delay(200);
  267.   }
  268.  
  269.   state = digitalRead(PIN_P1_SPACE);
  270.   if (state != 1) {
  271.     buf[0] = 0;
  272.     buf[2] = KEY_P1_SPACE;
  273.     Serial.write(buf, 8);
  274.     releaseKey();
  275.     //delay(200);
  276.   }
  277.  
  278.   state = digitalRead(PIN_P1_LSHIFT);
  279.   if (state != 1) {
  280.     buf[0] = 0;
  281.     buf[2] = KEY_P1_LSHIFT;
  282.     Serial.write(buf, 8);
  283.     releaseKey();
  284.     //delay(200);
  285.   }
  286.  
  287.   state = digitalRead(PIN_P1_Z);
  288.   if (state != 1) {
  289.     buf[0] = 0;
  290.     buf[2] = KEY_P1_Z;
  291.     Serial.write(buf, 8);
  292.     releaseKey();
  293.     //delay(200);
  294.   }
  295.  
  296.   state = digitalRead(PIN_P1_X);
  297.   if (state != 1) {
  298.     buf[0] = 0;
  299.     buf[2] = KEY_P1_X;
  300.     Serial.write(buf, 8);
  301.     releaseKey();
  302.     //delay(200);
  303.   }
  304.  
  305.   state = digitalRead(PIN_P1_5);
  306.   if (state != 1) {
  307.     buf[0] = 0;
  308.     buf[2] = KEY_P1_5;
  309.     Serial.write(buf, 8);
  310.     releaseKey();
  311.     //delay(200);
  312.   }
  313.  
  314.   state = digitalRead(PIN_P1_1);
  315.   if (state != 1) {
  316.     buf[0] = 0;
  317.     buf[2] = KEY_P1_1;
  318.     Serial.write(buf, 8);
  319.     releaseKey();
  320.     //delay(200);
  321.   }
  322.  
  323.   state = digitalRead(PIN_P2_R);
  324.   if (state != 1) {
  325.     buf[0] = 0;
  326.     buf[2] = KEY_P2_R;
  327.     Serial.write(buf, 8);
  328.     releaseKey();
  329.     //delay(200);
  330.   }
  331.  
  332.   state = digitalRead(PIN_P2_F);
  333.   if (state != 1) {
  334.     buf[0] = 0;
  335.     buf[2] = KEY_P2_F;
  336.     Serial.write(buf, 8);
  337.     releaseKey();
  338.     //delay(200);
  339.   }
  340.  
  341.   state = digitalRead(PIN_P2_D);
  342.   if (state != 1) {
  343.     buf[0] = 0;
  344.     buf[2] = KEY_P2_D;
  345.     Serial.write(buf, 8);
  346.     releaseKey();
  347.     //delay(200);
  348.   }
  349.  
  350.   state = digitalRead(PIN_P2_G);
  351.   if (state != 1) {
  352.     buf[0] = 0;
  353.     buf[2] = KEY_P2_G;
  354.     Serial.write(buf, 8);
  355.     releaseKey();
  356.     //delay(200);
  357.   }
  358.  
  359.   state = digitalRead(PIN_P2_A);
  360.   if (state != 1) {
  361.     buf[0] = 0;
  362.     buf[2] = KEY_P2_A;
  363.     Serial.write(buf, 8);
  364.     releaseKey();
  365.     //delay(200);
  366.   }
  367.  
  368.   state = digitalRead(PIN_P2_S);
  369.   if (state != 1) {
  370.     buf[0] = 0;
  371.     buf[2] = KEY_P2_S;
  372.     Serial.write(buf, 8);
  373.     releaseKey();
  374.     //delay(200);
  375.   }
  376.  
  377.   state = digitalRead(PIN_P2_Q);
  378.   if (state != 1) {
  379.     buf[0] = 0;
  380.     buf[2] = KEY_P2_Q;
  381.     Serial.write(buf, 8);
  382.     releaseKey();
  383.     //delay(200);
  384.   }
  385.  
  386.   state = digitalRead(PIN_P2_W);
  387.   if (state != 1) {
  388.     buf[0] = 0;
  389.     buf[2] = KEY_P2_W;
  390.     Serial.write(buf, 8);
  391.     releaseKey();
  392.     //delay(200);
  393.   }
  394.  
  395.   state = digitalRead(PIN_P2_I);
  396.   if (state != 1) {
  397.     buf[0] = 0;
  398.     buf[2] = KEY_P2_I;
  399.     Serial.write(buf, 8);
  400.     releaseKey();
  401.     //delay(200);
  402.   }
  403.  
  404.   state = digitalRead(PIN_P2_K);
  405.   if (state != 1) {
  406.     buf[0] = 0;
  407.     buf[2] = KEY_P2_K;
  408.     Serial.write(buf, 8);
  409.     releaseKey();
  410.     //delay(200);
  411.   }
  412.  
  413.   state = digitalRead(PIN_P2_6);
  414.   if (state != 1) {
  415.     buf[0] = 0;
  416.     buf[2] = KEY_P2_6;
  417.     Serial.write(buf, 8);
  418.     releaseKey();
  419.     //delay(200);
  420.   }
  421.  
  422.   state = digitalRead(PIN_P2_2);
  423.   if (state != 1) {
  424.     buf[0] = 0;
  425.     buf[2] = KEY_P2_2;
  426.     Serial.write(buf, 8);
  427.     releaseKey();
  428.     //delay(200);
  429.   }
  430.  
  431.  
  432.  
  433. }
  434.  
  435. void releaseKey()
  436. {
  437.   buf[0] = 0;
  438.   buf[2] = 0;
  439.   Serial.write(buf, 8); // Release key
  440. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement