見出し画像

M5Stack UIFlowを使ってみる その1 配列

M5StackにはUIFlowというビジュアルプログラミングができる環境が用意されています.Pythonの知識があまりなくても手探りでもなんとかプログラムが作れます.
使ってみてちょっとつまった部分を紹介してみます.今回は2次元リスト(2次元配列)についてのメモです.

リスト(配列)
Arduinoでよく使われるC/C++言語では「配列」と呼ばれますが,UIFlowはPythonの用語を使うようで「リスト」と呼ばれます.
下の図のようにいろいろブロックが用意されています.

リスト用ブロック

1次元リスト(1次元配列)
リスト用のブロックの中に初期化に使えそうなものが2つあります.
1つは引数に要素それぞれの値を入れる形,もう1つは要素の値とその繰り返し回数を入れる形です.
変数aと変数bで別々の命令で0に初期化して,その後で1~3の値を入れてみます.

1次元配列

1次元配列_画面

予定通りの内容が画面に表示されました.マイコンに画面があるって素晴らしい.

2次元リスト(2次元配列)
ラインセンサのテストプログラムを作るため2次元リストを使う必要があったのですが,そのとき困ったのがこちらの現象.先ほどと同じよう変数aと変数bについて別々の方法で初期化して,同じ値を入れてみます.

2次元配列

2次元配列_画面

変数aと変数bは同じになりません.ラインセンサのテストプログラムを作ったときは,変数bの方法を使っていて悩んでしまいました.変数aの方法を使えばうまくいきます.
変数bの方で何が起こっているかというと,下のとおり3組の要素の内の1組に値を入れると他の2組も同じ値になってしまうようです.

2次元配列2

2次元配列2_画面

まとめ
リスト(配列)の初期化にはこっちのブロックを使った方がよさそうです.自分のPythonの知識が足らないので,これが当たり前の話だったのかもしれませんが….


この記事が気に入ったらサポートをしてみませんか?