3D8RGBコントローラ マニュアル

対象:3D8RGBコントローラ v1.0(iCubeSmart 3D8RGB を、PCから直接動かすアプリ)

1. はじめに

3D8RGBコントローラは、8×8×8のLEDキューブ「3D8RGB」を、PCから操作するアプリである。純正のアプリは使わない。

配布物の構成

名前内容
3D8RGBController.exeアプリ本体。ダブルクリックで起動する。インストールは要らない。PythonやArduino IDEなども要らない。
3D8RGB_F4.bin実機に書き込む、このアプリ専用のファームウェア。exeと同じフォルダに置く。
animations フォルダアニメの定義ファイル(9種)。自作のアニメも、ここへ入れる(付録A)。
3D8RGBController_manual フォルダこのマニュアル(html と画像)。アプリの「マニュアルを開く」ボタンで開く。
3D8RGB_full_backup.bin標準ファームウェアのバックアップ。ファームウェアの書き込み時に、自動で作られる。

必要なもの

2. 起動と画面の構成

3D8RGBController.exe をダブルクリックする。実機をつながなくても起動でき、3Dプレビューだけで動きを確かめられる。

メイン画面。左が3Dプレビュー、右が操作パネル(実行中の例:アニメ「色相の流れ」)。
メイン画面。左が3Dプレビュー、右が操作パネル(実行中の例:アニメ「色相の流れ」)。

3. 実機との接続

初回起動のときは、先にファームウェアを確認する。実機のファームウェアが、このアプリ専用のものに書き換え済みでないと、接続しても実機を操作できない。まだ書き換えていないときは、先に12章の手順で、ファームウェアを書き換える。

接続の欄
接続の欄
  1. ダウンローダーをPCのUSBポートに差し込む(配線は、12章の書き込み手順2と同じ。BOOT0 のショートは外しておく)。
  2. 「COMポート」の一覧から、ダウンローダーのポートを選ぶ。出てこないときは「更新」を押す。
  3. ボーレートは 460800 のままにする(実機のファームウェアと同じ値)。
  4. 「接続」を押す。つながると、ボタンが「切断」に変わる。

接続していないときは、「未接続(プレビューのみ)」と表示される。この状態でも、色・アニメ・文字列・関数グラフは、プレビューで確認できる。

COMポートは、ほかのアプリと同時には使えない。ファームウェアの書き込みウィンドウのボタンを押すと、このアプリの接続は自動で切れる。書き込みのあとは、もう一度「接続」を押す。

4. 色

色の欄
色の欄

赤・緑・青のスライダーで、色を決める。各 0〜63(6ビット=64段階)。下の見本の四角に、現在の色が出る。

プリセットのボタン:白、暗白(R1 G1 B1。とても暗い白)、赤、緑、青、黄、水、紫。

この色は、「全点灯」「選択層を塗る」「層の編集」で使う。また、文字列表示の色「単色」、関数グラフの色「単色」でも使う。

5. アニメ

アニメの欄
アニメの欄
  1. コンボボックスから、アニメを選ぶ。下に説明が出る。
  2. 「アニメ開始」を押す。再生中はボタンが「アニメ停止」に変わる。
  3. 「動きの速さ」(×0.1〜4.0)で、速さを変える。再生中でも変えられる。

表示先

表示動作
プレビュー+実機PCの3Dプレビューと、実機の両方に出す(既定)。
プレビューのみ実機は消灯する。画面だけで確かめたいときに使う。
実機のみ実機だけに出す。

付属のアニメ

