2018年12月30日日曜日

リレータッチボードを使ったスマホ連打装置の作成

以下、スイッチサイエンス製リレータッチボートを用いてスマホの連打装置を作ったメモ

必要なもの

・リレータッチボード(ドライバ付き)
 スイッチサイエンス製リレータッチボード
 ドライバ付きを用いる理由は後述
  スイッチサイエンスの販売ページ
  amazonの販売ページ
ドライバ無し版も併売されているので注意

・自己点滅型LED
 点滅回路が内蔵されたLED
 これでリレータッチボードをドライブして画面を連打するのが今回のキモ
 
 マイコンや発振回路が不要となり回路がとてもシンプルに
 リレータッチボードをドライバ付きにしたのもこのため
 (LED点灯程度の低電流でドライブ可能なため)
 
 必要に応じて抵抗を使用すること

 今回は定格3.3V(min3.0~max5.0V)、点滅周期1.5Hzの緑色LEDを使用
 (変圧せずリレータッチボードと同じ5.0Vで動かすことを狙った)
  秋月の販売ページ
連打周期はLED依存になる

・5.0V電源
 今回はボタン電池ホルダ(3.0V)を2枚直列して使用
 今回は手抜きで変圧せず


・オーディオケーブル(ミニプラグ)
 スマホのイヤホン端子からGNDを取るのに使用
 連打装置とスマホのGNDが一致しないとまともに反応しないため

作成方法

 リレータッチボードの5V端子とGND端子に電源を結線
 LEDの+側に5V、-側にEN端子を接続(必要ならば抵抗を挟む)
 オーディオケーブルを切断しGND信号線を引き出す
 GND信号線を電源のGNDに結線

使用方法

 連打したいスマホのイヤホン端子に装置のケーブル(ミニプラグ側)を接続
 連打する位置に装置を固定する

作例

 電源スイッチを追加
 LED用の抵抗は裏面
 LEDが交換可能なようにソケットで実装
 プロトタイプなのでGND接続にはワニ口クリップを用いている

 動画はポケモンGOのジムバトルに使った例
 1.5Hzは連打速度不足かとも思ったが十分な様子
GND用ケーブルが接続されていない状態

TIPS

・GNDをしっかりとる
 スマホからGNDをとらないと不安定でほとんど使い物にならない
 オーディオケーブルを用いない場合は別途GND接続方法を考えること
 (外装の金属部分にプローブを貼る、充電端子のGNDを引っ張るなど)

・リレータッチボードの固定方法
 パッドに直接両面テープを貼っても使用可能だが、感度はかなり落ちる

・スペシャルわざ解放の弊害(ポケモンGOの話)
 スペシャルわざを解放してわざが2つになるとボタンも2つになる
 ボタン配置が大きく変わるので定位置での連打ではケアできなくなる


2018年11月15日木曜日

Pokemon Go Plus海賊版の現状(2018/11)

正規品は事実上のディスコン:

年初あたりから正規販路では欠品して再入荷せず
(※正規販路/ポケモンセンター、ソフトバンク、その他量販店)
取り寄せや予約もムリ
事実上の生産終了であり、新型(モンスターボールPlus)待ち状態

いつの間にか入手不能になっていた
待望の新型・待望の正規品
なぜか公式からのアナウンスは一切無し
現在ネット上で売られているのはほぼ海賊版である(後述)

Pokemon Go Plus海賊版:

AliExpressあたりで山ほど売っている
Amazonマケプレや楽天市場、ヤフオクで売られているのもこれ
正規販路で購入不能なのに常時在庫があるのが海賊版の証左

大量在庫/もちろん全部ニセモノ

海賊版の種類:

・完コピ品

 パッケージから何から全部コピーしてあるもの
 内部の再現度は不明だがゲームで使用できる(らしい)

 コピーの精度が低ければ本物との判別は可能
 (モールドが甘い、印刷が薄い、細部が違うなど)
 裏を返せば精度の高いものは判別不能ということ

・あきらかな差分があるコピー品

 裏面のロゴを削ったり、パッケージを再現していないもの
 本体ロゴさえなければセーフ!という市場がどこかにあるのだろうか?
 買い手にとっては本物との区別がつくだけマシと言える

裏面のロゴが無い

・勝手バリエーションモデル

 外装(シェル)を勝手にカスタムしたもの
 外装をチーム色に変更、ロゴ入り、イラスト入り、メタリックボディ etc…
 これも本物との区別がつくだけマシか

USA!USA!

カラバリ+ワンポイント


・互換機(ポケットエッグ、オートキャッチ)

 これは本物のコピーではなく互換機
 外観やインタフェースがまったく異なる
 本物の仕様を守る必要が無いため、オート捕獲などの機能が追加されている

息の長い互換機/本物と併売されていた時期もありました

