Alaのアイコン画像

Leafony Basic Kitの中身とPIOによるLED点滅

Ala 2020年06月14日に作成  (2020年06月14日に更新)

はじめに

elchikaさんの Leafonyプレゼントキャンペーン で Leafonyをいただくことができたのでちょっと触ってみました。

本記事は Leafony Basic Kit の中身についてと、VSCodeを使用したLED点滅についての記事となります。

またLED点滅サンプルを試した後に、元々書き込まれていたデフォルトのサンプルに戻すことも行います(悩む箇所があった為、追記)。

クイックスタート

ちなみにトリリオンノード研究会のサイトにクイックスタートがあります。

届いた時点でリーフ(各パーツ)が組み立てられており、
既にWeb Bluetoothを使ってセンサの値を表示するプログラムが書き込まれていました。

おかげでとりあえずはクイックスタート通りに試すだけでそのままWeb Bluetoothを体験することができます。

Code

Github

クイックスタートのWebBluetoothのサンプル

WEB側:https://github.com/Leafony/WebBluetooth_for_Leafony_app

Leafony側:https://github.com/Leafony/Sample-Sketches/blob/master/4-Sensors_BLE/4-Sensors_BLE.ino

Leafony Basic Kit 中身

中身はこんな感じで左側の空きは何用なんだろうなどと思うくらいスッキリしてます。

キャプションを入力できます

既にBasic Kitに入っているリーフは接続された状態で入ってきています。

外観1 外観2 外観3 外観4
キャプションを入力できます キャプションを入力できます キャプションを入力できます キャプションを入力できます

簡単に分解して半田もなく組み立てが簡単なことが利点なようなのでためしに分解してみました。

下からAV01A CR2032AC02A BLE SugarAP01A AVR MCUAZ01A USBAI01A 4-Sensors という感じで接続されていました。(下記画像の左が下に配置)

見にくいですが一番上に AZ62A Connector Cover がついていました。悲しいことにとろうとしてちぎってしまったので、これから触る方はとるときは注意しましょう・・・。

キャプションを入力できます

ちぎれてしまった保護カバー的なやつ。せっかく分解したから組み替えてみようとしたときの悲劇。届いてすぐのことであった・・・。
まあネジで閉めるので半分ちぎれてても大丈夫でしょう・・・。

キャプションを入力できます

Kit内リーフのリンクまとめ

※個別リーフ資料について電源やI/Oなどでまとめられているこちらの個別リーフ資料のページの方がわかりやすいかもしれない。

LED点滅

応用システム資料 に各種簡単なサンプルがあります。今回はLED点滅をやってみました。

せっかくなので前回やったように VSCode の PlatformIOに置き換えて試しています。

AVR MCUの場合は、「ツール」 →「 ボード」から、”Arduino Pro or Pro Mini”と”ATmega328P(3.3V,8MHz)”を選択。

https://trillion-node.org/start/pc-arduino-ide_install/

キャプションを入力できます

サンプルに書かれているようにボードの設定をして、Platform.ini をみると、platform は atmelavr となっていました。

キャプションを入力できます

スケッチの書き込み

  • Arduino IDEで、「ファイル」→「スケッチ例」→「01.Basics」→「Blink」で、マイコンボードに書き込んでください。

PIO Home > Platforms > Atmel AVR にサンプルの記載があるのでこれをそのまま main.cpp にコピペしてビルドすると問題なく動きました。
M5StickC では別途専用のライブラリを追加する必要がありましたが、 Leafony はそのまま Arduino.h でよいようです。

キャプションを入力できます

動作イメージはこちらです。

キャプションを入力できます

デフォルトのWeb Bluetooth サンプルに戻す

元から書き込まれていたサンプルに戻してみます。
※単に書き戻せばいいと思っていたらここで結構詰まってしまったので追記しました。

リーフの組み立てについては以下リンクにて。

Web Bluetooth を使ってセンサの値を表示

以下の記載の通り、このサンプルでは別途ライブラリが必要です。

書き込みには、BLE、4-Sensorsライブラリが必要です。予め、ライブラリをインクルードしておいてください。詳しくは、こちら

