نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
مهدی دمیرچیلو

آموزش کار با ماژول اثر انگشت r305 با arduino

به نام خدا : امروز بعد مدتها میخوام یه مطلب بزارم، آموزش کار با ماژول اثر انگشت r305 با arduino ، البته من قبلا هم یه ماژول اثرانگشت هم خریده بودم از ECA که نمیدونم خراب بود، من بلد نبودم ازش استفاده کنم، من زدم خرابش کردم، در کل قسمت نشد راه اندازیش کنم، چند هفته پیش یه ماژول اثر انگشت خریدیم با نام ماژول اثر انگشت r305 که بعد رفتم ببینم کتابخونه ای چیزی ازش هستش یا نه، یه چیزکی پیدا کردیم، بعد رفتیم سراغ ماژول، خلاصه بعد کلی اضیت کردن ماژولو راه انداختم با آردوینو، این سیماش هی قطع و وصل میشه، کلا بزرگترین مشکل من با این ماژول همین بود، البته این ماژول هم میتونه از طریق SERIAL و هم از طریق USB باهاش ارتباط برقرار کنید و … ( آموزش کار با ماژول اثر انگشت r305 با arduino )
آموزش کار با ماژول اثر انگشت r305 با arduino

آموزش کار با ماژول اثر انگشت r305 با arduino


