n_shinichi’s blog

日々の備忘録、 趣味のあれこれなど紹介 (すみません、メニュー、リンク、カテゴリー分けがうまくできてません、★記事一覧★で見てください...) NHK魔改造の夜ではDンソーのベテランアドバイザーってことで出ました♪

MENU

ESPNOW 正しいお作法で使わないと混信する?

ESPマイコンの無線通信ではよく使ってきたけど、正しく使ってはない。たぶん。

だいぶ前にサンプルかネットの参考コードのコピペ

 で普通に動いてたので普段は困ってない。

  中身は関心があまりなくてちゃんと見てない・・・それがいかんのだろうな。

 

で、決まって困るのがなんか大きなイベント会場。

  そこでのほぼお約束な不安定な通信、混信。

特におかしくなるのが例年、東京メイカフェア会場。

  後で自宅では正常・・・ってパターン。

 

ちゃんと?名前を検索上位?に表示されるようにつけないかんかなと思うけど

 ルールがよくわかってない。

自宅だと、BLEでスマホと繋ぐとき何気なく表示されてる名前を選択してるけど

 東京メイカフェアとかの会場だとな何十個も名前がそれも似た名前、
 M5xxxみたいなのいっぱい。スクロールして探すって感じになる。

 

自分の場合、ESPNOW通信利用で異常が多いのは

 スマホからM5sticKCなどでBLEを受けて・・・

   M5から、他のM5やESPマイコンにESPNOWで通信 してのRC,ラジコンもの。

 

こちらはブロードキャストが役に立ってる例

 1つの送信機で一斉に同じ動きをさせたり。。。

 ペンギン縄跳びでは7台のロボットを同時にシンクロみたいなのやったり。

n-shinichi.hatenablog.com

ESPNOWがお手軽なのでついつい手抜きで通信のところ使ってるのが

 いかんのだろうけど。

 

で、、、、今度の刈谷イカフェアで自分のマイクテック・トイチームで

 長机1本展示ブースとして使っていいよということなので

 何持って行こうかって考えててー 普段忘れてる、通信不良を思い出して

 Kariyaメイカフェアなら大して混信ないかもだけど対策案検討してる。

 

でもってあれ?って気付いたのがMACアドレス指定しCh指定もした、

2つのESPマイコン間でESPNOW通信してるとこへ他のESPマイコン

FF、ブロードキャストで送信すると割り込めてしまうこと。

 

実際にはESP-01Dで動くマイコンロボとM5StickCのペアを

 互いにMACアドレス指定で動くように準備してたら

まだMACアドレス指定する前のFFブロードキャストで設定したやつを

 調整してたらMACアドレス指定してるはずのロボが動き出した・・・

 それが最初の

 ESPNOW 正しいお作法で使わないと混信する? ってところ。

なんで???がしばらくいじっててもわからなかった。ので、、、

 調べるところのツボを間違えてるんだなきっと

 コールバックなんかちゃんとやってないから

 当たり前のことが起きてるだけなんだろうけど

 

 当たり前のこと・・・と言うか、

 データに互いの合言葉、識別子をペアごとに決めたことをちゃんと

 組み込むかなってとこ。

 

 シリアル通信モノは何がしかアドレス、IDみたいなので識別するけど

 ESPNOW、アドレス指定してるのにデータの中でまたアドレス?なんか変だけど。

 

で・・・・・大きな勘違いしてることがわかった

 MACアドレス指定 して通信してることで MACアドレスでフィルタされた

 データが来てるもんだと思い込んでた。

 やっぱり、、、というかコールバックでフィルタリングがいるもんらしい。

 

 twitterでもつぶやいたら LangShipのたなかまさゆきさんからも

  アドバイス頂いた。感謝!

   やっぱり自分でフィルタしないといかない。と。
  

 MACアドレス指定してもハードでフィルタしてくれない。

 コールバック関数の

   OnDataRecvでの割込みは、ばしばし勝手に掛かる・・・でよい?

     ・・・どうもそうらしい。

  MACアドレス指定すればその辺の負荷が減らせるもんだとばかり

  思ってた。 

 

  MACアドレスはチップ見てもわからんのでわざわざ調べるコード動かしたりで

  ひと手間掛けて 6バイトコード調べて・・・ってやってるのに。

 

 これだと自分ルールで6バイトの英数アスキーで識別名つけてる方法の方が

  わかりやすい。。。

 

MACアドレス指定でのうれしさがよくわからない。