مطالب آموزشی

راه اندازی ماژول اثر انگشت 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%

 به علت خروجی سریال، این ماژول ها را می توان توسط انواع تجهیزات کنترلی از قبیل رایانه، میکروکنترلرهای مختلف و .. کنترل نمیود. نحوه کار ماژوال به این صورت است که با دستورات مختص به خود، اثر انگشت را دریافت کرده و در حافضه خود ثبت می نماید، سپس با هر بار شناسایی اثر انگشت اعلام می کند که این اثر انگشت در حافظه با چه شماره ای موجود بوده و یا اینکه موجود نیست. می خواهیم توسط میکروکنترلر ATMEGA32 این ماژول را راه اندازی کنیم.
ماژول از طریق پورت UART به میکروکنترلر متصل و اطلاعات را بصورت هگزادسیمال به آن ارسال می کند.

قطعات مورد نیاز :

1.میکروکنترلر  ATMEGA32

2.ماژول اثر انگشت FP20

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 توسط AVR
راه اندازی ماژول اثر انگشت FP20 توسط AVR

دقت کنید ماژول fp20 با ولتاژ 3.3 کار میکند ولی بر روی خط  سریال به آن 5ولت باید داده شود تا بهتر کار کند ( به این خاطر است که این ماژول با کامپیوتر هم کار میکند) پس میکروکنترلر ما با 5 ولت باید کار کند ولی برای تغذیه ی ماژول آن را باید به 3.3 تبدیل کرد.

عکسی از مدار:

fp20

ویدئو راه اندازی مدار:

نویسنده: شهاب نیکخو

نوشته های مشابه

4 دیدگاه

  1. سلام خسته نباشید
    تو فایل دانلودی که زحمت کشیدین گزاشتید دوتا فایل هست که ذاخلش کد هست دقیقا کدومش باید رو atmega32 پروگرم بشه؟
    یه توضیح کلی درمورد اونا بدید لطفا…

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا