'NFC'에 해당되는 글 1건

  1. 2011.05.17 RFID Starter Kit 플래시와 연동하기 (3)
손바닥컴퓨터들2011.05.17 16:01
로보밥 얼뚱. 연구소에서 또 한가지 재밌고도 쓸만한 물건을 입수했습니다.
바로 RFID 스타터 킷 입니다.



[사진1. RFID 테스트 - 다양한 태그들]



RFID는 이미 버스, 전철, 신용카드, 아파트 출입구, 직원카드, 화물추적, 도서관 책, 상품 인식 및 보안용 태그 등으로 엄청난 양이 사용되고 있습니다.  수십년전 부터 많이 사용되오던 바코드와 유사하게 특정 값을 기억하고 손쉽게 리더기로 그 값을 읽어들여 신분확인이나 제품의 종류를 확인하는데 사용되고 있는데요  바코드가 아직은 더 저렴하고 일반적이지만 기억용량, 읽고 쓸 수 있는 능력, 자체 전원으로 원거리 인식 기능 제공등의 특수한 기능에 더 특화되어 응용될 수 있다는 장점으로 인해서 점점 더 영역을 넓혀 가고 있습니다.  참고로 최근의 최신 스마트폰에 내장된 NFC(Near Field Communication)도 전자기 유도현상이나 전자파를 통한 근거리 통신기술을 응용한 것으로 RFID와 유사한 기술의 하나로 볼 수 있습니다.

RFID는  주파수, 통신방식, 자체전원 여부 등에 따라 여러가지가 있습니다.
본 글에서는 가장 손쉽게 응용할 수 있는 읽기전용 카드 태그와 리더기 및 PC인터페이스 보드가 함께 제공되는 RFID 스타터킷에 대해 소개해 드리고자 합니다.

RFID 스타터킷의 구성품은 아래와 같습니다.
 .RFID 리더 모듈
 .PC USB통신용 FTDI 인터페이스 보드
 .카드형 RFID Tag(125KHZ형 ) 2개  [제품링크]


[사진2. RFID 모듈 뒷 모습 - 안테나 내장 ]



[사진 3. RFID모듈과 PC 인터페이스용 FTDI 보드 ]

관련 제품 링크
 . 아트로봇 RFID Starter Kit
 . 스타터킷에서 미 제공되는 유리 캡슐형 RFID 태그( 스타터킷과 호환됨)
 . RFID 관련 상품 리스트


125KHZ형 RFID 태그와 리더기는 직원출입카드, 아파트 현관출입 카드 등으로 이미 많이 사용되고 있으므로 많은 경우 이미 보유하고 있는 카드를 그대로 이용하실 수 있습니다. 또한 RFID 리더 모듈은 안테나를 내장한 제품으로 아두이노 같은 손바닥 컴퓨터에 직접 연결하여 이동형 RFID리더 응용프로그램 개발이 가능하며, PC용 응용 프로그램을 제작할 때는 USB연결용 보드에 RFID 리더 모듈을 장착하면 PC측 USB포트에 연결하여 시리얼통신으로 RFID TAG의 코드를 인식하는 어플리케이션 개발도 가능하므로 활용성이 높습니다.


RFID 스타터킷 플래시 연동하기

플래시로 시리얼통신 장비와 연동을?

대부분의 시스템 프로그래밍 개발환경들은 시리얼 통신 제어가 가능하므로 RFID리더기로 부터 수신되는 데이타를 곧바로 처리할 수 있습니다. 하지만 아티스트 여러분들이 많이 사용하는 플래시는 아직 직접적인 시리얼통신을 할 수 없습니다.
때문에 시리얼통신을 플래시에서 지원되는 네트웍통신으로 중계해주는 프로그램을 사용해야 하는데요
가령 SerialProxy라는 프로그램이 있습니다.
본 글을 통해 실제 어떻게 프로그램들을 구성하는지와 네트웍 통신을 통해 수신되는 RFID 데이타를 어떻게 처리하여 응용할 수 있는지를 플래시용 예제 소스와 함께 소개해 드리고자 합니다.

일단, 예제 수행 동영상을 참고하시기 바랍니다.


[동영상1. 플래시 RFID 인식 시스템 구성 소개]


[동영상2. 플래시에서 RFID 인식하는 예제 수행]
태그 인식장면을 보기 쉽게 RFID리더를 모니터상단에 설치하였습니다.



RFID 스타터킷 + 플래시 인식 어플리케이션  준비 과정

