راه اندازی سنسور اثر انگشت FPC1020

راه اندازی سنسور اثر انگشت FPC1020

مطمعنا در حال حاضر یکی از بهترین روش ها برای تشخیص افراد اثر انگشت آنهاست. در این پروژه قصد داریم سنسور قدرتمند FPC1020 را با هم راه اندازی کنیم. از این سنسور در گوشی Huawei Mate 7 استفاده شده است. تکنولوژی استفاده در آن خازنی می باشد. در هر پیکسل آن بالاترین کیفیت 256 در حالت gray را بدست می آورد. برای این سنسور دست خیس یا کثیف و خاکی فرقی ندارد و از الگوریتم تشخیص سه بعدی خود استفاده می کند. برد کنترلی آن از پردازنده سریع و قدرتمند STM32F105 استفاده می کند. قابل ذکر است این پردازنده از قبل برای خواندن اطلاعات و ارسال داده uart برنامه ریزی شده است. توسط این برد رابط ما می توانیم این سنسور را به راحتی راه اندازی کنیم.

مواد مورد نیاز برای راه اندازی سنسور FPC1020:

  • سنسور FPC1020
  • آردوینو UNO
  • سیم بردبردی 

ویژگی های سنسور:

  • قابلیت اتصال به سیستم Grove

  • دارای سنسور Cmos FPC1020

  • دارای بهترین کلاس پردازش تصویر با دارا بودن 256 سطح خاکستری متفاوت 
  • قابلیت تشخیص شناسایی بیش از 10 میلیون اثر انگشت
  • محافظت در برابر ESD بیش از ±30kV
  • 200 بایت الگوی اثر انگشت
  • 1: N شناسایی (یک به چند)
  • 1: 1 تأیید (یک به یک)
  • عملکرد خودکار یادگیری (به صورت خودکار به روز رسانی ویژگی های اثر انگشت)
  • تنظیم سطح امنیتی
  • TTL رابط سریال

مشخصات:

Resolutions: 508 DPI
Fingerprint storage capacity: 100 pcs of fingerprint template
Verification time: < 0.45 sec
Identification time: < 0.45 sec
False accept rate (FAR): < 0.0001%
False reject rate (FRR): < 0.01%
Interface: Serial UART, 19200 bps (default)
Baud rate: 9600, 19200, 38400, 57600, 115200 bps
Working current: < 50mA
Standby current: < 10μA
Supply voltage: DC  5V
Digital I/O voltage: 3.3V, 5V
Operating temperature: – 20  ℃ ~ 60 ℃
Operating humidity: 20% ~ 80%

نحوه اتصال پایه های سنسور اثر انگشت:

 

نام پایه وضعیت توضیحات
IRQ/WAKEUP خروجی This pin will output a 100us high pulse when a finger is detected
UART_TX خروجی Transmitter of TTL serial
UART_RX ورودی Receiver of TTL serial
GND پاور Power GND
VCC پاور 5V power input
RESET ورودی If you want a reset, send a low pulse to this pin
USB_DN ورودی یا خروجی Not available for the current version
USB_DP ورودی یا خروجی Not available for the current version

 

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

شما فقط به 4 پایه برای راه اندازی این سنسور نیاز خواهید داشت. 2 پایه برای تغذیه و 2 پایه برای داده ها کافی است تا سنسور را راه اندازی کنید.

نحوه اتصال پایه ها:

VCC           →   5V
UART_RX  →   Digital 2
UART_TX  →   Digital 3
GND          →  GND

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

بعد از نصب کتابخانه در بخش کتابخانه های آردوینو در مسیرDocuments\Arduino\libraries کد زیر را بر روی آردوینو پروگرام کنید

//
// Demo code for FPC1020 Fingerprint Sensor
// Created by Deray on 2015-10-07.
//

#include 
#include 

extern unsigned char l_ucFPID;
extern unsigned char rBuf[192]; //Receive return data

#define sw_serial_rx_pin 2 // Connect this pin to TX on the FPC1020
#define sw_serial_tx_pin 3 // Connect this pin to RX on the FPC1020

SoftwareSerial swSerial(sw_serial_rx_pin, sw_serial_tx_pin); // Fingerprint serial (RX, TX)
FPC1020 Finger(&swSerial);

void setup(){
 Serial.begin(19200);
 pinMode(4, INPUT); // IRQ
 
 Serial.println("Fingerprint Test ! ");
}