( ادامه حرفهای بالام ) : چون من کار با پروتکول USB رو بلد نیستم فعلا سمتش نرفتم ( البته یکی از بچه ها گفته که میخواد آموزششو بزاره تو سایت، حالا ببینیم خدا چی میخواد )، خب میگفتم با SERIAL راه اندازی کردم این ماژولو، اون کتابخونه هه هم یکمکی ناقص بود و مشکل داشت به نظرم که این شد گفتیم بریم اون کتابخونه رو تکمیل و رفع مشکل کنیم ( چون هم یکم ناقص بود و همه امکانات ماژول اثر انگشت فوق رو پوشش نمیداد و هم این که بعضی توابعش برای من کار نمیکرد مخصوصا قسمت اضافه کردن اثر انگشت که اصلا کار نمیکرد ) خب رفتیم سراغ دیتاشیت این ماژول، چند تا فایل ناقص پیدا کردیم، و بعد از کلی جستوجو یه فایل تقریبا کامل ( که خب اونم باز ناقص بود ^_^ ولی خب نسبت به فایلای قبلی کامل بود ) پیدا کردیم که خب زبونش چینی بود ^_^ ولی خب به کمک مترجم گوگل ازش استفاده کردیم، و اون کتابخونه قبلیه رو تکیمل و رفع نقص! کردیم و شد کتابخونه ای که تو این مطلب میبینید؛ این سنسورش هم ماشاء الله 100 خورده ای پولشه، آدم استرس میگرتش وقتی باهاش کار میکنه، لذا سر همین موضوع من تابع سوییچ کردن بین SERIAL و USB رو ننوشتم ( البته USB رو یاد بگیرم کتابخونه رو تکمیل میکنم و آموزش استفاده از این ماژول با USB رو هم میزارم ) و بعضی توابع رو نوشتم ولی جرات استفاده ازش رو نداشتم مثل تنظیم سطح امنیت ماژول که چون دیتاشیت هایی که من دارم توضیح خاصی دربارش ندادن، منم نمیدونم سطح امنیت ماژولو تغییر بدم چه اتفاقی میوفته، لذا ازش استفاده نکردم، به شما هم توصیه میکنم استفاده نکنید، از تابع تغییر طول پکیج ها هم استفاده نکردم، از اینم استفاده نکنید، کلا از بحث تنظیمات ماژول فقط از تابع تنظیم BaudRate استفاده کنید؛ این ماژول میتونه اثر انگشت سنس کنه و میزان شباهتش رو با اثر انگشت های تعریف شده تو حافظش به ما بگه، میتونه تو خودش اثر انگشت ما رو ذخیره کنه و موقعیتش رو به ما بده، یه پسورد داره که درست واردش نکنی ماژول کار نمیکنه، یه آدرس داره که میتونید تغییرش بدید، این چیز خاصی نیست ولی خب اگه ندونیدش یکم اضیت میشید ( چون باید 32 بیت کد که تعداد کل حالاتش میشه 4,294,967,296 رو تست کنید تا آدرس رو پیدا کنید ولی برا بحث پسورد داستان متفاوته چون هم باید آدرس رو بدونید و هم پسورد و در کل میشه 18,446,744,073,709,551,616 حالت باید تست کنید تا پسورد و آدرس رو پیدا کنید ( در حالت حداکثر، لپ کلوم که خدا بیامرزه ماژولتونو ^_^ ، اگه پسورد و آدرس رو ندونید ولی اگه آدرس رو بدونید تعداد 4,294,967,296 حالت رو باید تست کنید تا پسورد رو پیدا کنید، تازه از کدنویسی داخل ماژول من اطلاعی ندارم که اگه مثلا 100 بار پسورد رو اشتباه وارد کنی یه حالت خاصی رخ میده، ممکنه همچین چیزی هم ماژول داشته باشه ولی خب چون دیتاشیت درست درمونی من ازش ندیدم در این مورد نمیتونم حرفی بزنم و فقط حدس و گمان هستش این قسمت حرفم )؛ قسمت تنظیم BaudRate  هم چیز خاصی نیست، حتی اگه مثلا رو یه مقداری تنظیم کنیدو  بعد فراموش کنید که رو چه مقدار تنظبیم کردید میتونید با 12 بار تست مقدارشو پیدا کنید، از این بابت جای نگرانی نیست. میتونید یه تابع بنویسید برا پیدا کردن BaudRate که خب من یادم رفت این کارو کنم، چیز خاصی هم نیست، خودتون هم میتونید ولی خب من مینویسم تو لیست تا دفه بعد این موردو به کتابخونه اضافه کنم؛ البته ماژول یه تابعی داره که تمام جزئیات ماژول رو به ما میگه ولی خب برا اونم باید یه دستوری بفرستید تا جواب ما رو بده، که خب برا اونم باید BaudRate درست تنظیم شده باشه ^_^ تقریبا لپ کلوم این که این تابع هم برا کسایی که BaudRate رو فراموش کردن مفید نیست، میمونه همون تست 12 بار برای پیدا کردن BaudRate ، چون کلا این ماژول 12 تا BaudRate  رو پشتیبانی میکنه، مورد آخر این که فعلا این ماژول با سریال مجازی راه نمیوفته، حتما باید از سریال سخت افزاری استفاده کنید، توضیحات بسه دیگه، داستان لیلی و مجنون شد، بقیش بمونه کنار هر تابع توضیح میدم.
 
این کتابخونه یه سری تابع و متغییر داره که ما ازشون استفاده میکنیم که در زیر مشاهده میکنید و در ادامه مطلب هم به تدریج توضیح میدمشون ( این لیست توابع public هستش، توابع private رو استفاده نکنید ازشون، مگه این که طبق دیتاشیت ستفاده کنید ازشون و بخواین امکان جدیدی به کتابخونه اضافه کنید ) :

 

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

بعد یه شیء از این کتابخونه ایجاد کنید تا بتونید به توابع و متغییر های عمومی این کتابخونه دسترسی پیدا کنید، به صورت زیر :

که به جای Serial1 باید اسم سریالتون رو قرار بدید، همون طور که میدونید این ماژول اثر انگشت R305 از طریق UART با میکرو تبادل داده داره، و چون سریال مجازی این کتابخونه ای که تو این مطلب گزاشتم فعلا مشکل داره و حتما باید از سریال حقیقی استفاده کنید لذا از آردوینو یونو نمیتونید برای این پروژه استفاده کنید و باید از آردوینو مگا استفاده کنید؛ در آردوینو مگا فک کنم 4 تا سریال با نام های Serial و Serial1 و Serial2 و Serial3 داره اگه اشتباه نکنم، که از هر کدوم از این سریال ها که خواستید استفاده کنید اسمشو به جای Serial1 قرار بدید )
توجه : در کد بالا من شیء یی با نام finger ایجاد کردم، لذا هر تابع و متغییری از این کتابخونه بخوام دسترسی داشته باشم باید اول اون تابع ( متغییر ) بنوسیم finger. البته این اسم اختیاری هستش، هرچی دوست دارید بزارید.
 
begin : این تابع که به صورت زیر هستش برا راه اندازی اولیه ماژول هستش که یه پارامتر ورودی داره که برا تعیین BaudRate هستش که میکرو با چه نرخ انتقال داده ای با ماژول اثر انگشت R305 قراره تبادل داده داشته باشه، شما این تابع رو به صورت زیر استفاده کنید و در اول پروژه ( در اول تابع Setup ) باید بنویسید؛ و یه پارامتر هم با نام OldAddress داره که آدرس فعلی ماژول هستش، که اگه آدرس ماژول رو تغییر ندادید، لازم نیست به این پارامتر مقدار بدید.

توجه : به جای myAddress، باید آدرس ماژول رو بزارید، به جای 57600 هم نرخ انتقلال داده ای که تنظیم کردید، البته در حالت پیشفرض رو مقدار باودریت رو 57600 تنظیم هستش.
 