1. RFID 설치
 RFID리더모듈을 PC연결용 보드에 장착후 USB케이블로 PC측에 연결해줍니다.
 이후, 운영체제가 장치를 인식하고 드라이버 자동설치를 시도하게 됩니다.
 운영체제에 따라 드라이버가 자동설치 될 수 도 있지만,
 자동인식이 안될 경우엔 FTDI 드라이버를 설치해 주시기 바랍니다.
 
 설치 완료후, 장치관리자>포트 리스트에서 해당 장치의 COM번호를 기억해 둡니다.
 
 간혹 케이블 연결 후 에도 장시간 아무런 반응이 없다고 문의주시는 분들이 있습니다.
 이경우, 케이블을 교체 후 연결해보시기 바랍니다.
 
2. SerialProxy 설치
시리얼프록시란 시리얼통신을 통한 데이타 입출력을 네트웍통신으로 중계해주는 프로그램입니다.

시리얼 통신만 가능한 장치도 이 프로그램을 이용하면 네트웍 통신이 가능해집니다.
반대로 네트웍통신만 지원하는 SW도 이 프로그램을 통해 시리엉 장치와 통신이 가능해집니다.
사람으로 치면 인터프리터(통역자) 정도 되는 녀석입니다.

다운로드하여 설치 후,
serproxy.cfg 파일을 수정하여 자신의 설정에 맞게 속도(9600), COM포트번호(가령 COM3)와 네트웍통신용 포트번호(가령 5331) 를 설정합니다.   또한가지 잊지말고  newlines_to_nils 가 false인지 확인해주시기 바랍니다.(false로 지정해야 불필요한 정보 전송이 안됩니다. true로 지정되면 플래시측 소스 수정요함)

 

설정파일 실제예

# Do not Transform newlines coming from the serial port into nils
newlines_to_nils=false

# Comm ports used
comm_ports=8

# Default settings
comm_baud=9600 
comm_databits=8
comm_stopbits=1
comm_parity=none
# Idle time out in seconds
timeout=300

# Settings for COM
net_port8=5331

 


 
 
3. 플래시 소스 수정하기
 플래시측 소스에서 SerialProxy와 통신을 위한 포트번호(가령 5331)를 확인하고 필요시 수정합니다.

4. SerialProxy 실행하기

5. 플래시 실행하기



RFID 내부 살펴보기

본 예제에서 사용된 태그의 경우 리더기로 값을 읽으면 태그 ID와 관련된 정보들이 Ascii코드로 시리얼 통신으로 전달됩니다.
아래와 같은 리더기 데이타 시트 정보를 참고하시면 해당 바이트의 의미를 파악할 수 있습니다.


[그림1. RFID리더기 데이타 출력 포멧 - 데이타 시트 참고 ]

 

리더기의 기본 출력 모드는 ASCII 코드 방식입니다.
가령 리더기에 태그를 인식시킬 때 마다 아래와 같이 16바이트 정보가 읽혀집니다.

02 34 35 30 30 42 38 45 45 43 42 44 38 0D 0A 03    //모두 16진수로 표기된 값입니다.

(위 정보는 시리얼 터미널 프로그램에서 시리얼 수신값을 16진수로 표시하면 볼 수 있으며,
아두이노 시리얼 모니터창으로 볼 경우 ASCII코드값으로 해석되어 다르게 출력되며 일부 문자가 깨져보이게 됩니다.)

16바이트의 정보는 각각 아래와 같이 해석할 수 있습니다.

0x02 // 1바이트 태그 정보의 시작을 알려주는 표시값 입니다.
0x34 // 10바이트 ASCII코드값의 시작
~     // 이 값들이 RFID의 고유 ID값 입니다.)
0x42 // 10바이트 ASCII코드값의 끝
0x44, 0x38  // 10바이트 id값의 2바이트 체크섬 (오류검사용, 보통 무시하거나 RFID ID값의 일부로 봐도 됩니다.)
0x0D // CR 캐리지리턴 (줄넘김 명령에 해당하는 ASCII 코드값)
0x0A // LF 라인피드(줄넘김 명령에 해당하는 ASCII 코드값)
0x03 // 태그 정보의 끝을 알려주는 표시값

위 정보를 시작 및 종료코드와 CR,LF 를 제외하고 ASCII코드로 표시하면 아래와 같습니다.

4500B8EECBD8

체크섬(D8)값을 제외하면 실질적인 태그의 고유 ID는 아래와 같이 표시 할 수 있습니다.

4500B8EECB
// ID값은 ASCII코드 중 숫자와 알파벳으로 표현 가능한 값으로 구성됩니다.


[그림2. 태그의 고유값 태그ID]



RFID 시스템에서는 위 ID값을 특정 사람이나 물건의 고유 ID값으로 설정해두고 리더기에서 위의 ID를 발견시 해당 사람이나 물건이 감지되었다고 인식하게 되는 것 입니다.

