このページではマクロ機能を紹介します
複数のLEDを設定ファイルに従ったパターンで発光させます。
このページの最後にサンプルを掲載しています
画面の説明
通常のマクロ実行
通常のマクロ実行画面です。普段はON
とOFF
を使用します
各部の説明は以下の通りです
① Editモードになります
② マクロを実行します。JSONファイル(後述)で指定したパターンでLEDが発行します
③ マクロを停止します
④ タイトルです
編集モード
マクロ編集中の画面です。
各部の説明は以下の通りです
① 全ての編集を破棄して マクロ実行画面に戻ります
② チェックを付けたマクロを削除します
③ 新しいマクロを追加します。マクロファイルインポート画面に移動します。
④ チェックを付けると削除対象になります
マクロファイルインポート
マクロファイルインポート画面です。
「ファイル選択」をクリックするとファイル選択ダイアログが表示されます。
ダイアログでJSONファイルを選択してください。長押しすると複数ファイルを選択出来ます。
- 覚え書き
- 通常はJSONファイルを自動的に抽出し、他のファイルは選択出来ませんがAnroid8/9`は抽出出来ないので無関係なファイルを選択出来てしまいます
頑張って正しいファイルを選択してください
- 警告
- Androidでは電文作成時に512バイトを超えるデータ送信出来ません。そのためJSONファイルが複雑だとインポートに失敗します
現在その制限を超えて送信出来るような方法を考えています
その他の制限はJSONファイルの仕様を参照してください]
JSONファイルの仕様
えるいーだーがインポート出来るJONファイルの仕様です。
JSONの仕様
このページはえるいーだーがインポート出来るJONファイルの仕様を解説します
仕様
JSONファイルは以下のような構成になっています ただ、仕様を見ても大抵の人は「なんのこっちゃ」としかならないと思うのでサンプルを見てください
1. 全体データ
全体的なデータを示します
項目 | 内容 | 備考 |
ID | 数値 | 人間が管理するための識別子です。自分の管理しやすい番号を付けてください |
タイトル | 文字列 | マクロのタイトルです。えるいーだーのアプリ上で表示されます
わかりやすい名前を付けてください |
シーケンスデータ | - | シーケンスデータ参照 |
2. シーケンスデータ
シーケンスデータの基本部分です
項目 | 設定値 | 備考 |
シーケンス個数 | 0-255 | 何回分のシーケンスがあるか記載します
人間がわかりやすくするためにあるだけです。プログラムは無視します |
繰り返し処理 | 0 or 1 | 0=1回だけで終了 1=繰返し |
シーケンス内容 | 配列 | シーケンス内容参照 |
3. シーケンス内容
シーケンス内容の詳細部分です。ここでLEDをどのように点灯させるかを指定します
項目 | 設定値 | 備考 |
LED個数 | 1-8 | このシーケンスで点灯させるLEDの数です
人間にわかりやすいように付けているだけです。プログラムは無視します |
シーケンス保持時間 | 10-4200000000 | このシーケンスを何ミリ秒保持するかを指定します
10ミリ秒単位で指定します(1ms単位の数値は10msに切り上げられます
※1 |
LED動作情報 | 配列 | LED動作情報参照 |
4. LED動作情報
LED動作情報の詳細部分です。ここでLEDの明度を指定します
項目 | 設定値 | 備考 |
LED番号 | 1-8 | どのLEDを操作するかを指定します
1が一番左、8が一番右です |
明度 | 0-100 | LEDの明度を指定します
0が消灯、100が最大点灯です |
※1
32ビットの符号なし整数(約42日)で保持しているのですが、実際のところ試したわけではないので
そんなデカい数値を入れて正常に動作するかわかりません
サンプル
このJSONファイルのサンプルはLEDを順番に1個ずつ点灯させていくパターンです
{
"ID": 2,
"タイトル": "流れるような動き1",
"シーケンスデータ": {
"シーケンス個数": 8,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 1, "明度": 100 }, { "LED番号": 8, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 2, "明度": 100 }, { "LED番号": 1, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 3, "明度": 100 }, { "LED番号": 2, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 4, "明度": 100 }, { "LED番号": 3, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 5, "明度": 100 }, { "LED番号": 4, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 6, "明度": 100 }, { "LED番号": 5, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 7, "明度": 100 }, { "LED番号": 6, "明度": 0 } ]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [ { "LED番号": 8, "明度": 100 }, { "LED番号": 7, "明度": 0 } ]
}
]
}
}
上記のサンプルはLEDを以下のような順番で点灯・消灯させます。消灯も忘れないでください
各シーケンスでのLEDの明度(0〜100)を示します。
「-」は、そのシーケンスで明度の指定がないことを意味します。
シーケンス番号 | 保持時間 (ms) | LED1 | LED2 | LED3 | LED4 | LED5 | LED6 | LED7 | LED8 |
1 | 300 | 100 | - | - | - | - | - | - | 0 |
2 | 300 | 0 | 100 | - | - | - | - | - | - |
3 | 300 | - | 0 | 100 | - | - | - | - | - |
4 | 300 | - | - | 0 | 100 | - | - | - | - |
5 | 300 | - | - | - | 0 | 100 | - | - | - |
6 | 300 | - | - | - | - | 0 | 100 | - | - |
7 | 300 | - | - | - | - | - | 0 | 100 | - |
8 | 300 | - | - | - | - | - | - | 0 | 100 |
実際の実行例
サンプルの一覧です
このページはえるいーだーで使用するJSONのサンプルを紹介します
01.点灯→消灯
1回だけ点灯して終了する基本的なパターンです
{
"ID": 1,
"タイトル": "見本",
"シーケンスデータ": {
"シーケンス個数": 2,
"繰り返し処理": 0,
"シーケンス内容": [
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 100}]
},
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 0}]
}
]
}
}
02.点灯→消灯 繰り返し
先ほどは1回点滅したらそのまま終了しましたが、繰り返し処理を指定するとずっと繰り返します 繰り返し処理を1に変更しただけです
{
"ID": 2,
"タイトル": "見本_繰返し",
"シーケンスデータ": {
"シーケンス個数": 2,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 100}]
},
{
"LED個数": 1,
"シーケンス保持時間": 1000,
"LED動作情報": [{ "LED番号": 1, "明度": 0}]
}
]
}
}
03.LED2個
今度は2個のLEDを交互に点灯させます
{
"ID": 3,
"タイトル": "LED2個",
"シーケンスデータ": {
"シーケンス個数": 2,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 1000,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 2,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 500,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 2,"明度": 100}]
}
]
}
}
04.回転させてから全点灯させて暗くなる
1-6のLEDをくるくる回らせてから、全点灯させて徐々に暗くするパターンです
1-3と4-6が対になっているので、わざわざこんなふうにしないで1-3だけ設定して、LEDは2個を二股にしてもいいかも
- 覚え書き
- このサンプルで1-6までしか指定していませんが、7,8を個別に発光する機能を使って独立してスマホから制御出来ます
{
"ID": 0,
"タイトル": "回転からぱっ",
"シーケンスデータ": {
"シーケンス個数": 15,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 4,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 2,"明度": 100},{"LED番号": 5,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 2,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 3,"明度": 100},{"LED番号": 6,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 3,"明度": 0},{"LED番号": 6,"明度": 0},{"LED番号": 1,"明度": 100},{"LED番号": 4,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 2,"明度": 100},{"LED番号": 5,"明度": 100}]
},
{
"LED個数": 4,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 2,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 3,"明度": 100},{"LED番号": 6,"明度": 100}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 2,"明度": 0},{"LED番号": 3,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 6,"明度": 0}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 2,"明度": 100},{"LED番号": 3,"明度": 100},{"LED番号": 4,"明度": 100},{"LED番号": 5,"明度": 100},{"LED番号": 6,"明度": 100}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 80},{"LED番号": 2,"明度": 80},{"LED番号": 3,"明度": 80},{"LED番号": 4,"明度": 80},{"LED番号": 5,"明度": 80},{"LED番号": 6,"明度": 80}]
},
{
"LED個数": 6,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 70},{"LED番号": 2,"明度": 70},{"LED番号": 3,"明度": 70},{"LED番号": 4,"明度": 70},{"LED番号": 5,"明度": 70},{"LED番号": 6,"明度": 70}]
},
{
"LED個数": 6,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 50},{"LED番号": 2,"明度": 50},{"LED番号": 3,"明度": 50},{"LED番号": 4,"明度": 50},{"LED番号": 5,"明度": 50},{"LED番号": 6,"明度": 50}]
},
{
"LED個数": 6,
"シーケンス保持時間": 150,
"LED動作情報": [{"LED番号": 1,"明度": 40},{"LED番号": 2,"明度": 40},{"LED番号": 3,"明度": 40},{"LED番号": 4,"明度": 40},{"LED番号": 5,"明度": 40},{"LED番号": 6,"明度": 40}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 30},{"LED番号": 2,"明度": 30},{"LED番号": 3,"明度": 30},{"LED番号": 4,"明度": 30},{"LED番号": 5,"明度": 30},{"LED番号": 6,"明度": 30}]
},
{
"LED個数": 6,
"シーケンス保持時間": 100,
"LED動作情報": [{"LED番号": 1,"明度": 15},{"LED番号": 2,"明度": 15},{"LED番号": 3,"明度": 15},{"LED番号": 4,"明度": 15},{"LED番号": 5,"明度": 15},{"LED番号": 6,"明度": 15}]
},
{
"LED個数": 6,
"シーケンス保持時間": 500,
"LED動作情報": [{"LED番号": 1,"明度": 0},{"LED番号": 2,"明度": 0},{"LED番号": 3,"明度": 0},{"LED番号": 4,"明度": 0},{"LED番号": 5,"明度": 0},{"LED番号": 6,"明度": 0}]
}
]
}
}
05.流れるような動き
1から8のLEDを順番に点灯させていくパターンです
ついでに、徐々に明るさを落としていきます
{
"ID": 2,
"タイトル": "流れるような動き",
"シーケンスデータ": {
"シーケンス個数": 8,
"繰り返し処理": 1,
"シーケンス内容": [
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 1,"明度": 100},{"LED番号": 8,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 2,"明度": 90},{"LED番号": 1,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 3,"明度": 80},{"LED番号": 2,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 4,"明度": 70},{"LED番号": 3,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 5,"明度": 60},{"LED番号": 4,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 6,"明度": 50},{"LED番号": 5,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 7,"明度": 40},{"LED番号": 6,"明度": 0}]
},
{
"LED個数": 2,
"シーケンス保持時間": 300,
"LED動作情報": [{"LED番号": 8,"明度": 30},{"LED番号": 7,"明度": 0}]
}
]
}
}