verifyPassword : این تابع هم برای شناسایی ماژول استفاده میشه که بعد از تابع begin حتما باید از این تابع استفاده کرد، اگه پسورد ماژولو تغییر دادین باید به جای پارامتر Password پسورد ماژولو به صورت یه عدد صحیح بنویسید ( مثلا 313 یا 3456 و .... که خب باید یه عدد 32 بیتی باشه و پسورد حداکثر میتونه 4294967295 باشه و بیشتر از این عدد نباید باشه پسوردتون )، ولی اگه پسورد ماژولو تغییر ندادید، به پارامتر ورودی این تابع مقدار ندید، چون پسورد در حالت پیشفرض 0 هستش.

این تابع یه مقدار 8 بیتی رو برمیگردونه که مقدارش برابر یکی از ماکرو های زیر هستش :
FINGERPRINT_OK : پسورد صحیح است و ماژول شناسایی شد.
FINGERPRINT_PACKETRECIEVEERR : خطایی در دریافت دیتا رخ داده است ( خطایی در ارتباط با ماژول رخ داده )
FINGERPRINT_PASSFAIL : پسورد صحیح نیست.
در صورتی که مقدار این تابع برابر ماکروهای بالا نبود  : خطای ناشناخته.
 
توجه : بعد از فراخونی begin و verifyPassword میتونیم از بقیه توابع استفاده کنیم.
 
setPassword : این تابع برای تغییر پسورد ماژول هستش.

این تابع 2 مقدار زیر رو بر میگردونه :
FINGERPRINT_OK : تنظیم پسورد با موفیقت انجام شد.
FINGERPRINT_PACKETRECIEVEERR : خطایی در دریافت دیتا رخ داده است ( خطایی در ارتباط با ماژول رخ داده )
در صورتی که مقدار این تابع برابر ماکروهای بالا نبود  : خطای ناشناخته.
 
setBaudRate : برای تنظیم BaudRate از این تابع استفاده میکنیم، در حالت پیشفرض BaudRate مقدارش برابر 57600 هستش، که میتونید یکی از مقادیر زیر رو برای BaudRate ماژول انتخاب کنید : 9600 - 19200 - 28800 - 38400 - 48000 - 57600 - 67200 - 76800 - 86400 - 96000 - 105600 - 115200؛ برای این کار باید یکی از مقدار 1 تا 12 رو به این تابع بدید، که هر عددی به این تابع بدید ضربدر 9600 میشه و میشه BaudRate ماژول ما، مثلا عدد 1 بدید BaudRate  ماژول ما میشه 9600 و مقدار 6 ( که در حالت پیشفرض همین مقدار هستش ) بدید ضربدر 9600 میشه و BaudRate ماژول میشه 57600 و اگه مقدار 12 بدید این عدد ضربدر 9600 که بشه میشه 115200 و این عدد میشه BaudRate ماژول ما؛ مقادیری غیر از 1 تا 12 به این تابع بدید، تابع کار نمیکنه و مقدار FINGERPRINT_BAUDRATEINCORRECT رو بر میگردونه.

خروجی این تابع برابر یکی از ماکروهای زیر هستش :
FINGERPRINT_OK : تغییر BaudRate با موفقیت انجام شد.
FINGERPRINT_PACKETRECIEVEERR : خطایی در ارتباط با ماژول رخ داده.
FINGERPRINT_BAUDRATEINCORRECT : مقدار داداه شده به تابع بین 1 تا 12 نبوده.
در صورتی که مقدار این تابع برابر ماکروهای بالا نبود  : خطای ناشناخته.
 
setSecurityLevel : تنظیم سطح امنیتی ماژول، که میتونید یکی از مقادیر 1 تا 5 رو به این تابع بدید، مقدار پیشفرض 3 هستش.

توجه : تو دیتاشیتی که من دارم توضیح خاصی درباره این تابع نداده، اگه رو دیتاشیت ماژول مسلط نیستید، بهتره از این تابع استفاده نکنید.
 
setPackageContentLength : تنظیم طول داده Package Content که یکی از مقادیر 0 تا 3 رو میتونید به این تابع بدید، 0 بدید یعنی طول Package Content برابر 32 بایت باشه، 1 یعنی 64 بایت، 2 یعنی 128 بایت و 3 هم یعنی 256 بایت؛ مقدار پیشفرض 2 یعنی 128 بایت هستش.

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

