- தேவையான கூறுகள்
- சுற்று வரைபடம் மற்றும் விளக்கம்
- பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் கைரேகை சென்சாரின் செயல்பாடு
- நிரலாக்க விளக்கம்
சில ஆண்டுகளுக்கு முன்பு அறிவியல் புனைகதை திரைப்படங்களில் நாங்கள் பயன்படுத்திய ஃபிங்கர் பிரிண்ட் சென்சார், பல்வேறு நோக்கங்களுக்காக ஒரு நபரின் அடையாளத்தை சரிபார்க்க இப்போது மிகவும் பொதுவானதாகிவிட்டது. தற்போதைய நேரத்தில், நம் அன்றாட வாழ்க்கையில் எல்லா இடங்களிலும் கைரேகை அடிப்படையிலான அமைப்புகளைக் காணலாம், இது அலுவலகங்களில் வருகை, வங்கிகளில் பணியாளர் சரிபார்ப்பு, பணத்தை திரும்பப் பெறுதல் அல்லது ஏடிஎம்களில் வைப்பு செய்தல், அரசு அலுவலகங்களில் அடையாள சரிபார்ப்பு போன்றவை. நாங்கள் இதை ஏற்கனவே அர்டுயினோ மற்றும் ராஸ்பெர்ரி பை உடன், இன்று நாம் பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் விரல் அச்சு சென்சார் இடைமுகப்படுத்தப் போகிறோம். இந்த PIC மைக்ரோகண்ட்ரோலர் PIC16f877A விரல் அச்சு முறையைப் பயன்படுத்தி, கணினியில் புதிய கைரேகைகளை நாம் பதிவு செய்யலாம் மற்றும் ஏற்கனவே உணவளிக்கப்பட்ட கைரேகைகளை நீக்க முடியும். கணினியின் முழுமையான வேலை வீடியோவில் காட்டப்பட்டுள்ளது கட்டுரையின் முடிவில் கொடுக்கப்பட்டுள்ளது.
தேவையான கூறுகள்
- PIC16f877A மைக்ரோகண்ட்ரோலர்
- கைரேகை தொகுதி
- பொத்தான்கள் அல்லது விசைப்பலகையை அழுத்தவும்
- 16x2 எல்சிடி
- 10 கே பானை
- 18.432000 மெகா ஹெர்ட்ஸ் கிரிஸ்டல் ஆஸிலேட்டர்
- ரொட்டி வாரியம் அல்லது பிசிபி (JLCPCB இலிருந்து உத்தரவிடப்பட்டது)
- ஜம்பர் கம்பிகள்
- எல்.ஈ.டி (விரும்பினால்)
- மின்தடை 150 ஓம் -1 கே ஓம் (விரும்பினால்)
- 5 வி மின்சாரம்

சுற்று வரைபடம் மற்றும் விளக்கம்
இந்த பி.ஐ.சி மைக்ரோகண்ட்ரோலர் ஃபிங்கர் பிரிண்ட் சென்சார் இடைமுகத் திட்டத்தில், நாங்கள் 4 புஷ் பொத்தான்களைப் பயன்படுத்தினோம்: இந்த பொத்தான்கள் மல்டிஃபங்க்ஷன் செய்ய பயன்படுத்தப்படுகின்றன. கைரேகை கணினியில் கைரேகையை சேமிக்கும்போது அல்லது நீக்கும்போது கைரேகை ஐடி மற்றும் கைரேகை ஐடியை அதிகரிக்க கீ 1 பயன்படுத்தப்படுகிறது. புதிய கைரேகையை பதிவுசெய்வதற்கும், கைரேகை ஐடியைக் குறைப்பதற்கும் விசை 2 பயன்படுத்தப்படுகிறது. கணினியிலிருந்து சேமிக்கப்பட்ட விரலை நீக்க விசை 3 பயன்படுத்தப்படுகிறது மற்றும் விசை 4 சரிக்கு பயன்படுத்தப்படுகிறது. ஒரு எல்.ஈ.டி. கைரேகை கண்டறியப்பட்டது அல்லது பொருந்துகிறது என்பதற்கான அறிகுறிக்கு பயன்படுத்தப்படுகிறது. இங்கே நாம் UART இல் வேலை செய்யும் கைரேகை தொகுதியைப் பயன்படுத்தினோம். எனவே இங்கே இந்த கைரேகை தொகுதியை பிஐசி மைக்ரோகண்ட்ரோலருடன் அதன் இயல்புநிலை பாட் விகிதத்தில் 57600 ஆக இணைத்துள்ளோம்.

