Digisparkで果物をエンターキーにしてみた
ビッグエンターキーという無駄にデカいエンターキーがありますが、どんなものでもエンターキーになれば面白いんじゃないかと思ったので、果物や野菜など何でもエンターキーになるHIDデバイスを作ってみました。
環境
Arduino IDE 1.8.13
Digispark互換ボード
回路図
0番ピンが送信ピンで、2番ピンが受信ピンになっています。0番ピンと2番ピンのの間には1MΩの抵抗が入っています。2番ピンと直列に0.1μFのコンデンサーをつなぎ、果物を接続します。
スケッチ
#include <DigiKeyboard.h>
#define REPEAT_TIME 25
#define FIRST_REPEAT_TIME 500
#define KEYUP_THRESHOLD 50
#define KEYDOWN_THRESHOLD 75
#define OUT_PIN 0
#define IN_PIN 2
unsigned long timer = 0;
int keytimes = 0;
void setup() {
pinMode(OUT_PIN, OUTPUT);
pinMode(IN_PIN, INPUT);
}
int get_touch() {
int t = 0;
int i;
for(i = 0; i < 10; i++){
digitalWrite(OUT_PIN, HIGH);
while(digitalRead(IN_PIN) != HIGH) t++;
digitalWrite(OUT_PIN, LOW);
pinMode(IN_PIN, OUTPUT);
digitalWrite(IN_PIN, LOW);
DigiKeyboard.delay(1);
pinMode(IN_PIN, INPUT);
}
return t;
}
void loop() {
int touch = get_touch();
if(touch > KEYDOWN_THRESHOLD && (timer == 0 || keytimes >= 2)){
DigiKeyboard.sendKeyStroke(0x28);
DigiKeyboard.delay(REPEAT_TIME);
keytimes = min(keytimes + 1, 2);
timer = millis();
}else{
if(touch <= KEYUP_THRESHOLD){
timer = 0;
keytimes = 0;
}
DigiKeyboard.sendKeyStroke(0);
DigiKeyboard.delay(REPEAT_TIME);
}
if(millis() >= timer + FIRST_REPEAT_TIME){
timer = 0;
}
}
書き込み
Arduino開発環境の設定方法はこの記事を参考にしてください。
[メモ] Digispark(ATTiny85) Arduino開発環境で、Lチカ
設定が終わったら、Arduino IDEで
ツール
> ボード
> Digispark (Default - 16.5mhz)
を選択します。
マイコンボードに書き込む
をクリック。USBを抜き差しすると書き込みができます。
デモ
バナナでエンターキーを自作してみた。
— naoto64 (@naoto64_2000) January 24, 2021
バナナを触ると改行できる。キーリピート機能付き。
使用マイコン:Digispark互換ボード
スケッチ:https://t.co/5r86NADCTF#バナナ #エンターキー #キーボード #自作キーボード #HID #USB #電子工作 #ガジェット #Digispark #Arduino pic.twitter.com/bJZXKM0GxU
Author And Source
この問題について(Digisparkで果物をエンターキーにしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/naoto64/items/b4289a665fa5ee92f861著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .