پروژه راه اندازی ماژول تشخیص اثر انگشت FPM10A با آردوینو

بازگشت به آموزشگاه

مقدمه

شناسایی از طریق اثر انگشت ( Finger Print Recognization ) یکی از موضوعات داغ روز می باشد که میتواند در شناسایی هویت ( identification ) افراد مختلف مورد استفاده قرار گیرد. عمل شناسایی هویت که بارها و بارها برای هر نفر در جامعه انجام می گیرد بر پایه 3 اصل زیر است :

  1. بر پایه آنچه که شخص می داند ( مانند کلمه عبور ) که در هنگام خرید آنلاین از آن استفاده می شود.
  2. بر پایه آنچه که شخص دارد ( مانند کارت ملی ، شناسنامه ، گواهینامه و … ) که در هنگام عملیات های مختلف بانکی و هنگام رانندگی درخواست می شود.
  3. بر پایه آنچه که شخص هست ( مانند اثر انگشت ، چهره ، شبکیه چشم ، DNA و … ) که برای هر شخص منحصر به فرد می باشد و برای مثال در هنگام حضور و غیاب و اخیرا نیز در گوشی های تلفن همراه برای بازکردن قفل گوشی از آن استفاده می شود.

در این آموزش شما با انواع ماژول های اثر انگشت آشنا می شوید و می توانید به راحتی آن را به پروژه های خود اضافه نمایید و امنیت پروژه خود را افزایش دهید.


سنسور اثر انگشت چیست ؟

حسگر اثر انگشت ( Fingerprint Sensor ) یک دستگاه ورودی داده‌های دیجیتالی است که اثر انگشت انسان را خوانده و آن را به مجموعه ای از تصاویر 2 بعدی و 3 بعدی قابل پردازش در نرم‌ افزارهای اثر انگشت تبدیل می‌کند. سنسورهای اثر انگشت دارای انواع مختلفی می باشد که دو نوع پرکاربرد آن یکی نوع نوری ( Optical ) است که معمولا در انواع مراکز دولتی و خصوصی ، ادارات و بانک ها مورد استفاده قرار می گیرد و دیگری نوع خازنی ( Capacitive ) است که به علت حجم کمتر در انواع تلفن های همراه مورد استفاده قرار دارد. شکل زیر تفاوت اصلی بین این دو نوع سنسور را نشان می دهد.


مقایسه سنسور اثر انگشت خازنی و نوری

در حسگر نوری ، یک فرستنده نوری ( لامپ LED ) و یک گیرنده نوری ( دوربین Camera ) و یک شیشه که روی آن انگشت قرار می گیرد به صورت مثلثی با هم قرار دارند. نور از یک سو به انگشت تابانده مي‏ شود. سپس يک دوربين ، پرتوهای باز تابيده را دريافت کرده و از روی آنها يک عکس سياه و سفيد می‏ سازد. اين عکس مشخصات بارز اثر انگشت را نشان می دهد وضوح اين سيستم به ميزان اهميت و نوع کاربرد بستگی دارد. به عنوان نمونه برای تشخيص اثر انگشت کودکان که پيچيدگی بيشتری دارد از وضوح 100dpi استفاده مي‏ شود در حالي که برای بزرگسالان ، وضوح 500dpi کافی است.

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


بررسی انواع ماژول های اثر انگشت

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

ویژگی هایی که در هنگام خرید یک ماژول اثر انگشت باید توجه کرد عبارت است از :

  • نوع ماژول : نوری یا خازنی بودن ( خازنی ابعاد کوچکتری دارد )
  • رابط کاربری ( اینترفیس ) ماژول : که معمولا UART است
  • سرعت اسکن اثر انگشت در یک ثانیه
  • تعداد اثر انگشتی که میتواند ذخیره کند
  • جریان و ولتاژ کاری ماژول
  • نرخ تشخیص اثرانگشت غلط ( احتمال خطا در اندازه گیری )

معرفی ماژول اثر انگشت FPM10A

این ماژول بوسیله ارتباط سریال UART با کامپیوتر و انواع میکروکنترلر ها نظیر میکروکنترلرهای AVR ، ARM و آردوینو کار می‌کند. اگر این ماژول را از طریق یک مبدل‌ USB به سریال ( نظیر PL2303 ) به کامپیوتر وصل کنیم ، توسط نرم افزار مخصوص ( FG Demo ) میتوان با آن ارتباط برقرار کرد. این ماژول همچنین دارای ویژگی‌هایی چون : سنسور نوری ، پردازنده DSP ، حافظه فلش ، الگوریتمهای تطبیق اثر انگشت و دارای توابعی نظیر ثبت انواع اثر انگشت ، تطبیق اثر انگشت ، جستجوی اثر انگشت ، حذف اثر انگشت و… می باشد. همچنین از این ماژول میتوان در مصارفی همچون سیستمهای امنیتی ، حضور و غیاب و… استفاده کرد.

لینک خرید مستقیم این ماژول از فروشگاه الکترو ولت

مشخصات عمومی:

  • ماژول اثر انگشت نوری
  • دارای ولتاژ کاری بین 3.6 تا 6 ولت
  • دارای جریان کاری کمتر از 120 میلی آمپر
  • قابلیت ذخیره سازی 1000 عدد اثر انگشت
  • قابلیت اسکن کردن اثر انگشت در کمتر از ثانیه ( 1/500 ثانیه )
  • دارای رابط سریال UART
  • باودریت ماژول به صورت 9600xN bps می باشد که N بین 1 تا 12 است. ( در حالت پیش فرض N=6 یعنی 57600bps )
  • نرخ تشخیص اثرانگشت غلط : کمتر از 0.001 درصد

وضعیت پایه های ماژول :

  • سیم قرمز : VCC
  • سیم مشکی : GND
  • سیم زرد ( یا سفید ) : RXD
  • سیم سبز: TXD

لینک دانلود های مورد نیاز :


راه اندازی سریع ماژول اثر انگشت FPM10A بدون آردوینو

کافی است این ماژول را به صورت شکل زیر با رابط USB به سریال PL2303 به کامپیوتر متصل نماییم و سپس توسط نرم افزار FG Demo با آن ارتباط برقرار کنیم.

اگر از ماژول PL2303 کابل دار استفاده می کنید ، پایه های این ماژول به صورت زیر است :

بعد از اتصال به کامپیوتر وارد نرم افزار می شویم. و سپس روی گزینه Open Device کلیک کرده و در منوی باز شده پورت COM که ماژول PL2303 متصل شده است را انتخاب می کنیم.

در صورتی که اتصال موفقیت آمیز باشد ، پیام Open Device Successful نشان داده شده و همچنین اطلاعات ماژول از قبیل نام ماژول ، آدرس ماژول ، حجم حافظه و ورژن نرم افزاری آن نشان داده می شود.

در پنجره Finger info آی دی های ذخیره شده از قبل را نشان می دهد. هر اثر انگشت متعلق به یک نفر است و یک آی دی خاص دارد که به آن FingerID می گویند. همانطور که در شکل زیر مشاهده می کنید با آی دی 1 یک اثر انگشت در ماژول ثبت شده است. در سمت راست این پنجره گزینه های مدیریتی حافظه ماژول وجود دارد. با زدن روی گزینه Empty کل اثر انگشت های ذخیره شده در حافظه را پاک می کنیم. گزینه Delete One نیز میتواند تنها یکی از اثر انگشت های موجود را از حافظه پاک نماید.

سپس برای تعریف اثر انگشت جدید از گزینه Enroll استفاده می کنیم. با زدن این گزینه یک پنجره جدید باز می شود و یک آی دی از شما می خواهد که میتواند یک عدد دلخواه 4 رقمی باشد. گزینه Con Enroll برای ثبت بیش از یک اثر انگشت ( برای مثال ثبت اثر انگشت گروهی از افراد ) استفاده می شود.

بعد از کلیک روی دکمه OK باید انگشت خود مدت کوتاهی ( حدودا 1 تا 2 ثانیه ) مقابل دستگاه قرار دهید سپس اثر انگشت درون حافظه ذخیره می گردد. شکل زیر چند اثر انگشت ذخیره شده با آی دی های مختلف را نشان می دهد. اگر تیک گزینه Show Image را زده باشیم شکل اثر انگشت اسکن شده در سمت چپ نرم افزار مشاهده می شود. به علت اینکه تصویر به کامپیوتر ارسال می شود پروسه ثبت اثر انگشت چند ثانیه طولانی تر می گردد.

با زدن گزینه Search و سپس قرار دادن اثر انگشت روی ماژول ، ماژول اثر انگشت قرار داده شده را با اثر انگشت های ذخیره شده تطبیق می دهد و به محض پیدا کردن شباهت زیاد ( شباهت زیادتر از یک درصد خاص به معنای تطبیق کامل است ) برای کامپیوتر آی دی آن اثر انگشت تطبیق داده شده را به همراه یک امتیاز ( Score ) مربوط به مقدار شباهت ارسال می کند.گزینه Match نیز میتواند یک اثر انگشت ذخیره شده را با اثر انگشت قرار داده شده روی ماژول بررسی کرده و پاسخ دهد.

این نرم افزار قابلیت های دیگری نظیر اسکن یک اثر انگشت به تنهایی و نمایش آن بدون ثبت در حافظه ( Capture ) ، اسکن چندین اثر انگشت و نمایش آن بدون ثبت در حافظه ( Con Capture ) ، ذخیره تصویر ( Save Image ) ، بارگذاری تصویر از قبل ذخیره شده ( Load Image ) را دارد که میتوانید خودتان امتحان کنید.


راه اندازی ماژول اثر انگشت FPM10A با آردوینو

برای راه اندازی ماژول FPM10A با آردوینو تنها به یک Arduino UNO نیاز دارید که میتوانید از فروشگاه الکترو ولت آن را تهیه نمایید.

 

نحوه اتصال به آردوینو :

جهت اتصال راحت تر میتوانید یک پین هدر چهار تایی را به سیم های انتهای ماژول به صورت شکل زیر لحیم نمایید.

نحوه دانلود و نصب کتابخانه سنسور اثر انگشت

این ماژول برای راه اندازی به نسخه 1.6.9 ( یا قبل از آن ) نرم افزار Arduino IDE نیاز دارد. در صورتی که این نسخه را نصب نکرده اید ، از طریق >> این لینک << آن را دانلود و سپس نصب نمایید. توجه کنید که اگر نسخه های بالاتر از 1.6.9 را نصب کرده اید ابتدا آن را Uninstall و سپس نسخه 1.6.9 را نصب نمایید. پس از دانلود و نصب نرم افزار آردوینو ، آن را باز کرده و سپس از مسیر ( Sketch -> Include Library ) روی Manage Libraries کلیک کنید. پنجره ای با نام Library Manager باز می شود. در این پنجره در قسمت جستجو ، عبارت adafruit_fingerprint را جستجو نمایید و سپس روی کتابخانه مربوطه کلیک کرده و گزینه Install را بزنید. کتابخانه اثر انگشت بعد از مدتی دانلود و نصب می شود.

حال اگر به مسیر ( Documents -> Arduino -> libraries ) در کامپیوتر خود مراجعه نمایید ، مشاهده می کنید پوشه ای با نام Adafruit_Fingerprint_Sensor_Library اضافه شده است. درون این پوشه کلیه فایل های مورد نیاز از قبیل فایل های کتابخانه ای و مثال های مورد نیاز نوشته شده است.