எனவே, முதலில், கீழே உள்ள சுற்று வரைபடத்தில் காட்டப்பட்டுள்ளபடி தேவையான அனைத்து இணைப்பையும் நாம் செய்ய வேண்டும். இணைப்புகள் எளிமையானவை, கைரேகை தொகுதியை PIC மைக்ரோகண்ட்ரோலரின் UART உடன் இணைத்துள்ளோம். அனைத்து செய்திகளையும் காண்பிக்க 16x2 எல்சிடி பயன்படுத்தப்படுகிறது. எல்.சி.டி உடன் ஒரு 10 கே பானை பயன்படுத்தப்படுகிறது. 16x2 எல்சிடி தரவு ஊசிகளும் இணைக்கப்பட்டுள்ளன PORTA ஊசிகளும். எல்.சி.டி யின் டி 4, டி 5, டி 6 மற்றும் டி 7 பின்ஸ் முறையே பிஐசி மைக்ரோகண்ட்ரோலரின் பின் ஆர்ஏ 0, ஆர்ஏ 1, ஆர்ஏ 2 மற்றும் ஆர்ஏ 3 உடன் இணைக்கப்பட்டுள்ளன. நான்கு புஷ் பொத்தான்கள் (அல்லது கீபேட்) PORTD இன் பின் RD0, RD1, RD2 மற்றும் RD உடன் இணைக்கப்பட்டுள்ளது. போர்ட் PORTC இன் முள் RC3 இல் எல்இடி இணைக்கப்பட்டுள்ளது. மைக்ரோகண்ட்ரோலரைக் கடிகாரம் செய்ய 18.432000 மெகா ஹெர்ட்ஸ் வெளிப்புற படிக ஆஸிலேட்டரைப் பயன்படுத்தினோம்.

பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் கைரேகை சென்சாரின் செயல்பாடு
இந்த திட்டத்தின் செயல்பாடு எளிதானது, மூல குறியீட்டிலிருந்து உருவாக்கப்பட்ட ஹெக்ஸ் கோப்பை PIC புரோகிராமர் அல்லது பர்னர் (PIckit2 அல்லது Pickit3 அல்லது பிறர்) உதவியுடன் PIC மைக்ரோகண்ட்ரோலரில் பதிவேற்றவும், பின்னர் நீங்கள் எல்சிடி வழியாக சில அறிமுக செய்திகளைக் காண்பீர்கள், பின்னர் பயனர் செயல்பாடுகளுக்கான தேர்வை உள்ளிடுமாறு கேட்கப்படும். கைரேகை பொருத்த பயனரை விசை 1 ஐ அழுத்த வேண்டும், பின்னர் எல்சிடி விரல் அச்சு சென்சாரில் இடம் விரலைக் கேட்கும். இப்போது கைரேகை தொகுதிக்கு மேல் ஒரு விரலை வைப்பதன் மூலம், எங்கள் கைரேகைகள் ஏற்கனவே சேமிக்கப்பட்டுள்ளதா இல்லையா என்பதை சரிபார்க்கலாம். உங்கள் கைரேகை சேமிக்கப்பட்டிருந்தால், எல்சிடி கைரேகை போன்ற ' ஐடி: 2' ஐ சேமிக்கும் ஐடியுடன் செய்தியைக் காண்பிக்கும், இல்லையெனில் அது 'கிடைக்கவில்லை' என்பதைக் காண்பிக்கும் .
இப்போது ஒரு விரல் அச்சிடலை பதிவு செய்ய , பயனர் பதிவு பொத்தானை அல்லது விசை 2 ஐ அழுத்தி எல்சிடி திரையில் உள்ள வழிமுறைகளை பின்பற்ற வேண்டும்.
பயனர் ஏதேனும் கைரேகைகளை நீக்க விரும்பினால், பயனர் நீக்கு பொத்தானை அல்லது விசையை அழுத்த வேண்டும் . அதன் பிறகு, எல்சிடி நீக்க வேண்டிய கைரேகையின் ஐடியைக் கேட்கும். இப்போது அதிகரிப்பு மற்றும் குறைப்புக்கு அதிகரிப்பு புஷ் பொத்தான் அல்லது விசை 1 (மேட்ச் புஷ் பொத்தான் அல்லது கீ 1) மற்றும் குறைப்பு புஷ் பொத்தான் அல்லது கீ 2 (புஷ் பொத்தான் அல்லது கீ 2 ஐ பதிவுசெய்க) பயன்படுத்துவதன் மூலம், பயனர் சேமித்த விரல் அச்சின் ஐடியைத் தேர்ந்தெடுத்து சரி என்பதை அழுத்தவும் அந்த கைரேகையை நீக்க பொத்தானை அழுத்தவும். மேலும் புரிந்துகொள்ள திட்டத்தின் முடிவில் கொடுக்கப்பட்ட வீடியோவைப் பாருங்கள்.

