電子工作

Twitter廃人リモコン

  • 閲覧数: 5933
  • 21

作品画像

  • C.120x80.7bb7c403ea3bc81a58a546eb8d3b14da
  • C.120x80.4c26fca7db2f545f35e53630e516046d
  • C.120x80.5b88d39d5e1cbf38ec2250867c1cf7c9
  • C.120x80.fa6eecb8072dd16ff21536c16dee345e
  • C.120x80.e3c80b9ffa186ea65b1882f378659e48
  • C.120x80.21026d5d2f5eed019daee7a74d53de1d

作品説明

Tumblr廃人リモコンすごくよかったので、僕もArduino使ってパクリ作りました。

ピンの位置入れ替えることでTumblrでもふぁぼったりリツイートしたりリブログ出来ます。

仕様

上下のボタン: jk 上下移動
左のボタン: f ふぁぼ、l ライク
右のボタン: ® 即リブログ、⌘+Shift+V リツイート


痛くはないけど持ちづらいのでケース代わりに、毛糸でもふもふさせたい。

レシピ

1. Arduinoの一部機種(僕が使ったのはUno R2)は、いろいろすると普通のマウスとして認識させることが出来るみたいです。

つまりTumblr廃人リモコン作れる!!

2. 適当に配線します。「抵抗必要なの?」「このスイッチって押すと4つの極がつながるのかなー」という全くわかってないド素人な感じでも数時間いじればだいたいいい感じに動くようさせるようになると思います。

3. ところどころショートする部分はテープ貼って適当に絶縁します。これのせいで上下同時押しとかなっててやばかった...

4. 完成

/* Arduino USB Keyboard HID demo
*
* Sends Volume up, hello world, and Volume Down to the host PC
*
*/

uint8_t buf[8] = { 0 }; /* Keyboard report buffer */

void setup();
void loop();

#define TOP    7
#define RIGHT  9
#define RIGHT2 11
#define BOTTOM 8
#define LEFT   10
#define LEFT2  12

#define KEY_LEFT_CTRL 0x01
#define KEY_LEFT_SHIFT 0x02
#define KEY_LEFT_SHIFT_COMMAND 0x0A
#define KEY_LEFT_ALT 0x04
#define KEY_RIGHT_CTRL 0x10
#define KEY_RIGHT_SHIFT 0x20

void setup() 
{
  pinMode(TOP,   INPUT);
  pinMode(RIGHT, INPUT);
  pinMode(BOTTOM,INPUT);
  pinMode(LEFT,  INPUT);
  Serial.begin(9600);
  delay(200);
}

void key(char c, char special) {
  /*
  Serial.println(c);
  Serial.println((int)special);
  Serial.println("\n");
  */
  buf[0] = special;
  buf[2] = c - 'a' + 4;
  Serial.write(buf, 8); // Send keypress
  buf[0] = 0;
  buf[2] = 0;
  Serial.write(buf, 8); // Release key
}

void loop() 
{
  int top    = digitalRead(TOP);
  int bottom = digitalRead(BOTTOM);
  int left   = digitalRead(LEFT);
  int left2  = digitalRead(LEFT2);
  int right  = digitalRead(RIGHT);
  int right2 = digitalRead(RIGHT2);
  if (bottom == HIGH) {
    // Serial.println("bottom");
    key('j', 0);
  }
  if (left == HIGH) {
    // Serial.println("left");
    key('l', 0);
  }
  if (left2 == HIGH) {
    // Serial.println("left");
    key('f', 0);
  }
  if (right == HIGH) {
    //Serial.println("right");
    key('r', KEY_LEFT_ALT);
  }
  if (top == HIGH) {
    // Serial.println("top");
    key('k', 0);
  }
  if (right2 == HIGH) {
    // Serial.println("top");
    key('v', KEY_LEFT_SHIFT_COMMAND);
  }
  delay(100);
}


コメント (0件)

コメントはまだありません