raspberrypi picoを使用したUSBパドルコントローラです
USBマウスとして動作しますので、それらの入力を受け付けるソフトであれば大抵動くんじゃないかと思います (USBゲームパッドモードも追加しました)
X/Y軸の切り替えと速度変更にも対応しています
パドルユニット部は、ういよめん氏作のパドルコントローラを使用します
https://www.thingiverse.com/thing:5404242
ういよめん氏のBOOTHで購入する、自分で3Dプリントする等の手段で別途ご用意ください
https://uiyomengames.booth.pm/items/3914858
当方未確認ですが、ういよめん氏のパドルコントローラのネジ位置はアーケード版アルカノイド用のパドルと寸法が合わせてあるそうなので、そちらも使えるかもしれません
hardwareフォルダにはパドルユニットに組み付けるセンサー基板とpicoを載せるメイン基板の回路図とガーバーを入れておきました
ガーバーのzipファイルをそのままJLCPCBに送ることで基板を発注できます(たぶん数百円)
組立時の注意としては、センサー基板は位置がずれると正常に動きを検知できなくなるようです
パドルユニットの「ギア4」の中心が二つのセンサーの中心付近にくるようにしてください
| 部品 | 型番 | 個数 | 備考 |
|---|---|---|---|
| マイコン | RaspberryPi pico | 1 | |
| ダイオード | 1SS178 | 2 | メイン基板 D1,D2 |
| XHコネクタ ベース付ポスト トップ型 2P | B2B-XH-A(LF)(SN) | 5 | メイン基板J2-J6 |
| XHコネクタ ベース付ポスト トップ型 4P | B4B-XH-A(LF)(SN) | 1 | メイン基板J1 |
| 部品 | 型番 | 個数 | 備考 |
|---|---|---|---|
| マイコン | RP2040-Zero | 1 | |
| ダイオード | 1SS178 | 2 | メイン基板 D1,D2 |
| XHコネクタ ベース付ポスト トップ型 2P | B2B-XH-A(LF)(SN) | 5 | メイン基板J2-J6 |
| XHコネクタ ベース付ポスト トップ型 4P | B4B-XH-A(LF)(SN) | 1 | メイン基板J1 |
| 部品 | 型番 | 個数 | 備考 |
|---|---|---|---|
| インバータ | 74HC14 (U74HC14L-D14-T) |
1 | センサー基板 |
| 透過型フォトインタラプタ | SG206 | 2 | センサー基板 U2,U3 他のパーツの裏側に付きます |
| カーボン抵抗 | 180Ω | 2 | センサー基板 R1,R2 |
| カーボン抵抗 | 2.2kΩ | 2 | センサー基板 R3,R4 |
| XHコネクタ ベース付ポスト トップ型 4P | B4B-XH-A(LF)(SN) | 1 | センサー基板J1 |
| 部品 | 型番 | 個数 | 備考 |
|---|---|---|---|
| XHコネクタ ハウジング 2P | XHP-2 | 5 | |
| XHコネクタ ハウジング 4P | XHP-4 | 2 | |
| XHコネクター ハウジング用コンタクト | SXH-001T-P0.6 | 18 | |
| 配線 | 適量 | 最低4色は揃えるのが良いでしょう |
| 部品 | 型番 | 個数 | 備考 |
|---|---|---|---|
| 24φネジ式押しボタン | PS-14-DN | 3 | |
| サービススイッチ(DS-412) | 2 | ||
| M3 インサートナット | 7 | ケース上部パーツの穴に入れる | |
| M3 5mm ビス | 4 | ||
| M5 ナット | 4 | パドルユニットをケースに組み付けるのに使用 | |
| M5 15mm ビス | 4 | パドルユニットをケースに組み付けるのに使用 | |
| M3 6mm タッピングビス | 3 | ケースにメイン基板を固定するのに3個 パドルユニットにセンサー基板を固定するのに2個 |
| 部品 | 型番 | 個数 | 備考 |
|---|---|---|---|
| M3 8mm ビス | 2 | ケースへの取り付けに使用 |
| picoコネクタ# | RP2040-Zeroコネクタ# | スイッチ# | 機能 |
|---|---|---|---|
| J2 | J2 | SW1 | 左ボタン |
| J3 | J3 | SW2 | 右ボタン |
| J4 | J5 | SW3 | 速度切り替えボタン |
| J5 | J6 | SW4 | X/Y軸切り替えボタン |
| J6 | J4 | SW5 | センターボタン |
picoのBOOTSELを押しながらUSBケーブルを接続するとエクスプローラーが起ち上がり、picoのフォルダが表示されます(winの場合)
そこにUSBPaddleController_pico.uf2をコピーしてください
ファームウェアの更新が完了するとpicoが再起動します
PCに接続した状態でZeroのBOOTを押しながらRESETを押下するとエクスプローラーが起ち上がり、Zeroのフォルダが表示されます(winの場合)
そこにUSBPaddleController_rp2040_zero.uf2をコピーしてください
ファームウェアの更新が完了するとZeroが再起動します
SW3は速度切り替えボタンです
パドルの反応速度を4段階で切り替えることが可能です
押下するごとに高速から順に低速に切り替わり、最低速の次は高速に戻ります
切り替え後の速度はLEDのフラッシュで通知されます(最高速=1回...最低速=4回)
SW4はX/Y軸切り替えボタンです
押下するごとにマウスの移動方向が切り替わります
X軸移動のみでは「メタルオレンジEX」のメニュー操作ができなかったので追加しました
軸切り替えボタンと右または左ボタン同時押しのセンタークリックは廃止しました
速度切替ボタンを押しながら左右センターいずれかのボタンを押すと連射モードのON/OFF切り替えが行われます
連射モードONになっているボタンを押下している間、連射します
連射速度は秒間10発程度の固定です
X/Y軸切り替えボタンと速度切り替えボタンを同時押しすると、USBマウスモードとUSBゲームパッドモードが交互に切り替わります
ゲームパッドモードに切り替わった時、LEDが10秒間点滅します(RP2040-Zetoでは緑色点滅)
マウスモードに切り替わった時、LEDが10秒間点灯します(RP2040-Zetoでは赤色点灯)
USBゲームパットモードではボタンの機能が以下のようになります
| マウス操作 | パッド操作 |
|---|---|
| 回転 | 左スティック |
| 左 | R2 3秒以上長押しした後に離すと、L2が自動で0.9秒間連打されます(オートブレーキ) L2連打中に再度ボタン押下で連打がキャンセルされます オートブレーキ作動中はLEDが点滅します |
| 右 | ×/□のトグル動作 |
| センター | △ |
| 速度切り替え | PS |
速度切り替え/連射は無効化されます
その他のボタン機能はUSBマウスモードと同様に機能します
PS5との接続はFGC2を介してどうにかなるかもしれません
マウス/ゲームパッドのモードと各設定値は設定変更のタイミングで保存され、再起動時は設定内容を復元します
設定値はマウス/ゲームパッドのモード毎に保存されます
パドルコントローラのケースはサイズ違いのものを用意しました
小さい方は20cmX20cmのヒートベッドで出力可能ですが、2ボタン仕様であり手の置き場もないため若干操作しづらくなっています
大きい方はケースの締め付けにインサートナットを使用しますので別途ご用意ください
自作されたり、アーケード機のコントロールボックス等に入れるのも良いと思います
- 公開されているデータをもとに3Dプリント等を行ってください

