MESHではじめるIoT生活

第7回 MESH工作(応用編): Arduino、360°VRカメラ、リモコンをつないで「メイド・ロボ」を作ろう!

こんにちは、ヨシケンです!
これまで6回に渡るMESH連載で各種タグの基本的な使い方やアイデア工作を行ってきました。
この秋からは応用編として、MESHでこんな事までできるんだ、と言うような、SDKを使ったプログラミング、Arduino、Raspberry Piなどと組み合わせた、本格的なIoTガジェットやロボットを作っていこうと思います。

今回は、モーター駆動の動き回るロボットを作るために、Arduinoやモーター・ドライバとGPIOタグをつなぎます。また外部機器などを追加できるMESH SDKを使って、カメラやリモコンなども操作できるようにします。

Arduino、MESH SDKを使って様々な外部機器、サービスとつなげよう

MESH GPIOには、Digital OUT端子が三本ありますので、これとArduinoやモーター・ドライバをつなげば、手軽に無線化(スマホとのBluetooth接続)する事ができます。
また実はMESHにはSoftware Development Kit/SDKがありますので、簡単なプログラムで、外部のデバイスやプログラムをカスタム・タグとして追加することができます。

これを使って、遠隔操作で室内を見回り、360°カメラ、エアコン、扇風機などを操ったりしてくれる家で便利なメイドさんロボットを作ります。またWifiとつながる電球Hueともつないで、帰宅時に自動的に電気を付けて、お出迎えしてくれる機能もつけましょう。
この動画のような感じで動きます。

 

今回の完成品

今回のMESH工作の流れ

1.MESH GPIOとモーター・ドライバ/Arduinoをつなぎます
2.外部機器(赤外線リモコン、カメラなど)を用意して、搭載します
3.MESH SDKにより、それらの外部機器をカスタム・タグ化します
4.MESHアプリでカスタム・タグとMESHタグを連携させます
5.拡張タグでHue電球などとも組合わせて、メイドさんロボを完成させます

必要なモノ一覧

MESHタグ

その他のモノ

  • MESH拡張基盤モーター・ドライバ(こちらから購入する事ができます)

    (又はArduino + モーター・ドライバ)今回はArduino互換でドライバ付きのStudinoを使っています
  • ロボットを動かすモーターキット
    タイヤ、キャタピラなどの動く車両部品土台、乗せるキャラなど
  • IRKit 赤外線キット(こちらで購入する事ができます)

    (又はArduino + 赤外線LED)
  • 小型カメラ(今回はこちら Ricoh Thetaを使用しました)
  • Wifi電球Hue(Phillips社が出しているWifiで操作できる電球です。)

モノの作り方

1.MESH GPIOとモーター・ドライバ/Arduinoをつなぐ

まずタミヤの工作セットなどの、ダブル・ギア・ボックス、車輪などを作成します。
二つのモーターがセットされ、左右の車軸が独立して右にも左にも行けるような、モーター・キットを組み立てます。

モーターとMESHをつなぐにあたり、一番簡単に制御できるのは、MESH GPIO専用に作られた拡張基盤モーター・ドライバというものです。これはGPIOの10ピンに差すだけで、モーターの前後回転、速度などを変更できるようになっています。その基盤に、写真のような向きでGPIOを差します。

拡張基盤には、電源のプラス(この写真で赤い線)、マイナス(黒い線)、モーターのケーブル(白と黄色)をそれぞれつなぎます。

これを動かす為にMESHアプリの設定では、GPIOのVOUT、DOUT3、PWMの三つをセットします。

ここではテストで、動きタグを前にすると(青い部分を下にすると)、タイヤが前転(DOUTがHigh)し、後ろにすると(黒い部分を下にすると)、タイヤが逆向き(DOUTがLow)に回るようにしています。

MESH拡張基盤接続、タイヤを動かす動画

また既にArduinoでモーターを制御するような仕組みをお持ちの方は、そこにMESH GPIOをつなぐ事により簡単にArduinoを無線化することができます。
それには、ArduinoのDigital InとGPIOタグのDOUTをつなぎます。
ここでは、モーター・ドライバを予め装備したArduino互換機のStudinoを使って、そこにGPIOタグをつないでいます。

Arduinoを使った時のMESHアプリの設定は、このようにDOUTの3つを組み合わせることにより行っています。

どちらのやり方でも、GPIOタグを使ってモーターを前後に駆動させ、ロボット台座を前後左右に操作する事ができるのが分かると思います。

Arduino接続、車両を動かす動画

MESHとモーター・ドライバ/Arduinoの設定ができたので、もっと多くの機器をつないでみましょう。

2.外部機器(赤外線リモコン、カメラなど)を用意して、搭載

室内の様子を撮影するために、Wifiに対応したカメラで、一発で部屋を見渡せる360°カメラのRicoh Thetaを用意しました。
予めカメラのWifiをオンにして、スマホやiPadと接続するようにしておいて下さい。

またMESHには赤外線機能がないので、テレビやエアコン、扇風機などを操作する為に、赤外線キットIRKitを使っていきます。このアプリから、室内のWifiにつなげるようにしておいて下さいね。