اطلاعات در متغییر های مقابل ذخیره میشه : StatuRegister، SystemIdentifierCode، FingerLibrarySize، SecurityLevel، DeviceAddress، DataPacketSize، BaudRate
توجه : مقدار این متغییر ها رو همانند تواند بخونید یعنی باید به صورت finger.BaudRate مقدارشونو بخونید، و در ضمن فقط مدار این متغییرها رو بخونید و به هیچ وجح مقدارشونو تغییر ندید.
 
خواندن اثر انگشت : برای خوندن یه اثر انگشت و تشخیص و شناساییش و این که قبلا در حافظه ماژول ذخیره شده و تعریف شده این اثر انگشت و چقدر با نمونه های ذخیره شده شباهت داره باید از یه چند تایی تابع در کنار هم استفاده کرد.
1) getImage : اول این تابع رو فراخونی میکنیم تا اثر انگشت رو شناسایی کنه، از این تابع به صورت زیر میشه استفاده کرد :

بعد میام مقداری که تابع برگردونده رو بررسی میکنیم تا ببینیم چه وضعیتی رخ داده، برای این کار یه سری ثابت تعریف شدن که برای این کار به ما میتونن کمک کنن که بررسی کنیم که چه وضعیتی رخ داده، لیست این define ( ماکرو ) ها به صورت زیر هستش :
FINGERPRINT_OK : عکس اثر انگشت تهیه شد ( عملیات با موفقیت انجام شد )
FINGERPRINT_PACKETRECIEVEERR : خطایی در ارتباط با ماژول رخ داده.
FINGERPRINT_NOFINGER : اثرانگشتی شناسایی نشد.
FINGERPRINT_IMAGEFAIL : تهیه عکس اثر انگشت موفق آمیز نبود.
در صورتی که مقدار این تابع برابر ماکروهای بالا نبود  : خطای ناشناخته.
توجه : برای ما فقط حالت FINGERPRINT_OK  مهمه، اگه این حالت رخ داد، یعنی تهیه عکس از اثر انگشت با موفقیت انجام شده، لذا میریم سراغ مرحله بعد.
2) image2Tz : تو مرحله بعد از این تابع استقاده میکنیم تا عملیات تبدیل رو انجام بده ( اطلاعات بیشتری درباره این تابع ندارم، تو خود کتابخونه هم توضیحی دربارش نداده بود، فک کنم تبدیل عکس به کد باشه کار این تابع، نمیدونم دقیقا )، این تابع یه پارامتر ورودی هم داره که کارشو نمیدونم چیه، ما ازش فعلا استفاده نمیکنیم، ما مقدار این تابعو میخونیم تا ببینیم چه وضعیتی رخ داده.

