ラベル M5Stack の投稿を表示しています。 すべての投稿を表示
ラベル M5Stack の投稿を表示しています。 すべての投稿を表示

2020年3月14日土曜日

Fake Wifi-GeoLocation for M5StickC概要

前回、M5Atomを6台使ったWifi位置偽装装置を作成したのだが
twitterで『これはESP32単体で実現できる』旨の指摘を受けた
以下は教わった情報をもとにM5StickC1台だけでWifi位置偽装装置を作成したメモ

Wifi位置偽装装置への指摘

M5Atom6台の作例ではそれぞれをアクセスポイント(AP)として動作させていた
しかしMACアドレス詐称目的ならばフル機能のAPは必要ない
詐称したMACアドレスを含むBeaconフレーム送信機能だけでよい

ミニマムなBeacon送信を実装できればM5Atomを複数使う必要もない
6台分のBeaconフレームを1台でサイクル送信し続ければよい

『MACアドレスを詐称した複数のAPを立てる』がアイデアの根幹であったため上記の指摘は目から鱗であった

作成

教わったGithubのサンプルコード
https://github.com/Jeija/esp32-80211-tx
ESP-IDF用のプロジェクトだがArduino IDE環境でもほぼそのまま流用できる
(構造体初期化などコンパイラに蹴られる部分あり)

サンプルでは8つのSSIDを切り替えてBeaconフレームをサイクル送信している
これを任意MACアドレスを切り替える方式に修正して前回のソースとマージした

動作チェック

複数台APを立てる現行方式と全く遜色ない
むしろMACアドレス変更→リブートに数秒かかっていた現行方式よりも良い

コスト・機能ともに改善されてうれしい反面、急にブレイクスルーが来てしまい戸惑う
詳しい人の知見とアドバイスは最高

グッバイ旧プロジェクト

2020年3月13日金曜日

m5Atomの給電方法を調べたメモ

m5Stack公式のツイートを発見
これを信じるならば背面5Vへの電源供給は正常な用法といえる

Fake Wifi-GeoLocation for M5Atom x6概要

M5Stack ATOM LITE(以下M5Atom)を使ったWifi位置偽装装置を作った


ざっくり概要:

・6台のM5Atom(APモード)とM5StickCを片方向シリアル接続
 M5SticKCから6台のM5Atomへ片方向通信が可能
 各M5AtomへMACアドレス変更命令を出す

・Wifi位置偽装の理屈
 MACアドレスを詐称した複数のWifiアクセスポイント(AP)を立てる
 Wifiによる位置測定では周囲のWifiAPのユニークIDとしてMACアドレスを使う
 特定位置にあるWifiAP群のMACアドレスを再現すれば位置偽装ができる
 当然ながら位置測定にGPSを併用する場合には無力
 (動画で使っている端末はiPodTouch/こけおどし的デモ)

配線の様子:L字のロングピンが無かったので手曲げで作った

テクニカルな話:

・背面電源供給時の発熱が凄い
 5V≒VCC端子という想定で回路を組んだが発熱が凄い
 単体へのUSB給電と明らかな差がある
 仕様を問い合わせた方がいいかもしれない

・ESP8266とMACアドレス変更関数が異なる
 ESP8266でのwifi_set_macaddr()にあたる関数はesp_wifi_set_mac()

・動画のUSB給電は定格電流を加味していないので注意
 試しに動作させたら動いただけ
 USB給電→背面5Vピンの定格電流は不明
 一応動作しているものの何の保証もない

2020年3月12日木曜日

Tic Tac Toe for M5Atom x9概要

M5Stack ATOM LITE(以下M5Atom)を使った〇×ゲーム(Tic Tac Toe)を作成した


ざっくり概要:

・9台のM5Atomを片方向シリアル接続しており、環状に通信可能
 上流から来た情報を下流に再送するイメージ
 この環状通信でボタンの押し下げとLED点灯命令をやりとりする

・9台のうち1台が親機で残りは子機
 〇×ゲームを処理するのは親機
 子機へのLED点灯命令発行、子機からのボタン押し下げイベント受理を行う
 子機は自分のボタン監視(イベント発行)とLED制御のみ

