راه اندازی ماژول اثر انگشت FP20 توسط AVR
ماژول های اثر انگشت یکی از پرکاربردترین ماژول های مورد استفاده در صنعت بوده و کاربرد بسیار زیادی در سیستم های امنیتی ، حضور و غیاب و کلا مواردی که نیاز به تشخیص فرد هست می باشد. انواع مختلفی از سیستم های تشخیص اثر انگشت وجود دارد که هر یک دارای معایب و مزایای مخصوص به خود می باشند، در این مقاله ماژول انتخابی از نوع پردازش تصویر بوده و با تصویر برداری از انگشت، اثر انگشت مشخص می گردد. این نوع از ماژول های به علت وجود نداشتن هیچ گونه بخش مکانیکی یا تماسی خاص، دارای عمر کارکردی بسیار بالا بوده و امکانات ویژه موجود بر روی انها باعث گشته تا به وفور در پروژه های مختلف مورد استفاده قرار گیرند.
ماژول انتخابی ما FP20 ، علاوه بر اینکه از نوع پردازش تصویر می باشد، در بین ماژول های همنوع خود دارای امکانات بیشتری، همچون بیشتر بودن میزانذخیره سازی اثر انگشت، سر عت بالای پردازش، سرعت بالای تبادل اطلاعات و… میباشد.
در زیر امکانات این ماژول ذکر شده است:
CPU: AS602 // 120MHz clock speed, 1M Bits Flash Memory, 128KB SRAM
Fingerprint scanner : CMOS image sensors: GC0303, optical reflection principle
Fingerprint enrollment capacity : 500 -5000 pieces scalable, standard configuration for 3000
False Accept Rate (FAR) : <0.001% (Security Level Security Level 3)
False Reject Rate (FRR) : <0.1% (Security Level Security Level 3)
Than on the way : 1: N and 1:1 ratio for
Fingerprint template size : 496 bytes Byte
Security level settings : Level 1 to Level 5 can be set to the factory settings: Level 3
Processing speed : Fingerprint feature extraction takes time <0.45 seconds // 1:. N ratio of the time (3000 at full registration) <1 2 seconds
Communication Interface : UART, 3.3V-TTL level
Serial communication parameters : No parity Parity = NONE, 1 stop bit Stop B it = 1 // No Flow Control Flow Control = NONE // Baud rate 9600,19200,38400,57600,115200 (bps) // Factory setting: 115200bps
Operating Voltage : DC3.3V
Current : Less than 100mA
Work Environment : Working temperature: -10 ℃ – 60 ℃ // Relative Humidity: 20% – 80%
قطعات مورد نیاز :
1.میکروکنترلر ATMEGA32
3.نمایشگر کاراکتری 4 در 20
4.4 عدد push button
5.مقاومت 10k
6.پتانسیومتر 10k
ماژول FP20 دارای توابع زیادی می باشد که با مراجعه به دیتاشیت می توانید آنها را مطالعه کنید. در اینجا ما سعی داریم تا با پرکاربردترین توابع شما را آشنا و ماژول را راه اندازی کنیم.
تابع Enroll one time :
این تابع وظیفه ذخیره کردن اثر انگشت را دارد و تفاوت ان با enroll این است که فقط با یک بار قرار دادن انگشت بر روی ماژول آن را دخیره میکند در حالی که تابع enroll سه بار انگشت را خوانده و اثر انگشت را با کیفیت تربیشتر ذخیره میکند
برای استفاده از این تابع ابتدا کد هگز زیر را راسال می کنیم.
0x55, 0xAA, 0x04, 0x01, 0x02, 0x00, 0, 0, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0, 0
به جای بیت 7 و 8 شماره ای که اثر انگشت در ان قرار است ذخیره شود را مینویسیم و به جای بیت های 23 و 24 هم شماره انگشت + 7 را قرار میدهیم (برای اطلاع دقیق از این موضوع به دیتاشیت مراجعه کنید)
ماژول ممکن اس 3 جواب بدهد
0xaa,0x55,0x04,0x01,0x04,0x00,0x01,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x070,0x00, 0x00,0x00,0x00,0x2a,0x01
اگر این جواب را بدهد یعنی کیفیت اثر انگشت خوانده شده مطلوب نیست و دوباره باید اثر انگشت را اضافه کرد
0xaa,0x55,0x04,0x01,0x04,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1d,0x01
اگر این جواب را بدهد یعنی شماره انتخاب شده برای ذخیره ،قبلا پر شده است
به جز این دو جواب یعنی اثر انگشت در حافظه ذخیره شد
در تابع نوشته شده در کتابخانه fp20.h ورودی این تابع شماره ایست که میخواهیم اثر انگشت در آن ذخیره شود و خروجی این تابع یک کاراکتر است که به این شرح است:
unsigned char EnrollOneTime(unsigned char TmpNum)
B : یعنی کیفیت اثر انگشت گرفته شده کم است
F : شماره مورد استفاده پر است
D : انجام شد
تابع Clear all template:
این تابع تمامی انگشت های ذخیره شده در ماژول را پاک میکند
برای این کار فقط کافیست کد هگز زیر را برای ماژول ارسال کنید
0x55,0xAA,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x01
در تابع نوشته شده در کتابخانه fp20.h فقط نیاز است فرا خوانی شود ، دارای وروودی و خروجی نیست.
void ClearAllTmp(void)
تابع Identify:
این تابع عمل شناسایی انگشت را انجام میدهد ودر صورت وجود انگشت شماره template آن را می دهد
برای این کار کد هگز زیر را ارسال میکنیم
0x55, 0xAA, 0X02, 0X01, 0X00, 0X00, 0X00, 0X00, 0X00,0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X02, 0X01
تابع نوشته شده در کتابخانه fp20.h ورودی ندارد و خروجی ها به شرح زیر است :
unsigned char Identify(void)
G : هنوز اثر انگشتی ذخیره نشده
E : بد بودن کیفیت اثر انگشت خوانده شده
N : انگشت ذخیره نشده
در غیر این صورت شماره اثر انگشت ذخیره شده را بر میگرداند
تابع LED در فایل FP20.H برای خاموش و روشن کردن LED ماژول بوده و ورودی ان ON ,OFF است
void Led(enum e_type{off,on} state)
تابع INIT در فایل FP20.H برای فعال کردن پورت سریال و اینتراپت برای دریافت پورت سریال است
void Init(void)
این ماژول به صورت پیشفرض با نرخ انتقال 115200 بوده و ما از میکروکنترلر ATMEGA32 استفاده می کنیم ، باید نرخ انتقال را پایین تر تنظیم کنیم (9600 یا 19200) که در این پروژه از نرخ انتقال 19200 استفاده شده است.
برای تغییر نرخ انتقال ماژول مراحل زیر را انجام دهید :
ماژول را با یک مبدل سریال به USB به کامپیوتر وصل میکنیم :
*دقت کنید تغذیه ماژول 3.3 است اگر تغذیه مبدل استفاده میکنید باید ولتاژ تغذیه ان را به 3.3 ولت تبدیل کنید(مثلا با رگولاتور lf33) ولی نیازی به تبدیل ولتاژ TX وRX نیست.
سیم قرمز=3.3 V
سیم مشکی=GND
سیم سفید=TX
سیم زرد=RX
سپس فایل SM Test Sft باز کرده و درفایل (CAMA(OEM_3000 برنامه (CAMA(OEM_3000 را اجرا کنید:
از قسمت com port پورت متصل به ماژول را انتخاب کنید
سپس baud rate را بر روی 115200 گذاشته
سپس دکمه connect را بزنید
صبر کنید تا وصل شود
پس از اتصال نوار command را باز کرده و گزینه set baud rate را انتخاب کنید.
قسمت BaudRate باز می شود در این قسمت گزینه 19200 را انتخاب کرده سپس بر روی گزینه Send کلیک کنید.
حال نیاز است یک بار ماژول را ریست کنید (برق ان را قطع کنید دوباره وصل کنید یا اگر تغذیه اش را از usb تامین میکنید یکبار سوکت usb را دربیاورید و دوباره بگذارید )
حال در نرم افزار گزینه Disconnect را بزنید سپس از نوار baud rate گزینه 19200 را انتخاب کنید.
سپس دکمه connect را بزنید اگر ماژول متصل شد یعنی به درستی نرخ انتقال تغییر یافته است.
در برنامه برای سهولت کار یک منو طراحی شده است که با دکمه ها کار کرده و در خط اول برنامه کار کر د دکمه ها معرفی شده است.
#define up PINB.0 #define enter PINB.1 #define down PINB.2 #define back PINB.3
و پین های LCD به صورت زیر بسته شده اند:
RS - PORTA Bit 0 RD - PORTA Bit 1 EN - PORTA Bit 2 D4 - PORTA Bit 3 D5 - PORTA Bit 4 D6 - PORTA Bit 5 D7 - PORTA Bit 6
خب حالا مدار را به صورت زیر میبندیم :
دقت کنید ماژول fp20 با ولتاژ 3.3 کار میکند ولی بر روی خط سریال به آن 5ولت باید داده شود تا بهتر کار کند ( به این خاطر است که این ماژول با کامپیوتر هم کار میکند) پس میکروکنترلر ما با 5 ولت باید کار کند ولی برای تغذیه ی ماژول آن را باید به 3.3 تبدیل کرد.
عکسی از مدار:
ویدئو راه اندازی مدار:
نویسنده: شهاب نیکخو
سلام خسته نباشید
تو فایل دانلودی که زحمت کشیدین گزاشتید دوتا فایل هست که ذاخلش کد هست دقیقا کدومش باید رو atmega32 پروگرم بشه؟
یه توضیح کلی درمورد اونا بدید لطفا…
فک کنم خودم فهمیدم اون فایل FP20 کتابخونست که باید ADD شه…
واقعا خسته نباشید.خدا عزت بهتون بده