見出し画像

テックカンファレンスでLTしてみた

皆さん、こんにちは! ifLinkオープンコミュニティ会員の濱@ISEです。

今回は、2023/09/28(木)に開催された会員向けイベントの「ifLink テックカンファレンス2023」に参加してきたので簡単にですが参加レポートです。

テックカンファレンス

ということで、エンジニアが集まって、あーだこーだと自由に意見交換・情報交換する場になるわけですが!
このテックカンファレンスでは、ゴリゴリのエンジニアがライトニングトーク(以下、LT)を通してディープ&マニアックなテーマでの情報共有をしていくことになりました。
そんなテックカンファレンスなので、開発技術を持つ人・興味がある人必見!!
ifLinkを盛り上げてくれる"スゴウデ"エンジニアの熱いトークに興味がつきません。

ルール

言葉は知っているけど、LT is 何? な方のために、Wikipediaの「ライトニングトーク」を拾ってきました。

出展:Wikipedia

Wikipediaの解説ではひとり5分が目安のようですが、今回はなんと3分とウルトラマンもかくや、とでも言いましょうか。

3分で打ち切り、と言われましたが、そこは融通をきかせてくれるようで、目標3分としておきましょう。

時間調整も含めて"スゴウデ"エンジニアの"スゴウデ"たるところを見れるといいですね。(フラグ)

テーマ

とはいったものの、会員向けイベントなので、残念ながらこの記事で他の方のトーク内容をすべてお見せするわけにもいかないのです。
なので、全参加者のテーマだけ公開させてもらって、あとは僕のLTをちょっと深堀していこうと思います。