配線の様子:ジャンパ線の長さがまちまちなのは手製のため

テクニカルな話:

・M5Atomは背面5Vへの電源供給で動作
 実動作上は5V≒VCC端子
 回路図が公開されていないのでやや不安
 給電には5V2AのACアダプタ使用
 3/13追記:
  背面からの給電でアクセスポイントとして動作させた際の発熱が凄い
  USB給電の場合と比べてはっきりと発熱に差がある
  仕様がはっきりするまで給電に使うべきではないかも…

・1台にUSB給電するとほかの8台もドライブしてしまう
 定格電流やUSB給電の仕様が公開されてないので怖くて使っていない
 一台当たり50mA強はいけそうな気もするが…?
 今後の課題とする

・〇×ゲームにはミニマックス法を使ったため、プレーヤーは一生勝てない
 クソゲーである
 (※〇×ゲームは互いに最善手を打つ限り常に引き分けるゲーム)
 意図的に手加減する処理を入れないと病む

M5Atomは電源周りの情報がないのが不安

2020年2月21日金曜日

M5Stack ATOM LITEを購入

AliExpressで注文したATOM LITEが届いたのでそのメモ
なお技適の問題があるので使用にはご注意

ATOM LITEとは

M5StickCからLCDとバッテリーなどを外した小型のM5Stack
上位機種として5x5のLEDを搭載したATOM Matrixがある
USB-シリアル変換付きで筐体のあるミニマムなESP32といったところ

小型のM5Stack

外観

24x24x10mmとM5StickCの半分以下のサイズ
背面に2.54mmピッチのGPIOポート
他のポートはUSBType-CとGroveポート
※公式ページには4P PH2.0とあるが明らかにGroveポート
 PHコネクタ4ピンは干渉して挿さらないことを確認
 強引に挿すためには両方を切削する必要がある

パッケージ/本体以外の同梱物無し
現物の表と裏/技適表記は無い/Groveポートのノッチ付きコネクタが確認できる
筐体を開けた状態(裏側)/ピン表記シールの下にはM2ビス用穴あり
筐体を開けた状態(表側)/内部チップにも当然ながら技適表記無し

動作確認(電源供給だけ)

公式ページで回路図が未公開のため以下の2点を実機動作確認した
(※回路をチェックしたわけではないので注意)

1.背面GPIOポートの5Vから本体に給電できるか
 →できる
2.Groveポートの5Vから本体に給電できるか
 →できる

LITE複数使いの場合にTypeCケーブルを何本もぶら下げる必要はない模様

5VをGrove端子から入力→成功
5Vを背面5Vポートから入力→成功


2020年1月8日水曜日

ESP8266を用いたwifi位置偽装装置の電流値測定

ESP8285を用いてモバイル電源で動作する位置偽装装置の開発を予定している

モバイル電源の使用にはESP系チップの高い消費電流がネックとなる
定格とは別に位置偽装装置システムにおける実消費電流を調査する

ESP8266の動作と消費電流

パワーオン時に200~300mAのピークがあると言われている
いったん起動してしまえばデータシートどおりの動作をする
起動時に電源の電流容量が不足すれば電圧降下によって起動できないケースがでてくる
自己復旧できないのでこれは問題

測定対象システムの概要

位置偽装ユニット
ESP8266を6基、RN-41-SMを1基使用
ESP8266はwifiサーバとして動作し、30秒おきに設定が変更されリスタート
RN-41は30秒おきに接続先からマクロを受け取る

実測定結果(起動時)

5回測定のピーク電流が1200mA弱
300mA×6を覚悟していたが実動作上はタイミングが重複するわけではない模様
(元からサーバをbeginするタイミングはズラしている/効いているかは不明)
測定モレするようなスパイク状のピークがあった場合は見逃してしまうので注意

電源端子のあたりで測定
測定例

測定結果(動作中)

動作を10分継続した場合のピーク電流は600mA弱
定常電流との振れ幅は100mA未満
こちらは想定よりも高め

考察

