概要
Digispark互換ボードを使用してマクロパッドを作成しました. このマクロパッドはPCにはUSBキーボードとして認識され,各タクトスイッチを押下すると,プログラムで予め設定したキーボード操作がPCに対して実行されます.タクトスイッチは2つしかありませんが,短押しと長押しの使い分けも可能です. 例えばZoomやMicrosoft Teamsなどのオンライン会議アプリケーションのショートカットキーを設定しておけば,ワンタッチでマイクのミュートをON/OFFすることができます.
PCにUSBケーブルで接続するとDigispark上の電源確認用の赤色LEDとP1に接続された赤色LEDおよび,P1に外付けした青色LEDが点灯します. P1に接続されたLEDは,ゆっくりと輝度を変化させながら点滅します.
開発環境
DigisparkはAttiny85を搭載した小型マイコンボードです. USBによるプログラム転送および通信が可能です. Arduino IDEを使用して開発できます. 今回は数年前にAitendoで処分価格で販売されていたDigispark互換ボードを使用しました.
Digispark | ATTiny85マイコンモジュール [M8520SU-MCUM] |
---|---|
Arduino IDE | Arduino 1.8.19 |
Arduino Boards Manager | Digistump AVR Boards: Digispark (Default - 16.5mhz) |
Arduino Library: FastLED | Version 3.5.0 |
Arduino Library: OneButton | Version 2.0.4 |
Digisparkのセットアップは下記を参照してください.
UbuntuでDigisparkを認識しない場合は,下記を参照してください.
回路
回路図
部品点数は非常に少ないです. Digisparkのピン配置については,公式Webページを参照してください.
回路部品
参考単価をクリックすると,秋月電子通商のページもしくはメーカーページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.
番号 | 部品名 | 型番 | 数量 | 参考単価 |
---|---|---|---|---|
SW1, SW2 | タクトスイッチ | 各社 | 2 | 30円 (互換品) |
LED1 | LED | 各社 青色 | 1 | 18円 (互換品) |
R1 | 炭素皮膜抵抗 | 各社 1/4W 1kΩ | 1 | 1円 (互換品) |
その他 | ユニバーサル基板, スズメッキ線など | 適量 |
作成例
エンクロージャ
エンクロージャ(ケース)は,作成した基板に合わせて3Dプリンタで出力しました. モデリング環境は下表のとおりです.ソフトウェアは全てフリーウェアです. FreeCADでモデリングしたものをSTLでエクスポートし,Ultimaker CuraでスライスしてGコードを生成しています.
OS | Ubuntu 20.04.4 LTS |
---|---|
FreeCAD | 0.18.4 |
Ultimaker Cura | 4.11.0 |
ソースコード
オリジナルソースコード
GitHub Gistにて公開されている下記のソースコードを改変して使用しました.Zoomのミュートボタンとして使用するためのキーボード操作が設定されています.
なお,Zoomのショートカットキー一覧は下記で確認できます.
タクトスイッチに割り当てるキーボード操作のカスタマイズ
私はMicrosoft Teamsで使用したかったため,下記を参照してキーボード操作の設定を変更しました.
ほとんどのキーはDigiKeyboardライブラリに定義されていますが,定義されていないキーもあります.定義がない場合は,下記資料のTable 12: Keyboard/Keypad Pageを参照して定義する必要があります.
Microsoft Teams向けに改変したソースコードは下記です.1つのタクトスイッチはマイクミュートのON/OFF操作,もう1つのタクトスイッチはカメラのON/OFF操作に割り当てました.
オンライン会議アプリケーションのほかにも,さまざまなアプリケーションのショートカットキーに割り当てることが可能です.例えば,下記のプラグインと組み合わせることでGoogle Chromeのタブのミュート操作もできました.