2020年6月20日土曜日

ミニ四駆向けRFIDモジュールを探す

コースを走るミニ四駆をRFID(NFCタグ)で識別したい。って案件に向けての調査。

モジュール候補

余り手間を掛けたくないので市販モジュールを使ってやりたい。ぱっと入手性がよさそうなのは赤い色のPN532(aitendoで売ってる)のとamazonで沢山でてる青いRC522(ここが発祥?)RC522のほうが安いけど、基板設計の都合上電圧が3.3Vしか掛けられないが、PN532のモジュールのほうが5Vまで掛けられる都合上少し遠いタグでも反応する。具体的には手元の実験では3cm弱と5cmという差が見られた。

ミニ四駆は3レーンあるので、3つのモジュールを一つのマイコンに取り付けたい。候補としてはI2Cがこういう時は便利だが、PN532はチップレベルでI2Cアドレスが固定なので複数接続は不可能。RC522はチップ的には可能だが、出回っているモジュールは1番ピン(I2Cモード選択)がチップの裏で配線されているので、改造でI2Cモードにするのはかなり手間。

したがって、複数接続する場合は配線数が増えるもののSPI接続する事になる。なお価格差は300円程度なので、受信距離を重要視してPN532を選ぶか価格を重視してRC522を選ぶかといった所におちつくと思う。 

コイル検討

NFCの送受信コイルはこのモジュール上にパターンとして形成されているが、こいつだと走るミニ四駆は検知出来ない(実験済み)。 単純にコイルの上にタグがある時間が一定時間以上必要となる。モジュール上のコイルは2回巻きのコイルが2個直列に接続されている(+,GND,-に接続)。これをほどいて1回巻にしたコイルを作ってあげれば良い。

40mm角のコイルを2回巻きから1回巻にするとざっくり40x200弱mm位のコイルでちょうど良い。ちなみに、上の写真は実験した外付け基板コイル。

通過速度の検討

200mmのコイルを時速50km(確実にコースアウトするレベル爆速四駆)がはしると通過時間は約13ミリ秒。 

NFCタグは5ミリ秒での起動が規定されてるので、残り8ミリ秒がUUIDの読み取りに使える。読み取りに必要な時間は自信がないのだけれども、タグが一個しかなければ2ミリ秒程度でいけそう。 https://www.nxp.com/docs/en/data-sheet/MF0ICU1.pdf
さらに、読み取りコマンド発行のインターバルの問題がある。これはマイコン側の問題。arduinoで言えばタグ検知コマンドのloopに下手にdelay入れるとそのdelay中にミニ四駆が来ると取りこぼすので注意が必要。モニタへの文字列描画などのタイミングはちゃんと考えよう。

ちなみに二つのタグが反応するようなシーンだともっと検出時間がかかるが、そんなときはそもそも周回遅れが発生するほど遅いミニ四駆なので、読み取り時間的な余裕は相当あると考えられ、気にしない。