株式会社インデペンデンスシステムズ横浜システム開発エンジニアの西田五郎が運営しております。その他新規開発案件のご依頼をお待ちしております。2020年2月4日Leafonyとは以下の公式ページによりますと「超小型、電池で動く、組み立て簡単なオープンイノベーション・プラットフォーム」とのことです。platform(リーフォニー・プラットフォーム)私の印象としましてはまずは電池駆動の超小型Arduino互換機です。Arduinoと同様に仕様はオープンでArduinoのシールドに相当するような拡張ボード(リーフというそうです。)が使えるということです。A1.0を今回はプログラム開発案件の御縁で入手することが出来ました。ありがとうございます。そこでこのLeafonyで何かやってみようかと思いました。IDEで開発が出来て、モーター(アクチュエータ)もコントロール出来るだろうということと、電池駆動ならLeafony本体は独立して動作するだろうということでRCカーを作ってみました。Energyを使いました。RCカーの全体が以下です。Leafonyの部分が以下です。ケースの外側で2.7センチ角ぐらいです。比較でも何となく小ささがお分かりいただけるかと思います。Energy(ここからはBLEと表記します。)のプログラミングについて書きます。Leafonyの動作確認から今現在で以下にクイックスタートのページがあります。きセンサの値を送信して表示することが出来ます。Chromeから表示が出来ました。上記クイックスタートのサンプルアプリについての解説ページが以下にありました。ありがとうございます。Bluetoothでラクラク!クロスプラットフォームIoT開発入門こちらによると、センサーのデータを表示するサンプルアプリは以下のgithub上に置かれています。Bluetoothを利用しているので、ブラウザであれば、PC、スマホに関係なく利用出来ます。Leafony側に書き込まれているArduinoスケッチは今現在で以下のリポジトリにあります。Worldへ上記サンプルアプリではLeafony側とセンサデータ表示アプリで双方向のBLE通信が出来ています。World的なアプリに変更してみます。そこから遠隔操作の機能を追加するという流れで開発したいと思いました。変更後のファイル一式です。(※ご自由にお使い頂いて問題ありませんが、サンプルレベルのソースです。一切動作は保証出来ません。)まずはLeafony側から見ていきます。4-Sensors(センサリーフ)の取り外しまずは4-Sensors(センサリーフ)を取り外します。今回は遠隔操作の機能をメインとしますので4-Sensorsを一旦取り外しまず。取り外して改めて感じるのがこの小さいリーフによく温湿度センサ、照度センサ、加速度センサが実装されているなということです。これだけで4種類のセンシングデータが取得出来るということです。Arduinoスケッチ側でもセンサデータ取得の処理を外します。MCUリーフと4-Sensorsとはi2cで接続されています。Arduinoスケッチではそれぞれのセンサのライブラリを利用してセンサの値を取得していますのでこれらを一旦外します。ここではそれほど厳密にではなく、明確なセンサの処理の部分を外してみました。それからセンサーデータの送信処理も外してみました。あとついでにというのもおかしいですが、バッテリの電圧に関する処理も一旦はずします。以上でBLE通信の処理の部分がよく見えるようなったと思いますので、その部分を見ていきます。MCRリーフとはUARTで接続接続されます。仕様書は今現在で以下です。実際の通信はArduinoのライブラリでプログラミングを行います。BGLibというライブラリとSoftwareSerialライブラリを使います。BGLibの仕様も以下の仕様書にあります。BLESugar実際のサンプルアプリのスケッチでは以下のように宣言されています。);BLERX、BLETXがUARTのピンで以下で宣言されています。16ピンの配置は以下ですがリーフの状態でまとめて接続出来ています。その状態でUARTをどう指定すればいいかです。15で以下の図のA1、16で以下の図のA2が指定出来ます。コールバックの設定と実際の送受信処理サンプルアプリのスケッチでは、setupBLE()関数でコールバックを設定してアドバタイズを開始しています。実際の通信はコールバックの関数内で実行されます。受信の処理は、my_evt_gatt_server_attribute_value()のようです。(※詳細が必要な場合は実際のサンプルアプリのスケッチを参照して下さい。)その他、Sleep関連の処理もしっかり記述されていますがとりあえずそのままにします。以上のような内容である程度簡略化して問題なくLeafonyに書き込みが出来ればLeafony側は準備完了とします。Bluetooth側について書きます。Bluetooth側を利用させて頂きました。以下のようなページにしてLeafony側にテキストデータが送信出来る状態を目指します。Bluetooth側は以下のファイルで構成されています。app.jsindex.htmlleafony.jsここで、スクリーンショットのBLEでHelloボタンのidをbutton-HelloBLEとします。そのボタンクリック時で以下のように処理します。);});ここでのbuttonHelloBLEは以下です。document.getElementById('button-HelloBLE');leafonyはleafony.jsのLeafonyクラスです。BLE’が送信出来るはずです。シリアルモニタで確認Leafony側のシリアルモニタで以下のように確認出来ました。BLE’が受信できました。Bluetooth側から文字列が送信出来て、Leafony側で受信が確認できました。Bluetooth側からの文字列(コマンド)によってRCカーを制御すればいいということです。以下のようなページにしてコントロールしてみました。続きは次回に書きます。POST通信を試してみます。UNOに接続した状態です。Ethernetシールド(旧製品)を使ってみました。Arduinoと接続した状態が以下です。2~3年前ぐらいに買ったものだと思います。...Arduino互換機の「びんぼうでいいの(S)」を使ってみたArduino互換機のびんぼうでいいの(S)という製品を買ってきて使ってみました。これは何といってもネーミングにインパクトがあったので買いました。温度センサADT7410の2回目です。Piに接続してアドレスの確認まで行いました。Uno2台で通信ArduinoでのSPI通信についてです。株式会社インデペンデンスシステムズ横浜システム開発エンジニアの西田五郎が運営しております。その他新規開発案件のご依頼をお待ちしております。