なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

Blynkを使ってスマートフォンからAdafruit Feather M0 Bluefruit LEを制御する方法

Posted by arms22 on 2016年12月21日 0  0

Blynkとは?


Blynk_Architecture
Blynkプラットフォームのアーキテクチャ

インターネットを介してArduinoやRaspberry等を遠隔制御するアプリを構築するためのiOS/Android向けのプラットフォームです。ウィジェットと呼ばれる部品をドラッグ&ドロップで画面に配置することで、デバイスを制御するためのリッチなUIを簡単につくることができます。またデバイス側のコードを記述することなく直接ハードウェア(デジタルピンまたはアナログピン)を制御することができます。

基本的にデバイスとスマートフォンはBlynk Cloudを介して通信するのですが、最新のバージョンではBLE(Bluetooth Low Energy)を使ってデバイスと直接通信することができるようになりました。今回はこの機能をつかってFeather M0を制御してみたいと思います。


Blynkアプリのインストールとアカウントの作成

まずはBlynkアプリをインストールします。インストールが終わったらBlynkアプリを起動し、新しいアカウントを作成してください。Blynkアプリで作成したプロジェクトデータはクラウド上で管理されるので、スマートフォンが変わってもプロジェクトを作り直す必要はありません。

For iOS
https://itunes.apple.com/us/app/blynk-control-arduino-raspberry/id808760481?ls=1&mt=8

For Android
https://play.google.com/store/apps/details?id=cc.blynk


Blynkプロジェクトの作成

Blynkテストプロジェクト
ロボットコントローラー風のUI

Blynkアプリを起動して”Create New Project”をタップし新しいプロジェクトを作成します。HARDWARE MODELはArduino Zeroを選択します。AUTH TOKENはArduinoのスケッチに埋め込むのでE-Mailで自分宛てに送信しておきましょう。空っぽのプロジェクト画面が開いたら画面をタップして、上の画像のようにBLEウィジェット、ジョイスティック、ラベル、LED 2個を配置します。

Blynkテストプロジェクト_ウィジェット設定
ウィジェットの設定

ウィジェットにピン、ラベル、値の範囲等設定します。ウィジェットには仮想ピン(V1〜V255)を割り当てます。BlynkアプリとFeather M0は仮想ピンを通してデータのやり取りを行います。実際のハードウェアの制御はBlynkアプリから送られたきたデータをもとにFeather M0で行います。


ハードウェア

Blynkテスト_ブレッドボード
実態配線図

Blynkテスト_回路図
回路図

DCモータを動かしてみたかったのですが、回路がやや複雑になるのでとりあえずLEDをモータに見立てて制御してみます。ピン12とピン11にLEDを接続します。A0に接続している半固定抵抗は使用していないので省略してOKです。


BLEライブラリとBlynkライブラリのインストール

Arduino IDEにFeather M0 Bluefruit LE用のBLEライブラリとBlynkライブラリをインストールします。Arduino IDEを起動してライブラリマネージャを開き(スケッチ > ライブラリをインクルード > ライブラリを管理)、Adafruit BluefruitLE nRF51Blynkをインストールします。


サンプルスケッチ

Blynkライブラリのサンプルスケッチをベースにジョイスティックデータの取得とLEDの制御、Blynkアプリ側のラベルとLEDの制御を追加しています。auth[]の中身をAUTH TOKENに書き換えてFeather M0に書き込んでください。


BlynkアプリからFeather M0にデータを送る
次のように仮想ピンに対応するBLYNK_WRITE関数を実装し、param.asInt()で値を取得します。
// 仮想ピンV1の書き込み
BLYNK_WRITE(V1)
{
 // 仮想ピンV1を通してジョイスティックの値を読み取る
 int x = param[0].asInt();
 int y = param[1].asInt();
 (省略)
}

Feather M0からBlynkアプリにデータを送る
次のように仮想ピンに対応するBLYNK_READ関数を実装し、Blynk.virtualWrite()で値を書き込みます。
// 仮想ピンV2の読み込み
BLYNK_READ(V2)  // ウィジェットの読み込み周期で呼び出される(1秒〜)
{
 // 仮想ピンV2にスピードを書き込む
 Blynk.virtualWrite(2, speed);
}

ウィジェットをPUSHモードに設定すると、任意のタイミングで値を書き込めます。


動かし方

IMGP1314

Feather M0を通電した状態でBLEウィジェットの設定画面を開き、”Connect BLE Device”から”Adafruit Bluefruit LE”を選びます。プロジェクト画面に戻って画面右上の三角をタップするとウィジェットが動き出します。ジョイスティックをぐりぐりするとFeather M0につながったLEDが点灯し、ジョイスティックを倒し込んだ量に応じた値=Speedがラベルに表示されます。ジョイスティックを前に倒すとFWD-LEDが、後ろに倒すとBCK-LEDが点灯します。


参考記事

Blynk - Getting Started
http://docs.blynk.cc/#getting-started


Adafruit Feather M0 Bluefruit LE
スイッチサイエンス
売り上げランキング: 172,942

Ads by Google

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。