ゲーム側の海賊版対策について:

現状野放し状態
クライアントが本物と海賊版との判別がついていない以上対策不能であろう
GoPlus自体をファームアップする方法も無いのでお手上げ

正規品の入手方法:

再生産されない限りほぼ入手不可
正規販路のデッドストックを見つけるしかない
100%判別する方法が存在しない以上正規販路以外はコピー品と見るべき

ここまで長期間再生産されず、ディスコン宣言も無い理由はまったく不明
レッツゴーとのスケジュール調整ミス? 
レッツゴーの販売が一巡したら普通に再販される可能性もある?

2018年11月9日金曜日

トキワナズナとBluetooth

aliexpressで電子パーツを漁っているとたまに『トキワナズナ』というフレーズが出てくる
日本語対応はほぼ機械翻訳なので何かの誤訳であろう

画像はGo Plusのコピー商品・GOプラストキワナズナとは?

調べてみると『トキワナズナ』と訳された単語は『bluet』であった
Bluetoothが『bluet』と略語表記され更に誤訳されたというオチ

小さな花をつける多年草/和名トキワナズナ 英名bluet


2018年10月15日月曜日

静電容量方式タッチパネルを反応させるためのメモ

以下、タッチパネル操作を自動化するために調査したメモ

基本原理:
 パネルに接触させた導体をGND接続することでタップと等価動作になる
 ここからGND接続を切断しオープン状態にするとタップ解除状態になる
 (導体を接触させたままでよい)


調査結果:
・パッドの接触面は一定以上の面積が必要

・導体の体積が大きすぎるとGND接続と等価になる
 (オープン状態にできなくなる)
 結線の線材も導体に含まれる
 プロトタイプで太い線材やワニ口クリップを使うとこれが原因で正常動作しない

 リレーでオープン状態を作る場合はリレーをパッドの近くに配置する必要がある

2018年10月4日木曜日

映画感想メモ:クワイエット・プレイス(字幕:65点)


公式サイト

導入~中盤までは音を立ててはいけない生活のディティールが細かく楽しめた
中盤以降の襲撃展開はイマイチ
出産直前のママさんの絶体絶命シチュはあまりに極端すぎてコメディっぽくすらある

ラストバトル~大オチも評価が分かれるかと思う
自分はダメだった
その弱点に誰も気づかずに滅びかけてるのか人類…?とか
この程度なら近代兵器でなんとか出来るラインでは…?とかモヤモヤが先に来てしまい
これは娘への愛が起こした奇跡なんだ!!を素直に飲み込めない

