タブレットとロボホンの連携についてお話します。
実際のコードなどの説明はしませんが、参考になればと思います。
ロボホンを借りることがあったので、少し遊んでみました。
踊ったり、歌ったり、逆立ちしたりもする芸達者なやつでしたが、
私がやってみたかったのはタブレットとの連携でした。
たまに、お店や案内所で見かけることもありますが、
ロボホンの横に置いてあるタブレットをタップすると、
ロボホンがその内容に合わせて説明をしてくれたりします。
ペッパーも同じことをしてくれますが、ペッパーよりもロボホンの方が断然かわいいです。
そして比較的安価(高いけど・・)。
最近はWi-Fiモデルも発売されて、さらにリーズナブルになったようです。
ロボホン Wi-Fiモデル
http://www.sharp.co.jp/corporate/news/171002-c.html
さて、本題のロボホンとの連携についてお話します。
実際に作ったアプリは、
タブレットのボタンをタップしたら、ロボホンが「こんにちは」としゃべるアプリです。
* SDKダウンロード
まず、ロボホンのアプリを開発するためにはロボホン用のSDKが必要です。
ロボホンのサイトから誰でも取得できますが、アカウントの作成が必要です。
https://robohon.com/
アカウントを作成した後、マイページにログインし、
メニューの「ロボホンアプリ開発」からSDKをダウンロードすることができます。
あとは、AndroidStudioでプロジェクトを作って、ライブラリを登録します。
https://robohon.com/sdk/app.php
* アプリを開発
タブレットとロボホン、それぞれにアプリを開発する必要があります。
タブレットのアプリの方は、「こんにちは」というボタンを一つつけました。
ロボホンのアプリの方はサンプルコードがあるので、
それを見ながら命令を受けたら「こんにちは」としゃべるようにします。
* タブレットとロボホンの接続(Bluetooth編)
とりあえずタブレットとBluetoothをペアリングしたら出来るだろうという考えで
プログラムを構築してみました。
ペアリングして、ボタンをタップすると「こんにちは」と喋ってくれたので、
意外と簡単にできたなー・・と思っていましたが、しばらく触ってみるとそうでもありませんでした。
アプリがバックグラウンドになるたびに接続が切断してしまい、
アプリを再度起動すると再接続しますが、それにも時間がかかってしまい、
とても実用的とはいえないアプリでした。
自分が案内所などで見たタブレットとロボホンは、
とてもスムーズに連携できていたように見えたので、きっと他の方法があるはず!と思って
別の方法を考えました。
* タブレットとロボホンの接続(Beacon編)
同じくBluetoothの機能を使いますが、Beaconならいけるかもと思い実装してみました。
ここでは、AltBeaconというのを使いました。
https://github.com/AltBeacon
これを使用することで、Bluetoothの接続は安定しました。
しかし、Beaconの送信側では受信側へ受信できたかどうかの判断が出来ないため、常に同じデータを送信しますし、
受信側も受信し続けてしまうため、この方法も使うことはできないと判断しました。
* タブレットとロボホンの接続(Webサーバ編)
最終的にうまくいったのはこの方法です。
Webサーバといっても、別にサーバを用意するわけではなく、
ロボホン自体をWebサーバにするという方法です。
Android(ロボホン)の中にサーバを立てるといった方法は、見当もつきませんでした。
Webサーバを立てるためには、NanoHTTPDというライブラリを使用します。
https://github.com/NanoHttpd/nanohttpd
HTTPプロトコルを使用して送受信が出来るので、送信側も受信側も安定した動作が可能になりました。
Wi-Fiネットワークだけは準備する必要がありますが、これぐらいなら簡単に準備できます。
* まとめ
あとはタブレットの操作でカメラを撮ったり、プロジェクターを投影したりと
いろんな操作が想定できます。
ロボホンはたくさんの可能性を持ってると思うので、
見かけることが多くなるとうれしいかなと思います。
コメント
コメントを投稿