« 2020年9月 | トップページ | 2020年11月 »

2020年10月

2020年10月30日 (金)

UIFlow カスタムブロック Type Valueにはクセがある

Demo2

上のようなカスタムブロックを作ってみた。

赤がカスタムブロック

設定はこのようにした。

Demo1

変数(data)を2倍しリターンで返す。単純だが良さそうである。

ところがエラー、何で??

ソースを確認すると

Demo3

どうも、returnで値を返す仕様では無いようだ。

そこで、次のように修正してみた。

Demo4

return を使わず単純に式だけを書いた。今回は、エラーも無く、正常に動作した。

Demo5

展開されたソースを見ると()の中に式が埋め込まれている。

Type Valueはあまり複雑な処理に使うのには向いてないように思われる。

2020年10月29日 (木)

ATOM Matrix 英数記号表示およびアートブロック用ライブラリ

Demo11

文字表示カスタムブロック

ATOM Matrixの英数(A~X、0~9、記号(一部))をカラー表示します

動画はこちら

ブロック パラメータ 属性 備考
Demo12 無し Execute このブロックを使う場合は、必ずStartupで実行しなければならない。
Demo13    data(英数記号)
color(0x000000~0xffffff)
Execute

dataで指定できるのは1文字
色指定は、色ブロックまたはHEX入力

Demo14 data(英数記号)
color(0x000000~0xffffff)
ms(ミリ秒)
Execute

任意の長さの(英数記号)文字列
色指定は、色ブロックまたはHEX入力

ミリ秒で表示間隔を指定できる

Wid data(英数記号)
color(0x000000~0xffffff)
ms(ミリ秒)
Execute

任意の長さの(英数記号)文字列
色指定は、色ブロックまたはHEX入力

ミリ秒で表示間隔を指定できる(200~500が最適)右から左に横スクロールします。

表示可能文字:A~Z(大文字のみ)。小文字はあらかじめテキストブロックなどで大文字化してください。
数字 0~9
記号 ./+-*=!#$()^  ※5x5で表現するため、複雑な記号&%などには対応していません

※上記以外の文字が指定された場合は黒表示になります。

アートブロック

動画はこちら

ブロック パラメータ 属性 備考

初期化
Ledart_init

無し Execute

このブロックを使う場合は、必ずStartupで実行しなければならない。

gloval変数led_listを共通的に使用する。

色ライン指定
Col_line
無し Value

黒、赤、緑、青のラインを指定する。

art_down/art_up/横スクロールのデータとして使える。

個別色ライン指定
Line_all

col1
col2
col3
col4
col5

Value ラインデータを個別に指定する。
art_down/art_up/横スクロールとして使える。
LED表示設定
Led_set

line1
line2
line3
line4
line5

Execute ラインデータを組み合わせて25個のLEDをセットする。
縦スクロール(下)
Art_down

line1

Execute

現在のLED表示を1ライン下げ、line1のデータ追加して表示する。※

縦スクロール(上)
Art_up

line5

Execute 現在のLED表示を1ライン上げ、line5のデータ追加して表示する。※
横スクロール
Side

column

Execute 現在のLED表示を1列左に移動し、columnのデータ追加して表示する。※

※何も表示するデータが無い場合は、黒ラインを設定すること。

カスタムブロックの置き場

ダウンロード - led_tool.m5b 色指定

ダウンロード - char_disp.m5b 英数記号表示用

ダウンロード - led_art.m5b LEDアート

 

 

2020年10月26日 (月)

ATOM MatrixのLEDカスタムブロックを作ってみた。

Rgb

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」の仕様

ブロック パラメータ 属性 備考
Demo6_20201031092801

x(0~4)
y(0~4)
color(0x000000~0xffffff)

Execute

指定した座標のLEDを指定色で表示する。
色指定は、色ブロックまたはHEX入力

Demo7 X(0~4)
y(0~4)
Value 指定した座標のLED番号を返す。
Demo8

