名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

RFIDタグからシリアル番号(UID)を取得する

RFIDを利用したおもちゃが増えてきて、おもちゃ病院にもそのようなおもちゃが持ち込まれるようになった。幸いにもリーダ部の故障には出会ったことが無いのだが、今のうちにRFIDの使い方を修得しておく必要がある。そこで、リーダ部を換装するためのプロトタイプを作ってみた。公開されているArduinoのスケッチを素に必要最小限の内容に絞ってPIC環境に移植した。猿真似で、独自の設計は行っていない。素人は無意味な創意工夫をしないで、猿真似に徹することが成功の秘訣だ。

現時点での到達点は、タグからシリアル番号(UID)を取得して外部へ表示するところまでだ。おもちゃ病院での修理は個々のおもちゃに特化した対応になるのでシリアル番号でタグが識別できれば十分だし、タグ内の情報をハンドリングするようなおもちゃは今のところは見受け無い。PIC電子オルゴールへの機能統合を考えて、嵩張らないように最小限の機能に止めておく。

アプリケーションは実際のおもちゃの要件に合わせて開発する必要がある。

【実行環境】
構成はPICマイコンとRFIDリーダライタモジュールだけだ。

この事例では、ターゲットは 16F1503 と 16F1705 で開発したが、SPIはソフト実装だしUARTもソフト実装可能なので、デジタルI/Oポートさえあればターゲットは何でもよい。但し、スタック2段ではダメだ。
RFIDタグからシリアル番号を取得する実行環境

RFIDリーダライタモジュールは RFID-RC522。
RFIDタグからシリアル番号を取得するリーダライタ
今回はSPIインタフェースの物を使った。I2Cインタフェースの物に比べて廉価なのと、Arduinoでの製作例がそれを使っていたので同じ環境にするのが無難だと思ったからだ。

【実行例】
リーダのアンテナから5cm以内にタグをかざすと自動的にシリアル番号を読み取り、その情報をシリアルポートから送信する。
シリアルの通信パラメータは、9600bps・パリティ無し、2ストップビット。
かざしたままにしても1回しか読まない。一旦離してから再度かざすと2回目を読み取る。
1件を 「タイプ-シリアル番号」 の形式で表示する。

以下はTeraTermで表示した例
RFIDタグからシリアル番号を取得するTera画面
タイプの 0x0400 は Mifare_One(S50)を示している。

【対応タグ】
RFID-RC522の石(MFRC522)はNXPなので、当然Mifareのみの対応だ。日本で広く普及しているFliCaには非対応。
MifareはFliCaより価格が安いので、おもちゃの修理にはMifareの方が向いている。
素のソースコードでは下記のタイプがサポートされているようだが、このプロトタイプで実機確認したのは Mifare_One(S50) と Mifare_UltraLight のみだ。それ以外のタグは持っていないので試験していない。
Mifare_UltraLight
Mifare_One(S50)
Mifare_One(S70)
Mifare_Pro(X)
Mifare_DESFire

【コスト】
RFIDリーダライタモジュールは@150円程度(AliExpress2018年2月)。これにはテスト用のタグとカードが1個ずつ付いている。

タグは@15円程度(AliExpress2018年2月)。おもちゃの換装にはシールタイプのタグが使いやすく、価格も安い。

制御用マイコンは、PIC16F1503T-I/SLの場合は@70円(秋月2018年2月)。

合わせると200円を超えてしまうのでおもちゃ修理にはまだ高価だが、価格は徐々に下がってきていて、今後の低価格化に期待する。

【商品ページ】
リーダライタモジュール
RFIDタグからシリアル番号を取得するRC522商品1
RFIDタグからシリアル番号を取得するRC522商品2

タグ
RFIDタグからシリアル番号を取得するRC522商品3RFIDタグからシリアル番号を取得するタグ商品

【ファームウェア】
開発したファームウェアと関連資料は ここから ダウンロードできる。
16F1503用のプロジェクトは MFRC522_SERIAL_1503.X
16F1705用のプロジェクトは MFRC522_SERIAL_1705.X
ピン割り当てはソースコード中のコメントを参照。
スポンサーサイト
  1. 2018/02/11(日) 21:06:27|
  2. 製作記事
  3. | コメント:0
<<「RFIDタグからシリアル番号(UID)を取得する」の改善 | ホーム | 2.4GHzラジコン用ファームウェアの開発(nRF24L01+) 続報>>

コメント

コメントの投稿


管理者にだけ表示を許可する

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

本ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

最新記事

最新コメント

月別アーカイブ

カテゴリ

おもちゃ病院 (7)
技術情報 (9)
修理事例 (141)
製作記事 (74)
ドクター研修会 (2)
PIC開発 (9)
未分類 (8)

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR