Edited at

LINE Things の開発ボードを試す! 〜その1〜 #linethings


はじめに

今回の記事の内容は、LINE Thingsの開発ボードを試してみた記録です。

試した際の流れだけ見られれば良いという方は、前置きをとばして

 項目:「開発ボードを触ってみる」

からお読みください。


LINE Thingsの開発ボードについて

先日、 #スマートスピーカーを遊びたおす会 というイベントに参加した際、

登壇者で来られていたLINEの立花さんから、この開発ボードをいただきました。

> 開発ボードをいただいたときのツイート


この開発ボードは、2019/3/2(土)から2日間、大阪で開催されたLINE Thingsハッカソンで初めて公開されたものです。

> 大阪のハッカソンでのツイート



そもそもLINE Thingsとは?

LINE Thingsは、LINEアプリ を介して BLE(Bluetooth Low Energy)対応デバイスを操作するIoTプラットフォームです。

こちらも詳細は、公式ページをご覧ください。


過去にLINE Thingsを試したときのこと


東京でのハンズオン

最初にLINE Thingsを試したのは、東京で開催されたハンズオンに参加したときでした。

このときはGitHub にある中の ESP32-DevKitC を使ってサンプルを動かす流れを試しました。

> イベント参加時のツイート1


> イベント参加時のツイート2



obniz での LINE Things を試したときの記事など

その後、obniz が LINE Things に対応した、という記事を見て、

その日の夜に試して動画をツイートしたり、Qiitaの記事にしたりしました。

> obnizのLINE Things対応の記事関連


> obnizでのLINE Thingsを試した時の動画


> obnizでのLINE Thingsを試した際に書いた記事

●obniz で LINE Things! - Qiita

 https://qiita.com/youtoy/items/d4d34da3f5427d11077f


開発ボードを触ってみる


仕様についてなど

ボードの仕様について、LINEの小城さんのツイートにGitHubのURLが書かれていたのを見ていたので、それを参照しました(これ以降、以下のGitHub上のページを「開発ボードのページ」と書くことにします)。

【★2019/3/28追記】 URLが変更になったようです。

●【新URL】 line/line-things-dev-board: LINE Things development board - Sample codes and schematics

 https://github.com/line/line-things-dev-board/

●【旧URL】GitHub - cpulabs/line-things-dev-board

 https://github.com/cpulabs/line-things-dev-board/

> 開発ボード関連のツイート


以下で、サンプルを試していった流れを記載します。


あらかじめ用意されたサンプルを試す! 【おおまかな流れ】

まずは、上記の開発ボードのページのクイックスタートと、それ以下の部分を見てみます。

大まかな流れは以下のようになるようです。


  1. LINEアプリ上の設定など

  2. 開発ボードのファームウェアの書きかえ準備

  3. 開発ボードのファームウェアの書きかえと動作確認


あらかじめ用意されたサンプルを試す! 【詳細】


1. LINEアプリ上の設定など


LINEアプリでの利用設定

もし初めて LINE Things を利用する場合は、LINE アプリ上で LINE Things の機能の有効化を行ってください。

詳細は「LINE と LINE Things デバイスを連携させてみよう」の部分をご覧ください。


LINEアプリでの友達登録

LINEアプリ内のQRコードリーダーで、CPU基板の裏側、またはマザーボード基板にあるQRコードを読み取ってください。

そうすると、以下の画像にあるような画面が表示されると思います。

連携可能なデバイスの表示.png

その後、リストの LINE Things dev Board を選択し(以下の画面になります)、

デバイスの選択後.png

画面の「今すぐ利用」をタップしたときに、以下の画面に遷移するようであれば、ひとまず、LINEアプリ上での準備は大丈夫です。

今すぐ利用をタップした後


2. 開発ボードのファームウェアの書きかえ準備

クイックスタートでの説明によると、以下のとおり、既に利用可能なファームが書き込み済みのようです。


予め書かれているファームウェアで、LINE Thingsの機能とボード上に搭載されたデバイスの体験をすることができます。 LINE Things上でモーターを除くすべてのデバイスの状態を取得することや、LEDの制御を行うことができます。

開発ボードのページの「Quick Start」 より


後ほど、書きかえを行うことになると思うので、今回は早速、自分で書きかえを行ってみて利用してみます。


書きこみの準備1: PC上での準備

「開発ボードのページのファームウェア書き込み方法」を見ていきます。

具体的な手順としては、以下の「Arduino IDEを使用する方法」に書かれた流れになるようです。

手順の記載の前に、自分が試した環境の情報を書いておきます。


  • PCやアプリについて


    • MacBook Pro(13インチ,2017)


      • OS: macOS High Sierra



    • Arduino IDE(バージョン 1.8.7)



手順: Arduino IDEを使用する方法

「開発ボードのページのArduino環境とドライバの準備」の部分を参照して進めていきます。

まず行う内容は

 「Arduino IDE のインストール」、

 「Arduino IDE のボードマネージャーでのボード追加」

 「CP2102N driver のインストール」

になります。


書きこみの準備2: 開発ボード上での準備

