Pro microを使った画面ロックボタン作成


この記事はリンク情報システムの2018年アドベントカレンダーのリレー記事です。
engineer.hanzomon のグループメンバによってリレーされます。
(リンク情報システムのFacebookはこちらから)

はじめに

私は職場で「Realforce106」というキーボードを使っています。
このキーボードは打ち心地がサイコーで基本的に不満がないのですが、
一つだけ困っていることがあります。

それは「Windowsキー」がないことです。

職場のPCは離席時に画面ロックをしないといけないのですが、
画面ロックのショートカットキーが「Windowsキー + l」なので
「Windowsキー」がないとショートカットすることができないのです。

またPCはセキュリティの関係でネットワークに接続せずに使用しているので
キー配置変更ソフトをダウンロードして使うこともできません。

そこでないなら作ってしまえということで、
スイッチサイエンスの「Pro micro」を使用して画面ロックボタンを作成します。

作成

使用したもの

・Pro micro(スイッチサイエンス版)
・抵抗(10KΩ)
・スイッチ(モーメンタリ)
※オルタネイトだとキーが押しっぱなしになってしまうので必ずモーメンタリにしてください
・ケース
・USB TypeBコネクタ
&その他細々とした部品

開発環境

・Arduino IDE 1.8.6
※書き込み時にはボード選択をArduino Leonardoにしてください

コード

#include "Keyboard.h"

const int Button = 4;

void setup()
{
  pinMode(Button, INPUT);
  Keyboard.begin();
}

void loop() {
  if (digitalRead(Button) == LOW)
  {
    Keyboard.press(KEY_LEFT_GUI); 
    Keyboard.press('l'); 
    Keyboard.releaseAll();
  }
}

回路図

ただのプルアップ回路なので書かない予定です。
もし要望があれば書きます。

外装

ケースに穴を開けて、スイッチとUSB TypeBのコネクタをつけてます。
内部ではUSB TypeBからUSB microBにコネクタを変換してPro microに接続しています。

動作

まとめ

ボタンひとつで画面ロックができるようになりました。

が、賢明なみなさまはもうお気づきかと思います。

それは会社のPCには勝手にUSB機器を接続しちゃいけないということです。
申請をすればOKかもしれませんが、ボタンを作る以上に面倒なので却下です。

別の手段を考えないといけないですね。

また今回は画面ロック用に作りましたが、コードを書き換えれば他のショートカットキーも
実装することができるので、それをやってみるのもよいかもしれません。

注意

入力デバイスを作成するので、回路やコードが正しく作成できているか必ずチェックしてください。
間違えたピン番号を指定すると、誤作動の原因となります。

参考

Arduino キー定義