メイン基板 RaspberryPi pico用

メイン基板 RP2040-Zero用

センサー基板
- 基板イメージと使用部品表を参考に部品を半田付けしてください
- メイン基板は使用するマイコンによってRaspberryPi pico用かRP2040-Zero用のどちらかを使用してください
- センサー基板はどちらのマイコンを使う場合でも共通です
- メイン基板へのRaspberryPi picoの取り付けはピンヘッダ/ソケットを使用することを前提としています
- メイン基板へのRP2040-Zeroの取り付けはピンヘッダを使用せず直接はんだ付けすることを前提としています
- センサー基板のフォトインタラプタはその他の部品の裏側の面に実装します
- パドルユニットにセンサー基板を取り付けます
- フォトインタラプタとパドルユニットの円盤が接触しないようにしてください
- ケース(上)の底面の穴にM3用のインサートナットを埋め込みます
- 側面の3か所の穴にもM3用のインサートナットを埋め込みます
- 2mm穴に透明フィラメントを埋め込みます(透明フィラメントが無い場合はスキップしても問題ありません)
- 穴が狭い場合は1.8mmぐらいのドリルで穴を広げてください
- 両端がケースの面とツライチになるようにカットしてください
- フィラメントが緩くて脱落する場合は接着剤等で固定してください
- ケース(上)にパドルユニットとボタンを取り付けます
- ケース(下)にメイン基板を取り付けます
- メイン基板とセンサー基板、各スイッチを接続します
- スイッチ類はすべて同じコネクタ形状ですので、ボタン配置はお好みで組み替えてください
- ケースを閉じて完成です お疲れさまでした
ケース側面に埋め込まれた3か所のナットに追加装備を装着することが可能です
ケースが以前のものと比較してコンパクトになった反面、手を置くスペースがなくなっているので、外付けのパームレストを作成しました
取り付け位置を替えることで右手/左手のどちらにも対応可能です
またパームレスト天面にM3ビス用の穴を5個あけていますので、上部にさらに装備追加可能です
- 部品を準備します
- 垂直支柱は4本、斜め支柱は2種類を各5本ずつ出力してください
- 片方のプレートに支柱を立てます
- 垂直支柱は窪みがある面を斜め支柱が刺さる穴の方に向けてください
- 斜め支柱の向きや本数はお好みでどうぞ
- もう片方のプレートに立てている支柱を差し込んで完成です
- そのままですと落下したときにバラバラになることがある(あった)ので、組立後に接着剤を流し込むのもオススメです
以下のテスト環境で動作確認を行っています
- X68000 Z
- PlayStation 5 (ゲームパッドモードはBrook FGC2を使用)
- Windows11
-
ういよめん氏 Arkanoid Paddle (spinner) controller Rotary encoder
https://www.thingiverse.com/thing:5404242 -
わいくん氏 ゲーム基板用センサー図鑑
https://www.ykuns-mechanical-club.com/game%20sensor.html


