# ゲーム用コントローラーで mechArm を手で補正する：買うものと、つなぎ方の調査

- 調べた日：2026-11-01
- きっかけ：エイイチの問い「mechArm の動きを補正するとき、ゲーム用のコントローラーをつけて操作したりは可能ですか？」
- 方針：メーカーの商品ページ・掲示板・不具合の報告を開いて確かめたことだけを書く
- 換算：1ドル＝150円で計算（円は目安）
- 状態：Yommor の互換コントローラーを購入済み（2026-11-02 着）。動きの確認はまだ

---

## ① 要点

1. 可能。やり方は2つ。公式のゲームパッドを使うか、市販のゲーム用コントローラーを自分のスクリプトで読むか
2. 市販品を自分のスクリプトで読む方を選んだ。理由は、今ある保護（J4_SAFE・joint_limit）を必ず通せることと、操作した指令と届いた角度（command / reached）を台帳に残せること。補正の操作がそのまま「人が直した記録」になる
3. 最初は Mac につなぎ、Mac のスクリプトから SSH 越しに mechArm を動かす。mechArm の Raspberry Pi（Ubuntu 18.04）に直接つなぐのは、遅れや止まり方に不安が出てから
4. 互換品は Linux でつまずく例がはっきりある（再接続できない・USB でも弾かれる）。Mac で動いた報告がある品を選んだ

---

## ② 公式のゲームパッド（Elephant Robotics）

| 項目 | 内容 |
|---|---|
| 価格 | 129.99ドル（約2万円、送料・関税別） |
| 対応 | mechArm 270 Pi を含む |
| つなぎ方 | Bluetooth |
| できること | 位置・速度・姿勢など、いくつかの動かし方を選んで操作 |
| 分からないこと | 操作した内容を自分で記録できるか、自分のスクリプトで入力を受け取れるか、保護を通るか（どこにも書かれていない） |

レビュー4件のうち1件はペンホルダーの感想で、レビューは当てにならない。「とりあえず手で動かせればいい」場合の選択肢。

---

## ③ 買ったもの：Yommor P4 コントローラー（Amazon、3,198円）

| 項目 | 内容 | 出典 |
|---|---|---|
| つなぎ方 | Bluetooth。USB ケーブルでつなぐと有線としても使える | 商品ページ |
| 端子 | USB-C | Amazon の Rufus（AI）の回答とレビュー2件 |
| 公式の対応 | P3 / P4 / PC（Windows 7/8/10）。Mac・Linux は書かれていない | 商品ページ |
| Apple 機器での報告 | MacBook Air で問題なく接続、iPad Air M5 で問題なく接続 | レビュー |
| ペアリング | SHARE を押したまま HOME を押す（純正と同じ） | 商品ページ |
| 気をつける点 | TURBO 連射（ボタン1回が連続入力になる）は必ず切る。SHARE を押すと画面が立ち上がるというレビューがあり、ロボット操作のボタンには使わない | 商品ページ・レビュー |

**他の候補との違い**
- PS4 型の互換品はどれも中身がほぼ同じで、違いは見た目・ブランド・レビュー数・数百円の差
- Smalife（有線のみ）：Bluetooth の不具合とは無縁だが、Mac での報告がなく、USB 接続でも互換品が Linux で弾かれた例があるため選ばなかった
- Leadjoy（8,780円、2.4G の USB 受信機）：受信機は普通の USB コントローラーとして見えるので、将来 Pi に直接つなぐときに Bluetooth の不具合を避けられる可能性がある。今は要らない

---

## ④ Linux（mechArm の Raspberry Pi）で互換品を使う難しさ

| 例 | 内容 | 出典 |
|---|---|---|
| 再接続できない | Ubuntu 24.04 系でも、互換品は最初のペアリングは通るのに、電源を切ると再接続できない（2026年に報告、未解決） | BlueZ Issue #2380 |
| USB でも弾かれる | 純正の Sony を名乗る互換品が、Linux の PS4 用ドライバーで「情報が取れない」と弾かれ、修正パッチが必要だった | Arch Linux Forums |
| つながっても入力が来ない | Raspberry Pi でペアリングはできたのに動かず、USB の無線アダプターを買って解決 | RetroPie forum |
| Mac でも | 互換品は無線より有線のほうが安定しやすいという声 | Cycling '74 forum |