名前内容
回る棒中心を回る、縦に貫く棒。色は「色」の欄の色。
市松反転(通信試験)毎コマ、全点が反転する。送信速度の上限や、化け・取りこぼしを見る試験用。コマ番号で動くため、「動きの速さ」は効かない。
階調テスト白・赤・緑・青、続いて黄・水・紫の階調バー(各2層、16位置)。
波(点)各柱で1点だけ光る波。色は「色」の欄の色。
雨64本の柱それぞれに、速さと間隔の違う雨粒。頭は白に近く、尾は青へ滑らかに暗くなる。
色相の流れ全点が、位置に応じた色相で光り、時間とともに流れる。色の段差が見えないかを見る。
回転する面縦の中心軸のまわりを回る面。回転方向の後ろへ、滑らかに暗くなる尾が付く。
面スイープ(尾を引く)「色」の欄の色の面が、下から上へ走り、尾が段階的に暗くなる。
波(面)うねる曲面を、層の間を滑らかに補間して描く。高さに応じて、赤から青へ連続的に変わる。

「再読み込み」を押すと、animations フォルダを読み直す。自作アニメを足したときに使う。読み込みに失敗したアニメは、名前の前に「×」が付き、説明の欄に理由が出る。

6. 文字列表示

文字列表示の欄
文字列表示の欄

入力した文字列を、キューブに表示する。「経路」で、動きを選ぶ。①〜⑤は、側面(⑤は上面にも)を、文字が外から見て左へ流れる(表示するのは最も外側の層だけ)。⑥は手前へ進んでくる動き、⑦は回転する動きで、流れない。

  1. 文字列を入力する。半角・全角のどちらでも入力できる。全角の英数字・記号と半角カタカナは、半角の英数字・記号と全角カタカナに自動で変換され、同じフォント(8×8ドット)で表示される。半角と全角で、見た目の違いは出ない。過去に送った文字列は、一覧から選べる。
  2. 「経路」と「色」を選ぶ。
  3. 「送信」を押す。止めるときは「停止」を押す。

経路

名前動き
① 前面だけ前面の右端から左端へ、流れる(8列)。
② 前面→左面前面の右端から左端へ流れ、続けて左面の奥へ回り込む(15列)。
③ 右面→前面右面の奥から手前へ流れ、続けて前面の左端へ回り込む(15列)。
④ 右面→前面→左面右面の奥から、前面を通り、左面の奥まで、続けて流れる(22列)。
⑤ 前面→上面(縦に流れる)前面の下端から上へ流れ、上面で折り返して奥へ進む。
⑥ 背面→前面(手前に来る)背面に1文字ずつ現れ、尾を引いて前面へ進む。前面(2層)で止まって消える。
⑦ 回転中心に2層の厚みの文字が現れ、垂直軸で1回転して止まる。次の文字へ進む。

色

名前動き
単色(色選択)「色」の欄で選んだ色で光る。
文字ごとの虹1文字ごとに、色を変える。
列ごとの虹(文字に付く)列ごとに色が違う。色は文字に付いて動く。
列ごとの虹(位置に付く)列ごとに色が違う。色は位置に固定され、文字が通り過ぎる。
縦のグラデーション下から上へ、色が変わる。
時間で流れる虹色が、時間とともに流れる。

表示できる文字は、英数字、記号の一部、ひらがな、カタカナである。漢字は表示できず、空白になる。表示できない文字があると、欄の下に赤字で知らせる。

7. 関数グラフ

数式 z = f(x, y, t) の3Dグラフ(曲面)を、キューブの中に立体で表示し、動かす。キューブの3方向が、x・y・z の軸にあたり、(x, y) の位置ごとに、高さ z がLEDの位置になる。t は時間である。「関数グラフ…」ボタンで、設定のウィンドウを開く。

関数グラフの設定ウィンドウ
関数グラフの設定ウィンドウ

基本の使い方

  1. プリセットの一覧から、1つ選ぶ。選ぶとすぐ、その設定で最初から再生が始まる。
  2. 式や軸を書き換える。入力が正しければ、下に緑字で「入力に問題はありません。」と出る。誤りがあれば、赤字で理由が出て、その欄の枠が色づく。
  3. 左上の「再生」「停止」で、動きを制御する。
  4. 気に入った設定は、「保存…」で名前を付けて保存する。

