EV3をラズパイのゲームパッドからインターネット経由で操縦してみた。(その4)

img_1515

今日も前回の続きです。

前回のEV3のTRACK3Rにはカメラを搭載していませんでした。そこでカメラを搭載してみますが、ただ載せるのではなく回転台の上にWebカメラを設置することでコントローラーからカメラの方向を自由に回転できるように工夫してみます。なお、Webカメラはこの記事同様にラズパイゼロでmjpg-streamerを走らせてブロードキャストしています。

また、MQTTの通信量を減らして少しでも遅延の解消ができるように、スクリプトにも手を加えます。方法としては、何もコントローラを操作していないときはメッセージをPublisherであるRaspberry Pi(以降ラズパイ)から送信しないようにします。

カメラの台座の回転については、ゲームパッドの左側前面にある上下のボタンを押して操作することにします。上ボタンを押すと右回り、下ボタンを押すと左回りというように逆向きの回転ができるようにします。

早速Pythonコードです。まずはPublisherであるラズパイ側から。

カメラ台の回転用にボタンの4、6を追加し、遅延解消のために一つ前のメッセージをキャッシュしてフィルタリングすることで、無駄なメッセージの送信を抑えています。

次にSubscriberであるEV3側のコードです。

ちょっとした工夫としては、カメラ回転台のボタンの値の制御は単純に二つのボタンの値を足すことで行っています。片方のボタンだけを押せばその値になりますし、両方のボタンを同時に押せばプラスマイナス0になり回転台は静止したままになります。

カメラが回転するところを除けば、結果としては一見この記事と同じことをやってはいますが、BluetoothではなくMQTTプロトコルを使いインターネット経由で操作している点が異なります。

今日のところはこの辺で。☕️

関連記事:「EV3をラズパイのゲームパッドからインターネット経由で操縦してみた。(その3)

スポンサーリンク
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です