위의 플래시 예제에서도 미리 등록된 ID와 일치하는 경우 해당 이미지를 화면에 출력하였습니다. 만일 출입문에 응용된다면 출구를 열어주면되고, 도서관에서 도서대출시스템에 이용한다면 해당 ID의 책을 대출 처리하면 되는겁니다. 즉, 실제 응용방법은 바코드와 동일합니다.

본 스타터킷에서 사용되는 리더기와 태그는 태그의 ID값을 읽기만 가능하고 태그 ID는 미리 고정된 값으로 등록되어 있으므로 태그를 재프로그래밍할 필요가 없고 단순히 미리 지정된 태그값을 읽어서 일치하는 경우에 해당 업무를 수행하면 되므로 비교적 손쉽게 응용이 가능한 제품입니다.

스타터킷으로 손쉽게 다양한 RFID응용프로그램 개발을 경험해 보신 후, 좀더 본격적이고 복잡한 어플리케이션을 개발하실 경우 쓰기 지원 RFID시스템도 고려해 보시기 바랍니다.  추후 소개해 드릴 다른 종류의 RFID 모듈과 TAG의 경우 1KByte의 데이타를 태그에서 읽는 것은 물론이고 쓰기까지 가능한 제품도 있습니다.


 [사진4. 카드형 RFID Tag ]


[사진5. 유리캡슐형 RFID태크 - 동물의 체내 삽입용과 유사한 제품 ]
사람 몸에 넣으면 안되요;;


예제에서 사용된 플래시 소스를 첨부합니다. 

저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요

  1. seonah0221

    제가 졸업작품으로 이번에 RFID를 사용하려고 하는데, 설명 중간에 나와있는 SerialProxy는 어디서 다운받을 수 있나요? 그리고 혹시 RFID 태그를 접촉시켰을때 다른 플래시 파일이 실행되도록 하는 것도 가능한지요?

    2011.05.25 07:22 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 찾아보시면 다운로드 페이지는 여러곳에 있습니다. 가령 아래의 링크도 있으니 참고하세용
    http://webzone.k3.mah.se/projects/arduino-workshop/upload/default.asp?folder=20

    헌데, 정작 시리얼프록시 공식배포 링크는 이상하게 안보이네요;;; 좀더 최신버전이나 기능보강 버전도 찾으시면 있습니다. 하지만 위 버전으로 문제없이 사용하고 있습니다.

    참고로, 시리얼 COM번호가 9번인가 10번인가부터 연동이 안되는 문제가 있는것 같습니다.
    이럴 경우 해당 장치의 COM번호를 다른 앞번호로 수정해주시면 됩니다.

    그리고, 플래시 실행중에 다른 플래시를 load하거나 재생/정지 하는 기능은 플래시의 기본기능이므로
    RFID와은 무관하게 가능하겠죠.. 어떤 다른 의미의 실행을 말씀하시는것일지도 모르겠네요...

    참고하세요~

    2011.05.25 22:45 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 고등학교 1학년

    안녕하세요. 저희는 학교에서 자율연구 주제로 RFID 에 관련해서 탐구를 하고 있는 고등학교 1학년 학생들입니다. RFID 에대해서 이번에 처음 알게되어 사실 많이 어렵게 느껴지고 있습니다. 저희의 정확한 주제는 '자기장의 변화가 RFID 회로에 미치는 영향' 인데, 자기장의 영향에 관해서 실험 도중, RFID 카드 위에 작은 네오디늄 자석을 올려놓아보았습니다. 모든 위치에서 똑같이 발생하는 것은 아니었으나 어느 특정 위치에 자석이 가게 되면 고유 인식 번호가 달라지는 모습을 볼 수 있었습니다.
    모든 카드마다 고유 번호가 있다고 알고 있는데, 고유 번호가 자기장의 변화로 달라지는 것에 대해 의문을 가지게 되었습니다. 혹시 관심이 있으시다면, 아니면 이에 대해 도움을 주실 수 있으시다면 ksw05088@outlook.com으로 메일을 보내주셨으면 좋겠습니다.....부탁드립니다.

    저희는 RFID 카드안에 내장된 IC 칩 바로 위에 자석이 올려졌을 때, 고유 번호가 달라지는 것인지, 아니면 단지 코일 위에 올려졌을 때 달라지는 것인지가 궁금합니다. 또한 RFID 리더기 자체에 변화가 생겨서 고유번호가 다르게 인식되는 것인지도 궁금합니다ㅠㅠ혹시 도움을 주실 수 있으시다면 꼭, 연락 주셨으면 좋겠어요

    2014.09.16 23:21 신고 [ ADDR : EDIT/ DEL : REPLY ]