درون پوشه examples بروید. در این پوشه چند برنامه نوشته شده است که شامل :

  1. پوشه blank : در این پوشه یک برنامه کاملا خالی وجود دارد برای اینکه اگر برنامه ای از قبل وجود داشته باشد پاک شده و بتوانید پایه های سنسور را متصل نمایید.
  2. پوشه delete : در این پوشه برنامه پاک کردن یک آی دی خاص از ماژول اثر انگشت وجود دارد.
  3. پوشه enroll : در این پوشه برنامه ساخت یک آی دی جدید و اختصاص دادن یک اثر انگشت به آن آی دی وجود دارد.
  4. پوشه fingerprint : در این پوشه برنامه جستجو و تطبیق اثر انگشت جدید با اثر انگشت های ذخیره شده در مرحله قبل وجود دارد.
  5. پوشه Leo_passthru : در این پوشه یک برنامه ساده نوشته شده است که اگر آن را روی آردوینو اجرا نمایید ، میتوانید از بورد آردوینو همانند مبدل USB به سریال برای اتصال سنسور به کامپیوتر و نرم افزار FG Demo استفاده نمایید. در این صورت دیگر نیازی به ماژول اضافه نظیر PL2303 نخواهید داشت. البته این برنامه روی UNO کار نمی کند و فقط روی آردوینو هایی که دارای دو رابط سریال UART هستند ( نظیر Mega2560 ) کار می کند.
  6. پوشه show_fingerprint_templates : در این پوشه برنامه ای برای ارسال تصویر اثر انگشت ذخیره شده در ماژول با فرمت HEX نوشته شده است که تمام اثر انگشت های با آی دی بین 1 تا 10 ( در صورت وجود ) را به پورت سریال آردوینو ارسال می کند.

توجه : برای استفاده از برنامه ها ، روی فایل با پسونده ino درون هر یک از پوشه ها کلیک کنید ، سپس درون نرم افزار آردوینو مسیر ( Tools -> Board -> Arduino/Genuino UNO ) را چک کنید که حتما روی UNO باشد. سپس در صفحه اصلی نرم افزار گزینه Upload را بزنید تا برنامه درون بورد آدوینو ریخته شود. سپس از منوی Tools گزینه Serial Monitor را بزنید. صفحه جدید به نام سریال مانیتور باز می شود که از طریق آن میتوانید با ماژول ارتباط برقرار نمایید و دیتاهای دریافت شده را نیز ببینید.

تست برنامه delete توسط الکترو ولت :

اول عدد آی دی و سپس # را در قسمت بالایی نوشته و سپس Send می کنیم.

تست برنامه enroll توسط الکترو ولت :

ابتدا آی دی را وارد می کنیم و سپس باید دو بار انگشت را روی سنسور قرار دهیم ، در صورتی که در این دو بار اثر انگشت ها با هم تطبیق داده شود ، اثر انگشت با آی دی مربوطه ذخیره می شود.

نکته مهم : در صورتی که در هنگام معرفی کردن اثر انگشت در برنامه Enroll با خطای Unknown Error مواجه شدید ( شکل زیر ) ، مشکل از ورژن نرم افزار آردوینو می باشد. چرا که نسخه های جدیدتر این نرم افزار دارای اشکالاتی بوده و این برنامه را به درستی کامپایل نمی کند.

برای حل این مشکل ابتدا نرم افزار آردوینو خود را Uninstall نمایید. سپس ورژن 1.6.9 نرم افزار آردوینو را از سایت آردوینو ( >> این لینک ) دانلود و سپس نصب نمایید. حال برنامه را مجددا روی آردوینو بریزید ، مشکل به طور کامل برطرف می شود.

تست برنامه fingerprint توسط الکترو ولت :

همانطور که مشاهده می کنید سه بار انگشت خود را روی سنسور گذاشتیم و در هر سه بار به درستی آی دی که قبلا معرفی کرده بودیم را تشخیص می دهد.


در صورتی که این آموزش مورد پسندتان واقع شد لایک و اشتراک گذاری فراموش نشود.

دیدگاه (2)

  • امیرحسین اقازاده پاسخ

    سلام
    خسته نباشید
    من سنسور fpc1020 رو دارم میخواستم ببینم شما راه انداختینش
    شدیدا نیاز دارمش
    اگر کمکم کنید ممنونتون میشم

    1397-01-06 در 15:28
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز در خصوص پروژه هایی که روی سایت نیست در تلگرام پیام دهید یا ایمیل بزنید

      1397-01-06 در 16:14

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

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

بازگشت به آموزشگاه