#ボートに搭載するネット回線
インターネット経由で情報をやり取りする予定なのでネット回線が必須になります。
##Docomo L-02C
RasberryPI専用の3G、4Gボードも売られていました。魅力的ですが、高価な事もあり見送りになりました。水没で全損といった事も十分考えられるので、現段階で高価なものを使う気になれません。
結局これになりました。
docomo L-02C レッド(R) データ通信専用機種
SIM端子カバーが欠品の訳アリ品、980円とです。接続事例が他ブログで紹介されていたのも決め手です。
##接続方法
接続方法は多数ネットに公開されています。以下のページで情報を得ました(ありがとうございます)。
EeePCの軌跡 Raspberry PiをL-02C+IIJmioでつないでみた
接続方法は上記ページで書いている事を実行すればそのままで動きました。ありがとうございます。
今回行う通信の内容を纏めました。書いてあるIPやアドレスはもちろん実際のものではありません。
#通信の流れ
#ボート、遠隔操作用PCの通信
一番メインになる通信です。ラジコンボートとPCを接続してPCからラジコンを遠隔操作します。
##ボート側のネットワーク
先ずボート側のネットワークは、rasberry PIにUSBのドングル(SIM はIIJ Mio)を繋いでインターネットに出ていきます。グローバルIPは割り振られません。
##自宅(遠隔操作側)のネットワーク
こちらは J-comの1M回線。速度は1Mしか有りませんが、グローバルIPで安定して動作するので気に入っています。グローバルIPは固定ではありませんので、DynamicDNSの名前解決で対応しています。
##接続方針
ボート側にグローバルIPが有りませんので、自宅からラジコンへ直接接続できません。仕方ないのでボートから、自宅の遠隔操作用PCにコネクションを張ってそのコネクションの中でボートへ命令を送る事にします。
##具体的なコマンドについて
遠隔操作用PCからボートへ送るコマンドは以下の通り
- BOAT_CONTROLL ボートの舵角、アクセル開度
- START_MEDIA_TRANSMIT カメラ映像の転送を開始、転送先のアドレスも指定する
- STOP_MEDIA_TRANSMIT カメラ映像の転送を止める
- CONNECT_SSH_SERVER 指定のsshサーバにポートフォワード指定で接続する
- DISCONNECT_SSH_SERVER sshサーバへの接続を解除する
##メディア情報の流れ
カメラ映像を取り込み、遠隔操作用PCにデータを流します。
カメラ映像はエンコード後、UDPで自宅のルータに送信。NATポートフォワードで遠隔操作用PCに転送します。これで動作はするのですが現在録画が出来ません。今後録画用のサーバに転送する処理が追加になる予定。
##ssh接続の流れ
メンテナンスのためssh接続は出来るようにしておきたい。これも直接はボートにいけないので、sshポートフォワードを利用しました。ボートからsshサーバに接続するタイミングは、遠隔操作用PCから指示する事になります。