Archive

Posts Tagged ‘rfid’

Bus Pirate test

March 20th, 2011 No comments

Neko noč (neprespan) sem naročil novo igračko, ki nosi ime Bus Pirate, in predstavla povezljivost med računalnikom (USB) in kar precej drugimi protokoli (1-Wire, UART, I2C, SPI, JTAG, raw 2-wire, raw 3-wire, HD44780 LCDs, MIDI)

Ploščica, z kablom škatlico in poštnino, stane cca 30eur pri seeedstudiu.

Za prvi test sem uporabil RFID bralec (125kHz, link), ki podatke pošilja prek UART-a. Povezal sem RX in TX pine, ter napajanje (+5V) 1

Bus Pirate se (po povezavi z USB kablom) računalniku pokaže kot serijski vmesnik, v mojem primeru na /dev/ttyUSB0. Po odprtju porta (screen /dev/ttyUSB0 115200), in nekah pritiskih na tipko Enter, vidimo ukazno vrstico:

HiZ>

ki nam omogoča upravljanje z napravo. Ukazni način, čeprav morda malo neudoben, naredi napravo precej enostavno za uporabo. Če pritisnemo '?' in tipko enter, dobimo pomoč:

General                                 Protocol interaction
---------------------------------------------------------------------------
?       This help                       (0)     List current macros
=X/|X   Converts X/reverse X            (x)     Macro x
~       Selftest                        [       Start
#       Reset                           ]       Stop
$       Jump to bootloader              {       Start with read
&/%     Delay 1 us/ms                   }       Stop
a/A/@   AUXPIN (low/HI/READ)            "abc"   Send string
b       Set baudrate                    123
c/C     AUX assignment (aux/CS)         0x123
d/D     Measure ADC (once/CONT.)        0b110   Send value
f       Measure frequency               r       Read
g/S     Generate PWM/Servo              /       CLK hi
h       Commandhistory                  \       CLK lo
i       Versioninfo/statusinfo          ^       CLK tick
l/L     Bitorder (msb/LSB)              -       DAT hi
m       Change mode                     _       DAT lo
o       Set output type                 .       DAT read
p/P     Pullup resistors (off/ON)       !       Bit read
s       Script engine                   :       Repeat e.g. r:10
v       Show volts/states               .       Bits to read/write e.g. 0x55.2
w/W     PSU (off/ON)            //<0>   Usermacro x/assign x/list all

Prvo vključimo napajanje (W), in s tipko 'm', izberemo 3 (UART), 5 (9600), in ostale nastavitve pustimo na privzetih:

HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)

(1)>3
Set serial port speed: (bps)
 1. 300
 2. 1200
 3. 2400
 4. 4800
 5. 9600
 6. 19200
 7. 38400
 8. 57600
 9. 115200
10. BRG raw value

(1)>5
Data bits and parity:
 1. 8, NONE *default
 2. 8, EVEN
 3. 8, ODD
 4. 9, NONE
(1)>
Stop bits:
 1. 1 *default
 2. 2
(1)>
Receive polarity:
 1. Idle 1 *default
 2. Idle 0
(1)>
Select output type:
 1. Open drain (H=Hi-Z, L=GND)
 2. Normal (H=3.3V, L=GND)

(1)>
Ready
UART>

Podobno lahko nastavimo katerikoli drugi protokol (seveda nastavitve, ki jih protokol podpira). Sedaj pritisnemo tipko '{', ki začne z branjem, in čitalcu približamo kartico.

UART>
READ: 0x02
READ: 0x30
READ: 0x38
READ: 0x30
READ: 0x30
READ: 0x44
READ: 0x42
READ: 0x35
READ: 0x44
READ: 0x46
READ: 0x34
READ: 0x37
READ: 0x41
READ: 0x03
UART>

Tako vidimo na kartici zapisano kodo, ki jo čitalec pošlje.  Če bi namesto rfid čitalca uporabil napravo ki tudi kaj 'posluša', bi ji lahko pošiljal poljubne podatke.

Zanimiv feature je tudi preverjanje napetosti na pinih:

Pinstates:
1.(BR)  2.(RD)  3.(OR)  4.(YW)  5.(GN)  6.(BL)  7.(PU)  8.(GR)  9.(WT)  0.(Blk)
GND     3.3V    5.0V    ADC     VPU     AUX     -       TxD     -       RxD
P       P       P       I       I       I       I       I       I       I
GND     3.31V   5.15V   0.00V   0.00V   L       L       H       L       H

 

 

Naslednja stvar (tj. eden izmed mnogih TODO-jev) je stestirati SPI na smart kartici!

  1. Pinouti so v datasheetih

Nov projekt - OTK2 - RFID, ethernet, Arduino

April 7th, 2009 No comments

Že spet se na faksu začenja sezona projektov, in pri OTK2, se bom tokrat poigral z RFID italnikom, arduinom, in ethernet shieldom, in končni produkt, naj bi bil sistem za "štemplanje1"

Celotna zadeva bo potekala približno takole:

  • Uporabnik približa svojo kartico/tag rfid readerju2, ki odčita podatke s taga
  • Podatki grejo v arduina in  se rahlo obdelajo
  • Arduino te predelane podatke prek navadnega ethernet omrežja pošlje oddaljenemu računalniku
  • Računalnik prejete podatke shrani v obdelavi-prijazno obliko

Potrudil se bom tudu narediti zadevo razširljivo (torej, da bi bilo teoretično mogoče priključiti več mikrokrmilnikov z čitalci, ki bi vsi skupaj delali z enim strežnikom). Kako bom shranjeval podatke, še ne vem... mogoče zavoljo enostavnosti kar v CSV file, mogoče pa kar v (MySQL) bazo. Zanimivo bi bilo tudi vodenje evidence ur, kdaj, kdo, in koliko ur je bil notri, ter mogoče tudi 'plačilo' teh ur glede na čas dela3.
Najtežji del bo pa najbrž teoretični, kjer bo treba spraskat skupi ene 6,7 strani teksta za dopolnilo k praktičnemu izdelku.

  1. Ja, žal ne vem boljše besede za tisto početje zjutraj ko greš v službo, in popoldne ko greš domov
  2. glej par postov nazaj
  3. torej, nočno delo jbi bilo plačano več kot tisto podnevi, ipd.

RFID

March 19th, 2009 5 comments

Ravnokar sem dobil rfid reader in 5 tagov (trije obeski in dve kartice).  Zadeva je precej majhna, potrebuje pa 5v napajanja, podatke pa oddaja prek serijskega uart protokola (ki je, za razliko od weigand-a, zelo enostaven za uporabo).  Tag zazna na razdaji cca 10cm, in mcu-ju pošlje 10bitni podatek s kartice (torej ID) in checksum (ki se ga da preračunati s pomočjo 4ih XOR-ov).

Slikica: (za primerjavo velikosti je vse skupaj na breadboardu.

rfid reader in tagi

rfid reader in tagi

Cena? prava sitnica! 12.5usd za reader, in 2.5usd za tage!

Zdj pa sam še sprogramirat neko 'bazo', ki bo preverjala validnost, in spravt gor kak motorček, ki bo odklepal ključavnico :)

Categories: elektro stuff, geek stuff Tags: ,