起動時のピーク電流さえやり過ごせば1Aもあれば良い
・ESP8266を二群に分けてディレイ電源供給
 →ピーク電流は900mA程度?
・ESP8266をリレー形式で1つずつディレイ電源供給
 →ピーク電流は700mA程度?
剛腕戦略をとるならば2Aのモバイル電源を用意すればいい

消費電力は定常電流に3.0Vをかければいいので定常ピークで考えても1800mW程度
モバイル運用しても問題ない程度の消費電力と言える

INA219ブレイクアウトボード+M5Stackで簡易電流測定

以下は簡易電流測定器を作成したメモ

動機は電流測定無しでESP8266系チップを弄るのに限界を感じたため

INA219ブレイクアウトボード

今回はAdafruit製のブレイクアウトボードを使用
測定した電流をI2C経由で読み取り可能
(同様の模造品が沢山あり、そちらでも問題無いハズ)

電流測定したい箇所にVin+とVin-を使って挟み込む(GND側がVin-)
電圧も測定したければ測定対象と更にGNDを接続する
困ったらAdafruit

M5Stack

ディスプレイがあり、microSDカードが読み書きできるため使用
(ただし今回はまだSDカード出力は実装していない)
GPIO21(SDA)、GPIO22(SDL)を用いればI2Cライブラリを使用可能
(SDA、SDLポートが別途あるが、内部で結線されている)

作成方法(配線)

M5Stackの上部端子(メス/2.54mmピッチ)に
・GND
・3V
・GPIO21(SDA)
・GPIO22(SDL)
が並んでいるのでこれをINA219に結線すればよい

INA219の各端子に2.54mmピッチのピンを立てる
都合の悪いことにSDAとSDLの位置が逆
今回は極細配線で強引にクロス接続した
(本当は中継基板を作ってそこでクロスさせた方が楽で賢い)

Vin+とVin-にアクセスしやすいように端子台とメス端子をハンダ付けして終了

INA219(4ピンオス)を上部端子(8ピンメス)に挿して運用すると事故原因になる
このためダミー4ピンオスを追加して8ピンオスとしている
(ダミーは結線せず、根本で切断)

結線:SDAとSDLのクロスが強引
結線:SDAとSDLをこね回した結果のコゲが痛ましい

作成方法(プログラミング)

INA219ブレイクアウトボードはArduino用ライブラリが存在
(Adafruit_INA219.h)
機種依存が無いためM5Stackでもそのまま流用できる
Adafruit社ページからDLしてArduinoライブラリにインポート
(あるいは『ライブラリ管理』から『INA219』で絞り込んで導入)

M5Stackの画面表示はサンプルスケッチ参照のこと

SDカードに吐き出す部分を作ればロガーになるがひとまず測定のみ実装
ピーク電流を比較・更新する以外はAPIの結果をそのまま表示しているだけ

測定回路のGNDをM5StackのGNDに接続する必要あり/写真の使い方では電圧測定値は無効
マルチメータで確認

2019年8月6日火曜日

気になる電子パーツのメモ(2019/08)

以下は最近気になった電子パーツのメモ

・REVIVE USB MICRO
 ビットトレードワン
REVIVE USBの新型
大幅に小型化&USBmicro端子に変更&安価に
コントローラー筐体により組み込みやすくなった
マイコン要らずでコントローラが作成可能(USBキーボード/マウス操作と等価)

・ESP-8285
 Espressif Systems
ESP8266の廉価小型化モデル
電源面でも優位でESP8266より電圧降下に強いとのこと
AliExpressあたりではアンテナ基板付きが2.0~1.5ドル程度
安い
画像は基板マウント版/コアは1円玉くらい

・M5StickC
  M5STACK
ここではVではなくCの方
ニューラルカメラ、音声認識がこのサイズこの価格で!とVは人気爆発中
入手が難しい状況に
なぜここでCか?というと値崩れの兆候があるため
AliExpressあたりでは付属品無し版が10ドル程度
Cは小型版M5Stackでありディスプレイサイズや拡張を求めなければ十分

処理性能は十分

 

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年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接続なので相応の反応速度