« 2020年9月 | トップページ | 2020年11月 »
文字表示カスタムブロック
ATOM Matrixの英数(A~X、0~9、記号(一部))をカラー表示します
表示可能文字:A~Z(大文字のみ)。小文字はあらかじめテキストブロックなどで大文字化してください。
数字 0~9
記号 ./+-*=!#$()^ ※5x5で表現するため、複雑な記号&%などには対応していません
※上記以外の文字が指定された場合は黒表示になります。
アートブロック
動画はこちら
※何も表示するデータが無い場合は、黒ラインを設定すること。
カスタムブロックの置き場
ダウンロード - char_disp.m5b 英数記号表示用
ダウンロード - led_art.m5b LEDアート
ATOM MatrixのUIFlowには5X5のLEDを表示するオリジナルブロックがありますが、機能が豊富とは言えません。
ATOM MatrixのLEDは以下のように番号が付けられています。
(表1)LEDブロック番号
1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 |
これでは、行や列を指定して表示する場合不便です。
そこで座標番号からLED番号に変換するカスタムブロックを作ってみました。
(表2)座標番号
0,0 | 1,0 | 2,0 | 3,0 | 4,0 |
1,0 | 1,1 | 1,2 | 1,3 | 1,4 |
2,0 | 2,1 | 2,2 | 2,3 | 2,4 |
3,0 | 3,1 | 3,2 | 3,3 | 3,4 |
4,0 | 4,1 | 4,2 | 4,3 | 4,4 |
カスタムブロックの作成は、UIFlowのなかのツール(M5BlockMaker)を使います。ツールを起動するには、Custom(Beta)⇒Create *.m5b fileです。私は、普段UIFlow-Desktop-IDEを使用していますが、M5BlockMakerは起動するも作成や編集ができません。
Web版では作成できるので、カスタムブロックの作成だけWeb版を使います。
「LED_tool.m5b」の仕様
使用例は以下のとおり
マゼンタがカスタムブロック
(位置指定の例)
(ランダム発色)
UIMFlowでは、EEPROMは共通のエリアに保存されていいる模様
従って、別のUIMFlowアプリからもキーワードが判れば参照・更新ができる。
①図のプログラムを実行します。
1段目:KEYデータ
2段目:書き込み予定。書き込みを実行すると赤い表示に変わる
3段目:読み込みでーた。読み込み前はNoneを表示。読み込むと赤く表示する。
②EEPROMのデータを読み込む
このデータは、時計プログラムで書き込まれたデータです。
③書き込みデータを書き換える
DATA1~DATA4を書き換えて書き込む。
④書き換えたデータを読み込む
書き換えたデータに変わっていることが分かる。
⑤存在しないデータを読み込む
データが存在しない場合はNoneが返る
画像について
今のところ、UIFlow以外では書き換え出来ないようだが、プログラム間で共用することができる。
応用
プログラム再開時に、前回使用したデータを引き継いだり、ゲームのHIスコアを保存したりできる。
ただし、キーワードがバレてしまうと書き換えられてしまうので工夫が必要かもしれません。
初期設定が必要な場合、今回のプログラムが参考になると思います。
補足: ①SDカードが読めないと思ったら、接触不良のようでした。 確認手順
②UIFlowでバッテリー運用すると30秒程度で電源が落ちる。 ファームウェアが古いと起きるという記事もあったが、プログラムによっても起きたり起きなかったり、することが分かった。 電源が切れないプログラムは、高速で画面を表示している場合でした。 日本語のドキュメントに記載は見つかりませんでしたが、パワーセーブの様な動作でした。 私の処理場合、ループ処理は使わずタイマーだけで処理していました。 無駄な処理ですが、空のループ処理を追加してあっさり解決。 |
Setupに追加した行 while True:
|
(完成した?カウントダウンボード)
以前からやってみたかった、カウントダウンボードをUIFlowの練習を兼ねて作ってみました。
折角なのでオリンピック用にしてみた。(もちろん非公式)
無事に開催されるか?
(開発の様子)
かなり手抜の仕様です。単に手を抜いたわけではなく、UIFLowでカバーできない部分を妥協した結果です。
仕様
UI部品
苦労した点
①背景画像を5枚読み込んだが1枚しか選択できない。
⇒UIFlow v1.45のバグぽくて、v1.65Betaにしたらあっさり読めた
②文字列操作が貧弱
例えば時刻の変数HHと分の変数から「HH:MM」形式にしようとすると
書式付きフォーマットがないので、1文字ずつ足していくことになった。
def str_time(): global mode, SS, TIM, LASTDATE, icount, MM, HH, cdown TIM = ((str('0') + str(MM)))[-1] TIM = (str(((str('0') + str(MM)))[-2]) + str(TIM)) TIM = (str(':') + str(TIM)) TIM = (str(((str('0') + str(HH)))[-1]) + str(TIM)) TIM = (str(((str('0') + str(HH)))[-2]) + str(TIM)) |
③UI部品は、一度画面に貼り付けないと呼び出しが出来ない。
⇒仕様なので仕方がない。
今後
電源が切れると初期化されてしまうのは痛い。SDカードに直前の情報を残しておいてそこから再スタートできるようにしたい。
目次
プログラマブルリモコン |
![]() IC-705 KEYERメモリー用 パッド ボタン/(ダブル)パドル/シングルパドルの3タイプ |
![]() |
在庫限り |
![]() ![]() 手持または三脚固定「430MHz帯軽量YAGIアンテナ」SMAとBNCの2タイプ |
検証に使用したものや中古品です。 ※在庫限りです。 |
<広告>Amazon
※広告はAmazonアソシエイトにリンクしています
FT8やClusterで大活躍
※従来品より大幅に機能追加、文字以外にアプリの起動も可能に
※一度設定してしまえば、ドライバーの無い機種でも使えます。
参考記事:Bluetooth版プログラマブルテンキーでFT8
ノガ・ウォーターズ(Noga Waters)NOGA ノガバー3 NG1003
プログラマブルリモコン
IC-705BTモバイルバッテリー内蔵版に採用
SLuB モバイルバッテリー
※検証の結果10mA以下の低電流モードでも充電可能でした。
Bluetoothイヤホンの充電にお勧め
IC-705BTモバイルバッテリー内蔵版に使用するとケーブル周りがすっきりします
エレコム USB C ケーブル L字 USB-A to Type-C
モバイルバッテリー5000mAh 直差しタイプ(USB-C)
【 特 集 】
~多彩に楽しもう!~
2025年のアマチュア無線
【 別 冊 付 録 】
ハム手帳2025
【 特 集 】 |
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
最近のコメント