在宅勤務をしていると,スピーカーとヘッドホンを切り替えることがしばしば.

TV会議しているとき以外は蒸れるので,スピーカー.

TV会議はヘッドホン.

ところが,突発でコールが入ると,スピーカーからヘッドホンに切り替えに手間取る手間取る.

というわけで,それ専用のスイッチを, Arduino pro micro を使って作成してみました.

動画内の画面左下あたりに,現在選択されているオーディオデバイスが表示されてますが,赤を押すとスピーカー,青を押すとヘッドホンになります.

準備するもの

  • Arduino pro micro
  • マイクロUSBケーブル
  • ブレッドボード
  • ジャンパワイヤパック
  • タクトスイッチ

作成手順

1. PCにaudioSwitcher をインストール&ホットキーを設定

詳細は https://keikenchi.com/how-to-switch-output-audio-with-shortcut-keys をご参考ください.

とても分かりやすく説明してくださってます.ありがとうございます.

今回は,他のアプリのホットキーと絶対に干渉しないように,「Ctrl+Shift+Alt+s」をスピーカーに,「Ctrl+Shift+Alt+g」をヘッドホンに割り当てました.

2. 回路の組み立て

ブレッドボード上に回路を組み上げていきます.

Arduino Pro Micro の ピンアサイン.

3. Arduino IDE でプログラムを書き込みます.

こちらは,https://qiita.com/MergeCells/items/17bdc1c1fb35949195b5 を参考に書いていきました.

#include "Keyboard.h"

#define RED_button 10
#define BLUE_button 18

void setup() {
  pinMode(RED_button, INPUT_PULLUP);
  pinMode(BLUE_button, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  if(digitalRead(RED_button)==LOW){
   Keyboard.press(KEY_LEFT_ALT);
   Keyboard.press(KEY_LEFT_CTRL);
   Keyboard.press(KEY_LEFT_SHIFT);   
   Keyboard.press('s');
   delay(100);
   Keyboard.releaseAll();
   while(digitalRead(RED_button)==LOW);
  }
  else if(digitalRead(BLUE_button)==LOW){
   Keyboard.press(KEY_LEFT_ALT);
   Keyboard.press(KEY_LEFT_CTRL);
   Keyboard.press(KEY_LEFT_SHIFT);  
   Keyboard.press('g');
   delay(100);
   Keyboard.releaseAll();
   while(digitalRead(BLUE_button)==LOW);
  }
  delay(100);
}

気づき

PC側のソフト設定とArduinoでやれることは他にもありそうな感じ.

あと,開発環境の重要性についても考えさせられました.

はじめは無名の安いブレッドボードを使用していたのですが,「線がうまくささらない,ささったら今度は抜けない」,挙句に「ジャンパワイヤが壊れる」,という事態に見舞われたため,サンハヤト製のものを購入してみ ました.

結果,「もっと早く買っておけばよかった」というくらいイライラが減りました.

いろいろなことを試すうえで,しょーもないところで事故が起きてその対応に迫られると,ものすごくフラストレーションが溜まります.

開発環境をケチってはいけないなぁ,と.

サンハヤト製のブレッドボードとジャンプワイヤパック
粗悪なブレッドボードから無理に引っこ抜いたら先が外れてしまった