前回は、マウスやキーボードなどと同じようにUSBデバイスとして利用できる「Arduino Pro Micro」の使い方をご紹介しました。今回は、その機能を使ってデバプラ的にどんなことができるかいろいろ触って試してみたいと思います!
目次
- ボリューム調整デバイスを作ってみる
- せっかくなのでケースを作ってみる
- まとめ
1.ボリューム調整デバイスを作ってみる
筆者はパソコンで何か作業をするときにはよく音楽をかけながら作業をするのですが、その際によく困るのが、ボリューム調整。ノートPCなどはキーボードに音量の変更キーがついているので、それを押せばOKなのですが、デスクトップの場合それがないので、Windowsの場合を例にとると画面の右下のスピーカーマークのアイコンをクリックして音量を変えたり、各再生ソフトのボリューム調整を利用する必要があり、とっさの変更に困っていたりしました。今回、そんな悩みを解消すべく、ボリュームを手軽に変更できるデバイスを作成してみます!
今回も使うのはArduino Pro Micro。これを使って進めていきます。
と、まあ作ろうと思ったのですが、色々調べていて、先にオチからばらしちゃいますと、Windowsの場合、キーボードの「Win」+「PageUP」で音量アップ、「Win」+「PageDown」で音量ダウンが可能でした!orz…
でも、「Win」キーと「PageUP」「PageDown」はキーボードの距離が離れているので、結局両手を使わなければいけない!それに何よりボリュームのコントロールはツマミでやりたい!とわずかつたない理由のみを原動力としてデバイスを作ってみます。
Arduinoからボリュームの調整をする方法
オチで紹介してしまいましたが、今回Arduino Pro Microで実現する場合、キーボードコマンドをArduinoから送ってボリューム調整を実現する方法で考えてみます。
なので、今回は単純にボリューム抵抗が回ったらその状態を取得して、ボリュームアップ、ダウンを実現する方法で実装してみます。この方法だと、現在のボリュームの値がわからないので、細かな調整は難しいのですがざくっと使うのは問題ないのでレッツ実装です!
写真のキーを組み合わせることでWindowsではボリューム調整ができるとのこと。このキーをArduino Pro Microで仮想的にキーコマンドを送ります。
ボリューム調整なので、部品もボリューム抵抗を用意します。回路はシンプルで、ボリューム抵抗の値をアナログ入力(A0ピン)で検出して、その値の増減に応じてWindows側にキーの送信をするようにしてみます。
ボリューム調整のプログラム
#include "Keyboard.h" int _pos = 0; void setup() { Keyboard.begin(); Serial.begin(9600); } void loop() { int ain = analogRead(A0); delay(10); // Volume UP: if((_pos-2) > ain){ Keyboard.press(KEY_LEFT_GUI); Keyboard.write(KEY_PAGE_UP); Keyboard.releaseAll(); delay(500); Serial.println("Volume UP"); } // Volume Down: if((_pos+2) < ain){ Keyboard.press(KEY_LEFT_GUI); Keyboard.write(KEY_PAGE_DOWN); Keyboard.releaseAll(); delay(500); Serial.println("Volume Down"); } _pos = ain; }
条件文で_pos-2) > ainなどとして、ひとつ前の状態より抵抗値が大きかったら・小さかったらキー送信、というプログラムです。ボリューム抵抗を触っていないのに数値が+-1~3などと少し揺れる場合があったので、ここでは+-2として抵抗値が揺らいでも誤動作しないようにしています。
ボリュームつまみを回すとWindows側の音量が変わっていますね!ちょっとだけパソコンでの作業が楽になりました!!
2.せっかくなのでケースを作ってみる
これだけだと味がないので、日常使いするように、ケースに入れてみたいと思います。ホームセンターで手ごろな木でできたブロックがあったので、電動ドリルでくりぬいてボリューム抵抗をつけてみました!
機能のオンオフができるスイッチもつけてみました。
くりぬいた穴の中にArduinoが入るようにして、パーツを収めていきます。
Arduinoに直接はんだづけをしてもいいのですが、また使いたいので抜き差しできるようにしました。
あとはArduinoを穴の中に入れて完成です。さっそく動作確認をしてみます。
ちゃんと動きましたね!これで、机の上に置いておいてもArduinoむき出しではなくいい雰囲気のデバイスになったのではないでしょうか?
まとめ
今回はArduino Pro Microの使い方を踏まえてボリューム調整デバイスを作成しました。キーボードのショートカットキーを応用したり、特定のマウス操作だけに特化させると、例えばゲームなどの特定の処理に特化したデバイスができるので、こんな単純作業もっと簡略化したいんだよね…と思っている方はぜひチャレンジしてみてください!