設定の項目

項目内容
式z = f(x, y, t)。書ける関数と記号は、付録B。
軸:原点(0〜7)グラフの原点を、どのLEDに置くか。「角 (0,0,0)」「中心寄り (3,3,3)」「底の中心寄り (3,3,0)」のボタンで、まとめて設定できる。
軸:1LEDあたりの値LED1つぶんが、式の中の値でいくつにあたるか。
軸:目盛り間隔軸の目盛りを、何LEDごとに付けるか。
時間:周期(秒)t が t0 から t1 まで進むのにかかる時間。終わると、最初に戻って繰り返す。
時間:t0/t1t の開始値と終了値(t1は含めない)。2*pi のような式も書ける。
色:曲面「高さ(z)で変える」:下端と上端の色相を、滑らかにつなぐ(64段階)。「単色」:メイン画面の「色」の色。
表示方式:曲面「薄い」:柱ごとに1点を光らせ、急斜面は補う。「厚い」:通過したセルをすべて光らせる。
表示方式:範囲外値がキューブの外に出たとき、「非表示」にするか、「端に張り付け」にするか。
表示方式:重なり軸・目盛りと曲面が重なったとき、どちらを優先して表示するか。
表示方式:目盛り目盛りを「軸上に置く」か、「なし」にするか。
軸を表示する軸を表示する(x=赤、y=緑、z=青、原点=白)。
なめらか補間隣の層へ、明るさを配分して、滑らかに見せる。

プリセット

最初から、次の7つのサンプルが入っている:WAVE_XY、SPIRAL_ROT、DISC_ROT、SADDLE_ROT、WAVE_ROT、FLOWER_ROT、INTERFERE。自分で保存した設定は、「削除」で消せる。「初期サンプルを復元」を押すと、サンプルが元に戻る。

メイン画面の「実機へ転送」の欄で「関数グラフを追加」を押すと、この設定の1周期ぶんを、クリップとして追加できる(8章)。

8. 実機へ転送

作った動きを「クリップ」として実機に転送すると、PCをつながなくても、実機だけで再生できる。

「実機へ転送」の欄(クリップを5本追加した例)
「実機へ転送」の欄(クリップを5本追加した例)

クリップの作り方

  1. クリップを追加する。
    • アニメ:アニメの欄で選んだアニメを、「秒」の長さと「コマ/秒」を指定して、「クリップに追加」を押す。長さは0.5〜120秒。コマ/秒は 2、4、5、8、10、12、15、16、20、24、25、30 から選ぶ。
    • 文字列:メイン画面の「文字列表示」で設定した内容の、1周ぶんを追加する。「文字列を追加」を押す。長さは自動で決まる。
    • 関数グラフ:関数グラフの設定の、1周期ぶんを追加する。「関数グラフを追加」を押す。長さは自動で決まる。
  2. 繰り返し回数を決める。「繰り返し回数」(1〜64)を指定して追加する。追加したあとで変えるには、一覧でクリップを選び、「選択に適用」を押す。実機は、その回数だけ繰り返して再生してから、次のクリップへ進む。
  3. 並べ替える。一覧でクリップを選び、「↑」「↓」で順番を変える。「削除」で1本消し、「全削除」で全部消す。
  4. 容量を確かめる。一覧の下に、「クリップ n本 使用 x KB/382KB(%) 再生時間 約N秒」と出る。容量を超えると、赤字になる。クリップは、最大32本。1本あたり、最大4000コマまで。
  5. 実機へ転送する。「実機へ転送」を押す。進み具合が、下のバーに出る。
