マイガレージ掲示板
【ご注意】投稿内容は、掲示板管理者が内容の確認の後、掲載いたします。
本誌の内容に関するご指摘、ご質問は、お問い合わせフォームからお願いいたします。
Wi-Fiでの直接起動について教えてください。(全般)0Point |
投稿日時:2015-10-24 15:04:50 |
|||
良寛和尚 |
RobiをFlashairでWi-Fi接続し、PCやAndroidで
直接起動している事例を見つけ、これをiPhoneまたは
Apple WatchでRobiを操作できないか調査しております。
そこで、「ロビボイスプレイヤー」や「Android版ロビボイスプレイヤー」で
ある認識語を選択してRobiに認識し、Robiが動作する仕組みは
どのようになっているのでしょうか。おそらくコマンド実行している気がします。
ご存知の方、ご教授のほどお願いいたします。
ADDON\ROMOTE.LOGというファイルを使ってロビを制御しています。
ボイスプレイヤーでこのファイルに認識語ID(音声認識のフレーズに割り当てられた番号)書込みロビのSDカードに転送します。
ロビのメインプログラムをこのファイルを読み込むように改造して読込んだIDを音声認識で取得したIDに置き換えています。後はメインプログラムの処理に任せています。
詳しくは上記WEBサイトで提供しているメインプログラムの改造版で追加した最後の部分を参照してください。
またロビの音声を再生するのは音声再生.RM4というプログラムで音声番号(WAVファイルのファイル名をベースに定義)に対応した音声ファイルを再生しています。
クラフト親父さま
ご回答いただき、誠にありがとうございます。
クラフト親父さまの回答と紹介されたサイト
(http://www.mcc.mbsrv.net/robox/141103/)を
確認したところ、以下の手順なのかなと推察します。
1.プログラム(PC,Android)はRobi(flashair)内の
ADDON\ROMOTE.LOGに認識語ID(NF***)に書き込む。
2.Robi(flashair)内のプログラムがADDON\ROMOTE.LOG内の
認識語IDを読み、Robiを動かす。
つまり、プログラム(PC,Android)の処理は
ADDON\ROMOTE.LOGに認識語ID(NF***)に書き込むだけなのでしょうか?
ご回答のほどお願いいたします。
1,2はい基本的にはそうです。
ロビのプログラムで読み込んで既読状態にします。
PC側ではその状態は見ておらず一方的に命令を書き込んでいます。
書込むIDですがWindows版のロビボイスプレイヤーで提供しているNinshiki.csvを参照してください。
REMOTE.LOGの仕様は下記URLを参照してください。
http://www.kumagaya.or.jp/~mcc/robox/RBMotion/remote.html
クラフト親父さま
ご回答いただき、誠にありがとうございます。
紹介されたURLやリソースを参照してみます。
多分、幾つか???が出てくるかと思いますので、
その時は再び質問します。
合掌。
クラフト親父さま
早速ですが、ADDON\REMOTE.LOGの書き込みおよび通信について
2回に分けて質問します。
[ファイル書き込みについて]
REMOTE.LOGの中身を確認すると、データ仕様の通り16バイトの
バイナリデータで、書き込み時は4バイトのバイナリデータでした。
ということは、4バイトの内訳は先頭1バイトは固定値、2~4バイト目は
認識語ID(3桁の数字)で構成し、16進数に変換して書き込んで
いるのでしょうか?
また、このファイルは端末側(PC,Android)でファイル生成して
いるのでしょうか?
(以下続く...)
[通信について]
RobiとのWi-Fi通信ですが、Flashairの仕様(Ver.0.2以降)により
ファイルUploadが可能です。(Flashairのconfig設定が必要)
つまり、端末側で生成したファイルをRobi側のADDON\REMOTE.LOGに
対し、上書きで書き込む処理をしているのでしょうか?
以上、ご回答のほどよろしくお願いいたします。
1,2バイト目は固定値(-2)、3,4バイト目は認識語IDです。
共に16ビット整数として処理しますのでロビのマイコンボードの仕様に合わせてプログラムに合わせてリトルエンディアン(下位8ビットが先)なので注意してください。
Uploadは端末側でやっているのですがファイルは作成せずデータを直接FalshAirに転送しています。
Unloadのやり方は東芝のFlashAirのサイトにAndroidとiOSのサンプルがありますがほぼその通りにやっています。
FlashAir内ののADDON\REMOTE.LOGに対してUploadして上書きしています。
なおFalshAirで書込みロビで読込みを同時に行う訳ですが特に排他処理をしなくても問題なく行えています。
クラフト親父さま
ご回答いただき、誠にありがとうございます。
今までわからなかった通信の部分がわかり、
iPhoneアプリの道筋が出てきました。
アプリが公開できる状況になれば、何らかの
形でおしらせします。