برای این تابع هم برای راحتی کار یه سری ماکرو هستش که ازشون استفاده میتونیم بکنیم، مقدار این تابع میتونه برابر یکی از ماکرو های زیر باشه :
FINGERPRINT_OK : عملیات تبدیل با موفقیت انجام شد.
FINGERPRINT_PACKETRECIEVEERR : خطایی در ارتباط با ماژول رخ داده.
FINGERPRINT_IMAGEMESS : تصویر گرفته شده کقیف/آشفته هستش.
FINGERPRINT_FEATUREFAIL : ویژگیهای یک اثر انگشت یافت نشد.
FINGERPRINT_INVALIDIMAGE : ویژگیهای یک اثر انگشت یافت نشد.
در صورتی که مقدار این تابع برابر ماکروهای بالا نبود  : خطای ناشناخته.
توجه : مثل تابع قبلی برای ما فقط حالت FINGERPRINT_OK مهمه، اگه مقدار تابع برابر FINGERPRINT_OK بود یعنی عملیات تبدیل این تابع با موفقیت انجام شده و بعدش میریم سراغ مرحله بعد.
3) fingerFastSearch : این تابع هم میاد بین تمام اثر انگشت هایی که در ماژول ذخیره شده، یه بررسی میکنه تا ببینه که این اثر انگشتی که الان شناسایی کرده با اثر انگشت های ذخیره شده در ماژول چقدر شباهت داره، و به اون اثر انگشتی که خیلی شباهت داشته باشه رو شناسایی میکنه موقعیتش رو داخل متغییر fingerID ذخیره میکنه؛ اگه هم با هیچ اثر انگشتی برابر نبود که در متغییر fingerID چیزی ذخیره نمیکنه و در خروجی مقدار FINGERPRINT_NOTFOUND رو بر میگردونه.
برای این تابع هم یه سری ماکرو به صورت زیر هستش، که مقدار خونده شده از این تابع میتونه برابر یکی از این ماکروها باشه :
FINGERPRINT_OK : اثر انگشت جدید در حافظه یافت شد.
FINGERPRINT_PACKETRECIEVEERR : خطایی در ارتباط با ماژول رخ داده.
FINGERPRINT_NOTFOUND : اثر انشگت جدید در حافظه یافت نشد.
در صورتی که مقدار این تابع برابر ماکروهای بالا نبود  : خطای ناشناخته.
4) fingerID : اگه در تمام 3 مرجله قبلی وضعیت FINGERPRINT_OK رخ داد، یعنی از اثر انگشت عکس گرفته شد، تبدیل شد، در حافظه شناسایی شد، تو مرحله آخر میایم موقعیت اثر انگشت رو در حافظه ماژول میخونیم و بعد میفهمیم که این اثر انگشت سنس شده متعلق به کدوم خونه ( چه شخصی ) هستش، برای این کار میایم مقدار متغییر fingerID رو میخونیم.
 
 
پیدا کردن اثرانگشت های تکراری در حافظه ماژول : ممکنه تو حافظه ماژول ما چند تا اثرانگشت تکراری رو تعریف کرده باشیم که در ادامه به کمک 2تا تابعی که معرفی میکنم، میتونیم این اثر انگشتهای تکراری رو پیدا کنیم.
isDuplicateModelExist : اول از این تابع استفاده میکنیم تا ببینیم که اثر انگشت تکراری کلا وجود داره یا نه، اگه مقدار این تابع برابر FINGERPRINT_OK بود میریم سراغ مرحله بعد.
findDuplicateModel : بعد میریم سراغ این تابع که id ( موقعیت ) اون اثرانگشت تکراری رو به ما میده و این id رو در متغییر fingerID و میزان شباهت دو اثر انگشت تکراری رو در متغییر confidence ذخیره میکنه؛ اگه مقدار این تابع برابر FINGERPRINT_OK بود میریم سراغ مرحله بعد.
fingerID : در مرحله آخر میریم مقدار این متغییر رو میخونیم و بعد این مقدارو میدیم به تابع حذف کردن اثر انگشت مدنظر.

 
ذخیره کردن یه اثر انگشت در حافظه ماژول : برای این کار در ته مطلب یه سری پروژه میزارم که پروژه enroll برای این کار هستش، چون توضیحاتش یکم زیاد میشه بیخیالش شدم، پروژه رو بررسی کنید، روال کار دستتون میاد.
 
حذف کردن اثر انگشت از حافظه : برای حذف کردن تمام اثرانگشت ها از حافظه باید از تابع deleteAllModel استفاده کرد و برای حذف کردن یه تک اثرانگشت باید از تابع deleteModel استفاده کنیم که باید موقیت اون اثر انگشت رو به این تابع بدیم.

 
تعداد کل مدلهای ذخیره شده در حافظه : اگه مقدار این تابع برابر FINGERPRINT_OK بود، بعدش میریم سراغ متغییر templateCount که تعداد نمونه ها داخلش ذخیره شده.

 
خوندن کد اثر انگشت ها در قالب یه بسته 256 بایتی : پروژه readFingerpintArrayCode رو بررسی کنید، توضیح نمیدم دیگه.

 
پروژه های ماژول اثر انگشت R305
پروژه 1) حذف تمام مدلها ( اثرانگشت های ذخیره شده در حافظه ماژول )

 
پروژه 2) حذف یه مدل خاص، که تو سریال باید ID اون مدل ( اثرانگشت ) رو به میکرو بدیم تا میکرو هم به ماژول بگه که اون اثرانگشت رو پاک کنه از حاقظه اش.

 
پروژه 3) پیدا کردن اثرانگشت های تکراری موجود در حافظه ماژول

 
پروژه 4) تعریف و ذخیره کردن یه اثرانگشت جدید در حافظه ماژول

 
پروژه 5) خوندن اثر انگشت و بررسی این که در حافظه وجود داره یا نه و اگه وجود داره id ییشو نمایش بده.

 
پروژه 6) خوندن کدهای یه اثر انگشت و نمایش دادن در پنجره سریال

 
پروژه 7) تنظیم پارامترهای ماژول و خوندنشون ( در استفاده از این پروژه دقت کنید ---- اخطارررررررررررررررررر )

 
شماتیک پروژه :
ماژول اثر انگشت R305
 
