RITS ロビ・インターネット送信システムその2
2021年1月31日
2月2日改訂
2月9日改訂


 前回のRITS ロビ・インターネット送信システムはFlashAirを使ってロビ1を動かしましたが今回はBluetoothでロビ2を動かせるようにしました。
 RITS ロビ・インターネット送信システムはインターネット経由でロビを動かすWebページです。
 AndroidスマホのBluetoothを使ってロビ2を動かします。
 Androidスマホは無線ルーター(WiFi)に接続したりデータ通信でインターネットにアクセスできる必要があります。
 なおBluetoothでロビ2を動かすにはAndroidスマホのOSはAndroid 8.0以上である必要があります。
 まずインターネットでロビを動かす仕組みを説明しておきます。

 

 インターネットブラウザでロビ専用Webページ(RITS ロビ・インターネット送信システム)をアクセスします。
 このページはフォームによりWebサーバーのCGIにPOSTします。
 この時選択したロビの認識語のIDをパラメーターとしてCGIに渡します。
 CGIはこの認識IDと現在時刻をURL(ロビアクセスURL)のファイルに書き込みます。

 スマホのアプリは起動されると上記のロビアクセスURLを定期的にアクセスしにいきます。
 書かれているタイムスタンプをチェックして新しければ認識語IDをBluetooth信号を送信します。
 ロビ2はBluetooth信号を受信してこの認識語IDに対しての動作を行います。


Webページの操作



 インターネットブラウザでRITS ロビ・インターネット送信システムにアクセスすると上記の画面が表示されます。
 使用許諾に同意するをチェックする事により送信ボタンがアクティブになります。
 ロビに送信したい認識語をプルダウンリストより選択します。
 送信ボタンを押すとロビに認識語が送信されます。

 同期モード開始やクイズなどの応答はラジオボタンを押すと認識語が選択できます。
 押された認識語に切り替わりますのでそのまま送信ボタンを押して下さい。

 この時複数台ロビ2を動かしていると複数のロビ2が同時に動きます。
 なおアクセスキーが1234(標準)のまま送信するとアクセスキーが1234(標準)でつながっている他のロビに対しても認識語を送信する事になります。
 WebページはWindowsのインターネットブラウザの他、AndroidやiPhone等のスマホやタブレットから操作する事もできます。

アクセスキーの変更

 アクセスキーを他の数字に変更する事により他のWebページからの操作を受け付けなくする事ができます。
 アクセスキーを変更する場合はインターネット接続アプリの設定でアクセスキーを変更してください。



 4行の数字を任意の数字に変更してください。
 数字は任意ですが他の人と重なる事があります。(重複のチェックは行っていません)
   同じ番号のアクセスキーに対しては複数台のスマホに接続した同時にロビ2を同時に動かす事ができます。
 双方向でロビ2を動かしたい場合は2つのアクセスキーを使用して相手のスマホアプリに設定したアクセスキーをWebページで指定してください。


インターネット接続アプリの操作



 インターネット接続アプリを起動してインターネットに接続ができると取得値に3桁の認識語番号と送信時刻が表示されます。
 起動されるとロビ2に対して接続確認信号を送信するのでロビ2の目が黄色に変化します。
 この状態ではロビに対して認識語番号は送信されないのでロビ2は動作しません。
 なおインターネット接続アプリを起動してからロビ2を起動しても構いません。
 またロビ2がBluetooth信号を受信できない場合はロビ2を再起動してください。
 なおQ-boやロビボイスプレイヤーなど他のスマホアプリが起動されている場合は本アプリで送信されたBluetooth信号を受信できないので注意してください。

 Webページで認識語が送信されると取得値が更新されBLEコードが送信されます。
 送信されると下のラジオボタンがBLEコード送信中に切り替わります。
 BLEコードが送信して一定時間経過すると確認信号に切り替わります。

 テスト送信ボタンを押すとインターネットと関係なく認識語「ロビ君」のBLEコードが送信されるのでロビがBLEコードで操作ができる事を確認できます。

インターネット接続アプリの設定



 インターネット接続アプリのタイトルバーの右上をクリックして表示された設定を選択するとインターネット接続アプリのパラメータ―を設定する事ができます。



 監視間隔はインターネットからの取得値の監視するためのインターバル時間を秒で設定します。

 接続タイムアウトはインターネットサーバーに接続する際のタイムアウト値を秒で設定します。
 なしを設定すると接続できるまで待たされます。
 接続ができない場合はこの時間を長くしたりなしにしてください。

 BLE送信時間はBLEコードを送信する時間を秒で設定します。
 ここで指定した時間が経過すると確認信号を切り替わります。

   アクセスキーはインターネット接続を行う際のアクセスキーを設定します。
 Webページではここで設定したを使用します。

 アクセスキーはインターネット接続を行う際のアクセスキーを設定します。
 Webページではここで設定したを使用します。

 サーバーURLは本システムを動かしているサーバーのURLを指定します。
 本システムを別のサーバーで動かす場合はそのURLを指定してください。