void loop(){
 unsigned int User_ID = 0;
 unsigned char incomingNub;
 unsigned int matchUserID = 0;
 unsigned char rtf = 0;
 
 while(1){
 Serial.println("============== Menu ================");
 Serial.println("Add a New User ----------------- 1");
 Serial.println("Fingerprint Matching --------------- 2");
 Serial.println("Get User Number and Print All User ID ------ 3 ");
 Serial.println("Delete Assigned User --------- 4");
 Serial.println("Delete All User ---------- 5");
 Serial.println("============== End =================");
 
 unsigned char MODE = 0;
 
 while(Serial.available()<=0);
 
 MODE = Serial.read()-0x30;
 
 switch(MODE){
 case 0: // Null
 break;
 
 case 1: // Fingerprint Input and Add a New User
 MODE = 0;
 User_ID = 0;
 
 Serial.println("Please input the new user ID (0 ~ 99).");
 while(Serial.available()<=0);
 delay(100);
 incomingNub = Serial.available();
 for(char i=incomingNub; i>=1; i--){
 User_ID = User_ID + (Serial.read()-0x30)*pow(10,(i-1));
 }
 
 Serial.println("Add Fingerprint, please put your finger on the Fingerprint Sensor.");
 rtf = Finger.Enroll(User_ID);
 
 if(rtf == TRUE) { 
 Serial.print("Success, your User ID is: "); 
 Serial.println( User_ID , DEC);
 }
 else if (rtf == FALSE) {
 Serial.println("Failed, please try again.");
 }
 else if( rtf == ACK_USER_OCCUPIED){
 Serial.println("Failed, this User ID alread exsits.");
 }
 else if( rtf == ACK_USER_EXIST){
 Serial.println("Failed, this fingerprint alread exsits.");
 }
 delay(2000);
 break;
 
 case 2: // Fingerprint Matching
 MODE = 0 ; 
 Serial.println("Mctch Fingerprint, please put your finger on the Sensor.");
 
 if( Finger.Search()){
 Serial.print("Success, your User ID is: "); 
 Serial.println( l_ucFPID, DEC);
 }
 
 else {
 Serial.println("Failed, please try again.");
 } 
 delay(1000);
 break;
 
 case 3: // Print all user ID
 MODE = 0;
 if(Finger.PrintUserID()){
 Serial.print("Number of Fingerprint User is:"); 
 unsigned char UserNumb;
 UserNumb = (l_ucFPID-2)/3;
 
 Serial.println(UserNumb,DEC);
 Serial.println("Print all the User ID:"); 
 
 for(char i = 0; i < UserNumb; i++){
 Serial.println(rBuf[12+i*3],DEC);
 }
 }
 
 else {
 Serial.println("Print User ID Fail!");
 }
 delay(1000);
 break;
 
 case 4: // Delete Assigned User ID
 MODE = 0;
 User_ID = 0;
 Serial.println("Please input the user ID(0 ~ 99) you want to delecte.");
 while(Serial.available()<=0);
 delay(100);
 incomingNub = Serial.available();
 for(char i=incomingNub; i>=1; i--){
 User_ID = User_ID + (Serial.read()-0x30)*pow(10,(i-1));
 }
 
 if(Finger.Delete(User_ID)) {
 Serial.println("Delete Fingerprint User Success!"); 
 } 
 else{
 Serial.println("Delete Fingerprint User Fail!");
 }
 delay(1000);
 break;
 
 case 5: // Delete All User ID
 
 MODE = 0;
 unsigned char DeleteFlag = 0;
 
 Serial.println("Delete All Users, Y/N ?");
 
 for(unsigned char i=200; i>0; i--)//wait response info
 {
 delay(20);
 if(Serial.available()>0)
 {
 DeleteFlag = Serial.read();
 break;
 }
 }
 
 if(DeleteFlag == 'Y'||'y'){
 if(Finger.Clear()){
 Serial.println("Delete All Fingerprint User Success!");
 }
 else{
 Serial.println("Delete All Fingerprint User Fail!");
 }
 }
 delay(500);
 break;
 }
 }
}

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

نویسنده امیرحسین ساقی

کارشناسی ارشد مکاترونیک(طراحی رباتها و سیستم های کنترلی) 

لیسانس الکترونیک

داور بین المللی مسابقات رباتیک ایران اپن

علاقه مند به محصولات تکنولوژی و رباتیک

محصولات مرتبط با این آموزش

برد آردوینو اونو - Arduino Uno

برد آردوینو اونو - Arduino Uno

  برد آردوینو UNO را به جرات می توان یکی از پر فروش ترین برد های توسعه جهان نامید. برد آردوی..

77,000تومان

ماژول سنسور تشخیص اثر انگشت خازنی FPC1020 سازگار با آردوینو

ماژول سنسور تشخیص اثر انگشت خازنی FPC1020 سازگار با آردوینو

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

345,000تومان 362,000تومان

سیم برد بردی نری به مادگی 30 سانتی متری

سیم برد بردی نری به مادگی 30 سانتی متری

سیم bread board - کابل برد بردی - dupont - نری به مادگی ..

450تومان

مطالب مرتبط با این آموزش

آموزش آردوینو برای تازه کار ها (بخش اول)

جلسه اول آموزش آردوینو با پاسخ دهی به سوالات عمومی کاربران

0 پیام به "راه اندازی سنسور اثر انگشت FPC1020"

نظر خود را در مورد این آموزش ارسال کنید

نام شما:
 
پیام شما:
نکته: کد اچ تی ام ال مجاز نیست!

خریدی مطمئن و آسان


آموزش با استفاده از خلاقیت


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

فروشگاه اینترنتی تکنو الکترو ، برای افرادی که علاقه دارند سازنده باشند.

استفاده از مطالب فروشگاه اینترنتی تکنو الکترو فقط برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. کليه حقوق اين سايت متعلق به شرکت تکین الکترو اکسین (فروشگاه تکنوالکترو) می‌باشد.

Copyright © 2009 - 2018 Techno-Electro.com