前回StampS3で簡単にBluetoothコントローラーが作れたので、Amazonで購入したけど使わずにほったらかしになっていたコントローラーもBluetoothコントローラーにしてみることにしました。
それがこちら。
見るからにチープなメガドライブコントローラーの互換品です。もともとコントローラーが欲しかったわけではなく、アタリ仕様ジョイスティックのコネクタにつなげるケーブルが欲しくて購入したものです。当時ケーブルだけを購入するよりこのコントローラーの方が安かったのです。
2つも購入していました。
その目的はMSXの汎用入出力ポート(ジョイスティックポート)に色々なデバイスをつなぐのに使いたかったからです。でも今年の秋月電子の福箱に入っていた「μP-1 ユニバーサル テストボード」の8255でMSXのI/Oポートを拡張することが出来たので、このコントローラー(のケーブル)は必要なくなってしまいました。
これまでマイコンを使って様々なコントローラーをUSB化してきたので、メガドライブコントローラーを使うつもりはなかったのですが、Bluetoothコントローラーが簡単に作れたので、このコントローラーもBluetooth化してみたくなりました。
6ボタンのメガドライブコントローラーからの信号の読み取りはネットで調べれば出てくるので、すぐに配線に取り掛かりました。メガドライブコントローラーは5V動作の様ですが、このコントローラーは3.3Vでも動作しました。
今回もStampS3を使っています。プログラムはBOOTHにアップしました。アップロードしたファイルについては最後に説明します。
前回と同様に小さな基板に配線してみました。
見た目だけでなくボタンもチープなつくりでしたが、使ってみると軽くて以外に使いやすいコントローラーでした。
せっかくなのでBluetoothのないPCなどでも使えるようにUSBコントローラーにしてみました。
使ったのはSparkFun Pro Micro(互換品5V動作)です。プログラムはArduino IDEで作成しました。コンパイルにはJoystickライブラリが必要になりますので、ライブラリマネージャーから導入しておいてください。スケッチはアップロードしたファイルに含まれています。
Windows11に接続して動作確認しました。
古いWindowsで使う場合はPro MicroのUSBドライバが必要になります。
・アップロードしたファイルの説明
コントローラーのプログラムはBOOTHにアップロードしておきました。
メガドライブ6ボタンコントローラーBluetooth&USB化プログラム
ダウンロードしたファイルを解凍すると3つのフォルダが現れます。
"StampS3_BLE_MegaDrive"フォルダはbluetoohコントローラーのプログラムです。PlatformIO向けのソースとなっています。
Arduino IDEでのコンパイルは確認していませんが、main.cppを"任意の名前.ino"に変更すればコンパイル出来ると思います。ただし利用するときはESP32-BLE-Gamepadライブラリの導入が必要です。現時点ではArduino IDEのライブラリマネージャーを使うと、一つ前のバージョン0.7.3までしかインストール出来ないようです。
"ProMicroMegadrivePad"フォルダはUSBコントローラーのプログラムです。こちらはArduino IDEのスケッチとなっています。コンパイルするにはJoystickライブラリが必要です。Arduino IDEのライブラリマネージャーから導入しておいてください。
・おまけ
前回の自作I2CゲームコントローラーのBluetooth化では、スティックの斜め移動が実装されていませんでした。このままではシューティングゲームの操作がつらいので、斜め移動に対応したプログラムをダウンロードファイルに入れておきました。フォルダ"StampS3_BLE_Gamepad"に入っています。詳細については前回のブログを参照してください。
※コメント投稿者のブログIDはブログ作成者のみに通知されます