あとは適当なキャラクターを用意して、MESHの温湿度タグと人感タグをセットします。
今回は、こんなミクちゃん人形と一緒にセットしました

MESH SDKの設定方法

3.MESH SDKにより、それらの外部機器をカスタム・タグ化

MESHには、簡単なプログラミングを追加して、機能を拡張できるソフトウェア開発キットSDKが用意されています。これを使いこなせれば様々なものをMESHアプリ上から呼び出し、連携する事ができるようになります。

まず、ブラウザからhttp://meshprj.com/sdkにアクセスします。
ベータ版となっていますが、サイトからユーザー登録をして、ログインして進めることができます。

ログインすると“Create New Tag”というボタンから新しいタグを追加できるようになっています。

自分で始めから作ってもいいですが、ここでは既に開発者の方が作ってくれているサンプル・プログラムを使ってみます。

まずIRKitに関して、こちらの公式サイトを読むと詳しい情報が分かります。特に、コマンドを使ってIRKit Device IPを取得しておいて下さい。
そしてMESHとの連携ですが、こちらのページにサンプル・プログラムを置いてくれています。内容を見て、そこから“Exported_JSON_Data.txt”をダウンロードします。そのJsonファイルを上部の“Import”ボタンから読み込ませます。
そうすると、このようにタグ定義一式が読み込まれます。あとはSaveするだけでMESHアプリからこの機能を呼び出すことができるようになります。

IRKitタグの定義は、”Connecter”に赤外線操作を覚えさせるLearnや、それを送信するSendがセットされています。
“Property”はパラメータのように、IRKitのIPアドレスを指定するようになっています。
また赤外線操作の部分は、”Code”のExecuteというところにJavaScriptで書かれています。
これだけで、今まで使えなかった赤外線機能がMESHアプリから使えるようになるのです。

またRicoh Thetaのサンプル・プログラムもあります。
こちらのサイトに、詳しく書いていてくれますが、Jsonデータをダウンロードして、同じようにインポートしてみて下さい。

この他にも、お天気ウェブサイトのAPIとつないだり、もちろんソニーのカメラとも連携できますので、MESH SDKの公式ヘルプページをチェックしてみて下さい。

このように、様々な外部機器、ウェブサービスなどのタグを作ることができます。

アプリの設定

MESHアプリでカスタム・タグとMESHタグを連携

さて、モーター、SDK側の準備が整ったところで、スマホ又はiPadのMESHアプリで、今作ったカスタム・タグを呼び出してみましょう。

MESHアプリでは、カスタム・タグの部分から、“追加”を選びます。
そうすると最初にSDKのユーザー/パスワードを求められ、それを入れると、先ほど追加したIRKitタグなどが出てきます。

カスタム・タグにあるIRKitタグをキャンバスに持ってきます。
なんだか今までのMESHタグだけでなく、様々なものが追加できそうで、ワクワクしますね!

同様にThetaタグも追加しましょう。

さて、これらのモーター、SDKによる外部機器を組み合わせて、家の中の色々な事をやってくれるようにつなげていきましょう。

まずTwitterで、自分が#CheckRoom とツイートしたら、室内を歩き回った後、360°写真を撮って、更に室温を測ってくれるようにしましょう。
それには、いつものようにIFTTTタグからTwitterを選び、“自分のアカウント”で“#CheckRoom”タグを付けたら、を選びます。そして先ほどのモーターの制御を設定します(ここではArduinoと接続した例です)。

そこにThetaタグを持ってきて、“撮影”を選びます。このような360°写真が撮れます。

MESH #7 Home Automation #theta360 – Spherical Image – RICOH THETA

またこのTwitterタグとMESH温度タグを紐づけて、室温を計測させ、それを自分にツイートしてお知らせしましょう。
ここから更にIRKitと連携させます。例えば“室温が27度以上”なら、赤外線リモコンで“扇風機の電源を入れる”などとする事ができます。

5.拡張タグでHue電球などとも組合わせる

またMESH人感タグを使って、帰宅した際の“人を感知したら”、ロボットが“寄ってきて”、“電気を付ける”というのも付け加えましょう。

Wifi付きの電球Hueは、既にMESHアプリにプリセットされていますので、Hueタグを右側の拡張タグから持ってきて、人感タグと紐づけます。

さあ様々なものが付きましたが、これが完成形のアプリ設定です。

それでは全てをつなげて動かしてみましょう!
こちらに玄関に帰ってきてから、室内を歩き回るまでの連続ビデオがあります。

こんな360°写真も撮れました。

Entrance #theta360 – Spherical Image – RICOH THETA

さて今回は、Arduino連携や、MESH SDKでのカメラ、リモコンなど盛りだくさんでしたが、けっこう本格的で癒し系の家庭内ロボットが作れたのではないでしょうか?

次回は、Arduino同様IoTには欠かせないRaspberry Piと、MESHを組み合わせた工作を考えています。
お楽しみに!

(ヨシケン)

ゼロから作るライントレーサー
ヨシケン(吉田 顕一)

普通の会社に勤めるサラリーマンですが、モノ作りが好きな週末メイカーで、電子書籍MESHBOOKを出したり、ブログを書いたりしています!

http://blog.ktrips.net