・SBCセンサーキットのIMSつくってみた
・MIDIにつなげてみた
・リレーIMSを使用してIMSリレーを活用する(計算式 IMSの活用
・社内アイデアソンの試作で、ifLink を使ってコエを出してみた
・非接触バイタルセンサーをifLink に対応させるためにHWとSWでやったこと
・JSONデータで、PLCコントローラをつなげてみた
・Try ifLink キットのメモリ使用量を調べてみた

発表順のテーマ一覧

いざ、本番

さて、僕のテーマは「SBCセンサーキットのIMSつくってみた」なのですが、前述のテーマ一覧は発表順のとおりで、まさかの1番手だったのです。

しかも、事務局のT氏やC氏からはハードルをあげるだけ上げられてしまったのですよ。(とほほ)

こう、高くなったハードルを乗り越えたくない(^^; 僕としては、潜り抜けるか迂回してしまいたいのですが、今回はハードルを撤去して(なかったことに!)気楽に挑みました。

はじめに予備知識を

タイトルにある「SBCセンサーキット」これはもともと2022年のモジュール拡大係の活動の一環として、モジュール博覧会に向けてIMS開発したArduino starter kit(KP-EF08061)です。
LTにあたって、あたらめて現在の価格を調べようと思ったら、なんとまさかの終売!
手に入れるには在庫限りか中古しかないようですね。。。
事務局で2セット、弊社は5セット持っているので、試してみたい方はご相談ですかね。

このキットのSBCはArduino uno Rev.3の互換ボードで、Digital/Analogのすべてのポートが3pin構成かつ、付属のセンサーも基本3pinのコネクタで挿すだけでそのまま使える作りとなっています。
センサーの動作を制御するArduino側のプログラムはC/C++をベースとしたArduino言語で開発します。

Let's Lightning Talk!

タイトル発表と自己紹介(ifLinkの活動歴)は端折りまして。

SBCキットって?

SBCキットの紹介

使用したキットの紹介です。
前述のとおりなので飛ばしますね(^^;

センサーがいっぱい

IF/THENのモジュールになるセンサーがいっぱい

センサーについては、14種類がセットに入っていて組み合わせ次第でけっこう色々とできる(かもしれない)キット。
それぞれのセンサーについては、できることによっていい感じにIFモジュールとTHENモジュールに分かれています。
まぁ、3pinじゃないものをはじめ、いくつかのモジュールは諸事情(お察しください)により未対応ですが・・・。

とはいえ、このキットひとつだけでもいろんなIF/THENができることがわかってもらえるかと思います。

IFモジュールは値を読み取るのでわりと普通なのですが、THEN側はモノによって入力を変えないといけないんだけど。。。
とりあえず1か0かでON/OFFだけの制御にしちゃった。

たいへんだったのは①

たいへん①:USBシリアルの接続

たいへんだったこと一つ目は、USBシリアルの接続です。
見てのとおり、スマホにUSBハブを付けて、給電と通信を両立しています。
Wi-Fi、Bluetoothいずれもついていないボードのため、USBで給電しつつ、IMSでデータ通信もする必要がありました。

これに対しては、USBシリアル接続用のOSSライブラリがあることを(たまたま)知っていたので、動作の安定化以外は割と楽ができました。

おいおい楽してんじゃん、と思われるかもしれませんが、USBハブも相性問題があったり、USBシリアルのライブラリもスマホ(端末・Androidバージョン)によってちょっと挙動が変わったりと調整は結構試行錯誤してますからね。

たいへんだったのは②

たいへん②:デバイスサービス設定

たいへんだったこと二つ目は、デバイスサービスの設定です。
…デバイスサービスって、今はIMIって呼ぶんだっけ? まぁ、ここではデバイスサービスで。

デバイスサービスは、レシピを作る際の設定項目を定義するXMLなわけですが、IMSを作りこんでいくと、最初にAndroid Studioのテンプレートで作ったXMLだけでは足りなくて、自分でXMLを作らないといけなくなります。
で、このデバイスサービスのXML、けっこうハチャメチャに複雑なんですね。
もう手作業で編集したり、検証したりするのは大変というか難しくて。。。

キットのIMSは、IFモジュールのセンサーは基本的に値を取得するだけ、THENモジュールは1か0かだけなので、汎用的に設定できるようにする必要があったのね。
そこに、リモコンの各ボタンっていうイレギュラーもあって、XMLの手作りは大変だ、と思ったわけです。

そうじゃくても、デバイスサービスのXMLは人力編集がきついので、作るための専用ツールを開発しちゃったわけです。
…残念ながら、メンテナンスできてなくって、最新の仕様に対応できてないんですけどね(^^;
いつか作り直したい。(今少し時間と予算をいただければ…)

なお、ここでだいたい3分消化。
ストップウォッチが見えたので、思わず「もう3分か、短いな」と言ってしまったのは僕です。

たいへんだったのは③

たいへん③:Arduino側のコーディング

いちばん大変だったのがコレ。
Arduino側のコーディング。
そもそもシングルボードなんで、特定の回路を組んで、単機能を実装するのが一般的だと思うんだけど。
ifLinkに対応するにあたって、Arduino側のプログラムを変えずにキットのセンサーならなんでも対応できるようにする必要があったわけでして。

このボードのコードを記述できるメモリは2MBしかなく、最初に普通にコーディングしたら全然足りないわけですよ。
コーディングするときの基本ともいえるオブジェクト指向だと、もう全然ダメなのね。
変数に格納するデータも極力押さえて、固定できるところはハードコーディングありで、なにやってもいいからコード量を減らせ、と。

令和のこの時代に、まさかのファミコン的実装をすることになるとは思いませんでした。

時間があればデモ動画を、と思っていましたが、時間を超えているのではい、ここまで、と切り上げて3分30秒くらいでした。

(初代ドラクエでカタカナの「ク」をけちってダークドラゴンがダースドラゴンになったのは有名な話)

終わってみて

実は、自分のトーク後すぐに次のMTGに参加するためセッションから抜けたので、最後の講評とかまだ見てないんですよね。
事務局のご期待に添えたかはわかりませんが、一番手としては及第点だったんじゃないですかね。
資料は前日、発表練習なしのぶっつけ本番で、いきおいでしゃべり切った僕でした。


ifLinkオープンコミュニティについて

一般社団法人ifLinkオープンコミュニティは、さまざまな企業・団体に所属する人々が、その垣根を超えてオープンに交流しながら「誰もがカンタンにIoTを使える世界」の実現をめざすコミュニティです。2020年3月2日に複数企業により設立され、現在100社以上の企業や学校が参加し、IoT機器のifLink規格への対応やIoTソリューションの試作、アイデア発想、マーケティングなどを行っています。※ifLinkは、東芝デジタルソリューションズ株式会社の登録商標です。

ISEのifLinkオープンコミュニティでの活動についてはこちらから

#ifLink #ifLinkオープンコミュニティ #テックカンファレンス #ライトニングトーク #IoT #Arduino

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