またそのほかにも足りないものがあったため、ライブラリを探して追加します。( https://platformio.org/lib/search
※HTS221は上記で検索して出てくるものではなかったようなので Github側を指定しています。

この後記載するように悩んだ箇所があるのですが、とりあえず完成形として、platform.ini に追加するライブラリは以下のようになります。

lib_deps = 
  MsTimer2
  Adafruit Unified Sensor
  ClosedCube OPT3001
  # Adafruit LIS3DH
  https://github.com/adafruit/Adafruit_LIS3DH#1.1.2
  # HTS221
  https://github.com/ameltech/sme-hts221-library
  # BLE 4-Sensors Library
  https://github.com/Leafony/TBGLib

さて、問題の箇所はAdafruit LIS3DHのライブラリとなるのですが、4-Sensors_BLE.ino のコメントに以下のように Adafruit_LIS3DH.h のコードを修正するように指示されていますが、Adafruit LIS3DHのライブラリのコードにそのような関数はありませんでした。

//use libraries
//Adafruit LIS3DH
//https://github.com/adafruit/Adafruit_LIS3DH
//※  Adafruit_LIS3DH.h
//    uint8_t readRegister8(uint8_t reg);
//    void writeRegister8(uint8_t reg, uint8_t value);
//    をpublic:に移動する

バージョンをさかのぼりつつコードを検索していってみると 1.1.2以下のバージョンであれば記載の内容が入っていることがわかったのでLIS3DHのバージョンを下げました。
(一つ一つ遡りつつ検索するの面倒だったのですが何かうまい方法あるのだろうか・・・)

そういった理由でhttps://github.com/adafruit/Adafruit_LIS3DH#1.1.2 のように tag(バージョン)を指定しています。
あとはサンプルスケッチに記載の通り、publicの方に記載箇所を移動させます。
(protectedに書かれているものをpublicに持ってくるようなことって普通なのだろうか・・・)

そしてまだこれでも問題が解決しきれず、ble112.ble_evt_system_awake = my_evt_system_awake; の箇所で、
「型 "void (*)(const ble_msg_system_boot_evt_t msg)" の値を型 "void ()()" のエンティティに割り当てることはできません」となっていました。ただしここは何故かそのままビルドするとビルド成功してしまいました。(C++ や Arduino言語よくわかってない感満載)一応は書き込みもできて元の状態に戻せたので、ちょっと謎も残りますがこれで終了です。

おわりに

ネジで固定されてるだけなので簡単に組み替えできて面白いですね。
今回はBasic KitでできるLED点滅を試しましたが、Extention Kit には LCDユニットなどもあって組み合わせを変えるだけで色々なものができるようです。

各リーフ(Kit内リーフのリンクまとめ項参照)のページにもそれぞれ サンプルスケッチ として例が用意されており、応用システム資料 にもいくつか簡単なサンプルが用意されているのでこの中から面白そうなサンプルを試してみるだけでも楽しめそうです。

ただ、ものによっては必要なライブラリのバージョンなどがクリティカルになりそうなのでうまくいかない場合はライブラリのバージョンアップによる差分の確認を注意しておきたいと感じました。

2
3
Alaのアイコン画像
電子工作初心者です
Ala さんが 2020/06/14 に 編集 をしました。 (メッセージ: 初版)
Ala さんが 2020/06/14 に 編集 をしました。 (メッセージ: 工場出荷時のサンプルに戻す方法を追記)
Opening
HakoHiroのアイコン画像 HakoHiro 2020/06/14

当方も本日Leafonyキャンペーンのプレゼントが届き、早速試してみました。環境はMac+PlatformIO+VSCodeです。環境を整えて、真っ先に投稿しようと思っていたのですが、先を越されました。でもうまくまとめられているので、そのまま実行してあっさりとLチカが実現しました。
また、Web Bluetoothプログラム復帰の記載は非常に参考になりました。当方はまだBLEには手を付けていませんが、助かります。今後とも 情報発信していただければ幸いです。
Leafonyはコンパクトに纏まっていて面白いボードですね。もう少し価格が低ければ良いのですが、販売量もあってなかなか下げられないのでしょうね。

Alaのアイコン画像 Ala 2020/06/15

ありがとうございます!資料とかみていると、公式が日本語資料でとっつきやすい感じがあって初心者にも優しいですが、値段は・・・確かにそうですね。せっかくいただけたので弄り倒したいところです。

1 件の返信が折りたたまれています
ログインしてコメントを投稿する