num(1~25)
color(0x000000~0xffffff)

Execute

色指定は、色ブロックまたはHEX入力

Photo_20201031092206 無し Value 0xffffff を返す
Photo_20201031092207 無し Value 0xff0000 を返す
Photo_20201031092301 無し Value 0x00ff00 を返す
Photo_20201031092205 無し Value 0x0000ff を返す
Photo_20201031092203 無し Value 0xffff00 を返す
Photo_20201031092204 無し Value 0xff00ff を返す
無し Value 0x00ff00 を返す
無し Value 0x000000 を返す


使用例は以下のとおり
マゼンタがカスタムブロック

(位置指定の例)

Demo9

(ランダム発色)

Demo10

動画(Twitter)

 

 

 

 

 

2020年10月19日 (月)

M5Stack UIMflowでの画像(Image)とEEPROMの扱いについて

Eeprom

UIMFlowでは、EEPROMは共通のエリアに保存されていいる模様

従って、別のUIMFlowアプリからもキーワードが判れば参照・更新ができる。

①図のプログラムを実行します。

1段目:KEYデータ

2段目:書き込み予定。書き込みを実行すると赤い表示に変わる

3段目:読み込みでーた。読み込み前はNoneを表示。読み込むと赤く表示する。

Dsc_0130

②EEPROMのデータを読み込む

このデータは、時計プログラムで書き込まれたデータです。

Dsc_0131

③書き込みデータを書き換える

DATA1~DATA4を書き換えて書き込む。

Dsc_0132

④書き換えたデータを読み込む

書き換えたデータに変わっていることが分かる。

Dsc_0133

⑤存在しないデータを読み込む

データが存在しない場合はNoneが返る

Dsc_0134

画像について

今のところ、UIFlow以外では書き換え出来ないようだが、プログラム間で共用することができる。

応用

プログラム再開時に、前回使用したデータを引き継いだり、ゲームのHIスコアを保存したりできる。

ただし、キーワードがバレてしまうと書き換えられてしまうので工夫が必要かもしれません。

初期設定が必要な場合、今回のプログラムが参考になると思います。

 

 

 

2020年10月15日 (木)

UIFlowだけで、M5Stackのカウントダウンボードを作ってみた

Dsc_0119


補足:

①SDカードが読めないと思ったら、接触不良のようでした。

確認手順

  1. FAT32でフォーマットした16GB以下のスマートカードを用意し、SDスロットに挿す。
    ※2GのFATはダメでした。
  2. UIFlowを起動する。
  3. 新規プロジェクトを作成する。
  4. 高度なブロック⇒SDCard⇒WriteFileのサンプルをクリックする。
  5. Setupにつなげてブロックを完成させる。
  6. 右上の三角(RUN)ボタンを押す。(特にDownloadする必要は無い)
  7. エラーが無ければ成功(SDカードに”test.txt”が出来る。)
    ※エラーなら何度か挿し直すか、SDカードの接点の汚れを落とす

②UIFlowでバッテリー運用すると30秒程度で電源が落ちる。

ファームウェアが古いと起きるという記事もあったが、プログラムによっても起きたり起きなかったり、することが分かった。

電源が切れないプログラムは、高速で画面を表示している場合でした。

日本語のドキュメントに記載は見つかりませんでしたが、パワーセーブの様な動作でした。

 私の処理場合、ループ処理は使わずタイマーだけで処理していました。

無駄な処理ですが、空のループ処理を追加してあっさり解決。


Setupに追加した行

while True:
pass

 

 

 

 

 

(完成した?カウントダウンボード)

以前からやってみたかった、カウントダウンボードをUIFlowの練習を兼ねて作ってみました。

折角なのでオリンピック用にしてみた。(もちろん非公式)

無事に開催されるか?

Img_20201014232901

(開発の様子)