mechArm 270 Pi の出荷時の OS は Ubuntu 18.04（CNX Software）。古いので、新しい Linux で直った不具合も残っている可能性が高い。Yommor 自体の Linux での動作報告は見つからなかった。

---

## ⑤ Pi に直接つなぐ場合（今はやらない）

**必要なもの**
1. Mac から SSH で Pi に入り、bluetoothctl でペアリング（モニター・キーボードは要らない）
2. `/dev/input/js0` ができて、ボタンで値が出ることの確認
3. 読み取り用のライブラリ。Pi の Python が古いので、最新の pygame が入らないかもしれない。その場合は evdev か古い版
4. 操作スクリプトと保護を Pi 側に置く
5. ログは Pi の SD カードに書かれるので、KIOXIA に移す手順
6. 無線がダメなときは USB ケーブルで直挿しか、USB の無線アダプター

**良いところ**
- 押してから動くまでが短くなる（SSH 越しのひと手間がない）
- Mac と Pi の通信が途切れても「離したら止まる」が Pi の中で完結する（安全面でいちばん大きい）
- Mac なしで、アームとコントローラーだけで要所の姿勢を教えられる

**今やらない理由**
カメラ・台帳・KIOXIA が Mac 側にそろっている。Mac で始め、遅れや止まり方に不安が出たら Pi 直結に移る。

---

## ⑥ ロボットにつなぐ前の確認と、作るときの決まり

**届いたら（ロボットにはつながない）**
1. TURBO 連射が切れているか
2. Mac につながるか（Bluetooth、ダメなら USB-C ケーブル。充電専用ケーブルだと入力が届かない）
3. `~/r2r2r-scripts/tools/gamepad_check.py` で、ボタン・スティックの値が出るか。スティックを離したときに値が 0 付近（目安 ±0.05 以内）に戻るか。ずれが大きいと「触っていないのに動く」原因になる

**操作スクリプトを作るとき**
- まず「何を補正したいか」（PICK の位置合わせか、姿勢の微調整か）を決める。関節ごとに動かすか座標で動かすかがここで決まる
- スティックで連続的に指令を送ると、サーボの応答が追いつかずカクつきやすい。1回押すごとに少しだけ動かす方式から始める（pymycobot の jog 系の命令）
- ボタンを押している間だけ動く（離したら止まる）仕組みと、低速の上限を最初から入れる
- 関節を動かすコードなので、設計 → Claude Code で実装 → 外部レビュー → dry-run の順を飛ばさない

---

## 出典

- [Elephant Robotics ショップ：myCobot Bluetooth ゲームパッド](https://shop.elephantrobotics.com/ja/products/mycobot-gamepad)
- [openelab: myCobot Bluetooth Gamepad](https://openelab.com/products/mycobot-wireless-controller)
- [WisteriaHill：ラズパイ4B ＋ PS4 コントローラ（2021年、Raspberry Pi OS と pyPS4Controller の手順）](https://wisteriahill.sakura.ne.jp/CMS/WordPress/2021/11/11/raspberry-pi-4-b-ps4-controller/)
- [CNX Software: MechArm Pi 270](https://cnx-software.com/?p=99769)
- [BlueZ Issue #2380: Generic PS4 controller fails to reconnect](https://github.com/bluez/bluez/issues/2380)
- [Arch Linux Forums: Can't get input from DualShock 4](https://bbs.archlinux.org/viewtopic.php?id=262451)
- [RetroPie forum: Cannot connect PS4 Controller](https://retropie.org.uk/forum/post/10895)
- [Cycling '74 forum: gamepad object](https://cycling74.com/forums/gamepad-object-supported-controllers-and-non-cable-connection)
