Nextionを使ってみよう。その2

引き続き、Nextion 2.4 インチ版をいじっています。

 

「Nextion」を使いこなせるのだろうか?と疑問を持ちつつ、電機屋の毎日で解説されている「使い方」を見ながら、プログラムを確認していきます。

 

先ずはサンプルとして「TP1.HMI」をダウンロードして、観察します。

f:id:har_amc:20200216222502j:plain

 


ポイントボタン1(bt0)のEVENT欄のコマンドは以下。

 

print "setTurnout("
print "14336,"
cov bt0.val,va0.txt,0
print va0.txt
print ")"
printh 0d 0a

 

先ず、解らないのは3行目の「COV」の所と、6行目の「0d 0a」の所。

 

 調べてみると、0d 0aとは「改行コード」の事でした。ふむふむ、終わりに必ず入れると仕様書に書いてあるな。

f:id:har_amc:20200216224541j:plain

つまり、「printh 0d 0a」は全てのコマンド末尾に必要です。

 

 

次に、「COV」の方は、コマンドなのですが、英語では何の事だか全く分からず。

f:id:har_amc:20200216224221j:plain

 翻訳を掛けると、「数値からテキスト、またはテキストから数値に変換します。」だそうな。

 ここでは、ボタン「bt0」の「Attribute欄」の「val」項の数値「0」をテキストに変換している様だ。

 

ここまでで解かったこと。

 1行目でコマンドを送信、2行目でパラメータ1(アドレス)を送信、3行目でパラメータ2用のテキストを用意し、4行目でパラメータ2を送信ののち、5行目で括弧を閉じ、6行目で改行する。

という流れです。

 

 

続いて、ポイントボタン2(bt1)のEVENT欄のコマンドは以下。

print "setTurnout("
print "14337,"
cov bt0.val,va0.txt,0
print va0.txt
print ")"
printh 0d 0a

 

 ポイントボタン2~10(bt1~bt9)のEVENT欄のコマンドを見ると、はて、2行目の数値以外同じだなぁ?これで良いのか??と思いつつも、試しにアップロードして、動作確認してみます。

 すると、ポイント1以外は正しく動いていない様です。何てこと有りませんでした、2行目のアドレス数値は個別に設定されていましたが、ポイントボタン2~10(bt1~bt9)のコマンドが参照しているのは、1番のポイントボタン1「bt0」の「VAL」項だったという事でした。2~10のコマンドを、それぞれ「bt1~bt9」に修正すると、全てのポイントボタンが正常に機能しました。

 

この事で少しばかりコツが掴めました

 

 

 

 次に電源ON/OFFボタン(bt10)を追加してみる事に。

Toolbox欄より「Dual-state button」を選択、画面上に適当に配置し、画像を拝借して割り当てました。コマンドも仕様表を観察の上、設定しました。

 

print "setPower("
cov bt10.val,va0.txt,0
print va0.txt
print ")"
printh 0d 0a

 

 コマンド内のパラメータは1個のみ。ポイント同様に2行目でボタン10(bt10)のvalをテキストに変換しています。

 

アップロードすると、設定通りにボタンは配置されている様です。試しにタッチしてみると、画面上では問題無く表示画像が切り替わっています。

f:id:har_amc:20200216213438j:plain

表示はOKですが、コマンドが間違っていないか心配であります。

 

 

次にDSoneR3に接続して、動作確認してみます。

f:id:har_amc:20200216213400j:plainさあ、動いてください。

 

 

動作確認はこんな感じです。

何とか動いてくれました。

送信処理だけなら、どうにかなりそうな気がしてきました。

 

 

全体のボタン配置を考え、ボタン画像を用意しなければなりません。

作成には、たいそう時間がかかりそうです。

 

Nextion 2.4

 

これなら、LCD窓とビス穴4個の開口だけで、スタンダードSのケースを再利用する事が出来そうです。(タクトSWの穴は、適当に開けると後が面倒なので、無いに越した事は有りません。)