← プロジェクト概要 ミニ③ L1 完走

倒立チューナ — 見る・止める・調える

倒立振子は完成した。でも、調整するたびに USB ケーブルを差し込んで Serial を見なければいけない — それは本当の「完成」ではない。
4.3 インチの大画面 JC4827 を「操作卓」にして、 ケーブルなしで倒立の状態を見て・止めて・PID ゲインを送る。 それがミニ③の目標。

slug jc4827-balance-tune | GO 2026-08-26 | L1 完走 2026-09-04

USB ケーブルなし、4.3 インチ画面から操作して hold 221 秒
評価ログ CSV 出力中も 315 秒 維持(2026-09-03 実機確認)。

Chocofon(B)

倒立はできた。でも毎回 USB を差して調整するのが面倒。画面でゲインを送れないの?

AIチューター

JC4827 の大画面と ESP-NOW を組み合わせれば実現できます。ただし ATOM の制御ループを汚さないことが絶対条件。

管理人

チューナを付けても 30 秒級が維持できれば合格。USB を外した状態で hold 秒が画面に出ることを証明せよ。

システム構成

2台が ESP-NOW で無線通信する。ATOM S3 は LiPo だけで動く。 JC4827 はノートPC の USB で電源を取りつつ操作卓になる。


  ┌──────────────────────────┐          ┌──────────────────────────────────┐
  │    ATOM S3(LiPo のみ)  │          │    JC4827(USB 電源・操作卓)    │
  │                          │          │                                  │
  │  IMU → 角度推定          │──────→──│  SAFE / ARMED 状態表示           │
  │  PID 演算               │ テレメ   │  傾き角・hold 秒を大画面で確認   │
  │  モータ制御             │ 20 Hz    │  LIVE ゲイン(ATOM の現在値)    │
  │                          │          │  EDIT ゲイン(5752 ノブで編集)  │
  │                          │←──────  │                                  │
  │  コマンド受信・実行      │ コマンド │  タッチ → ZERO / ARM / E-STOP   │
  │  ゲイン即時反映          │ 随時     │  5752 ノブ → Kp Kd Ki trim 編集 │
  │                          │          │  → APPLY タッチで ATOM に送信   │
  └──────────────────────────┘          └──────────────────────────────────┘
         ↑ 制御ループは汚さない                  ↑ 書き込み後は USB を抜いてよい
          (printf・WiFi 常時 ON 禁止)
      

データの流れ

ATOM → JC4827(テレメトリ・20 Hz)

ATOM が制御ループごとに送る状態パケット。JC4827 はこれを受信して画面に反映するだけ。

フィールド内容画面での見え方
armedARM 中か否かARMED(緑)/ SAFE(黄)ラベル
eDeg現在の傾き角(度)e の数値
holdSec連続保持秒画面中央に大きく表示
kp kd kiATOM で使われているゲインLIVE 行
trimDeg現在のトリム角LIVE 行
pwm uCmd制御出力値評価 CSV にのみ記録

JC4827 → ATOM(コマンド・タッチまたは APPLY 時のみ)

ボタンを押したときだけ送る。常時送信しないので ATOM 側のループは汚れない。

操作送信フラグATOM の動作
ZERO タッチTELE_TUNE_ZEROゼロ点リセット
ARM タッチTELE_TUNE_ARMARM ⇔ SAFE 切替
APPLY タッチTELE_TUNE_APPLY_GAINSKp Kd Ki trim を即時反映
E-STOP タッチTELE_TUNE_ESTOPSAFE に戻してモータ停止
5752 ノブ回転—(APPLY で確定)JC4827 の EDIT 値だけ変わる
AIチューター:
JC4827 の WiFi を常時 ON にすると倒立が崩れます。 通信は ESP-NOW のみ。ATOM 側の制御ループで printf や WiFi を使わないことが「汚さない」の正体です。

実機の証拠(Step ごと)

Step 3 — タッチ E-STOP(2026-08-31)

画面下の赤い E-STOP ボタンをタップすると、ATOM に TELE_TUNE_ESTOP が届き、 即座に SAFE でモータが停止する。倒立中でもワンタップで止められる。

JC4827 画面下に赤い E-STOP、緑 LINK、SAFE が表示されている机上写真
タッチ後、ATOM Serial に [TELE] e_stop が届き ARMED → SAFE

Step 4 — ゲイン編集+ APPLY(2026-08-31)

5752 の4ノブを回して Kp / Kd / Ki / trim を個別に編集し、APPLY タッチで ATOM に送信。 画面の LIVE 行が ATOM の現在値に更新されれば成功。

#0 赤ノブ

Kp(比例ゲイン)
±1 ずつ 0〜80

#1 橙ノブ

Kd(微分ゲイン)
±0.1 ずつ 0〜5

#2 黄ノブ

Ki(積分ゲイン)
±0.2 ずつ 0〜20

#3 青ノブ

trim(目標角オフセット)
±0.2 ずつ ±5°

JC4827 画面に EDIT Kp Kd Ki trim、緑 APPLY、5752 OK が表示されている机上写真
APPLY タッチ後、ATOM Serial に [TELE] gains Kp=… Kd=… が届き LIVE も追従

Step 5 — USB なし 30秒級(2026-08-31)

ATOM の USB を抜いて LiPo だけにし、JC4827 から ZERO → ARM。 画面中央に hold 秒が大きく表示される。 チューナを接続したまま 倒立が維持できる ことが計測ゲートの合格条件。

JC4827 画面に hold 221 秒、LINK、ZERO/APPLY/E-STOP と NeoRotary 4 が写っている机上写真
USB なし(ATOM LiPo のみ)で hold 221 s。計測ゲート合格(2026-08-31)

評価 CSV — ATOM を汚さないログ(2026-09-03)

JC4827 の Serial に CSV を流す機能を追加した。 ATOM 側のコードは 一切変えない — ログ出力は JC4827 だけが担う。 Serial v キーで ON/OFF。

Chocofon(B):
ATOM に printf を追加したら倒立が崩れてしまった……。
AIチューター:
それが「制御ループを汚す」の正体です。ATOM の print は Core 1 の制御と同じコアで走るので、 重い出力があると 5ms ループが止まります。
解決策: ATOM は送るだけ(テレメ 20 Hz)、印字は JC4827 が担当。
CSV 列内容
t_msJC4827 側の経過時刻(ミリ秒)
e傾き角(度)— グラフ縦軸に使う
omega角速度(°/s)
u / pwm制御出力・モータ PWM
hold保持秒
kp kd ki trimATOM で使われているゲイン

2026-09-03 実機確認: 評価 CSV を ON にしたままでも hold 315 秒 を維持(E-STOP で終了、倒れず)。

ログデータ(hold 167〜315 s 分): 2026-09-03_jc4827-eval-csv-315s.csv

Step 6: まとめ — L1 完走判定(2026-09-04)

判定: 合格(L1 完走)
USB なし・LINK・e_stop・ゲイン送信・hold 221 s — 全条件クリア。
判定項目結果
USB なしで LINK
傾き角・状態を画面で見られる
E-STOP タッチで即 SAFE
ゲインが ATOM に届く(APPLY)
チューナ接続中も倒立 30秒級✅ hold 221 s
評価 CSV(制御ループを汚さない)✅ hold 315 s 中に出力
管理人:
ミニ③ 合格。USB ケーブルなしで見る・止める・調えることが 221 秒の実機で証明された。 評価 CSV の追加(315 s 維持)も「ATOM を汚さない」の原則を守ったまま完成。L1 完走とする。

できたこと(ミニ③ 全体)

  1. MAC 交換 → ESP-NOW LINK(Phase1)
  2. 傾き角・ゲイン・状態を 4.3" に表示(Step2)
  3. タッチ E-STOP → 即 SAFE(Step3)
  4. 5752 ノブ → ゲイン編集 → APPLY → ATOM 即時反映(Step4)
  5. ZERO / ARM → USB なし hold 221 s(Step5・計測ゲート合格)
  6. 評価 CSV Serial 出力 → hold 315 s 実機確認(評価 CSV)

Stretch(L1 条件外・GO 待ち)

  • 物理 e-stop SW(P2/P3 増設)
  • SD カードへのログ保存
  • peer テーブル(複数台対応)

ファームウェア

cd PlatformIO/PlatformIO_Projects/jc4827_tx_tuner
pio run -e jc4827 -t upload
pio device monitor -e jc4827 -b 115200

Serial v キー = 評価 CSV ON/OFF(既定 OFF・10 Hz)。
長時間ログは PlatformIO モニタの log2file を使う(画面履歴は数百行で消える)。

リンク