SSブログ

Digispark 5秒待たないHIDデバイス [Arduino]

5秒待たない [CTRL]+[ALT]+[DEL]キーボタンができました。

レギュレータ跡地のGNDパターンの一部にL字の溝を掘りました。(タクトスイッチ足固定用)

ds_cad2-2.jpg

4つ足のタクトスイッチの1つを根本で折って、3点でタクトスイッチを固定しましたが、ぐらつく感じはありません。
2つ足のタクトスイッチなら溝掘りすら要らないです。
あとはVIN(というかスイッチのGNDじゃない側)とP0を接続するだけ。

ds_cad2-1.jpg

ブートローダを ”micronucleusmicronucleus-1.11-entry_jumper_pb0.hex” に書き換えます。
(参照 https://hello-world.blog.ss-blog.jp/2022-05-14
以下のスケッチを書き込みます。書き込む際に、"Plug in device now... (will timeout in 60 seconds)" と出たら、スイッチを押しながらUSBに差し込めばOK。

// Enter [Ctrl] + [Alt] + [Del] keys with one button
//   Digispark @ 16.5MHz, V-USB, micronucleus-1.11-entry-jumper-pb0-upgrade.hex

#include "DigiKeyboard.h"
#define KEY_DELETE      76

void setup() {
    pinMode( 0, INPUT_PULLUP );         // Tactile Switch (Internal pull-up)
    pinMode( 1, OUTPUT );               // Built-in LED
    DigiKeyboard.sendKeyStroke(0);
}

void loop() {
    while(  digitalRead(0) )  DigiKeyboard.update();    // Wait until the switch is pressed
    digitalWrite( 1, HIGH );
    DigiKeyboard.sendKeyStroke(KEY_DELETE, MOD_ALT_LEFT | MOD_CONTROL_LEFT);
    DigiKeyboard.delay(200);                            // chattering control and LED lighting time
    digitalWrite( 1, LOW  );
    while( !digitalRead(0) )  DigiKeyboard.update();    // Wait until the switch is released
    DigiKeyboard.delay(200);                            // chattering control
}

HIDデバイスとして使えるように切り替わったかどうか確認のLED点滅もなくしてスケッチもすっきり。

あとは、3点固定のタクトスイッチの保護のためにも熱収縮チューブでラッピング。
タグ:Digispark HID
nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。