فیلم پروژه ( این فیلم تست پروژه های ماژول اثر انگشت R305 هستش – توضیحات کوچیکی هم تو فیلم دادم که فک نکنم تو مطلب داده باشم – نمیدونم شاید اونا رو هم تو مطلب گفتم – نمیدونم دقیقا ) :
http://www.aparat.com/v/AcKom

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

  1. نوشتن برا پیدا کردن BaudRate ( مخصوص کسایی که فراموش کردن نرخ داده ماژول رو چند تنظیم شده )
  2. عدم امکان راه اندازی با سریال مجازی
  3. تابعی برای جابجایی بین سریال و usb
  4. دریافت کد اثر انگشت ( که الان تابعش هستش ) و دادن و ذخیره کردن کد اثر انگشت در حافظه ماژول ( این قسمتش تابعش نیست )

 

 
خب امیدوارم این مطلب براتون مفید بوده باشه، جهت شادی اموات یه فاتحه بفرستین ( هزینه این مطلب )
اینم یه قسمتی از حرف های امام خمینی، جالب بود، گفتم برای شما هم بزارم بخونید، فعلا یا علی.

****** صحیفه امام خمینی (ره) جلد ۲۱  -  ۱۳۶۷/۰۴/۲۹ ******

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

پسورد فایل های سایت :
www.dmf313.ir
مهدی دمیرچیلو جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
39

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. Avatar

    مهمان

    مهدی

    سلام.میشه آموزش راه اندازی ماژول اثرانگشت با میکرو رو توضیح بدین؟

    1397/05/21
    03:01
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – سریاله دیگه این ماژول اگه اشتباه نکنم – دستوراتشو طبق دیتاشیت میدی بهش – جواب رو برات میفرسته – برا راحتی هم من برا آردوینو یه کتابخونه نوشتم براش شما میتونید برا هر میکرویی که نیازتونه بنویسید یا همینو ویرایش کنن که خب باید CPP رو بلد باشید.

      1397/05/21
      03:24
  2. Avatar

    مهمان

    حامد

    سلام من ماژول fpm10 رو دارم با استفاده کد های شما رمز رو عوض کردم و الان هر رمزی که میزنم قبول نمیکنه ماژول رو پیدا میکنه ولی unknow erorr میده فایل های مثالی که شما دادین رو ارور کامپایل میده Error compiling for board Arduino/Genuino Uno.
    خودم کتابخانه آردواینو مربوط به اثر انگشت رو از تو کتابخانه اش سرچ کردم و قبل از اینکه رمز رو عوض کنم با اون کار میکرد اما الان بعد عوض شدن رمز کار نمیکنه و اگه داخل پرانتز وریفای پسورد هم رمز رو بنویسم ارور میده
    exit status 1
    no matching function for call to ‘Adafruit_Fingerprint::verifyPassword(int)’
    خالی هم که گذاشتنی مشکل رمز دارم و مازول جواب نمیده
    چند بار خواستم رمز رو عوض کنم ولی جواب نداد لطفا کمکم کنی خیلی حیاتیه dash

    1397/05/11
    12:12
  3. Avatar

    مهمان

    علی

    سلام
    خسته نباشین
    قبل از اینکه سوالم رو بپرسم اجازه بدین خیلی خیلی ازتون تشکر کنم بابت مطالب فوق العاده عالی و تدریس مفهومی تون…
    من ماژولم رو طبق آموزش تون قدم به قدم پیش بردم… ولی هر برنامه رو که آپلود میکنم فقط خطای نرخ داده رو میده… یعنی همش ارور شماره 255 رو میده…
    فکر می کنید کجای کارم ایراد داره؟
    همه 12 مقادیر 9600 تا 115200 رو هم تست کردم برطرف نشد sad
    ممنونم heart

    1397/05/09
    01:34
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام- چک کن ببین اتصالاتت درسته. و پایه های سریال ماژول نسوخته باشه.

      1397/05/09
      02:33
      • Avatar

        مهمان

        علی

        بله اتصالات رو بار ها چک کردم و درست بود
        پایه های سریال رو چطوری بدونم سوخته ان یا نه؟
        ماژول نو بوده آخه… unknw

        1397/05/09
        04:00
        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          خب پس کتابخونه رو برسی کن – ببین مشکل از کجاس – روش درست و حسابی برای تست بلد نیستم ولی خب وقتی ببینم ماژول دیتا بهش میدی چیزی نمیده خب یعنی یه مشکلی داره دیگه
          راستی اگه از برد آردوینو استفاده نمیکنی و میکروشو گرفتی ممکنه مشکل از کللاک میکرو باشه.

          1397/05/09
          06:29
  4. Avatar

    مهمان

    Ali

    سلام جناب مهندس
    وقت بخیر
    راه اندازی این ماژول با نرم افزار هایی که توی قسمت دانلود این صفحه قرار دادید، امکان چذیره؟
    این نرم افزار ها با ویندوز 10 سازگاری دارن؟
    ممنون

    1397/05/05
    07:10
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-دقت کنی میبینی که ویندوز خودم 10 هستش.-فیلم.

      1397/05/05
      09:11
  5. Avatar

    مهمان

    Ali

    سلام جناب مهندس
    یه سوال
    میشه دو تا اتصال سنسور به آردوینو رو به بقیه پایه های آردوینو متصل کرد؟
    اگه بخوایم این کار رو بکنیم باید توی کتابخونه اش دست بیاریم؟؟

    1397/05/01
    01:21
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام- دو تا سنسور چی؟ به چه بردی؟ کدوم پایه های میکرو؟

      1397/05/01
      06:47
  6. Avatar

    مهمان

    امیر

    سلام من میخام این کد خواندن دیتای اثر انگشت رو کامپایل کنم این ارور رو میده
    no matching function for call to ‘DMF313_Fingerprint::DMF313_Fingerprint(SoftwareSerial

    1396/12/17
    08:08
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-یا کدو درست کپی نکردی یا کتابخونه های مورد نیاز تو سیستمت نی

      1396/12/19
      02:45
  7. Avatar

    مهمان

    امیرحسین

    سلام
    مرسی از اموزش های خوبت و خسته نباشید
    من میخوام سنسور r300 fpc1020 راه بندازم
    1-با این کد شما میشه؟
    2-میخوام با ارم راه بندازم همین کد رو منتقل کنم رو ارم (با روش های تبدیل کردنش به کد ارم) جواب میده؟
    3-من uno دارم اینجا نوشتی با ید مگا باشه !همون رو آرم بریزم اوکیه؟
    یکی کمکم کنه الا یه هفتس درگیرشم
    با نرم افزار راه میفته ولی نمیتونم با اردوینو و ابنا راهش بندازم dash

    1396/12/11
    08:39
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-نمیدونم باید دیتاشیت هر دو ماژولو بررسی کنید.
      2-خو باید کدو تبدیل کنید – مثلا توابع ورودی خروجی – توابع سریال و …
      3-رو مگا نوشتم احتمالا چون 2 تا سریال نیاز داشتم وگرنه…

      1396/12/12
      10:00
  8. Avatar

    مهمان

    مسعود

    سلام میشه کمکم کنید بتونم با ماژول r305 از طریق avr بتونم برنامه نویسی کنم

    1396/12/10
    11:33
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      شما دستورات آردوینو و کامپایلر مد نظرتون مسلط باشید متونید کدشو به راحتی تبدیل کنید.

      1396/12/11
      10:38
  9. Avatar

    مهمان

    حسن

    با عرض سلام
    دنبال تابعی می گردم که بتوانم که اثر انگشت های ذخیره شده در ماژول را به یک sd کارت منتقل نمایم و همچنین برعکس از sd کارت به ماژول منتقل نمایم اگر امکان اش هست خواهشان راهنمایی بفرمایید
    باتشکر

    1396/11/07
    08:57
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بنویس تابعشو/

      1396/11/07
      09:41
      • Avatar

        مهمان

        حسن

        بوسیله تابع getModel میتونیم یک اثر انگشت ذخیره شده در ماژول را در پورت سریال بخوانیم پس می توانیم بروی اس دی کارت بنویسیم.
        حالا اگر برعکس میخواهیم به ماژول منتقل کنیم از کدام تابع استفاده کنیم.یه راه حل اینکه داده اثر انگشت را به تابع downchar به charebufer1 منتقل کنیم بعد با تابع stroemdel به مازول منتقل کنیم.حال من نمی تونم قسمت اول کار که داده اثر انگشت را به charbuffer1 منتقل کنم را بنویسم . کامند اش را ارسال می کنم ولی جطوری داده بفرستم را نمی دونم.اگه میشه راهنمایی کنید. باتشکر

        1396/11/18
        09:42
  10. Avatar

    مهمان

    بهرام

    سلام با عرض خسته نباشید UART در AVR کتابخونش پیدا میشه مثل serial software اردوینو شما جایی منبع میشناسین چون گشتم پیدا نکردم تو نت

    1396/07/03
    01:55
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – نه!

      1396/07/03
      04:47
  11. Avatar

    مهمان

    qwerty13

    سلام،
    این بحث وارد کردن کد اثرانگشت رو میشه کمک کنید زودتر بررسی کنید؟ آخه من خیلی درگیرشم نیاز دارم… blush

    1396/06/19
    12:05
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام.الان شهرستانم

      1396/06/19
      02:47
  12. Avatar

    مهمان

    qwerty13

    سلام،
    کاش به جای این، r301 رو می خریدید که هم ارزون تر بود هم سطح امنیتیش بالاتر بود…
    دو تا سوال داشتم:
    ۱-چرا از کتابخونه adafruit fingerprint اینا استفاده نکردید؟ آخرین نسخه هاش خیلی خوب جواب میده.
    ۲-میشه رو این هم کار کنید که کد اثرانگشت ها از ماژولی استخراج بشه و مثل یک اثر انگشت عادی داخل یک ماژول دیگه ذخیره بشه؟ چطور میشه چند تا حسگر با هم کار کنن؟

    1396/06/07
    11:20
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      ۱-تو مطلب توضیح دادم دیگه…
      ۲-چند تا سنسور اثر انگشت با هم کار کنند؟ خب اینا پروتکول ارتباطیشون سریال هستش – از میکرویی استفاده کن که چندتا سریال داشته باشه
      ۲٫۵-این کار باید بشه احتمالا – تو نسخه های بعدی بررسیش میکنم – این موردو به ته مطلب اضافه میکنم.

      1396/06/08
      08:54
      • Avatar

        مهمان

        qwerty13

        منظورم از کار کردن چند تا ماژول با هم اینه که یعنی فرضا دو تا حسگر دو طرف یک در هستن و کاربر از هر طرف انگشت بزنه در باز بشه؛ اگه بخوایم برای هر ماژول یک سری enroll کنیم خیلی فاجعه میشه!

        1396/06/08
        09:40
        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          خب گفتم دیگه – از یه میکرو استفاده کن که حداقل ۲-۳ تا سریال داشته باشه.
          قسمت دوم حرفتو متوجه نشدم.بیشتر توضیح بده

          1396/06/09
          04:20
        • Avatar

          مهمان

          qwerty13

          منظورم اینه که بشه کاری کرد که کاربر روی حسگر مرکزی enroll کنه و بعدا بتونه با چند تا حسگر که نقاط مختلفی هستن در رو باز کنه؛ یعنی اون اثر انگشته (کد ش) از حسگر مرکزی استخراج بشه و داهل بقیه هم ذخیره بشه…

          1396/06/09
          07:31
          • مهدی دمرچیلو

            نویسنده این مطلب

            مهدی دمرچیلو

            خب برا این مورد به دو تا تابع نیازه – یکی از این تابع ها نوشته شده – اون یکی نه – تو مطلب هم ذکر کردم که بعدا به کتابخونه اضافش کنم.

            1396/06/09
            10:41
      • Avatar

        مهمان

        Amirhosein

        سلام
        این موضوع کار کردن چنتا سنسور باهم رو به نتیحه ای رسیدین؟
        که تو یکیش ذخیره کرد و این اثر انگشت تو بقیشون هم ذخیره بشه wacko

        1397/11/16
        02:14
  13. Avatar

    مهمان

    محمد

    سلام لطفا مثل این پروژه رو برای c هم بزاربد .

    1396/06/07
    08:16
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      برید یاد بگیرید خودتون – کار خاصی نداره

      1396/06/08
      09:03
  14. Avatar

    مهمان

    ابوالفضل

    سلام .من یه ماژولr308دارم میخوام راش بندازم .فرقی تو راه اندازیش با ماژول r305 داره یا باهمین روش میتونم راش بندازم؟؟؟

    1396/06/06
    01:40
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-دیتاشیتشو ندیدم والا – اگه میتونی بردار بیار برام – تا راش بندازم و یه کتابخونه براش بنویسم البته اگه دیتاشیتی ازش وجود داشته باشه.

      1396/06/06
      09:45
      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        به نظر میاد یکی باشه – باز پروژه این مطلبو تست کن – چون دیتاشیتشو دیدم نوشته بود R30X فرمت دیتاشم همون بود – بقشو دیگه نبدیم حسش نبود – ساعت ۳٫۵ شب laugh

        1396/06/07
        02:27
        • Avatar

          مهمان

          ابوالفضل

          دمت گرم با همین روش جواب گرفتم

          1396/06/09
          01:39
  15. Avatar

    مهمان

    مسعود

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

    1396/06/04
    09:34
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      داچی ملت حمایت نمیکنن من چیکار کنم آخه – این ماژولو فک کنم ۱۰۰ تومن خریدم – یکی هم قبلا خریده بودم تو همین مایه ها که مشکل داشت انگار و حالا بنا به هر دلیلی راه نیوفتاد – الان چند ماهه من قسمت حمایت مالی رو گزاشتم ولی به اندازه پول ماژول توی این مطلب نشده کل مبلغ حمایت شده rofl چه توقعی داری نوکرتم آخه good

      1396/06/05
      09:48