一往確認日記

有限会社伊藤ソフトデザインの代表をしています。

ヒーローズ・リーグ 2023にirBoard賞を提供いたします。

https://irboard.itosoft.com/ja/news/2023-08-002

ヒーローズ・リーグ 2023でirBoard賞を提供することとなりました。

heroes-league.net

ヒーローズ・リーグ では沢山の作品が応募されますが、irBoard を使った作品に賞を与えたいと考えてます。
PLCを使った作品は少ないので、社内改善に取り組んだなどあると面白いなあとと思います。
ESP32デバイスとも接続可能なのとWebブラウザーも組み合わせられるので面白い使い方があると嬉しいです。

応募を検討されている方にはβ版の提供をいたします。

8/28にはキックオフイベントが開催されます。 mashupawards.connpass.com

plc_access 登録しました

plc_accessRubyGemsに登録しました。
RubyでPLCのデバイスにアクセスできます。

ソースコードはこちら。

github.com

これは Ladder Drive からPLCと通信する部分を抜き出したものになります。

LadderDriveでPLCに接続できますが、仮想的なPLCを目指したもので通信だけするには余計なものが多すぎるので通信だけに特化して軽量化しました。

MC ProtocolでPLCにアクセスするにはRubyでこの様に書くとアクセスできます。
非常に簡単です。

require 'plc_access'

plc = PlcAccess::Protocol::Mitsubishi::McProtocol.new host:"192.168.0.10"

plc["M0"] = true
plc["M0"]         # => true
plc["M0", 10]     # => [true, false, ..., false]

plc["D0"] = 123
plc["D0"]       # => 123
plc["D0", 10] = [0, 1, 2, ..., 9]
plc["D0".."D9"]   => [0, 1, 2, ..., 9]

LadderDriveもこちらを使用する様に変更予定です。

上の構成から下の構成へ

久しぶりにRubyGemsに登録しようとしたらマシンも変わったので ~/.gem/credentials ファイルをコピーして持ってこないとアップロードできなかったです。

irBoard Library for ESP32 をArduino IDEのライブラリーに登録しました

Lang-shipさんの記事を基に

lang-ship.com

Arduino IDEのライブラリーにirBoard Library for ESP32を登録しました。

ライブラリーから irboard で検索していただけると見つかります。
今まで irBoard Library for ESP32 をGithubからダウンロードやCloneしてLibディレクトリに配置するなど必要でしたが、ライブラリー一覧から検索して使う事ができる様になりました。

ESP32のWiFi設定をirBoardから行うExampleを追加しました。

ESP32のWiFi設定をirBoardから行うExample wifi_setup を追加しました。

irboard_esp32/examples/platformio_irboard_wifi_setup at master · ito-soft-design/irboard_esp32 · GitHub

今はM5Stick-Cのみの対応ですが、M5Unifiedを使用しているので他の機種にも対応させる予定です。(他の機種でもこのままで動きました。)

M5Stick-Cにwifi_setupを書き込むとNORMLモードであることとWiFi接続しているIPアドレスを表示します。
最初はWiFi設定されていないと思うので、0.0.0.0 になっていると思います。

Aボタンを1秒以上押してから離すとSETUPモードに切り替わります。 SETUPモードではAPモードになりますのでIPアドレスは 192.168.4.1 になります。

irBoardのプロジェクトがExample内にありますので、irBoardがインストールされているiOSバイスでダウンロードします。

irboard_esp32/examples/platformio_irboard_wifi_setup/WiFi setup.irboard at master · ito-soft-design/irboard_esp32 · GitHub

フォルダアプリでダウンロードフォルダからWiFi setup.irboard ファイルを選択するとirBoardで開く事ができます。

設定アプリのWiFi設定で"irBoard ESP32"のSSIDを選択して接続します。
パスワードには"password"を入力します。

irBoardに戻ってプロジェクトを実行します。

実行画面ではSSIDとパスワードが入力できる様になっているので接続したいWiFiの設定を入力します。
Applyボタンを押すとSSIDとPASSWORDがM5Stick-Cに設定され、NORMALモードに戻ります。
(誤操作防止のため少し長めに押す様になっています。)

設定したSSIDに接続が成功するとIPアドレスが表示されます。

WiFi設定は内部で記録されていますので、電源を入れ直しても設定したSSIDに接続されます。

この様な設定を行うのにirBoardが活用できます。

youtu.be

このExampleを作成するのに色々バグかが見つかってirBoard Library for ESP32を修正しています。

irBoard: 表示、非表示をデバイスで切り替える際にうまく切り替わらないのを修正しました。

irBoardで非表示をデバイスで切り替える事ができますが、いつの間にか動かなくなっていた様で申し訳ありませんでした。

動作は3番のチュートリアルで確認できます。 M1の非表示/表示ボタン(Visible/Invisible)を押すと隠れていた部品が表示される様になるのですが、一度表示してもう一度消すとその後表示されなくなるなどうまく働いていませんでした。

修正してVersion 2.2として申請しています。(Lite版を除いて現在公開になっています)公開されました。

Version 2.2ではこのほかに値部品で入力中にフリックを使用してページ移動すると、画面サイズが変になってしまうのを修正しています。

これは編集中にキーボードで値部品が隠れない様に縮尺を変えて大きさや位置を調整しているのですが、その調整がそのままになってしまってサイズが変になってしまっていました。
キー入力ができる状態であれば改行キーを押すと戻りますが、入力できない場合はなかなか元に戻せない状態でした。
これをページ移動で元に戻す様に修正しています。

もう一点値部品にパスワードなどを入力する際に入力した内容が見えなくなる 秘密 設定を追加しています。

こちらで言及していた内容です。

itosoft.hateblo.jp

公開になりましたら
公開になりましたのでバージョンアップしてみて下さい。

FormApp demo

irBoard.NETにフォームアプリのデモを追加しました。

デモは今までコンソールアプリだけでしたが、フォームアプリが追加されたことで実際にアプリに組み込む際の参考になると思います。

github.com

FormAppとirBoard相互に操作やモニターできるのが確認できます。

youtu.be

Unityのサンプルにトライ その1

irBoard.NETはおそらくUnityでも動くと思っていますが、実際に試してみないといけないかなということで、挑戦してみます。

Unity Hubは以前インストールしてますが、はるか昔に少し試してそのままにしていたため、ほぼ一からやり直しです。

Tutorialを読むとEditorは最新の物を使った方がいいとあるので、更新作業中です。

learn.unity.com

irBoard.NETはVisual Studio Codeの方でつくりましたが、UnityではVisual Studio for Mac を使う様です。
ダウンロードのオプションに iOS Build SupportとvisionOS Build Supportがあったのでそれも選択しました。
visionOSも試したりできるんでしょうか…

ダウンロードに時間がかかりそうなので、また改めて。