次に、こちらの開発ボードのほうの準備を進めていきます。

LINE Things 開発ボード(CPUボードとマザーボード)

「開発ボードのページの使用方法」の部分の、CPUボードをマザーボードに挿して使用する方法で進めます。

CPUボードの方向を間違えないよう気をつけながら、マザーボードに挿します。

電源について、「外部電源及びUSB駆動」か「電池駆動」かを選べるようですが、今回は「USB駆動」で進めていきます。

下の写真の赤色で示したスイッチを OFF にし、写真のオレンジの部分 P4ピン を「USB駆動」で利用する場合の設定にします。

LINE_Things開発ボード(CPUボードを取り付けた状態)

P4ピン を「USB駆動」で利用する場合の設定する、という部分は、以下の写真のようにします。

P4ピンの設定前
USB駆動の設定

P4ピンの設定前
USB駆動の設定

マザーボードにのUSB端子(J1)に Micro-USBケーブルを差し、PCへ接続してみて、開発ボードが動作することを確認してみます。

USB接続

PCへ接続したところ、ボードに書き込み済みのスケッチが動作し、ディスプレイに各種センサーの値が表示されました。

ボードを傾けてみたり、スイッチを押してみたりして、ディスプレイに表示された数値が変わったので、正常に動作しているようでした。


3. 開発ボードのファームウェアの書きかえと動作確認


スケッチの書き込み

それでは、開発ボードへのスケッチの書込みを行っていきます。

Arduino IDE で、 ツールから、ボードの選択( Adafruit Bluefruit nRF52 Feather ) とシリアルポートの設定を行います。

ボードの選択.jpg

ここで試しに、空のスケッチを書き込んでみます。

以下のようにエラーなしで書込みが完了すればOKです。

書込み完了.jpg

デフォルトで書き込まれていたスケッチの書き込み

開発ボードのページの「arduino/linethings-dev-default/linethings-dev-default.ino」を書き込んでいきます。

このサンプルでは


  • things_temp_lib

  • SparkFun MMA8452Q Accelerometer

  • Adafruit SSD1306

  • Adafruit GFX Library

を使用しているとのことで、それらを追加します。

上記4つのうち、 things_temp_lib 以外の3つは、以下の画像にある ライブラリを管理 からインストールしてください。

全画面_2019_03_21_18_47.jpg

残りの1つの things_temp_lib については、line-things-dev-board のリポジトリの一式をクローンするか、ZIPでダウンロードし、その中の library/things_temp_lib を zipファイルに圧縮します。

そして、Arduino IDE のライブラリをインクルードからインストールしてください(以下の画像のメニューになります)。

全画面_2019_03_21_18_58.jpg

【★2019/3/28追記】 以下の点は、公式ページが修正されました。

2019年3月21日時点のGitHubの手順だと、自分の環境では以下のエラーがでました。


sketch_mar21a:21:31: error: SparkFun_MMA8452Q.h: No such file or directory

compilation terminated.

exit status 1

SparkFun_MMA8452Q.h: No such file or directory


どうやら、SparkFunの加速度センサ絡みのようで、。。。

上記の対応後、スケッチの書込みを行うと、下記のとおり書き込みを完了できました。

スケッチの書き込み完了.jpg


LINEアプリも含めた動作確認

無事にスケッチの書き込みができたので、LINEアプリと連携する部分を試します。

既に、上記の中のLINEアプリ上で進めていた手順ができている状態であれば、

アプリの

 「友達タブの 設定 ⇒ LINE Things ⇒ マイデバイス」

とたどった先から、上記で導入したアプリを利用できます。

以下、Android版のLINEアプリで、上記のとおり進んだ先の、アプリ画面をキャプチャしたものです。

マイデバイスの表示

あとは、開発ボードとBluetooth通信ができる状態になっていれば、以下の動画のように動作させられます。

以下、アプリの画面で、センサーの値等が表示されている状態のものです。

Screenshot_20190328-221527.png

LINEアプリ上でのLINE Things利用まわりの話の詳細は、LINE Thingsハンズオンの資料の「LINE と LINE Things デバイスを連携させてみよう」の部分なども見てみてください。


終わりに

今回、LINE Thingsの開発ボードのサンプルを動作させるまでを試してみました。

ボードの書き込みはやってみたものの、LINEアプリ側はサンプルを流用したままの状態のため、次に、こちらを自前のBotにそのまま実装してみようと思います。

その後、今回、開発ボードへ書き込んだスケッチも含め、サンプルに手を加えてみたりなどしてみようと思います。

余談: LINE Things に対応したボード

現在(2019/3/11時点)、LINE Thingsに対応したデバイスは以下の5つになっています。

情報元は、GitHub の「line-things-starter のページ」の、「Installing the Firmware」の部分です。


  • Espressif ESP32-DevKitC

  • M5Stack (ESP32)

  • Adafruit Feather nRF52 Bluefruit LE

  • BBC micro:bit

  • Obniz

上記のうち所有しているデバイスが4つで、ESP32 と obniz は試したのですが、残り2つの micro:bit と M5Stack は試せてないため、後ほどこれらも試してみたいと思います。