こんにちは!Hopesの回路班,中理です.
回路に関するネタが少ないのため,
今回は昨年開発したローバー操作アプリ (RoboPad)を紹介します.
(iOSアプリ限定)
なぜRoboPadを開発したか
近年,高玉研ではARLISSの他に,秋田県能代市で毎年8月頃に開催される,
能代宇宙イベントのCanSat部門にも参加させていただいております.
能代宇宙イベントには,競技日の他に一般公開日があります.
一般公開日では,競技に参加している団体だけでなく,能代市在住のみなさま,
そして県外からも興味のある方が参加しています.
(一昨年は,なんと電通大の近くに住んでいる親子も来ていました!)

そんな,一般公開日ですが,毎年いくつかの競技参加団体から
体験型コンテンツを有志で公開しており,
高玉研では,例年「ローバー操作体験」を提供させていただいています.
「子供から大人まで誰でも簡単にローバーを操作できるようにしたい!」
という思いからRoboPadを開発しました.
RoboPadで何ができるの?
ローバーに接続し,アプリ内のゲームコントローラを
用いてローバーを操作することができます🥳
また,各ボタンをタップした時の挙動を
自由にカスタマイズすることができます.

他のローバーでもRoboPadって使えるの?
以下の要件を満たせば,使えます!!
- ローバーにWi-Fi機能もしくは,アクセスポイント化することが可能
- ローバープログラムを実行し,キー入力によってローバーを操作することが可能
(例えば,”w”押したら前進)
RoboPadってどんな仕組み?
私たちのローバーをRoboPadからコントロールする場合について,
中身がどのように動いているのかについて,簡単に仕組みを説明します.
1.ローバーに接続
まず,私たちのローバーはラズパイを用いて作られています.
RoboPadからローバー(ラズパイ)にアクセスするために,
iPhoneとラズパイを同じネットワーク内にしましょう.
方法はいくつかありますが,ラズパイをアクセスポイント化して
ラズパイから発せられているWi-FiにiPhoneから繋ぐのがおすすめです.
同じネットワーク内にしたら,RoboPadからsshで接続します.
2.sshでローバーのプログラムを実行
ssh接続に成功すると,このような画面に遷移します.
ここで,あらかじめ作成したローバーのプログラムを実行します.
プログラムには,前進,後進,停止,方向転換,各シーケンスのアルゴリズムなどが実装されており,
文字列+CR(改行コード)を検知した時,該当する文字列の関数を実行するようになっています.
例えば,「”w” + CR」を検知したら,プログラム内の前進する関数が呼び出されるという感じです.
3.コントローラ画面を表示してローバーを操作!
プログラムを実行し,コントローラを表示してボタンを押すと,
あらかじめ設定された文字列と改行コード送信されます.
そのため,あらかじめ各ボタンに文字列を割り当てておくことが必要です.
(一度設定したら保存されるので2回目以降は設定不要)
図の設定画面のように,ボタンを押した時と離した時違う文字列を設定することができます.
例えばAボタンを押した時に「前進のための文字列」,離した時に「停止のための文字列」
といった感じに設定するといいと思います.
ざっくりとですが,以上のような仕組みでRoboPadからローバーを操作しています!🎮
最後に
ローバーをちょっと動かしたい,気軽に操作体験させたい時に
このRoboPadを是非活用して欲しいです!
また,ローバーじゃなくても同じ様なプログラムであれば,
他の自作ロボットも操作することができるはずです!
Github上にRoboPadのソースコードを公開しています.
使いたいけどちょっと不都合がある・・・😓
などがあれば是非改変してみてください!
めっちゃ長くなりましたが最後まで読んでいただきありがとうございます!
今年はコロナでどうなるかまだわかりませんが,
全力で取り組んでいきたいと思います!よろしくお願いします!