ESP32でゲームコントローラーを作る話の番外編、キーボード入力をエミュレートするフットスイッチを作りました。Bluetoothで接続し、電源も内蔵した完全ワイヤレス式です。
その作り方を紹介します。
使ったもの
筐体
フットスイッチとして有名なKORGのPS-1を使用しました。金属製でしっかりとした作りで、分解/再組立ても簡単です。
マイコン
おなじみのESP32です。このボードはリチウムイオン電池の充放電回路まで載っているので使いやすいです。
以前も記事にしましたが、Bluetoothが正常に動作しないESP32ボードも出回ってるようなのでご注意ください。定期的に買っていますが、このボードは不良品に当たったことありません。
ただ、上記ESP32ボードは長期にわたって欠品しています。代替品は下記製品あたりでしょうか。
32 WROOM 32 Esp32 Lolin32 Esp32 開発ボード WiFi カード モジュール 4MB フラッシュ WEMOS Lolin32 V1.0.0
バッテリー
リチウムイオン電池は1400mAhのものを使用しました。様々な容量のものが販売されていますが、EEMBの1400mAh品が最もおさまりがよさそうです。
その他
トグルスイッチ、電線など
作り方
ペダルの改造
ペダル側面のネジ兼回転軸をドライバーで外せば簡単に分解できます。ケーブルが板バネにはんだ付けされているので、取り外して筐体から引っこ抜きます。
下記写真のように部品を配置します。ESP32ボードは両面テープで固定、トグルスイッチはケーブルが生えていた穴に固定しました。
配線図は書きませんが、上の写真を見れば大体わかると思います。トグルスイッチはバッテリーON/OFF用です。写真ではバッテリーがはみ出してますが、きちんと収まります。炎上・爆発の危険があるので変な圧力がかからないように注意してください。薄いPET板か何かで位置を固定するとよいです。
下側の筐体に穴をあけてESP32ボードのUSBポートにアクセスできるようにします。アルミではなく鉄なので注意。ハードウェア的には以上です。
スケッチ
ArduinoIDEでのESP32の設定は前回の記事を参照してください。
また、ESP32をBluetoothキーボード化するためのライブラリも必要です。
実際のスケッチはこちら。今回は踏んでいる間Ctrlキーを押し続けるようにしています。
#include <BleKeyboard.h> #include <driver/adc.h> #include <Wire.h> BleKeyboard bleKeyboard("footPedal"); //ボタン const int buttonPin = 14; int PinButton1_Prev=1; int PinButton1_Curr=1; void setup() { //入力ピン設定 pinMode(buttonPin, INPUT_PULLUP); PinButton1_Prev = digitalRead(buttonPin); bleKeyboard.begin(); } void loop() { if (bleKeyboard.isConnected()) { PinButton1_Curr= digitalRead(buttonPin); if (PinButton1_Curr == 0){ delay(10);//チャタリング対策 PinButton1_Curr = digitalRead(buttonPin); if (PinButton1_Curr == 0) { bleKeyboard.press(KEY_LEFT_CTRL); while (true) {//スイッチが戻るまで待つ PinButton1_Curr = digitalRead(buttonPin); if (PinButton1_Curr == 1) break; delay(10); } bleKeyboard.releaseAll(); } } } delay(2); }
問題:部品が手に入らない
ブログを書いている時点では肝心のフットペダル(KORG PS-1)の在庫が切れていてアマゾンでは4000円近い価格になっています。2000円程度が本来の価格なので気を付けてください。多分生産終了とかではないと思います。BICカメラなら予約は可能なのでどうしても欲しいならそちらでもいいかもしれません。
(追記)2022年に価格改定があり、定価が2000円→3500円に変更されていました。4000円近い価格というのは相応のお値段のようです。気軽に買える値段ではなくなってしまいました。ビックカメラなどでも同様の価格です。2023年3月にBICで入荷予約して2000円で購入したのが最後のすべりこみでした。
このようなペダルにはKORGのPS-3という商品もあります。こちらはプラスチック製ですが1500~2000円程度で、在庫も安定していそうです。
実際に入手してみたのですが、こちらはスイッチの構造上内部のスペースが小さいので部品を収めるのに苦労しそうです。また、質感が段違いなので、できればPS-3よりもPS-1をお勧めします。
また、YAMAHAからも手ごろな価格(1100円程度)でフットペダルが出ていますが、極性が逆であるため配線やソフト的な処理が今回の例とは違うので注意してください。
コメント