ボタン・項目内容
実機へ転送一覧のクリップを、実機へ書き込む。実機にあったクリップは、すべて置き換わる(確認のメッセージが出る)。
実機の状態実機に入っているクリップの本数などを、確かめる。
実機のクリップを消す実機のクリップを、すべて消す(確認のメッセージが出る)。
転送後に切断チェックすると、転送の後、PCとの接続を切る(既定でオン)。PCから何かを送ると、実機の再生が止まるため。
点灯時間も保存チェックすると、「調整」で決めた点灯時間も、実機に保存する。電源を入れ直しても、同じ明るさの段階で再生する(既定でオン)。
リスト名/保存/呼び出し/リスト削除クリップの一覧に名前を付けて保存し、あとで呼び出せる。アプリを起動したときは、最後に使った一覧が、自動で読み込まれる。

文字列・関数グラフのクリップは、追加したときの設定で、中身が固定される。あとから、メイン画面の設定を変えても、追加済みのクリップは変わらない。作り直すときは、いったん削除して追加し直す。

実機だけでの再生と操作

転送が終わると、実機は1本目のクリップから再生を始める。電源を入れ直しても、自動で再生が始まる。

本体の前面にあるボタン(KEY1〜KEY7)で、次の操作ができる。

ボタン動作
KEY1前のクリップ
KEY2次のクリップ
KEY3速度アップ
KEY4速度ダウン
KEY5一時停止・再生
KEY6繰り返しの切り替え(全クリップ/1本のみ)
KEY7表示のオン・オフ

速度は7段階(200%・150%・125%・100%・75%・50%・25%)。

実機が再生中に、PCから何かを送る操作(アニメの表示など)をすると、再生は止まる。転送のあとは、接続を切ったままにしておく。

9. テスト

テストの欄
テストの欄

配線や表示を確かめるための機能である。

ボタン・項目動作
全消灯すべてのLEDを消す。
全点灯(現在色)すべてのLEDを、「色」の欄で選んだ色で点灯する。
選択層を塗る「層の編集」で選んでいる層を、現在の色で塗る。
走査開始/間隔msx→y→z の順に、1点ずつ点灯する。実機の動きと画面を比べて、向きを確かめる。間隔は100〜1500ms。
階調バー(基本)白・赤・緑・青を、各2層で表示する。明るさの段階を確かめる。
階調バー(混色)黄・水・紫を、各2層で表示する。

階調バーは、16段階を、下の層8+上の層8で表す。

10. 層の編集

層の編集の欄(z=2の層に、赤で円を描いた例)
層の編集の欄(z=2の層に、赤で円を描いた例)

1層(8×8)を選んで、LEDを1つずつ点灯・消灯できる。

11. 調整

調整の欄
調整の欄

ふだんは触らない項目である。

向き設定

実機に送るときの、座標の変換である。画面の動きと、実機の動きの向きが違うときに使う。

項目内容
x↔y入替xとyを入れ替える。
x反転/y反転/z反転その軸の向きを、反対にする。

確かめるには、「走査開始」(9章)を使うとよい。

点灯時間を調整…(E1ファーム)

明るさの段階ごとの、点灯時間(µs)を調整する。LEDの階調の見え方(見かけの明るさの等間隔さ)を、整えるための項目である。

点灯時間の調整ウィンドウ
点灯時間の調整ウィンドウ

送信 枚/秒

アニメを、実機に送る速さの上限(1〜60)。既定は39。6面表示では、約39枚/秒が上限である。実際に送れた速さは、欄の下に表示される。

12. ファームウェア

実機のファームウェアを、このアプリ専用のものに入れ替える。初回に1度、必要である。書き込みの前に、標準のファームウェアを必ずバックアップする。バックアップは、あとで標準に戻すときに使う。

ファームウェアの欄(右パネルの一番下)
ファームウェアの欄(右パネルの一番下)
ボタン内容
ファームウェア書き込み…実機のファームウェアを、このアプリで操作できる専用のものに、完全に入れ替えます。初回に必要です。
標準ファームに戻す…実機を、購入時の標準ファームウェアに戻します。事前に取ったバックアップを使います。実機に保存したクリップは消えます。

