【Mac OS Monterey】Digisparkクローンで1ピクセルだけ動くテレワーク用マウスを作った
背景
新型コロナで生活様式が変わり約2年。幸いにもテレワークを悪としない会社に勤めており、週2日ほど在宅にて労働に勤しんでいる。テレワークで多用するMicrosoft Teamsにはユーザが一定時間マウスやキーボードを操作しないとインジケータが黄色(退席中)になるというお節介機能がありどうも監視されている気がして気持ち悪い。
そこで、一定時間ごとにマウスカーソルを動かし、インジケータを常に緑(連絡可能)または赤(取り込み中)に保持することを実現したい。
決して仕事をサボりたいわけではない。小学生の時にカンニングをするわけでもないのにカンニンググッズを作りたくなるあの気持ちである。
中華製格安Digisparkを購入
第1に使用マイコンの選定だが、会社のPCに挿す都合上マウスやキーボードデバイスとして認識されることが望ましい。今宵の機密保持意識の高さから、会社PCに不明なUSBストレージを挿すと社内の情報システム部にアラートがとび、「いかがわしいものを接続したのではないか?」と追求されるのが世の常である。
第2に価格が安い方がいい。たかがマウスに偽装するためだけに高価で高性能なマイコンを使用するのはもったいないからだ。
上記2点を満たすものとしてDigisparkというArduinoクローンマイコンを使用することとした。DigisparkはDigistump LCCのAtmel ATtiny85を使用したマイコンボードであり、Arduino IDEを使用して開発することが可能である。また、HIDデバイスとして認識されるため会社PCに挿したとしても何の後ろめたさもない。今回は本家Digisparkではなく、中国製のクローン品をAmazonにて購入した。1個あたり約600円ほどだった。
Arduino IEDでDigisparkを使用可能にする
スケッチを書き込むためにArduino IDEでDigisparkを使用可能な環境にする。PCはMacbook12インチ(2017)、OSバージョンはMonterey12.1、Arduino IDEのバージョンは1.8.19を使用した。
まずArduino IDEを起動し、「Preferences」をクリックして環境設定を開く。
次に「追加ボードマネージャのURL」に後述のURLを追加し、OKをクリック。この際に追加するURLに注意が必要で本家DigisparkのjsonファイルのURLを指定するとコンパイル時にエラーが出てしまい、正常に書き込みができない。どうやらOSがCalifornia以降だとその症状が出るらしい。そのため、有志が修正したファイルを使用する。感謝である。
*.下記を「追加ボードマネージャのURL」追加する
そして「ツール」から「ボードマネージャ」をクリック。
「Digistump AVR Boards」をインストールする。すでに本家のjsonファイルでインストール済の場合は一度「削除」を選択したのちに再度「インストール」をクリックする。
最後に書き込むボードを指定する。「Degispark(Default - 16.5mhz)」を選択する。これで環境構築は完了だ。
スケッチを作成し書き込む
環境構築が完了したのでスケッチを作成した。Digisparkのサンプルスケッチの「mouse」をベースに下記のように変更した。これで30秒ごとに左右に1ピクセルマウスカーソルが動く。
スケッチを作成したら「マイコンボードに書き込む」をクリック、コンパイルが完了し、「Plug in device now...」が表示されたら、DigisparkをUSBポートに差し込む。
書き込みが完了の表示がでたら抜いてもOK。
動作確認
スケッチを書き込んだDigisparkをUSBポートに差し込むと動作が開始し、マウスカーソルが自動的に左右に動くことが確認できた。1ピクセルしか動かないので目を凝らしてみないとわからないレベルである。また、USBデバイスがどのように認識されているか確認したところ、下記のように狙い通りマウスとして認識されているようだ。
これで快適なテレワークライフが送れそうである。
以上