ArduinoでRFID
ストロベリーリナックスさんからRFIDリーダー,MOD-RFID125を 購入しました.http://strawberry-linux.com/catalog/items?code=15031
取りあえずつないでみると,HIDデバイスとして認識されました.
カードをかざすと横のLEDが赤く点灯してID読み込みます.
メモ帳を開いておくと,IDがテキストで入力+改行. キーボードと同様に動作するようです.
COMポートとしても使えると書いてるけど...と思って脇にあるスイッチを長押 ししてみたらドライバを要求してきました.
でダウンロードしたドライバを指定するとCOMポートとして認識されました. そこでターミナルソフトを開いてカードをかざすと先ほどと同じIDが表示され ました.
簡単に使えたのですが,おまけのカードのIDを読取るだけじゃ面白くないので, 他の使い方はできないかと思ってネットで検索してみたら...
案の定,Arduinoを使ったRFIDのエミュレーションをやってる人が いました.参考にして自分でもやって見たいと思います.
以下,動画とURL↓
http://www.youtube.com/watch?v=9bafX-_hKZY
http://www.instructables.com/id/Stupid-Simple-Arduino-LF-RFID-Tag-Spoofer/
コイルの巻き数はかなり適当です.30回くらい? トランジスタは2SC1815,抵抗10kΩ.コンデンサは0.01μF. ArduinoのGNDとD9に接続.
動画はこちら→ArduinoでRFID
うまくいったので,学生実験用にコイル巻き巻き. 線径0.35mmのUEWを35mmのスプレー缶に30回巻きで作りました.
最初のコイルだけちょっと径が違いますが,ブレッドボードの回路を1つだけ ユニバーサル基板にはんだ付けで作りました.
こんな感じになります.
その他の参考URL↓
http://www.rfid-handbook.de/rfid/types_of_rfid.html
Manchester code:
http://en.wikipedia.org/wiki/Manchester_code
Coil Calculator:
http://www.crystalradio.net/cal/indcal2.shtml
引き続き,RFIDに関する実験.
昨日はたまたま動いたので良かったのですが,適当に巻いたコイルとコンデンサの 共振周波数はどの位か調べてみました.以下のような回路を作りました.30回巻きのコイルとコンデンサの並列共振回路と直列に10kΩの抵抗を入れて 両端に正弦波を加えて,共振回路の両端の電圧を測ります.
周波数を変えていくと,約200kHzで共振して振幅最大値が得られました.
別に作った35回巻きでは約170kHzで共振したので,もう少し巻き数が大きい ほうが良かったようです.最適なのは40-50回巻きくらいだったでしょうか.
次に,カップリング,デカップリングの実験.
回路を追加しました↓
回路図↓
追加した回路のコイルを近づけるとカップリングにより電圧が増えます.
その状態でスイッチ短絡すると,デカップリングにより電圧が低下します.
RFID側でスイッチのON-OFFが起こることによりカップリング状態が変化 して,その変化を読取ればよいということらしいです.
その動画→ RFIDの原理に関する実験
電源供給するためにコイルの磁界を強くするには上記回路なら抵抗を小さくしない とならず,電流を流そうとするほど,カップリング状態の変化による電圧の変化は 小さくなります.
参考図書↓
【送料無料】よくわかるRFID
【送料無料】RFIDの現状と今後の動向
ESP32 Wifi Bluetooth開発ボード |
Arduino Nano Every |
Raspberry Pi pico |
FPGA XILINX Artix-7 |