注意

  • ボタンを押すと、手順を示すウィンドウが開く。ウィンドウの右下にある「マニュアルを開く」ボタンで、この章の手順(書き込み手順、または標準ファームに戻す手順)の位置から、このマニュアルを開ける。ウィンドウ内のボタンを押すと、このアプリの接続は自動で切れる。
  • このアプリ専用のファームウェアは、標準ファームウェアの上に書き込まれる。クリップを転送すると、標準ファームウェアは消える。標準に戻す手段は、バックアップだけである。
  • バックアップ(3D8RGB_full_backup.bin)は、消したり、移動したりしない。

書き込み手順

実機の標準ファームウェアを、このアプリ専用のものに完全に入れ替えます。入れ替える前に、必ず標準ファームウェアのバックアップを取ってください。

「ファームウェア書き込み…」を押すと開くウィンドウ。このウィンドウの手順に従う。
「ファームウェア書き込み…」を押すと開くウィンドウ。このウィンドウの手順に従う。
  1. 本体のUSB給電ケーブルを抜く。黄色い基板は、本体から外さなくてよい。
  2. ダウンローダー(USBポートに差し込む小基板)と黄色い基板を、デュポンケーブルでつなぐ。
    • 基板に印字された名称(+5V/RXD/TXD/GND)と、ダウンローダーの名称(5V/RXD/TXD/GND)が同じ端子どうしをつなぐ。
    • 両者の端子の並び順が違うため、ケーブルは交差する。TXDはTXDへ、RXDはRXDへつなぐ。名称が一致していれば正しい。
    • ダウンローダーの VCC と 3V3 は、黄色いジャンパでショートさせたままにする。
  3. 黄色い基板の「BOOT0」と印字された2つの穴を、ショートさせる(結線する)。
  4. ダウンローダーをPCのUSBポートに差し込む。
  5. 黄色い基板の「Reset」ボタンを押す。
  6. 「バックアップ」ボタンを押す。
    • 実機の標準ファームウェアを、PCに保存する(保存先:exeの横の 3D8RGB_full_backup.bin)。
    • 1〜2分かかる。「バックアップを保存しました」と表示されるまで待つ。
    • すでにバックアップがあるときは、「取得済み」と表示される(上書きはしない)。そのまま次へ進む。
  7. 「書き込み」ボタンを押す。
    • このアプリ専用のファームウェア(3D8RGB_F4.bin)を、実機に書き込む。1分ほどかかる。
    • バックアップがまだ無いときは、自動でバックアップを取ってから書き込む(保険)。手順6を行っていれば、この処理は動かない。
  8. 書き込みが終わったら、ダウンローダーをPCから抜く。
  9. BOOT0 のショートを外す。
  10. 本体のUSB給電を戻す。
  11. ファームウェアの書き込みが終了したら、PCのUSBポートにダウンローダーを差し込む。このウィンドウを閉じた後、PCによるコントロールが可能になる。

安全のための仕組み

失敗したとき

手順1〜5を確かめてください(ケーブルの名称、BOOT0 のショート、Reset ボタン)。直したら、Reset ボタンを押してから、もう一度ボタンを押してください。

標準ファームに戻す手順

実機を、購入時の標準ファームウェアに戻します。実機に保存したクリップは、すべて消えます。

