Mündəricat:
- Addım 1: Biometrik səsvermə maşını qurmaq üçün lazım olan komponentlər
- Addım 2: Arduino istifadə edərək biometrik səsvermə maşını üçün dövrə diaqramı
- Addım 3: Mənbə Kodu və Addım -addım Kod Şərhi
- Addım 4: Arduino istifadə edərək barmaq izi səsvermə sisteminin sınanması
Video: Arduino istifadə edərək barmaq izi əsaslı biometrik səsvermə maşını: 4 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Hamımız, istifadəçinin səs vermək üçün bir düyməni basması lazım olan elektron səsvermə maşınından xəbərdarıq. Amma bu maşınlar əvvəldən bərkidilməsi üçün tənqid olunurdu. Hökumət, istifadəçilərin barmaq izi təəssüratına əsasən səs verə biləcəyi barmaq izi əsaslı bir səsvermə maşını təqdim etməyi planlaşdırır. Bu sistem təkcə səslərin təkrarlanma ehtimalını yox edəcək, həm də hər cür manipulyasiyanın qarşısını alacaq.
Beləliklə, bu layihədə Arduino Uno, TFT ekranı və Parmak İzi Sensorundan istifadə edərək Biometrik səsvermə maşınının prototipini hazırlayacağıq. Əvvəllər NodeMCU ilə R305 Parmak İzi Sensorundan istifadə edərək Biometrik əsaslı İştirak Sistemi qururduq, ancaq burada Arduino ilə birlikdə inkişaf etmiş GT-511C3 barmaq izi sensorundan istifadə edəcəyik.
Addım 1: Biometrik səsvermə maşını qurmaq üçün lazım olan komponentlər
- Arduino Uno
- 2.4 "TFT LCD Ekran Qalxanı
- GT-511C3 Barmaq izi sensoru
Bu 2.4 düymlük TFT ekranı əvvəllər Arduino ilə IoT əsaslı Restoran Menyu Sifariş Sistemini qurmaq üçün istifadə edilmişdir.
Addım 2: Arduino istifadə edərək biometrik səsvermə maşını üçün dövrə diaqramı
Yalnız TFT ekranı və barmaq izi sensoru modulunu Arduino Uno ilə bağladığımız üçün bu layihənin dövrə diaqramı çox sadədir. Barmaq izi sensorunun VCC və GND pinləri Arduinonun 5V və GND sancaqlarına, TX və RX pinləri isə Arduino Uno 11 və 12 rəqəmsal pininə qoşulur.
2.4 TFT LCD ekranı bir Arduino Shield -dir və aşağıdakı şəkildə göstərildiyi kimi birbaşa Arduino Uno üzərində quraşdırıla bilər. TFT ekranında Arduino Uno -ya mükəmməl uyğun olan 28 pin var, buna görə barmaq izi sensorunu Arduinonun arxasına lehimləməli oldum.
Addım 3: Mənbə Kodu və Addım -addım Kod Şərhi
Arduino istifadə edən bu Parmak İzi Səs Sistemi Layihəsinin tam kodu məqalənin sonunda verilmişdir; burada kodun bəzi vacib funksiyalarını izah edirik.
Kod SPFD5408, Software Serial və FPS_GT511C3 kitabxanalarından istifadə edir. SPFD5408 kitabxanası, orijinal Adafruit Kitabxanasının dəyişdirilmiş versiyasıdır. Bu kitabxana faylları aşağıdakı linklərdən yüklənə bilər:
- SPFD5408 Kitabxanası
- Proqram Serialı
- FPS_GT511C3
Kitabxanaları daxil etdikdən və bəzi vacib parametrləri təyin etdikdən sonra proqramlaşdırma hissəsinə daxil ola bilərik. Bu proqramda üç hissə iştirak edir. Biri səsvermə maşını UI yaratmaq, ikincisi düymələr üçün toxunma nöqtələrini əldə etmək və toxunuşa əsaslanan düymələri aşkar etmək və nəticədə nəticələri hesablamaq və Arduinonun yaddaşına saxlamaqdır.
1. UI yaradılması:
Üç düyməli və layihənin adı olan sadə bir UI yaratdım. TFT ekran kitabxanası Xəttlər, Dikdörtgen, Dairələr, Simvollar, Simlər və daha çox istənilən rəng və ölçüdə çəkməyə imkan verir. Burada fillRoundRect və drawRoundRect funksiyalarından istifadə edərək iki düzbucaqlı düymə yaradılmışdır. Tft.drawRoundRect funksiyasının sintaksisi aşağıda verilmişdir:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t rəng)
Harada:
x0 = X düzbucaqlı başlanğıc nöqtəsinin koordinatı
y0 = Y düzbucaqlının başlanğıc nöqtəsinin Y koordinatı
w = Düzbucağın eni
h = Dikdörtgənin hündürlüyü
radius = Dairəvi küncün radiusu
color = Rektin Rengi.
void drawHome ()
{
tft.fillScreen (BEYAZ);
tft.drawRoundRect (0, 0, 319, 240, 8, BEYAZ); // Səhifə sərhədi
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, BEYAZ); // Səs ver
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, BEYAZ); // Qeydiyyat
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // Nəticə
tft.drawRoundRect (10, 250, 220, 50, 8, BEYAZ);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Səsvermə");
tft.setCursor (57, 29);
tft.print ("Maşın");
tft.setTextSize (3);
tft.setTextColor (BEYAZ);
tft.setCursor (25, 82);
tft.print ("Namizəd 1");
tft.setCursor (25, 172);
tft.print ("Namizəd 2");
tft.setCursor (25, 262);
tft.print ("Namizəd 3");
}
2. Toxunma Nöqtələrinin Alınması və Algılama Düymələri:
İndi kodun ikinci hissəsində düymənin toxunma nöqtələrini aşkar edəcəyik və sonra düyməni proqnozlaşdırmaq üçün bu nöqtələrdən istifadə edəcəyik. ts.getPoint () funksiyası istifadəçinin TFT ekranında toxunmasını aşkar etmək üçün istifadə olunur. ts.getPoint, toxunulan sahə üçün Raw ADC dəyərlərini verir. Bu RAW ADC dəyərləri daha sonra xəritə funksiyasından istifadə edərək Pixel Koordinatlarına çevrilir.
TSPoint p = ts.getPoint ();
əgər (p.z> ts.pressureThreshhold)
{
p.x = xəritə (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = xəritə (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print (p.x);
//Serial.print("Y: ");
//Serial.print (p.y);
İndi, hər bir düymə üçün X və Y koordinatlarını bildiyimiz üçün, 'if' ifadəsini istifadə edərək istifadəçinin hara toxunduğunu təxmin edə bilərik.
əgər (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Namizəd 1");
Seçici namizədin düyməsini basdıqda, barmağını barmaq izi sensoru üzərində taraması tələb olunacaq. Barmaq kimliyi təsdiqlənərsə, seçicinin səs verməsinə icazə verilir. Qeydiyyatdan keçməmiş hər hansı bir istifadəçi səs vermək istəsə, barmaq izi modulu sistemdəki şəxsiyyətini algılamayacaq və ekranda 'Bağışla səs verə bilməzsən' yazısı görünəcək.
əgər (fps. IsPressFinger ())
{
fps. CaptureFinger (yanlış);
int id = fps. Identify1_N ();
əgər (id <200)
{
msg = "Namizəd 1";
səs1 ++;
EEPROM.write (0, səs1);
tft.setCursor (42, 170);
tft.print ("Təşəkkür edirəm");
gecikmə (3000);
drawHome ();
3. Nəticə:
Son addım EEPROM yaddaşından səslərin sayını əldə etmək və hər üç namizədin səslərini müqayisə etməkdir. Ən çox səs toplayan namizəd qalib gəlir. Nəticə yalnız serial monitordan əldə edilə bilər və TFT ekranında göstərilməyəcək.
səs1 = EEPROM.read (0);
səs2 = EEPROM.read (1);
səs3 = EEPROM.read (2);
əgər (səs)
{
əgər ((səs1> səs2 && səs1> səs3))
{
Serial.print ("Can1 Qazanır");
gecikmə (2000);
}
Addım 4: Arduino istifadə edərək barmaq izi səsvermə sisteminin sınanması
Layihəni sınamaq üçün Arduino Uno noutbuka qoşun və verilən kodu yükləyin. Kod yükləndikdən sonra TFT ekranında namizədin adı göstərilməlidir. Kimsə bir namizədin adına toxunduqda, maşın barmaq izi skanerini taramağı xahiş edəcək. Barmaq izi etibarlı olarsa, istifadəçi səsi sayılacaq, ancaq nümunə verilənlər bazası qeydləri ilə uyğun gəlmirsə, səs vermək hüququ rədd ediləcək. Hər bir namizəd üçün ümumi səs sayı EEPROM -da saxlanılacaq və ən çox səs toplayan namizəd qalib gələcək.
Ümid edirəm dərsdən zövq aldınız və faydalı bir şey öyrəndiniz. Hər hansı bir sualınız varsa, aşağıdakı şərh bölməsində bizə bildirin və daha maraqlı layihələr üçün Təlimatlandırıcıda bizi izləyin.
Tövsiyə:
Raspberry Pi və MySQL verilənlər bazasından istifadə edərək barmaq izi və RFID əsaslı iştirak sistemi: 5 addım
Raspberry Pi və MySQL verilənlər bazasından istifadə edən barmaq izi və RFID əsaslı iştirak sistemi: Bu layihənin videosu
Barmaq izi skaneri və RFID oxuyucusu olan elektrikli qapı kilidi: 11 addım (şəkillərlə)
Barmaq izi skaneri və RFID oxuyucusu olan elektrikli qapı kilidi: Layihə, düymələrdən istifadə etmənin qarşısını almaq üçün dizayn edildi, məqsədimizə çatmaq üçün optik barmaq izi sensoru və Arduino istifadə etdik. Ancaq oxunmaz bir barmaq izi olan insanlar var və sensor onları tanımır. Sonra düşünərək
Barmaq izi səsvermə onlayn sistemi (FVOS): 5 addım
Barmaq izi ilə səsvermə onlayn sistemi (FVOS): Barmaq izi ilə onlayn səsvermə sistemi, seçicilərə barmaq izini cihazdan skan edərək məlumatları bir serverdə saxlayaraq məlumatlarını toplamaq və təsdiq etməklə tam rəqəmsal şəkildə səs vermələrinə imkan verir. İstifadəçi dostu G
Arduino istifadə edən ATM Maşını (Barmaq izi+RFID Kartı): 4 addım (şəkillərlə)
Arduino istifadə edən ATM Maşını (Barmaq izi+RFID Kartı): Salam dostlar, Arduino istifadə edərək yeni bir ATM maşını ideyası ilə geri qayıdıram. Bu, nağdsız xidmətlərin mümkün olmadığı kənd yerlərində faydalı ola bilər. zövq aldınız. başlayaq
ABC kimi barmaq izi təhlükəsizlik sistemini necə aldatmaq olar: 12 addım (şəkillərlə)
ABC qədər barmaq izi təhlükəsizlik sistemini necə aldatmaq olar: Bu təlimat, ABC qədər asan bir barmaq izi təhlükəsizlik sistemini necə aldatacağınızı göstərəcək. IBM heç vaxt sizin haqqında bilməyinizi istəmir. barmaq izi təhlükəsizlik sisteminin çoxu üçün də işləyir. Məsələn: məsələn. qapı, mobil telefon …. Bu təlimat v ilə gəlir