概要
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のタブのミュート操作もできました.