2018年6月4日月曜日

Bot使用時におけるGOPlusの再接続自動化

ポケモンGoBotにおける最大の問題点はGoPlusが一時間で自動切断されることだった
一時間おきに手動で再接続する必要があり、Botとしてのパフォーマンスが大幅に低下する

ここではiOSのスイッチコントロール機能を用いて再接続の自動化を実現する

GoPlusの再接続の自動化

再接続の自動化には以下の3つの制御が必要になる
 1.GoPlusの切断を検知すること
 2.GoPlusのボタンを押すこと
 3.クライアント画面上のGoPlusボタンを押すこと

GoPlusの切断を検知する

GoPlusの振動モータ信号をマイコン等で監視することで切断を検知できる
(GoPlusが接続された状態でBOTが動作していた場合、定期的に振動するため)
モータ停止中はほぼ0V
モータ振動中は3V程度の電圧が印加される
100msec程度の周期でモータ信号をチェックし、一定時間の連続停止を切断と判定する

LED信号の監視の方が好ましいが、配線の引き出し難易度が高すぎて断念した

GoPlusのボタンを押す

リレーなどでボタンを押せばよい
配線の引き出しは自動化改造時を参照
ボタンの配線をGNDに落とせばボタンを押した状態と等価になる

プロトタイプ/ArduinoのXBeeシールドを流用

クライアント画面上のGoPlusボタンを押す

iOSのスイッチコントロールを使用する
外部スイッチとしてRN42をHIDキーボードモードで使用する
マイコンとRN42をシリアル接続し、マイコン側から打鍵情報をRN42に転送する

参考メモ1
参考メモ2

スイッチコントロールのレシピには以下2つの連続操作を登録
 ・速度警告ウィンドウのボタン位置をタップ
 ・GoPlusアイコンボタン位置をタップ

速度警告ウィンドウへの対策を入れる所がポイント
一度表示されると『私は運転者ではありません』ボタンを押すまで閉じないため
この状態でGoPlusアイコンボタン位置をタップしても無効

GoPlusアイコンに被るのでウィンドウを消す必要がある

結果と問題点

GoPlusを用いたBotの一時間の壁を突破することに成功した
問題は誤タップによる画面遷移に対応できないこと
速度警告ウィンドウへのタップでジムなどを誤タップしてしまう場合がある
この場合はジム画面から抜け出せなくなる


0 件のコメント:

コメントを投稿