「標準ファームに戻す…」を押すと開くウィンドウ
「標準ファームに戻す…」を押すと開くウィンドウ
  1. 本体のUSB給電ケーブルを抜く。黄色い基板は、本体から外さなくてよい。
  2. ダウンローダー(USBポートに差し込む小基板)と黄色い基板を、デュポンケーブルでつなぐ。
    • 基板に印字された名称(+5V/RXD/TXD/GND)と、ダウンローダーの名称(5V/RXD/TXD/GND)が同じ端子どうしをつなぐ。
    • 両者の端子の並び順が違うため、ケーブルは交差する。TXDはTXDへ、RXDはRXDへつなぐ。名称が一致していれば正しい。
    • ダウンローダーの VCC と 3V3 は、黄色いジャンパでショートさせたままにする。
  3. 黄色い基板の「BOOT0」と印字された2つの穴を、ショートさせる(結線する)。
  4. ダウンローダーをPCのUSBポートに差し込む。
  5. 黄色い基板の「Reset」ボタンを押す。
  6. 「戻す」ボタンを押す。
    • バックアップ(3D8RGB_full_backup.bin。exeの横)を、実機に書き戻す。1〜2分かかる。
    • 「戻しました」と表示されるまで待つ。
  7. 戻し終わったら、ダウンローダーをPCから抜く。
  8. BOOT0 のショートを外す。
  9. 本体のUSB給電を戻す。
  10. 標準ファームウェアに戻した後は、この「3D8RGBコントローラ」では実機を操作できない。実機は、購入時の標準の操作に戻る。

13. 設定ファイル

設定は、exeと同じフォルダに保存される。削除すると、初期状態に戻る。

ファイル内容
cube_settings.json面ごとの点灯時間(µs)
cube_text_settings.json文字列表示の履歴と、選択(経路・色・補間・繰り返し)
cube_graph_settings.json関数グラフの、最後の設定
cube_graph_presets.json関数グラフのプリセット
cube_clip_lists.json保存したクリップの一覧
cube_flash_settings.jsonファームウェア書き込みの設定
3D8RGB_full_backup.bin標準ファームウェアのバックアップ(消さない)

14. 困ったとき

症状確かめること
COMポートが出てこないダウンローダーをPCに差し直し、「更新」を押す。
「接続」できないほかのアプリ(ファームウェアの書き込みウィンドウを含む)が、同じCOMポートを使っていないか確かめる。
実機が光らないBOOT0 のショートが外れているか、本体のUSB給電が入っているか、ボーレートが460800かを確かめる。
表示の向きが、画面と違う「調整」の「向き設定」で、入れ替え・反転を試す(11章)。
文字が空白になる漢字は表示できない。ひらがな・カタカナ・英数字に直す。
転送の容量が、赤字になるクリップの長さ・コマ/秒を、小さくする。または、クリップを減らす。
アニメの名前に「×」が付く自作アニメの記述に誤りがある。説明の欄に、理由が出る。
転送後に、実機の再生が止まったPCから、何かを送ると止まる。「転送後に切断」をオンにしておく。
書き込みに失敗する手順1〜5を確かめてください(ケーブルの名称、BOOT0 のショート、Reset ボタン)。直したら、Reset ボタンを押してから、もう一度ボタンを押してください。

付録A. アニメを自作する

animations フォルダに、Pythonのファイル(.py)を置くと、アニメの一覧に加わる。次の例は、色のついた層が、下から上へ上がり続けるアニメである。

NAME = "上昇する層"
DESCRIPTION = "水色の層が、下から上へ繰り返し上がる。"

def draw(cube, t):
    # t は経過時間(秒)。呼ばれるたびに、全体を描き直す。
    cube.clear()
    z = int(t * 3) % 8            # 1秒に3層ずつ上がる
    cube.fill_layer(z, 0, 40, 63)   # 層z を (赤, 緑, 青) で塗る。各 0〜63

付録B. 関数グラフの式

種類書けるもの
変数x、y(その格子点の値)、t(時間)
定数pi、e、tau
演算+ - * /、べき乗は ^、かっこ
関数sin cos tan asin acos atan atan2 sinh cosh tanh exp log log10 log2 sqrt abs floor ceil round sign min max pow hypot clip where
比較< > <= >= == !=(結果は0か1)

例:3.5+3*sin(0.9*x-t)*cos(0.9*y)(波)

付録C. 座標と面の呼び方