கைரேகை இடைமுக குறிப்பு: இந்த திட்டத்தின் திட்டம் ஒரு தொடக்கக்காரருக்கு சற்று சிக்கலானது. ஆனால் r305 கைரேகை தொகுதி தரவுத்தாள் படிப்பைப் பயன்படுத்தி அதன் எளிய இடைமுகக் குறியீடு. இந்த கைரேகை தொகுதியின் செயல்பாட்டின் அனைத்து வழிமுறைகளும் தரவுத்தாள் கொடுக்கப்பட்டுள்ளன.
கைரேகை தொகுதிடன் பேச இங்கே ஒரு சட்ட வடிவமைப்பைப் பயன்படுத்தினோம். கைரேகை தொகுதிக்கு நாங்கள் ஒரு கட்டளை அல்லது தரவு கோரிக்கை சட்டத்தை அனுப்பும்போதெல்லாம், அது தரவு அல்லது பயன்பாட்டு கட்டளை தொடர்பான தகவல்களைக் கொண்ட அதே சட்ட வடிவத்துடன் பதிலளிக்கிறது. தரவு மற்றும் கட்டளை சட்ட வடிவம் அனைத்தும் பயனர் கையேட்டில் அல்லது R305 கைரேகை தொகுதியின் தரவுத்தாள் வழங்கப்பட்டுள்ளது.
நிரலாக்க விளக்கம்
நிரலாக்கத்தில், கீழே உள்ள சட்ட வடிவமைப்பைப் பயன்படுத்தினோம்.

