Wio Terminal で使う DMX モニタ — 取り扱い説明書
概要
本稿は、Wio Terminal(SAMD51搭載)を使ってDMX信号をモニタ/表示するためのセットアップ手順と運用ガイドです。PlatformIOでのビルド・書き込み、基本的な使い方、トラブルシューティング、リカバリ手順をまとめています。
対象読者
- Wio Terminal を持っている人
- PlatformIOで開発・書き込みができる人
必要なもの
- Wio Terminal(SAMD51ベース)
- USBケーブル(デバッグ/書き込み用)
- DMX信号源(テスト用)
- 開発PC(Windows推奨だが他OSでも可)
リポジトリ内の設定は platformio.ini を参照してください。
開発環境の準備
- PlatformIO をインストールする(VSCode拡張またはCLI)。
- 必要ならPython仮想環境を作り、アクティベートする(PowerShellの例):
& .\.venv\Scripts\Activate.ps1
- ソースがあるディレクトリで作業する(このリポジトリをクローンまたはコピー)。
ビルドとアップロード
PowerShellでの実行例:
# 仮想環境をアクティベート(必要な場合)
& .\.venv\Scripts\Activate.ps1
# PlatformIOでビルドしてアップロード
pio run --target upload
注意点:
- Wio Terminal がブートローダーモードでないと書き込みできない場合があります。ボードのリセット操作やブートモード切替を確認してください。
- シリアルポートが他のアプリ(シリアルモニタ等)で占有されていないか確認してください。
基本的な使い方
- 書き込み後にリセットまたは電源再投入するとメインアプリが起動します。
- DMX信号を受信すると、画面にチャンネル値や受信パケットの概要が表示されます(実装により表示内容は異なります)。
- メニュー操作が用意されている場合は、画面の指示に従ってモード切替や設定を行ってください(例:表示更新間隔、監視チャンネルの範囲)。
- シリアル出力でのログがある場合、
pio device monitorや IDE のシリアルモニタで確認できます。
キー操作マップ(実装に基づく)
以下は src/main.cpp の現在実装に合わせたボタン割り当ての要約です。特にTX2モード(profile index = 6)では専用操作が多数あります。
AB 同時押し(プロファイル切替) — 操作手順と注意
AB 同時押しはプロファイル(表示レイアウト)を素早く切り替えるためのラッチ方式の操作です。以下の手順で使います。
手順(単発で1つ切替):
-
KEY_AとKEY_Bをほぼ同時に押す(同時押しウィンドウは約1秒)。画面左上のボタンインジケータにABが表示されます。 - ラッチ中に
5Way UPまたは5Way DOWNを一度押してプロファイルを1つ進める/戻す。 - 目的のプロファイルに到達したら
KEY_AとKEY_Bを放して確定します。
手順(連続で巡回):
-
KEY_AとKEY_Bを同時に押し続ける(ラッチ継続)。 -
5Way UP/DOWNを連続で操作するとプロファイルが連続して切り替わります。 - 到達後に
KEY_AとKEY_Bを放して確定します。
キャンセル/注意点:
- AB はラッチ方式のため押しっぱなし中は他の一部操作がロックされます(誤操作防止)。
- 押し方がずれると片側だけ押下として認識されるため、両ボタンはできるだけ同時に押してください(数百ミリ秒の差で認識差が出ます)。
- 実装のタイミング: 同時押しウィンドウは
AB_WINDOW_MS = 1000(1秒)、プロファイル切替の連続デバウンスに300ms程度の保護が入っています。短い連打は無効化されます。 - 画面表示: ABラッチ中は
draw_button_indicator()が左上にABを表示し、切替時は画面をクリアして新プロファイル描画が行われます。
操作例:
- 「Rx_mon から TX2 に切替」:
A+B押し、5Way UPを1回、A+B放す。 - 「プロファイルを素早く巡回」:
A+Bを押し続け、5Way UPを複数回押して目的で放す。
変更の保存:
-
プロファイル変更は
save_monitor_profile()によって外部フラッシュへ保存されます。変更がある場合のみ書き込みが実行され、シリアルログに書き込み結果が出力されます。 -
TX2モード(monitor_profile == 6, mode == 6)
-
C短押し: テストパターンの開始/停止をトグル(tx2_active)。 -
B短押し(A 非押下時): Auto U/D をトグル(tx2_auto)。 -
A押下時のコンボ操作:-
A + UP: 選択チャンネルの値を255に設定(tx2_set_val(255)) -
A + DOWN: 選択チャンネルの値を0に設定 -
A + LEFT: 選択チャンネルを10ch減少(リピート対応) -
A + RIGHT: 選択チャンネルを10ch増加(リピート対応) -
A + PRESS: SCテストバリューを0→10でループし、対応値を全chに出力
-
-
A非押下時(通常操作):- 動作中(tx2_active == true):
UP/DOWNでtx2_sp(スピード)を調整(1=速い、50=遅い、変更はフラッシュ保存される) - 停止中(tx2_active == false):
UP/DOWNで現在の選択チャンネル値(tx2_dd)を増減。PRESSはtx2_ch==0なら全chを0にリセット、そうでなければtx2_ch=0に切替。 -
LEFT/RIGHTでチャンネルを±1(リピート対応)。
- 動作中(tx2_active == true):
-
-
非TX2(通常モード)
-
5Way UP/DOWN(AB未ラッチ時): ページを -/+5(page±=5、ラップあり)。 -
5Way PRESS(中央押下): ページを0に戻し全画面再描画。 -
5Way LEFT/RIGHT: ページ送りに使用(モード変更に直接使わない)。 -
C短押し(mode != 6): mode==0/5では色パレットを循環(legacy_mon5_color の切替)等、簡易操作を行う。
-
共通の注意点:
- AB 同時押し(プロファイル切替)はラッチ動作であり、押下のまま Up/Down を操作すると連続で切替できます。押し方による誤認識を減らすため、AB はほぼ同時に押し、離すときは一緒に離すと操作が安定します。
- ボタンの長押し/短押し閾値や同時押しウィンドウは実装依存です。現在のソースではAB同時押しウィンドウが1秒(AB_WINDOW_MS=1000ms)で、プロファイル切替の連続判定には300msのデバウンスが使われています。
- 変更されたプロファイルや
tx2_spは外部フラッシュに保存されます(save_monitor_profile())。
各モードの説明(実装に基づく)
実装では monitor_profile と mode を同一視しており、以下のインデックスが使われます:
-
0: Rx_mon(標準受信モニタ) -
1: Rx_RGB2 -
2: Rx_mon1 -
3: Rx_mon2 -
4: Rx_mon3 -
5: Rx_WH2 -
6: TX2(DMX送信/テストモード) -
ライブ表示(Rx_mon 等): 受信したDMXをリアルタイム表示。ページ/モードに応じて表示スケールが変わる。
-
TX2(送信): テストパターン生成/手動チャンネル編集/Auto Up/Down(フェード)を提供。TX2では内部で
dmx.startTx()を呼び送信を行い、tx2_runningフラグで実行状態を管理します。
各モードの細かい動作や画面表示は src/main.cpp の該当関数(sub1(), sub1_tx2(), draw_dmx() など)を参照してください。
実際の割り当てや表記は実装に合わせてこのドキュメントを更新してください。
トラブルシューティング
-
書き込みできない場合:
- USBケーブルを別のものに交換する、別ポートで試す。
- ボードがブートローダモードになっているか確認する。
-
起動しない/ハングする場合:
- シリアルログを確認し、エラーの手がかりを探す。
- ファームウェアを再書き込みしてみる。
-
DMXを受信できない場合:
- 配線(A/B端子)、終端抵抗、送信側の出力設定を確認する。
-
src/配下のピン割り当てやライブラリ実装を確認する。
リカバリ(簡易)
詳細なリカバリ手順は DOCS/Wio_recovery.md を参照してください。一般的な手順は次の通りです:
- シリアルやブートローダ経由で既存ファームを書き換える。
- ブートローダ自体に問題がある場合は、メーカーや公式手順に従ってDFU/UF2などでブートローダを復元する。
注意:ブートローダ復元はリスクを伴います。メーカー資料や公式手順に従って慎重に実行してください。
FAQ
-
Q: ビルドオプションを変更したい
- A: platformio.ini の該当環境セクションでビルドフラグを設定してください。
-
Q: シリアルログが文字化けする
- A: シリアルのボーレートやエンコーディング設定を確認してください。
参照・補足
- ソースコードは
src/にあります(例:main.cpp,DMX.cpp)。 - 履歴や作業ログが
LOG/フォルダにある場合があります。 - より詳細な復旧手順は DOCS/Wio_recovery.md を参照してください。
TX2モード 取扱説明書
概要
TX2モード(mode=8, profile=7)はDMX512信号を送信するテストモードです。
チャンネル選択、値の設定、自動フェードなど様々なテスト機能を提供します。
起動方法
- A+B+DOWN を押しながらモード切り替えで profile 7: TX2 を選択
画面表示
上部ヘッダー
7 TX2 mode[ 8 ] ch(XXX) 28xD
-
7 TX2: profile番号とラベル -
mode[ 8 ]: モード番号 -
ch(XXX): 選択中のチャンネル (000=全ch, 001-512=個別ch) -
28xD: データ長表示
下部ステータス(左下)
-SC: X XXHz '25 12/19 16:51 512
-
状態シンボル:
-
-(グレー): 停止中 -
>(緑): テストパターン動作中 -
#(黄): Auto U/D動作中
-
-
SC: X: SCテストバリュー (0-10) -
Sp:XX: スピード (1-50、動作中のみ表示) -
XXHz: 送信周波数
ボタン操作一覧
Aボタン押しながら(A+)
| 操作 | 機能 |
|---|---|
| A+UP | 選択chの値を255に設定 |
| A+DOWN | 選択chの値を0に設定 |
| A+LEFT | チャンネル10減少(リピート対応) |
| A+RIGHT | チャンネル10増加(リピート対応) |
| A+CENTER | SCテストバリュー(0→10ループ、固定値を全chに出力) |
動作中(# または >)
| 操作 | 機能 |
|---|---|
| UP | スピード減少(速くなる) |
| DOWN | スピード増加(遅くなる) |
| LEFT | チャンネル1減少(リピート対応) |
| RIGHT | チャンネル1増加(リピート対応) |
停止中(-)
| 操作 | 機能 |
|---|---|
| UP | 選択chの値を増加(リピート対応) |
| DOWN | 選択chの値を減少(リピート対応) |
| LEFT | チャンネル1減少(リピート対応) |
| RIGHT | チャンネル1増加(リピート対応) |
| CENTER | tx2_ch=0(全ch選択)、既に0なら全chデータを0にリセット |
上部ボタン
| 操作 | 機能 |
|---|---|
| B | Auto U/D (#) トグル |
| C | テストパターン (>) トグル |
SCテストバリュー
センターボタンを押すと、SCテストバリューが0→10でループし、
対応する固定値が全512chに出力されます。
| SC | 値 |
|---|---|
| 0 | 0 |
| 1 | 26 |
| 2 | 51 |
| 3 | 77 |
| 4 | 102 |
| 5 | 128 |
| 6 | 153 |
| 7 | 179 |
| 8 | 204 |
| 9 | 230 |
| 10 | 255 |
Auto U/D モード(#)
Bボタンでトグル。選択チャンネルが自動でフェードイン/アウトを繰り返します。
- ch=0: 全512chが同時にフェード
- ch≠0: 指定チャンネルのみフェード
- A+LEFT/RIGHT: 10ch移動時、前チャンネルは自動フェードアウト
- スピード: tx2_sp (1=高速, 50=低速)
フェードステップ(スピード別)
| sp | ステップ |
|---|---|
| 1 | ±64 |
| 2 | ±32 |
| 3 | ±28 |
| 4 | ±24 |
| 5 | ±20 |
| 6 | ±16 |
| 7 | ±12 |
| 8 | ±8 |
| 9 | ±4 |
| 10+ | ±2 |
グリッド表示
- 選択チャンネル (tx2_ch > 0): チャンネル番号が白色で表示
-
tx2_ch = 0 時: ヘッダーの
ch(000)が黄色で表示
注意事項
- TX2モードではDMX受信は行わず、送信専用です
- A+CENTERでSCテストバリュー(0→10ループ)を操作できます
- CENTER単独でtx2_ch=0(全チャンネル選択)に切り替わります
- ページは50ch表示範囲内ではスクロールしません(範囲外に出たらスクロール)
バージョン情報
- ビルド時間が右下に表示されます(例: '25 12/19 16:51)