これが人類の反撃の狼煙だ!!(チャキッ
の大オチはママさんがタフ過ぎて笑った

2018年7月28日土曜日

iPodTouchの有線LAN接続が位置偽装にドンピシャだった話

外部機器を用いた位置偽装に有線LAN接続を導入した
結果は非常に良好
前回のiPodTouchのアンテナ除去と併用することで偽装の精度が飛躍的に向上した

IP網への無線接続は位置偽装のノイズ源

位置偽装を行う際にはクライアント上で位置情報使用アプリが動くことが大前提
よってクライアントはIP網に接続する必要がある

この接続に用いるアクセスポイントも当然ながら位置情報取得に利用される
アクセスポイントは位置情報データベース上で本来の住所と結びついているため
位置偽装に対する非常に大きなノイズ源となってしまう

今回は無線→有線接続に変更することでノイズ源の除去を試みた

iPodTouchの有線LAN接続方法

LightningUSBカメラアダプタ+セルフパワーUSBハブ+USB LANアダプタを使用
USBハブを噛ましたのは電力不足エラーが発生したため

USB LANアダプタの認識に成功すると『設定』のWi-Fi項の下にEthernet項が出現する
LANアダプタをルータに有線接続する
これ以外に設定は不要
WifiをOFF設定にしないこと(位置偽装にはWifiを用いるため)
Amazonで適当に選んだ互換機/純正じゃないが使用できた
Amazonで適当に選んだLANアダプタ/消費電力が低いヤツならハブ要らないかも

有線LAN接続を用いた位置偽装時の挙動

以下の条件で検証を実施
 クライアント→Wifiアンテナを除去したiPodTouch
 アプリ→ポケモンGO
 接続方法→有線LANでルータに直結
 位置偽装用アクセスポイント→ポケモンGO Botの従来環境を流用

テスト1:
 周囲に無線アクセスポイントが無い状態でアプリ起動
 →『GPSの信号を探しています(11)』表示
  マップ上にオブジェクトが全くない大草原
 
  有線接続経由で位置情報を取得できていないことが確認できる
この状態の実現をずっと待っていた

テスト2:
 偽装アクセスポイントを用いた位置偽装の実施
 →位置偽装成功
  
テスト3:
 無効なデータを用いた位置偽装の実施
 どの住所にも結び付いていないMACアドレスを偽装アクセスポイントにセットする
 →『GPSの信号を探しています(11)』表示
  マップ上にオブジェクトが全くない大草原

  従来は本来の住所で認識されてしまうパターン
  偽装先→本来の住所というテレポートが発生するため非常に危険だった

2018年7月25日水曜日

位置偽装用にiPodTouchのアンテナを外した話

外部機器を用いた位置偽装における最大のノイズは周囲にあるアクセスポイントであった
偽装したアクセスポイント以外は検知できないのが理想

これまでクライアントのwifi感度を下げるためにいろいろ試したが決定打は無かった
今回は感度を極限まで下げる目的でiPodTouchのWifiアンテナを外した

注意:アンテナを弄るので電波法に抵触する
   アンテナを外した後のiPodTouchは電波暗室で使うこと(建前)

iPodTouchのWifiアンテナの位置

アンテナは本体上部正面向かって左上にある
(裏面から見ると電波抜き用の黒い窓がありわかりやすい)
Wifiアンテナを取り外すには本体を分解する必要がある
黒窓の裏側にアンテナがある

iPodTouchの分解とWifiアンテナの除去

アンテナのコネクタはアセンブリの奥深くにありかなりバラす必要がある

『iPodTouch バッテリー交換 自力』などでググると分解方法はわかる
分解には特殊工具が必要

正面の液晶を開け、ネジ止めされた銀色のバックプレートを取り外す
ロジックボードを固定している3つのネジを外す
(ここまではバッテリー交換方法と共通)

Wifiアンテナを固定する3つのネジを外す
Wifiアンテナは接着されているので基部のスポンジごと剥がす
アンテナにはんだづけされている銅線をたどってロジックボード側のコネクタを確認
ロジックボードをずらしてコネクタを外す

アンテナが除去できたら逆の手順でアンテナ以外の組み立てを行う
正面の液晶を開けたところ/左上のオレンジのフィルムがwifiアンテナ
外したアンテナ/コネクタは非常に小さいスナップタイプ(真上に引き抜くと外れる)

アンテナを外した効果

wifiの感度が極端に下がった
アクセスポイントから20cm以内ならギリギリ電波がつかめる…といった具合
位置偽装にはかなり理想的な環境であり、飛躍的に成功率が上がった
位置情報データベースに対する間違った学習の回避も期待できる
夢にまで見た電波の空白地帯/ここから至近距離で偽装APの電波を拾わせる
弊害としてBlueToothの感度も下がってしまった
これは想定外であった(よく考えればアンテナ共有なのは当たり前)
ポケモンGoで位置偽装をBotライクに使う場合はGoPlus使用前提となるため困ってしまう
ひとまずはGoPlusを至近距離に置くことで対応しているが切断が頻発する

2018年6月6日水曜日

サーボモータハンチング対策

ポケモンGoBotシステムの問題点の一つはサーボモータへの負荷が大きすぎる点であった
以下はサーボに起きる問題とこの負荷を軽減する施策

スマホの揺らし台

サーボモータのハンチング

ハンチングとはサーボの停止角が定まらずに±1度の振動が発生する現象
経験則的にまとまった時間使い続けると発生する
Botシステムでは動作上は問題ないのだが、非常にうるさいし部品の摩耗も怖い

サーボモータの発熱

これはモータよりもシェル内の制御用ICの発熱
数時間単位の連続使用を行うとシェルよ溶けよ!と言わんばかりの高熱が発生
SG90ではこれでよくサーボが破損した

問題点の対策

長時間停止角を維持するようなシーケンスをやめればよい
ポケモンGoBotの例ではスイングする数秒のみアタッチして動作を行う
次にスイングするまでの数十秒間はデタッチしてフリーにしてしまう
この間は当然回転角維持のトルクは働かないのだが、それを許容する機構にすればいい

これでハンチングも発熱も解決
サーボモータを数時間連速動作させること自体がそもそも筋悪であった

追記:その他のハンチングについて

その後調べたハンチング関連の情報を追記する

・稼働後しばらくしてからハンチングが起きる理由
 →ギアの摩耗などが原因
  新品が一番精度がよく、摩耗により検知/制御精度が落ちる
  アタリが出て負荷が下がるのもハンチングの原因になり得る(後述)

・チューニングによる対策
 →ハンチングが起きるメカニズムは『オーバーラン』である

   目標角度まで回転→行き過ぎる→戻し方向に回転→行き過ぎる…

  制御パラメータのチューニングでオーバーラン対策となる(ゲイン調整)
  一番簡単な方法は回転速度を下げてしまうこと
  (簡易的な機構のサーボやその制御の場合は調整できない)

・回転軸への対策
 →オーバーラン対策として回転軸に摩擦や軽い負荷をかける対策
  ブレーキをかけてから実際に軸が停止するまでの制動距離(角)を短くする
  常に余計な力がかかるということなのでロスは増える
 

2018年6月4日月曜日

PS3版EOJレアカード相場観

それっぽい検索語で飛んでくる人がいるのでメモを残す

すべてPS3版終息直後あたりの情報なので注意
今は需給ともにほぼ0なので中古市場、中古相場自体が存在しない
(欲しい人は欲しいが、要らない人にとっては完全な紙屑)

未開封ブースター編

 Set.1 >>> Set.3 ≧ Set.2

Set.1ブースターは慢性的な供給不足であった
Set.2は作りすぎたため末期には投げ売り状態
Set.3はSet.2ほど値崩れはしなかったが同じく投げ売り組

ゲーム本体にSet.1ブースターが1パック封入されているのでこれが価格の上限として機能していた
(投げ売りの本体を買えば確実に1パック入手)
Set.1ブースターのBOXパッケージ

構築済デッキ編

Set.1(火) > Set.1(土) > Set.1(木、水) > Set.1(機巧) >>> その他

ブースター同様Set.1構築済デッキ自体がレア
使用頻度が高いUR『勇者』が封入されていたので実需もあった
デッキ間の価値の差は封入された『勇者』の性能によるもの
(ただし事実上プレイ不能である現在、カード性能にどれほど意味があるのかは謎)

機巧デッキのみ『勇者』の代わりに『龍』が封入されているため価値が低い

Set.2構築済はブースター同様作りすぎたため投げ売り
封入された『叛逆者』も実用度は低く不人気

Set.3構築済は存在せず
Set.1構築済みデッキ(5種)

シングルカード編:高額レア

・プロモカード(『炎将軍ラグ』除く)
 通常のカードの絵柄違い
 雑誌や店頭のキャンペーン、体験会で配布されたもの
 入手難易度による価値のブレが大きい

 以下の3枚は特に入手条件が厳しい
  ・『機巧の聖少女 ロミリ』(プロモ版)
  ・『裁かれた聖女 エディン』(プロモ版)
  ・『合機ディオスクリ』(プロモ版/海外版のみ)
 前2つは1万3000円くらいのフィギュアの購入特典
 (フィギュアは泥人形)
 ディオスクリは海外のみ実施されたプロモ企画の景品
 (日本語表記のカードは存在せず)
ロミリとエディンのプロモカード/SIEJP公式より(元画像3Dコードそのままなの酷くない?)
泥人形/こちらは本当に無価値なのでトラッシュしてよい
・Set.1勇者
 使用頻度が高く、構築済デッキの入手難易度が高かったため
 機巧の勇者のみブースターから排出

・Set.1叛逆者
 使用頻度が高く、ブースターの入手難易度が高かったため
 ファントムカード(背景のみ、カメラ越しにキャラクターが浮かぶ趣向)
 同じファントムカードのSet.2勇者と混同しやすいので注意

シングルカード編:準高額レア

・その他Set.1ブースター排出のURすべて
 ブースターの入手難易度が高かったため
 UR(ウルトラレア)は最上位レアであり、レアリティマークが金色
 ※『白のキュービック』『シオンダルの火祖神』はスターター収録なので注意

水の『勇者』と水の『叛逆者』絵柄の右下にあるのがレアリティマーク

シングルカード編:残念レア

・『炎将軍ラグ』(プロモカード)
 Set.2ブースターのBOX購入特典だったため配布数が異常に多い
 当時のダントツNo.1カスレア
 ブースター排出の通常絵柄ラグの方が(まだ)価値がある

・Set.2、Set.3のURすべて
 ブースター&構築済デッキが末期に投げ売られたため
 元が投げ売りなので剥いても投げ売りである
 むりやり順位をつけるならば
  Set.3UR ≧ Set.2UR(ブースター) > Set.2UR(構築済)
 (構築済は100%封入/ブースターのUR排出率を考えると流通枚数にかなり差がある)
 Set.1の使用頻度の高いRの方が価値があるかも

地味に値段がつくやつ

・Set.1のR以下カードすべて
 ブースター不足のため安く売っていれば欲しい
 Set.1カードは紙束化しない
 ただしスターター収録カードは死ぬほど出回っているので除外

オークションでのトラップ

・中古本体を買ったらレアが抜かれている
 『白のキュービック』『シオンダルの火祖神』が抜かれていることが多い
 
・売り手がSet.2と.1を勘違い
 パッケージが似通っているのでSet.2をSet.1として売ってしまう
 ブースター/構築済ともに価値が一桁違うので大損害

・海外版が混じる
 英字版がある
 機能上(3Dコード)は国内版と同じだがコレクション目的の場合は困ってしまう

・ファントムカードを勘違い
 同じ属性のファントムカードは非常に似通っているため勘違いしやすい
 Set.1ファントムカードとそれ以外では価値が一桁違うので大損害

以上
既に対戦サーバがクローズしているので実質プレイ不可能
ごく薄いコレクター需要しかないので転売商材には全くおすすめしない

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


2018年6月3日日曜日

iOSスイッチコントコントロール:レシピの設定

レシピとは

スイッチコントロール機能の一つ
スイッチに対して特定の操作を割り当てることができる
スイッチをトリガに一連の画面操作を記録、再生することも可能(カスタムジェスチャ)
ここで扱うのはこのカスタムジェスチャのみ

レシピ(カスタムジェスチャ)の設定

ここではBluetooth接続の外部スイッチ(キーボード)を用いるものとする

1.スイッチの登録
 前回参照
 レシピを用いる場合『アクション』は無視されるので適当なものを選べばよい

2.レシピの設定
 設定→一般→アクセシビリティ→スイッチコントロール→レシピ→新規レシピを作成
 『名前』は適当に入力
 『スイッチを割り当てる』で登録したスイッチを選ぶ
 →『カスタムジェスチャ』を選択
  『新規ジェスチャ』画面が開くので登録したい画面操作を実施後、『保存』を選択
 ここまででレシピが登録される

 『レシピを起動』で登録したレシピを選択する

レシピの使用方法

1.スイッチコントロールをON
 設定→一般→アクセシビリティ→スイッチコントロール
 『スイッチコントロール』をON
 『スイッチは”○○○○”レシピを使用するように設定されています』
 と表示されたら成功(※○○○○はレシピに付けた名前)
 
2.スイッチの動作確認
 登録したスイッチのキーを押す
 登録したレシピ通りの画面操作が再生されれば成功
 レシピによる画面操作時にはタップ位置に丸いマーカーが表示される


TIPS

・動作がおかしくなったら『スイッチコントロール』を入れ直す
 →青いハイライトが頻発する場合など
  レシピが無効になってスイッチ側のアクションに切り替わっている

・『スイッチコントロール』のショートカットを有効にする
 →『スイッチコントロール』を頻繁にONOFFするため
  設定→一般→アクセシビリティ→ショートカット
  『スイッチコントロール』をチェック
 ホームボタンのトリプルクリックで『スイッチコントロール』をONOFFできる


2018年6月2日土曜日

iOSスイッチコントロール用外部スイッチの自作

iOSではアクセシビリティ向上機能として操作を外部スイッチに代替できる
この外部スイッチについての調査および自作の方法についてのメモ

外部スイッチとは

iOSのいう『外部スイッチ』とは外付け入力機器のこと
分かりやすいものでいえばBluetoothキーボードが該当する
その他Bluetoothコントローラ、カメラアダプタ経由有線キーボードなど
(※iOSとの相性次第なのですべての製品が保証されるわけではない)
有線カメラシャッターはダメであった

電子工作におけるBluetoothキーボード制御

実物をリレーで叩く、BT機能のあるマイコンでプロトコル再現などが考えられる
ここではBluetoothモジュールRN42のキーボードエミュレーション機能を用いる

BluetoothモジュールRN42

内部コマンドによる機能切り替えだけでHIDキーボードとして動作する
切り替え後は外部からはBluetoothキーボードとして認識される
キーボード打鍵はシリアル入力により実現できる
よってマイコンなどからiOSを間接的にコントロールすることが可能となる

画像は秋月より/ピッチが狭く使いづらいが結線するポートはわずか
切り替え方法:
 RN42へシリアル接続(有線、無線どちらでもよい/出荷状態は115200bps)
 コマンドモード遷移『$$$』後に『S~,6』コマンド入力で切り替え
 次回起動時からはキーボード扱いとなる

注意点:
 この機能はRN42のファームウェアバージョン依存
 古いものには機能が無い模様(コマンド入力時にエラーとなる)
 ファームアップも無理なので新しく買うこと

スイッチコントロールの設定

以下はiOS側の設定

1.キーボードとBluetooth接続を確立
 設定→Bluetooth→Bluetoothをオン
 デバイスの中からキーボードを選択してペアリング

2.スイッチの登録
 設定→一般→アクセシビリティ→スイッチコントロール→スイッチ
 新しいスイッチを追加→外部
 『外部スイッチをアクティベートしてください』という表示を確認
 ここでスイッチとして用いたいキーを押す
 『新しいスイッチ』ウィンドウが開くので適当なスイッチ名を入力し保存
 『アクション』ウィンドウが開くのでスイッチに対応するアクションを選択


ここまで
次回以降のメモでレシピを用いた実用的なスイッチ運用を行う


 

2018年5月8日火曜日

ソフトウェアラジオを使ったGPSシミュレータのメモ

位置偽装装置について調べていたら引っかかった製品のメモ

HackRF One

画像は秋月より
ソフトウェア制御で1MHz~6GHzの送受信を行うことができるソフトウェアラジオ
この帯域にはGPSの信号も含まれるので位置情報の偽装も可能となる
位置座標→GPS信号変換のコードも既にある模様

ワンセグチューナーUSBドングルを改造したレシーバが一時流行っていた記憶がある
送信側として使う用途があるのは恥ずかしながら知らなかった
機会があれば触ってみたい

例の位置偽装装置もこれでは…?と思ったが
・2つのクライアントに別々のデータを送っていること
・最終的に有線式になったこと
から別の方式と思われる

2018年5月7日月曜日

YouTubeの位置偽装装置に対する考察

YouTubeで公開されている位置偽装装置に対する考察
商売っ気を出している&フェイクの可能性もあるのでリンクは無し
真偽不明なのがワクワクするね

偽装方法の考察:

iOS用外付けGPSのハックと思われる
 ・既製品の外付けGPSをPC側から座標指定できるようにした
  (ファームのハック、もしくは開発者モード、開発者コマンドなどによる)
 ・マイコン等で外付けGPS自体に偽装している
  (iPhone側からは正規の外付けGPSに見える)
のどちらか
強気の値段、受注生産である点を考えると前者か?
(既製品の流用であるためそもそもの原価が高い)

動画からわかること:

・対象はiPhone
 (最新Verクライアントが起動しているので、JBはしていないという設定のハズ)
・PCから座標形式で偽装先を指定している
・何らかの装置がPCとUSB接続
・装置の外装はムクの適当なケース
・Ver1.0は無線、Ver2.0はUSBで装置に接続
・Ver1.0では2台同時かつ別座標へ偽装を実施している

>・PCから座標形式で偽装先を指定している
GPSレイヤーのハッキングである可能性が高い
座標→APの逆引きはリアリティがないし、道なりに歩くなど位置精度がかなり高い

>・2台同時かつ別座標へ偽装を実施している
同じデータを周囲にブロードキャストしているわけではない
少なくとも2台別々に異なるデータを渡すことができる
この点から偽装したGPS信号そのものを周囲に発信していないことが分かる

>・無線orUSB接続
無線(おそらくBluetooth) or lightning接続という点から外付けGPSが想起される
iOSは『GPSのみ』での動作が可能なのでwifiやLTEによるAP測位は無視できる
(ただし最新iOS最新クライアントVerで外付けGPSプレイが可能かは未確認)
GoPlusでBluetoothを使うことになるので、重複を避けて有線にした?
単なる低コスト化で中身を有線タイプにした?


流石に購入する熱意は無いので人柱待ち

2018年5月6日日曜日

M5StackのGPSで手間取ったメモ

M5Stack
http://www.m5stack.com/

ESP32 + ディスプレイ + microSDスロット + αのプラットホーム
ArduinoのShieldのようにモジュールをスタックすることができる

GPSモジュールを使ったのだがいろいろハマってしまったのでメモを残す
画像はスイッチサイエンスより

症状:正しい測位ができない

シリアル経由でGPSモジュールから位置情報が送られてくるのだが数値はほぼ0
位置情報のフォーマット自体は守られているので位置データだけがおかしい
外部アンテナを接続しても症状は変わらず


原因1:最初の測位には時間がかかるため

GPSモジュールの最初の測位には時間がかかる
即位してから数分は正常な値が返されない
電源を投入して数分放置すると正常な値を返してくる
(レスポンスが遅いわけではない/数分間の間は異常な値を返し続ける)
EEPROMなどに前回の測位を記憶しておくことで短縮が可能
(このモジュールには記憶領域は無いため、M5Stack側でケアする前提)


原因2:外部アンテナは必須

このGPSモジュール内の基板にはパターンを含むアンテナが存在しない
外部アンテナを付けることが前提の設計
外部アンテナが接続されていない限りはどれだけ放置してもダメ


どちらもこの手のGPSモジュールでは当然のことらしい
ポケットから取り出して電源ON→即測位…みたいな使い方を期待していたがダメっぽい

2018年5月5日土曜日

ポケモンGoBOT(位置偽装装置)その後

以前に作成したポケモンGoBOTだが未だに稼働中(20か月目)である
以下は現時点の構成、稼働状況についてのメモ

位置偽装ユニット

6基のESP-WROOM-02からなるユニット
以前は制御ユニットとしてArduino pro mini(3.3V)を用いていたがオミット
現在はPCとのシリアル通信用にRN-41-SMに換装している
これはPCのシリアルターミナルから偽装情報を投げるのが一番便利だったため

ガワはセリアのペンケース
ESPのRXをRN-41-SMのTXと結線/配線はチップの裏側

RN-41-SMはRS-232C関連の機能を使わなければ3.3VでOK
電源投入後はPCからBlueToothデバイスとして認識される
接続後はシリアルポートが増えるので、そのポートに対してシリアル通信するだけ
(通信速度やプロトコルは事前に適宜変更しておくこと)

ESP-WROOM-02は非常に堅牢でかなりの稼働時間にも関わらず故障率0
えらいぜ

GoPlus連打ユニット

以前はサーボモータでGoPlusを連打していたが全自動方式に変更
(GoPlusのLEDとタクトスイッチの配線を直結)
電源はUSB端子経由の5.0Vをレギュレータで3.0V降下して使用
ボタンは頻繁に押すため配線を引っ張り出してケースに外付け

昇降ユニットと同じケースにまとめてある
ボタンをケース外に引っ張り出すと非常に便利

iPod昇降ユニット

スマホの置台をサーボモータで揺らすユニット
以前はSG-90で上下に揺らしていたがこれは筋悪であった
負荷が重く、誤作動原因の故障も含めて20ヵ月で5個焼損
サーボをより大型のMG995に変更し、揺らす方向も左右に変更

ユニバーサルプレートで平置き台を作成
置台の裏側にサーボをポン付け/サーボは十分な重さの台に固定
iPodTouchを置いたところ/これがサーボで30°程度定期的にスイングする

MG995および制御用AVRは5.0V駆動可能なのでGoPlusユニットと電源を共有
(ただし、500mAを越える可能性があるため充電器の使用が前提)

クライアント(iPod Touch)

一年を超えたあたりでバッテリーが妊娠してホタテ貝オープン状態
バッテリーを交換した
稼働20ヵ月で一番のコスト

位置偽装の知見

・一番のノイズ源は自宅の無線ルータ
 複数チャンネルの十分な電波強度があるAPで位置偽装における一番のノイズ源
 偽装APを何個立てても現在位置からピクリとも動かない場合はほぼこれが原因
 以下のような施策が必要になる
 ・MACアドレスの定期的な変更
 ・電波強度のダウン
 ・未使用チャンネルの無効化
 ・クライアントから距離をとる

・使えなくなるAPへの対策が無い
 偽装装置運用中に構築済の偽装データが使えなくなることが頻発する
 おそらくはデータベースが偽装データで更新されてしまうため
 (偽装先のAP情報と周囲にある実際のAP情報が結び付けられた)
 データベース更新のタイミングや規則性については全く分からない
 一度使えなくなったデータが復活する場合があるのは確認済

約20ヵ月分のスコア






2018年4月6日金曜日

M5StackがAmazon取り扱い開始

スイッチサイエンス取り扱いのM5StackがAmazonで販売開始
これまではプレ値で出品されていたのでようやく普通に買えるようになった
ルックスはいいと思う

M5Stackとは

ESP32 + 3ボタン + microSDカードスロット + LCD + スピーカー + バッテリー + USBシリアル変換

公式サイト

以上の機能がコンパクトなケースにまとめられている製品
ArduinoのShieldのように亀の子構造で拡張(スタック)できるのが特徴

M5Stackの長所

・予めケースインされているところ
むき出しの基板をケースに収めるのは毎回四苦八苦させられる
ここが省略できるのは大きい

・バッテリー内蔵であること
これも敷居が高い要素
充電用のICもバッテリーも内蔵されている

M5Stackの短所

・使用済ポートが多いこと
予めマウント済のパーツが多いため相応のポートが既に使用されている
ポート数が必要なプロジェクトには不向き

・スタートアップ品質であること
樹脂筐体の抜きや部品マウントの精度は相応
購入した手元の製品では
 ・SDカードスロットがやや曲がっている
 ・裏蓋のネジ穴の位置精度が悪く、無理やり基板をネジ止めしたことでクラック発生
 ・Facesモデルのキーボードモジュールのかみ合わせが悪く隙間ができている
左端中央あたりからクラックが確認できる
内部で何かが干渉してピッタリ閉じない

注意点いろいろ

M5Stack FacesモデルにはBASIC版の裏蓋が付属していない
 キーボードを外してGRAYバージョンとして使用はできない
 別売り裏蓋も無し

・GPSモジュールには内蔵アンテナが無い
 付属の外部アンテナを使う構成

・電源投入時のノイズをスピーカーが拾うときがある(プツン音)

・寸法上I2CコネクタにUSBケーブルが誤挿入可能
 ショートの恐れがあるので注意したい

・USB接続時にパワーボタン二度押し操作ができない(再起動する)
 3ボタンのどれかからAPIの電源オフ関数を呼ぶといい

・LCDはSPI接続なので相応の反応速度


2018年3月6日火曜日

レガシー環境の移行に手こずった話

テスト治具環境が構築されていたWindowsXP PCがお亡くなりに
余っていたVista PCに環境を移行していたのだが酷く手間取ってしまったお話

インストーラーは無く、生のままの.exeと設定ファイルがあるだけなのでそのままコピー
フォルダ等も元通りに再現したのだが処理に失敗してしまう

原因は処理中のテンポラリファイルの出力先がルートフォルダに指定されていたため
Vistaはこれを許さないらしい
治具ソフトもシステムもエラーを表示してくれなかったので手間取ってしまった
設定ファイルで出力フォルダが指定できたため、ルート以外に指定して解決


2018年2月2日金曜日

忘れかけた頃にtoioが届いた話

佐川の兄貴からデカい段ボールを受け取る
開けてみるとすっかり注文したことを忘れていたtoioであった
買ったのはtoio本体とトイオコレクション


toioとは

SONYが発売したトイ・プラットホーム
様々なセンサと1対の動輪を持つコアキューブと操作用のリングから成る
ターゲットは6歳以上

トイ・プラットホーム(toio本体)同梱物

コンソール(本体)、コアキューブx2、リングx2、ACアダプタ
コンソールはコアキューブの充電台を兼ねる
カートリッジは同梱されていないので基本セットだけでは何も動かない
フリームーブ(後述)位は動いても良かったか



トイオコレクション同梱物

5つのゲームがプレイできるセット
カートリッジ、おはじき、各種シール、各種カード、マットx2その他いろいろ
ゲームの大半は2人用なので注意されたい



以下はゲーム紹介

クラフトファイター(2人用)

各プレーヤーがマット上のコアキューブをリングで操作する
体当たりの攻撃で相手をマットの外に押し出したら勝ち
コアキューブはレゴやペーパークラフトでデコレーションできる

ただのリモコン相撲じゃないか!と思いきやその実テクノロジーの塊である
特徴は以下

・自発的にリングアウトできない
 マットから出ようとすると動きが止まる
 コアキューブがマットの枠を認識できている、ということ

・相手の攻撃がヒットするとノックバックする
 コアキューブは攻撃されると後ろに吹き飛ぶ
 (自分でバックする)
 攻撃の判定は何でやっているかは不明
 外力には反応しないからキューブ間の座標か?

・相手のコアキューブの方向に自動で旋回できる
 旋回ボタンを押すと相手の方向に旋回する
 システムがコアキューブの位置と方向を把握している、ということ

・必殺技の選択ができる
 ボタンを押すとあらかじめ選択した必殺技が出る
 (連続アタック、ランダムアタックなどプリセットされた動きを行う)
 必殺技はカードをコアキューブ底面のスキャナで読ませることで選択

リズム&ゴー(1人用)

マス目に色が塗られたマットを用いる
コアキューブを車と模して、音声で指定された色のマスを車が通過するように操作する

操作はもう一方のコアキューブで行う
操作カードをコアキューブの底面のスキャナで読み取り、最大6ステップの操作を一度に先行入力する

これが一番知育玩具っぽい
動きを読み上げるお姉さんの声がユーモラスで楽しい
どんどんレベルアップするので高レベルは大人でも失敗するくらい

スカンクチェイサー(2人用)

各プレーヤーがマット上のコアキューブをリングで操作する
コアキューブにはスカンクのシートがセットされる
相手の尻尾を踏んだら勝ち
後方に対しておならで攻撃できる
おならを食らった相手は一定時間行動不能

スカンクの尻尾は飾りで読み取りは行っていない
たぶんキューブ間の座標で当たり判定をしている

フィンガーストライク(1~2人用)

マットの両端がそれぞれのプレーヤーの陣地となる
2つのコアキューブは両端めがけて突っ込んでくる
コアキューブに侵攻された方の負け

プレーヤーが使えるのはおはじきのみ
おはじきがヒットしたコアキューブは方向転換するため、相手への攻撃となる
おはじきの検知は振動センサか?

1人用モードがあり壁打ちもできる

フリームーブ(1~2人用)

マットを無視してコアキューブを自由に動かすことができる
アクションシール上を通過するとシールにかかれた動作を行う
(スピードアップ/ダウン/ランダムウォークなど)

コアキューブはクラフトファイター同様にデコレーション可能

総評

トイオコレクションでtoioの出来ることがだいたいわかる
面白いけどお高いおもちゃだな!という感じ

また、操作デモ+α程度の内容なのでこれ買ったらあとは何も要らない!って訳でもない
他のセットも試してみたいところだがいかんせんまだ本発売前なので入手不可

コアキューブはBluetoothだから解析されたら面白そう
早くハックされないかな…ダメかな…