எல்.சி.டி, பொத்தான்கள் மற்றும் எல்.ஈ.டி க்கான உள்ளமைவு பிட்களை அமைப்பதன் மூலமும் மேக்ரோக்கள் மற்றும் ஊசிகளை வரையறுப்பதன் மூலமும் நாங்கள் திட்டத்தைத் தொடங்குகிறோம், இந்த திட்டத்தின் முடிவில் கொடுக்கப்பட்ட முழுமையான குறியீட்டை நீங்கள் சரிபார்க்கலாம். நீங்கள் PIC மைக்ரோகண்ட்ரோலருக்கு புதியவர் என்றால், PIC மைக்ரோகண்ட்ரோலர் திட்டத்துடன் தொடங்குவதைத் தொடங்குங்கள்.
பின்னர் நாங்கள் சில மாறி மற்றும் வரிசைகளை அறிவித்து துவக்கினோம் , மேலும் பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் கைரேகை தொகுதியை இடைமுகப்படுத்த இந்த திட்டத்தில் நாம் பயன்படுத்த வேண்டிய ஒரு சட்டத்தை உருவாக்கினோம்.
uchar buf; uchar buf1; ஆவியாகும் uint index = 0; ஆவியாகும் எண்ணுக் கொடி = 0; uint msCount = 0; uint g_timerflag = 1; ஆவியாகும் uint எண்ணிக்கை = 0; uchar தரவு; uint id = 1; enum { CMD, DATA, SBIT_CREN = 4, SBIT_TXEN, SBIT_SPEN, }; const char passPack = x 0xEF, 0x1, 0xFF, 0xFF, 0xFF, 0xFF, 0x1, 0x0, 0x7, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1B}; const char f_detect = {0xEF, 0x1, 0xFF, 0xFF, 0xFF, 0xFF, 0x1, 0x0, 0x3, 0x1, 0x0, 0x5}; const char f_imz2ch1 = {0xEF, 0x1, 0xFF, 0xFF, 0xFF, 0xFF, 0x1, 0x0, 0x4, 0x2, 0x1, 0x0, 0x8}; const char f_imz2ch2 = {0xEF, 0x1, 0xFF, 0xFF, 0xFF, 0xFF, 0x1, 0x0, 0x4, 0x2, 0x2, 0x0, 0x9}; const char f_createModel = x 0xEF, 0x1,0xFF, 0xFF, 0xFF, 0xFF, 0x1,0x0,0x3,0x5,0x0,0x9}; char f_storeModel = x 0xEF, 0x1,0xFF, 0xFF, 0xFF, 0xFF, 0x1,0x0,0x6,0x6,0x1,0x0,0x1,0x0,0xE}; const char f_search = {0xEF, 0x1, 0xFF, 0xFF, 0xFF, 0xFF, 0x1, 0x0, 0x8, 0x1B, 0x1, 0x0, 0x0, 0x0, 0xA3, 0x0, 0xC8}; char f_delete = x 0xEF, 0x1,0xFF, 0xFF, 0xFF, 0xFF, 0x1,0x0,0x7,0xC, 0x0,0x0,0x0,0x1,0x0,0x15};
அதன் பிறகு, எல்சிடியை இயக்க எல்சிடி செயல்பாட்டை உருவாக்கியுள்ளோம்.
void lcdwrite (uchar ch, uchar rw) { LCDPORT = ch >> 4 & 0x0F; RS = rw; EN = 1; __ தாமத_எம்எஸ் (5); EN = 0; LCDPORT = ch & 0x0F; EN = 1; __ தாமத_எம்எஸ் (5); EN = 0; } Lcdprint (char * str) { போது (* str) { lcdwrite (* str ++, DATA); // __ தாமதம்_எம்எஸ் (20); } } lcdbegin () { uchar lcdcmd = {0x02,0x28,0x0E, 0x06,0x01}; uint i = 0; (i = 0; i <5; i ++) lcdwrite (lcdcmd, CMD); }
கொடுக்கப்பட்ட செயல்பாடு UART ஐ துவக்க பயன்படுத்தப்படுகிறது
void serialbegin (uint baudrate) { SPBRG = (18432000UL / (நீண்ட) (64UL * baudrate)) - 1; // பாட் வீதம் @ 18.432000 மெகா ஹெர்ட்ஸ் கடிகாரம் TXSTAbits.SYNC = 0; // ஒத்திசைவற்ற பயன்முறையை அமைத்தல், அதாவது UART RCSTAbits.SPEN = 1; // சீரியல் போர்ட் TRISC7 = 1 ஐ இயக்குகிறது ; // தரவுத்தாள் TRISC6 = 0 இல் பரிந்துரைக்கப்பட்டுள்ளபடி ; // தரவுத்தாள் RCSTAbits இல் பரிந்துரைக்கப்பட்டுள்ளபடி. CREN = 1; // தொடர்ச்சியான வரவேற்பை இயக்குகிறது TXSTAbits.TXEN = 1; // டிரான்ஸ்மிஷன் GIE = 1 ஐ இயக்குகிறது ; // இயக்கக்கூடிய குறுக்கீடுகள் INTCONbits.PEIE = 1; // புற குறுக்கீடுகளை இயக்கு. PIE1bits.RCIE = 1; // செயல்படுத்தக்கூடிய USART குறுக்கீடு PIE1bits ஐப் பெறுகிறது. TXIE = 0; // USART TX குறுக்கீடு PIR1bits ஐ முடக்கு. RCIF = 0; }
கைரேகை தொகுதிக்கு கட்டளைகளை மாற்றுவதற்கும் கைரேகை தொகுதியிலிருந்து தரவைப் பெறுவதற்கும் கொடுக்கப்பட்ட செயல்பாடுகள் பயன்படுத்தப்படுகின்றன.
வெற்றிட சீரியல்ரைட் (கரி சி) { போது (TXIF == 0); // டிரான்ஸ்மிட்டர் பதிவு காலியாக இருக்கும் வரை காத்திருங்கள் TXIF = 0; // டிரான்ஸ்மிட்டர் கொடியை அழி TXREG = ch; // பரிமாற்றும் reg; ஒரு அனுப்பிப் பெறுவதற்கான எரிப்பதை ஏற்ற } serialprint (எரிப்பதை * str) { போது (* str,) { serialwrite (* str, ++); } } வெற்றிடத்தை குறுக்கீட்டு SerialRxPinInterrupt (வெற்றிடத்தை) { என்றால் ((PIR1bits.RCIF == 1) && (PIE1bits.RCIE == 1)) { Uchar சாப்டர் = RCREG; buf = ch; if (குறியீட்டு> 0) கொடி = 1; ஆர்.சி.ஐ.எஃப் = 0; // தெளிவான rx கொடி } } வெற்றிட சீரியல் ஃப்ளஷ் () { (int i = 0; i
அதற்குப் பிறகு கைரேகைக்கு அனுப்பப்பட வேண்டிய தரவைத் தயாரிக்கும் மற்றும் கைரேகை தொகுதியிலிருந்து வரும் தரவை டிகோட் செய்யும் ஒரு செயல்பாட்டை நாம் செய்ய வேண்டும்.
int sendcmd2fp (char * pack, int len) { uint res = ERROR; சீரியல் ஃப்ளஷ் (); குறியீட்டு = 0; __ தாமத_எம்எஸ் (100); for (int i = 0; i
இப்போது, நான்கு வெவ்வேறு பணிகளுக்கு குறியீட்டில் நான்கு செயல்பாடு கிடைக்கிறது:
- கைரேகை ஐடியை உள்ளிடுவதற்கான செயல்பாடு - அலகு getId ()
- பொருந்தும் விரலுக்கான செயல்பாடு - வெற்றிட மேட்ச்ஃபிங்கர் ()
- புதிய விரலைச் சேர்ப்பதற்கான செயல்பாடு - வெற்றிட என்ரோல்ஃபிங்கர் ()
- ஒரு விரலை நீக்குவதற்கான செயல்பாடு - வெற்றிட நீக்குதல் விரல் ()
நான்கு செயல்பாடுகளையும் கொண்ட முழுமையான குறியீடு இறுதியில் கொடுக்கப்பட்டுள்ளது.
இப்போது முக்கிய செயல்பாட்டில், நாங்கள் GPIO கள், LCD, UART ஐ துவக்கி, கைரேகை தொகுதி ஒரு மைக்ரோகண்ட்ரோலருடன் இணைக்கப்பட்டுள்ளதா இல்லையா என்பதை சரிபார்க்கிறோம். பின்னர் இது எல்சிடி வழியாக சில அறிமுக செய்திகளைக் காட்டுகிறது. இறுதியாக போது நாம் அனைவரும் விசைகளை அல்லது மிகுதி பொத்தான்கள் படிக்க லூப் திட்டம் செயல்பட.
int main () oid வெற்றிடத்தை (* FP) (); ADCON1 = 0b00000110; எல்.ஈ.டி.டிர் = 0; SWPORTdir = 0xF0; SWPORT = 0x0F; சீரியல் பெஜின் (57600); LCDPORTDIR = 0x00; TRISE = 0; lcdbegin (); lcdprint ("கைரேகை"); lcdwrite (192, CMD); lcdprint ("இடைமுகம்"); __ தாமத_எம்எஸ் (2000); lcdwrite (1, CMD); lcdprint ("PIC16F877A ஐப் பயன்படுத்துதல்"); lcdwrite (192, CMD); lcdprint ("சர்க்யூட் டைஜஸ்ட்"); __ தாமத_எம்எஸ் (2000); குறியீட்டு = 0; போது (sendcmd2fp (& passPack, sizeof (passPack))) { lcdwrite (1, CMD); lcdprint ("FP காணப்படவில்லை"); __ தாமத_எம்எஸ் (2000); குறியீட்டு = 0; } lcdwrite (1, CMD); lcdprint ("FP Found"); __ தாமத_எம்எஸ் (1000); lcdinst (); (1) { FP = பொருத்தம்
முழுமையான PIC குறியீடு மற்றும் ஒரு வேலை வீடியோ கீழே கொடுக்கப்பட்டுள்ளது. விரல் அச்சு சென்சார் தொகுதியைப் பயன்படுத்தி எங்கள் பிற திட்டங்களையும் சரிபார்க்கவும்:
- Arduino ஐப் பயன்படுத்தி கைரேகை அடிப்படையிலான பயோமெட்ரிக் வாக்குப்பதிவு இயந்திரம்
- Arduino மற்றும் கைரேகை சென்சார் பயன்படுத்தி பயோமெட்ரிக் பாதுகாப்பு அமைப்பு
- Arduino ஐப் பயன்படுத்தி கைரேகை அடிப்படையிலான பயோமெட்ரிக் வருகை அமைப்பு
- ராஸ்பெர்ரி பை உடன் கைரேகை சென்சார் இடைமுகம்
