NFC積木

NFC(Near-Field Communication),「近距離通訊」或是「近場通訊」,是一種通訊協定,讓二個裝置在相距幾公分之內進行訊息的交換。像悠遊卡、停車幣、捷運票卡硬幣、大樓進出磁扣等票卡,內部都有一個無電源的小晶片(RFID Tag),當這些票卡靠近NFC的讀卡機時,讀卡機會傳送電波給票卡讓晶片感應生電,晶片有了電力便可以傳送票卡內部儲存的資料給NFC讀卡機而達到通訊的目的。這些晶片都非常小,甚至可以做進貼紙裡,而且每個票卡的晶片都有一個不會和別人重覆的卡號。

如果將micro:bit接上NFC讀取器,便可以利用micro:bit讀取每個票卡的卡號,或是讀取以及寫入資料到晶片裡。在今天這個例子,我是使用DFRobot的「NFC Module for Arduino V1.0」這張卡當做是連接micro:bit的讀卡器,這個讀卡器和外界連接是使用UART界面,所以micro:bit可以用序列埠的方式和它連接。它還提供了3.3V以及5V的電壓可供選擇。https://wiki.dfrobot.com/NFC_Module_for_Arduino__SKU_DFR0231

DFRobot NFC Module

UART界面

今天設計的積木,先以讀出每個票卡的卡號為主,因為每個票卡的卡號都是獨一無二的,所以能讀出票卡卡號,就可以利用卡號來做各種控制的動作。因為RFID的晶片有很多不同的規格,目前我所設計的積木主要是讀取「NXP MIFARE Classic 1k」這種規格的晶片。積木安裝網址:https://github.com/lioujj/pxt-NFC

偵測RFID卡號

用不同的RFID卡控制自走車

積木使用範例1:讀取RFID晶片的卡號

積木使用範例2:利用感應到的不同卡號為依據來判斷該做什麼動作

偵測RFID的卡號,彈奏不同音階