無線コンソールの実現 — 倒立を見て、止めて、調える
倒立はできた。でも毎回パソコンをつないで数字を見ていたら、本当に「使える」とは言えない。
タッチで操る倒立コントローラをつくり、大画面ボードを
送受信コンソール(状態を受け取り、命令を送る装置)にした。
ケーブルなしで、倒立は崩れない。
評価ログ CSV 出力中も 315 秒 維持(2026-09-03 実機確認)。
最終レイアウトで ATOM と通信する様子( YouTube Shorts )。
Chocofon(B)
倒立はできた。でも毎回 USB を差して調整するのが面倒。画面でゲインを送れないの?
AIチューター
JC4827 の大画面と ESP-NOW を組み合わせれば実現できます。ただし ATOM の制御ループを汚さないことが絶対条件。
管理人
チューナを付けても 30 秒級が維持できれば合格。USB を外した状態で hold 秒が画面に出ることを証明せよ。
システム構成
2台が ESP-NOW で無線通信する。ATOM S3 は LiPo だけで動く。 JC4827 はノートPC の USB で電源を取りつつ 送受信コンソール(状態を受け取り、命令を送る装置)になる。 PC とは USB-Serial(評価 CSV・書き込み)でつながる。
データの流れ
ATOM → JC4827(テレメトリ・20 Hz)
ATOM が制御ループごとに送る状態パケット。JC4827 はこれを受信して画面に反映するだけ。
| フィールド | 内容 | 画面での見え方 |
|---|---|---|
armed | ARM 中か否か | ARMED(緑)/ SAFE(黄)ラベル |
eDeg | 現在の傾き角(度) | e の数値 |
holdSec | 連続保持秒 | 画面中央に大きく表示 |
kp kd ki | ATOM で使われているゲイン | LIVE 行 |
trimDeg | 現在のトリム角 | LIVE 行 |
pwm uCmd | 制御出力値 | 評価 CSV にのみ記録 |
JC4827 → ATOM(コマンド・タッチまたは APPLY 時のみ)
ボタンを押したときだけ送る。常時送信しないので ATOM 側のループは汚れない。
| 操作 | 送信フラグ | ATOM の動作 |
|---|---|---|
| ZERO タッチ | TELE_TUNE_ZERO | ゼロ点リセット |
| ARM タッチ | TELE_TUNE_ARM | ARM ⇔ SAFE 切替 |
| APPLY タッチ | TELE_TUNE_APPLY_GAINS | Kp Kd Ki trim を即時反映 |
| E-STOP タッチ | TELE_TUNE_ESTOP | SAFE に戻してモータ停止 |
| 5752 ノブ回転 | —(APPLY で確定) | JC4827 の EDIT 値だけ変わる |
JC4827 の WiFi を常時 ON にすると倒立が崩れます。 通信は ESP-NOW のみ。ATOM 側の制御ループで
printf や WiFi を使わないことが「汚さない」の正体です。
実機の証拠(Step ごと)
Phase 1 — LINK 確認(2026-08-30)
JC4827 に FW を書き込み、ATOM から ESP-NOW テレメを受信。画面に緑の LINK と傾き角が出た。
Step 3 — タッチ E-STOP(2026-08-31)
画面下の赤い E-STOP ボタンをタップすると、ATOM に TELE_TUNE_ESTOP が届き、
即座に SAFE でモータが停止する。倒立中でもワンタップで止められる。
[TELE] e_stop が届き ARMED → SAFEStep 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°
[TELE] gains Kp=… Kd=… が届き LIVE も追従Step 5 — USB なし 30秒級(2026-08-31)
ATOM の USB を抜いて LiPo だけにし、JC4827 から ZERO → ARM。 画面中央に hold 秒が大きく表示される。 チューナを接続したまま 倒立が維持できる ことが計測ゲートの合格条件。
評価 CSV — ATOM を汚さないログ(2026-09-03)
JC4827 の Serial に CSV を流す機能を追加した。
ATOM 側のコードは 一切変えない — ログ出力は JC4827 だけが担う。
Serial v キーで ON/OFF。
ATOM に printf を追加したら倒立が崩れてしまった……。
それが「制御ループを汚す」の正体です。ATOM の print は Core 1 の制御と同じコアで走るので、 重い出力があると 5ms ループが止まります。
解決策: ATOM は送るだけ(テレメ 20 Hz)、印字は JC4827 が担当。
| CSV 列 | 内容 |
|---|---|
t_ms | JC4827 側の経過時刻(ミリ秒) |
e | 傾き角(度)— グラフ縦軸に使う |
omega | 角速度(°/s) |
u / pwm | 制御出力・モータ PWM |
hold | 保持秒 |
kp kd ki trim | ATOM で使われているゲイン |
2026-09-03 実機確認: 評価 CSV を ON にしたままでも hold 315 秒 を維持(E-STOP で終了、倒れず)。
ログデータ(hold 167〜315 s 分): 2026-09-03_jc4827-eval-csv-315s.csv
この CSV は Google スプレッドシート用の
jc4827-eval-csv-charts.gs
でグラフ化できる(Drive の CSV を指定 → e / u,pwm / omega / hold)。
手順は正本側
jc4827-eval-csv-charts.md
(Excel 一発スクリプトもあり)。
u / pwm はほぼマイナス側(CCW)に寄り、
ホイールが一方向へ偏って回っていたことが読み取れる。
末尾の急変は E-STOP 後。
ご苦労様でした。TX Tuner が、評価・記録ツールとして使えるようになりました。 開発の強い武器となりますね。
Step 6: まとめ — L1 完走判定(2026-09-04)
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 完走とする。
できたこと(ミニ③ 全体)
- MAC 交換 → ESP-NOW LINK(Phase1)
- 傾き角・ゲイン・状態を 4.3" に表示(Step2)
- タッチ E-STOP → 即 SAFE(Step3)
- 5752 ノブ → ゲイン編集 → APPLY → ATOM 即時反映(Step4)
- ZERO / ARM → USB なし hold 221 s(Step5・計測ゲート合格)
- 評価 CSV Serial 出力 → hold 315 s 実機確認(評価 CSV)
Stretch(L1 条件外・処分済 2026-09-04)
| 項目 | 処分 |
|---|---|
| 物理 e-stop SW(P2/P3 増設) | プロポ作成時に検討 |
| SD カードへのログ保存 | 現状は PlatformIO モニタの log2file で OK |
| peer テーブル(複数台対応) | プロポ作成時に検討 |
本 L1 ではタッチ E-STOP と Serial CSV(+ log2file)で十分。Goal 突合は管理人 GO(2026-09-04)でクローズ。
ファームウェア
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 を使う(画面履歴は数百行で消える)。
リンク
- jc4827_tx_tuner(GitHub)
- tele_common.h(パケット定義)
- 評価 CSV ログ(315 s)
- 評価 CSV → グラフ(GAS)
- 正本:
docs/hardware/jc4827-balance-tune.md