תוכן עניינים:
- שלב 1: רכיבים הנדרשים לבניית מכונת הצבעה ביומטרית
- שלב 2: תרשים מעגלים למכונת הצבעה ביומטרית באמצעות Arduino
- שלב 3: קוד מקור והסבר קוד שלב אחר שלב
- שלב 4: בדיקת מערכת הצבעת טביעות האצבע באמצעות Arduino
וִידֵאוֹ: מכונת הצבעה ביומטרית המבוססת על טביעות אצבע באמצעות Arduino: 4 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
כולנו מודעים למכונת ההצבעה האלקטרונית הקיימת שבה המשתמש צריך ללחוץ על כפתור כדי להצביע. אך המכונות הללו זכו לביקורת על הרפיה מאז תחילת הדרך. אז הממשלה מתכננת להציג מכונת הצבעה מבוססת טביעות אצבע שבה משתמשים יכולים להעלות את ההצבעה על סמך רושם טביעת האצבע שלו. מערכת זו לא רק תסיר את האפשרות של הצבעה כפולה אלא גם תמנע מניפולציות כלשהן.
אז בפרויקט זה, אנו הולכים לבנות אב טיפוס של מכונת הצבעה ביומטרית באמצעות Arduino Uno, צג TFT וחיישן טביעות אצבע. בעבר השתמשנו בחיישן טביעות אצבע R305 עם NodeMCU לבניית מערכת נוכחות מבוססת ביומטרית אך כאן נשתמש בחיישן טביעות האצבע המתקדם GT-511C3 עם Arduino.
שלב 1: רכיבים הנדרשים לבניית מכונת הצבעה ביומטרית
- ארדואינו אונו
- מגן תצוגה TFT LCD בגודל 2.4 אינץ '
- חיישן טביעות אצבע GT-511C3
צג TFT זה בגודל 2.4 אינץ 'משמש בעבר עם Arduino לבניית מערכת הזמנת תפריטים מבוססת IoT.
שלב 2: תרשים מעגלים למכונת הצבעה ביומטרית באמצעות Arduino
תרשים המעגלים לפרויקט זה הוא פשוט מאוד מכיוון שאנו מחברים רק את תצוגת TFT ומודול חיישן טביעות האצבע עם Arduino Uno. סיכות VCC ו- GND של חיישן טביעות האצבע מחוברות לסיכות 5V ו- GND של Arduino ואילו סיכות TX ו- RX מחוברות לסיכה 11 ו -12 דיגיטלית של Arduino Uno.
מסך TFT LCD בגודל 2.4 אינץ 'הוא מגן Arduino וניתן להתקין אותו ישירות על Arduino Uno, כפי שמוצג בתמונה למטה. לתצוגת TFT יש 28 סיכות שמתאימות בצורה מושלמת ל- Arduino Uno, כך שהייתי צריך להלחם את חיישן טביעות האצבע בצד האחורי של Arduino.
שלב 3: קוד מקור והסבר קוד שלב אחר שלב
הקוד המלא של פרויקט מערכת ההצבעה של טביעות אצבע באמצעות Arduino ניתן בסוף המאמר; כאן אנו מסבירים כמה פונקציות חשובות של הקוד.
הקוד משתמש בספריות SPFD5408, Software Serial ו- FPS_GT511C3. ספריית SPFD5408 היא הגרסה ששונתה של ספריית Adafruit המקורית. ניתן להוריד קבצי ספרייה אלה מהקישורים המופיעים להלן:
- ספריית SPFD5408
- תוכנה סדרתית
- FPS_GT511C3
לאחר הכללת הספריות והגדרת כמה פרמטרים חשובים, נוכל להיכנס לחלק התכנות. ישנם שלושה חלקים המעורבים בתכנית זו. האחד יוצר ממשק משתמש של מכונת הצבעה, השני הוא קבלת נקודות המגע לכפתורים וזיהוי הכפתורים על סמך המגע ולבסוף חישוב התוצאות ושמירתם בזיכרון של ארדואינו.
1. יצירת ממשק משתמש:
יצרתי ממשק משתמש פשוט עם שלושה כפתורים ושם הפרויקט. ספריית התצוגה של TFT מאפשרת לך לצייר קווים, מלבנים, עיגולים, תווים, מחרוזות והרבה יותר מכל צבע וגודל מועדפים. כאן נוצרים שני לחצנים מלבניים באמצעות פונקציות fillRoundRect ו- drawRoundRect. תחביר לפונקציה tft.drawRoundRect ניתן להלן:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
איפה:
x0 = קואורדינטת X של נקודת ההתחלה של מלבני
y0 = קואורדינטת Y של נקודת ההתחלה של מלבני
w = רוחב המלבני
h = גובה המלבני
רדיוס = רדיוס הפינה העגולה
color = צבע של הזקן.
void drawHome ()
{
tft.fillScreen (לבן);
tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // גבול עמוד
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, WHITE); //הַצבָּעָה
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, WHITE); //לְהִרָשֵׁם
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); //תוֹצָאָה
tft.drawRoundRect (10, 250, 220, 50, 8, WHITE);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("הצבעה");
tft.setCursor (57, 29);
tft.print ("מכונה");
tft.setTextSize (3);
tft.setTextColor (לבן);
tft.setCursor (25, 82);
tft.print ("מועמד 1");
tft.setCursor (25, 172);
tft.print ("מועמד 2");
tft.setCursor (25, 262);
tft.print ("מועמד 3");
}
2. קבלת נקודות המגע וגילוי לחצנים:
כעת בחלק השני של הקוד, נזהה את נקודות המגע בכפתורים ולאחר מכן נשתמש בנקודות אלה לחיזוי הכפתור. הפונקציה ts.getPoint () משמשת לזיהוי מגע המשתמש בתצוגת TFT. ts.getPoint נותן את ערכי ADC הגולמיים לאזור הנגוע. ערכי RAW ADC אלה מומרים לאחר מכן לקואורדינטות פיקסל באמצעות פונקציית המפה.
TSPoint p = ts.getPoint ();
אם (p.z> ts.pressureThreshhold)
{
p.x = מפה (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = map (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print(p.y);
כעת, מכיוון שאנו מכירים את קואורדינטות ה- X וה- Y עבור כל כפתור, אנו יכולים לחזות היכן המשתמש נגע באמצעות הצהרת 'אם'.
אם (px> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("מועמד 1");
כאשר בוחר לוחץ על כפתור המועמד, הוא יתבקש לסרוק את האצבע על חיישן טביעות האצבע. אם מזהה אצבע מאושר אז הבוחר רשאי להצביע. אם משתמש כלשהו שאינו רשום רוצה להצביע, מודול טביעת האצבע לא יזהה את המזהה שלו במערכת והתצוגה תציג 'מצטערים שאי אפשר להצביע'.
אם (fps. IsPressFinger ())
{
fps. CaptureFinger (שקר);
int id = fps. Identify1_N ();
אם (id <200)
{
msg = "מועמד 1";
הצבעה 1 ++;
EEPROM.write (0, הצבעה 1);
tft.setCursor (42, 170);
tft.print ("תודה");
עיכוב (3000);
drawHome ();
3. תוצאה:
השלב האחרון הוא קבלת ספירת הקולות מזיכרון EEPROM והשוואת הקולות של כל שלושת המועמדים. מועמד בעל הקולות הגבוהים ביותר זוכה. ניתן לגשת לתוצאה רק מהצג הטורי ולא תוצג על מסך TFT.
vote1 = EEPROM.read (0);
vote2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
אם (הצבע)
{
אם ((הצבעה 1> הצבעה 2 && הצבעה 1> הצבעה 3))
{
Serial.print ("Can1 מנצח");
עיכוב (2000);
}
שלב 4: בדיקת מערכת הצבעת טביעות האצבע באמצעות Arduino
כדי לבדוק את הפרויקט, חבר את ה- Arduino Uno למחשב הנייד והעלה את הקוד הנתון. לאחר העלאת הקוד, צג TFT צריך להציג את שם המועמד. כאשר מישהו מקיש על שם מועמד, המכונה תבקש לסרוק את סורק טביעות האצבע. אם טביעת האצבע תקפה, הצבעת המשתמש תיספר, אך במקרה שהתבנית לא תואמת את רשומות מסד הנתונים, הגישה להצבעה תימנע. מספר הקולות הכולל לכל מועמד יישמר ב- EEPROM ומועמד בעל מספר הקולות הגבוה ביותר יזכה.
אני מקווה שנהנית מהדרכה ולמדת משהו שימושי. אם יש לך שאלות, אנא יידע אותנו בסעיף ההערות להלן, ועקוב אחרינו ב- Instructable לפרויקטים מעניינים נוספים כאלה.
מוּמלָץ:
מערכת נוכחות מבוססת טביעות אצבע ו RFID באמצעות מסד פטל ו- Database MySQL: 5 שלבים
מערכת נוכחות מבוססת טביעות אצבע ו- RFID באמצעות מסד פטל ו- MySQL: סרטון של פרויקט זה
נעילת דלת חשמלית עם סורק טביעות אצבע וקורא RFID: 11 שלבים (עם תמונות)
נעילת דלת חשמלית עם סורק טביעות אצבע וקורא RFID: הפרויקט נועד למנוע את הצורך בשימוש במפתחות, כדי להגיע למטרה שלנו השתמשנו בחיישן טביעות אצבע אופטי ובארדואינו. עם זאת ישנם אנשים שיש להם טביעת אצבע בלתי קריאה והחיישן לא יזהה אותה. ואז לחשוב על
שימוש בחיישן טביעות אצבע לנוכחות זמן בשילוב עם פתרון XAMP: 6 שלבים (עם תמונות)
שימוש בחיישן טביעות אצבע לנוכחות זמן בשילוב עם פתרון XAMP: לפרויקט בית ספרי חיפשנו פתרון כיצד לעקוב אחר נוכחות התלמידים. הרבה תלמידים שלנו מגיעים מאוחר. זו עבודה מייגעת לבדוק את נוכחותם. מצד שני, יש הרבה דיונים מכיוון שתלמידים לעתים קרובות יגידו
מדריך חיישן טביעות אצבע Arduino: 6 שלבים (עם תמונות)
מדריך חיישן טביעות אצבע Arduino: חברים יקרים ברוכים הבאים להדרכה נוספת! היום אנו הולכים לבנות פרויקט מעניין של Arduino המשתמש במודול חיישן טביעות אצבע. ללא כל עיכוב נוסף, בואו נתחיל! תמיד רציתי לנסות מודול חיישן טביעות אצבע ב
איך להטעות מערכת אבטחת טביעות אצבע קלה כמו ABC: 12 שלבים (עם תמונות)
כיצד להטעות מערכת אבטחת טביעות אצבע קלה כמו ABC: הוראה זו תראה לך כיצד להטעות מערכת אבטחת טביעות אצבע קלה כמו ABC. IBM לעולם לא רוצה שתדע על ,. זה עובד גם עבור רוב מערכת אבטחת טביעות האצבע. לדוגמא: למשל. דלת, טלפון נייד …. הוראה זו מגיעה עם v