M5Stack版インターネット接続プログラム

 スマホで動かしたインターネット接続アプリをM5StackおよびOdroid-GOで動かしました。



 起動するとWiFi無線ルーターに接続します。
 接続に成功するとWiFi接続成功と表示されます。
 接続できるとWebサーバーからデータを取得して受信データが表示されます。
 Webページから認識語が送信されると送信コードにロビに送信するコードが表示されBluetoothでコードが送信されます。

 このプログラムは特に操作する必要はありませんがWiFi無線ルーターに接続するために以下の設定をする必要があります。



 WiFi無線ルーターに接続するためにSSIDとPASSWORDをSDカードのRBRemote.iniというファイルで定義します。
 SSIDはスマホをWiFiにつなぐ時に一覧に表示される接続先の名称です。
 PASSWORDはWiFi無線ルーターに接続するための暗証コードです。

ロビ2のリモート対応

 ロビ2を認識語のBLEコードで動かすにはリモート対応のプログラム(STARTUP.BIN)に変更する必要があります。
 ロビ2のSDカードのSTARTUP.BINを下記のURLよりダウンロードして置き替えてください。


ロビ1の対応

 ロビ1はBluetoothインタフェイスを持たないのでFlashAirを用いてインターネットに接続します。  なおロビ2の場合もこの方法でもインターネットに接続できます。

FlashAirの設定

 FlashAirをインターネットに接続するためにはFlashAirをWiFi無線ルーターに接続する必要があります。
 通常はFlashAirを直接スマホ等に接続しますがその場合は設定がアクセスポイント(AP)モードになっています。(初期設定)
 今回はステーション(AP)モードでWiFi無線ルーターの子機として動かします。
 FlashAirの設定はSD_LANフォルダーのCONFIGファイルを書き変えて行います。
 元のCONFIGファイルは元の状態に戻せるように必ずバックアップを取っておいてください。
 なおFlashAirのSD_WLANフォルダーおよびCONFIGファイルは隠しフォルダー、隠しファイルの設定になっているのでWindowsの設定はこれらのファイルが表示できるようにしておいてください。
 下記URLよりダウンロードしたCONGIFファイルをメモ帳等で変更してください。

 CONGIFファイルをメモ帳等で変更してください。



 APPMODEはステーションモードの5を指定してください。
 BRGSSIDとBRGNETWORKKEYの値を使用する無線LANルーターの合わせて変更してください。
 BRGSSIDは無線LANルーターの識別子(SSID)で利用できるネッワークで表示される名前です。
 RGNETWORKKEYの値を使用する無線LANルーターのセキュリティキーです。

 基本的にこの設定で動かせますが他の値も必要に応じて変更してください。
 最後のLUA_RUN_SCRIPTはFlashAirに電源が入れられて起動されると動くLUAプログラムを指定してます。

 CONFIGファイルの詳しい説明は
こちらのページ(FlashAir Developers)を参照してください。
 ステーションモードの詳しい説明はこちらのページ(FlashAir Developers)を参照してください。
 メモ帳で保存する時に名前を付けて保存を行うと拡張子にtxtが付けられるので注意してください。

LUAプログラムのインストール

 インターネットからの受信データを監視して新しい命令があるとロビを動かすためにFlashAirに電源が入れられて起動されると動くLUAプログラムをFlashAirに入れておく必要があります。
 下記URLよりダウンロードしたrbremote.luaをFlashAirに入れてください。
 rbremote.luaというプログラムはロビリモート送信システムのサーバに接続して命令のデータを取得して新しい命令の場合はFlashAirのADDON\REMOTE.LOGというファイルに命令を書き込みます。
 必要に応じてaccess_keyおよびrits_uriの値を書き変えてください。

 ロビ1をFlashAirでで動かすにはリモート対応のメインプログラム(main5_InitFlag確認補完無し_シーン1固定0415_test2.RM4)に変更する必要があります。
 ロビ1のSDカードのプログラムを下記のURLよりダウンロードして置き替えてください。


ダウンロードおよびWebページのURL

 インターネット接続アプリは以下のリンクからダウンロードする事ができます。
    http://www.kumagaya.or.jp/~mcc/android/rbremote/RBRemote.apk

    また次のQRコードをスマホで読み込んでインストールする事ができます。



 M5Stack版およびOdroid-GO版のインターネット接続プログラムは以下のリンクからダウンロードする事ができます。
    http://www.kumagaya.or.jp/~mcc/arduino/RBRemote.zip

 FlashAirの設定ファイルとインターネット接続プログラムは以下のリンクからダウンロードする事ができます。
    flashair.zip

 ロビ専用Webページ
    http://www.mcc.mbsrv.net/robi/rbremote.html

 ロビ2のリモート対応プログラム
    http://www.kumagaya.or.jp/~mcc/robox/RBProgram/Robi2.zip

 ロビ1のリモート対応プログラム
    http://www.kumagaya.or.jp/~mcc/robox/RBProgram/Robi1.zip

 実際に動かした動画です。

   

目次に戻る