かなり手抜の仕様です。単に手を抜いたわけではなく、UIFLowでカバーできない部分を妥協した結果です。

  • 時間はNTPやGPSから取得するのではなく、M5Stackのタイマーを回しています。
    かなりズレると聞いているので秒までは表示しません。まあ、1日1回合わせれば何とかなるでしょう。
  • 目標の設定は残り日数のみカウントしています。
  • 日本語テキストが表示が出来ないので画像に直接書いています。
  • 文字のセンタリングをしていません。

仕様

  • 23時59分59秒を過ぎるとカウントが1つ減ります。
  • Aボタンを押すとSETUPモードに入り残に数と現在時間を設定・変更できます。
  • データの保管を行っていません。電源を切ると初期化されます。
  • 現在時刻(HH:MM)を表示します。現在時刻は1秒ごとにブリンクします。

Img2

UI部品

  • Title0(SETUP時)
  • Image0(背景)
  • Label0(カウントダウン)
  • Label1(Aボタン)
  • Label2(Bボタン/時計兼用)
  • Label3(Cボタン)
  • rectangle0(カウントダウンの枠)
  • rectangle1(時計の枠)

 

苦労した点

①背景画像を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カードに直前の情報を残しておいてそこから再スタートできるようにしたい。

 

 

2020年10月13日 (火)

頒布品一覧

目次


100_0540Dsc_0318

プログラマブルリモコン

IC-705BT

All

IC-705 KEYERメモリー用 パッド

ボタン/(ダブル)パドル/シングルパドルの3タイプ

IC-705PAD

Dsc_0197

3Dミニ電鍵


Dsc_0055_20230708092101

在庫限り

3Dプリンターアンテナ

Dsc_0223Dsc_0225

手持または三脚固定「430MHz帯軽量YAGIアンテナ」SMAとBNCの2タイプ

SAT-05 YAGIアンテナ


中古品、ジャンク品

検証に使用したものや中古品です。

※在庫限りです。

Dsc_0320プログラマブルテンキー(中古品)

Dsc_03211.0V~5.0VDCDC(ジャンク品)


🎁頒布方法➡

 


<広告>Amazon
※広告はAmazonアソシエイトにリンクしています


FT8やClusterで大活躍

サンワサプライ プログラマブルテンキー

(Bluetoothモデル) NT-BT26BK

 Dsc_0305

※従来品より大幅に機能追加、文字以外にアプリの起動も可能に

※一度設定してしまえば、ドライバーの無い機種でも使えます。

参考記事:Bluetooth版プログラマブルテンキーでFT8


ノガ・ウォーターズ(Noga Waters)NOGA ノガバー3 NG1003


JINKING 渓流竿 釣り竿カーボンロッド

Wwr


プログラマブルリモコン

IC-705BTモバイルバッテリー内蔵版に採用
SLuB モバイルバッテリー

小型 超薄型 4000mAh【PSE認証済】

※検証の結果10mA以下の低電流モードでも充電可能でした。

Bluetoothイヤホンの充電にお勧め

Dsc_0306


IC-705BTモバイルバッテリー内蔵版に使用するとケーブル周りがすっきりします

エレコム USB C ケーブル L字 USB-A to Type-C

0.1m フラット 15W [充電専用] 


モバイルバッテリー5000mAh 直差しタイプ(USB-C

Dsc_0224


NanoVNA 50KHz-1.5GHz2.8インチLCD


CQ ham radio 2025年 1月号

【 特 集 】
~多彩に楽しもう!~
2025年のアマチュア無線

【 別 冊 付 録 】
ハム手帳2025


トランジスタ技術2025年2月号


【 特 集 】
~筐体にピッタリ! 部品選定・実装から熱・ノイズ対策まで~
・小型革命!はじめてのプリント基板設計
4×5cm基板ケースにピタッ!小型ヘッドフォン・アンプの製作

jh4vajさんのWebページ


 

« 2020年9月 | トップページ | 2020年11月 »

無料ブログはココログ
フォト
2025年2月
            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