Sisukord:
- Samm: biomeetrilise hääletusmasina ehitamiseks vajalikud komponendid
- Samm: biomeetrilise hääletusmasina vooluahela skeem Arduino abil
- 3. samm: lähtekood ja samm -sammult koodi selgitus
- Samm: sõrmejälgede hääletussüsteemi testimine Arduino abil
Video: Sõrmejäljel põhinev biomeetriline hääletusmasin Arduino abil: 4 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Me kõik teame olemasolevat elektroonilist hääletusmasinat, kus kasutaja peab hääle andmiseks nuppu vajutama. Kuid neid masinaid on algusest peale karastamise pärast kritiseeritud. Seega plaanib valitsus kasutusele võtta sõrmejäljel põhineva hääletusmasina, kus kasutajad saavad hääletada tema sõrmejälgede mulje põhjal. See süsteem ei kõrvalda mitte ainult topelthäälte võimalust, vaid hoiab ära ka igasuguse manipuleerimise.
Nii et selles projektis ehitame biomeetrilise hääletusmasina prototüübi, kasutades Arduino Uno, TFT -ekraani ja sõrmejäljeandurit. Varem kasutasime R305 sõrmejäljeandurit koos NodeMCU-ga, et luua biomeetrilisel põhinevat osavõtusüsteemi, kuid siin kasutame täiustatud GT-511C3 sõrmejäljeandurit koos Arduinoga.
Samm: biomeetrilise hääletusmasina ehitamiseks vajalikud komponendid
- Arduino Uno
- 2,4 -tolline TFT LCD -ekraan
- GT-511C3 sõrmejäljeandur
Seda 2,4 -tollist TFT -ekraani on varem koos Arduinoga kasutatud IoT -põhise restoranimenüü tellimissüsteemi loomiseks.
Samm: biomeetrilise hääletusmasina vooluahela skeem Arduino abil
Selle projekti skeem on väga lihtne, kuna ühendame TFT -ekraani ja sõrmejäljeandurimooduli ainult Arduino Unoga. Sõrmejäljeanduri VCC- ja GND -tihvtid on ühendatud Arduino 5V ja GND -tihvtidega, TX- ja RX -tihvtid aga Arduino Uno digitaalsete tihvtidega 11 ja 12.
2,4 -tolline TFT LCD -ekraan on Arduino kilp ja selle saab otse Arduino Unole paigaldada, nagu on näidatud alloleval pildil. TFT -ekraanil on 28 tihvti, mis sobivad ideaalselt Arduino Unosse, nii et pidin jootma sõrmejäljeanduri Arduino tagaküljel.
3. samm: lähtekood ja samm -sammult koodi selgitus
Selle sõrmejälgede hääletamissüsteemi projekti täielik kood Arduino abil on toodud artikli lõpus; siin selgitame koodi mõningaid olulisi funktsioone.
Kood kasutab raamatukogusid SPFD5408, tarkvara jada ja FPS_GT511C3. SPFD5408 raamatukogu on algse Adafruit Library muudetud versioon. Neid raamatukogu faile saab alla laadida järgmistelt linkidelt:
- SPFD5408 raamatukogu
- Tarkvara jada
- FPS_GT511C3
Pärast raamatukogude kaasamist ja mõnede oluliste parameetrite määratlemist võime asuda programmeerimisse. Selles programmis on kolm osa. Üks on hääletusmasina kasutajaliidese loomine, teine nuppude puutepunktide hankimine ja nuppude tuvastamine puute põhjal ning lõpuks tulemuste arvutamine ja Arduino mällu salvestamine.
1. UI loomine:
Olen loonud lihtsa kasutajaliidese, millel on kolm nuppu ja projekti nimi. TFT -ekraaniteek võimaldab joonistada jooni, ristkülikuid, ringe, tähemärke, stringe ja palju muud eelistatud värvi ja suurusega. Siin luuakse funktsioonide fillRoundRect ja drawRoundRect abil kaks ristkülikukujulist nuppu. Funktsiooni tft.drawRoundRect süntaks on toodud allpool:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t raadius, uint16_t värv)
Kus:
x0 = ristkülikukujulise alguspunkti X-koordinaat
y0 = ristkülikukujulise alguspunkti Y -koordinaat
w = ristküliku laius
h = Ristküliku kõrgus
raadius = ümmarguse nurga raadius
värv = rekti värv.
void drawHome ()
{
tft.fillScreen (VALGE);
tft.drawRoundRect (0, 0, 319, 240, 8, VALGE); // Lehe ääris
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, VALGE); // Hääleta
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, VALGE); // Registreeru
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); //Tulemus
tft.drawRoundRect (10, 250, 220, 50, 8, VALGE);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Hääletamine");
tft.setCursor (57, 29);
tft.print ("Masin");
tft.setTextSize (3);
tft.setTextColor (VALGE);
tft.setCursor (25, 82);
tft.print ("Kandidaat 1");
tft.setCursor (25, 172);
tft.print ("Kandidaat 2");
tft.setCursor (25, 262);
tft.print ("Kandidaat 3");
}
2. Puutepunktide hankimine ja nuppude tuvastamine:
Nüüd tuvastame koodi teises osas nupu puutepunktid ja kasutame neid punkte nupu ennustamiseks. ts.getPoint () funktsiooni kasutatakse kasutaja puudutuse tuvastamiseks TFT -ekraanil. ts.getPoint annab puudutatud ala töötlemata ADC väärtused. Need RAW ADC väärtused teisendatakse seejärel kaardifunktsiooni abil pikslikoordinaatideks.
TSPoint p = ts.getPoint ();
kui (p.z> ts.pressureThreshhold)
{
p.x = kaart (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = kaart (p.y, TS_MAXY, TS_MINY, 0, 240);
//Sarja.print ("X: ");
//Seriaalne trükk (px);
//Sarja.print ("Y: ");
//Seriaalne trükk (p.y);
Nüüd, kuna me teame iga nupu X- ja Y -koordinaate, saame lauset „kui” kasutades ennustada, kuhu kasutaja on puutunud.
kui (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Kandidaat 1");
Kui valija vajutab kandidaadi nuppu, palutakse tal sõrmejäljeanduril sõrme skannida. Kui sõrme ID on lubatud, on valijal lubatud hääletada. Kui mõni registreerimata kasutaja soovib hääletada, ei tuvasta sõrmejäljemoodul süsteemis oma ID-d ja ekraanile ilmub teade „Vabandust, et ei saa hääletada”.
kui (fps. IsPressFinger ())
{
fps. CaptureFinger (vale);
int id = fps. Identify1_N ();
kui (id <200)
{
msg = "Kandidaat 1";
hääl1 ++;
EEPROM.write (0, hääl1);
tft.setCursor (42, 170);
tft.print ("Aitäh");
viivitus (3000);
drawHome ();
3. Tulemus:
Viimane samm on häälte lugemine EEPROM -i mälust ja kõigi kolme kandidaadi häälte võrdlemine. Võidab enim hääli saanud kandidaat. Tulemusele pääseb juurde ainult jadamonitorilt ja seda ei kuvata TFT -ekraanil.
hääletus1 = EEPROM.read (0);
hääletus2 = EEPROM.read (1);
hääletus3 = EEPROM.read (2);
kui (hääletama)
{
kui ((hääl1> hääl2 &&hääl1> hääl3))
{
Serial.print ("Can1 võidab");
viivitus (2000);
}
Samm: sõrmejälgede hääletussüsteemi testimine Arduino abil
Projekti testimiseks ühendage Arduino Uno sülearvutiga ja laadige üles antud kood. Kui kood on üles laaditud, peaks TFT -ekraan kuvama kandidaadi nime. Kui keegi puudutab kandidaadi nime, palub masin sõrmejäljeskannerit skannida. Kui sõrmejälg on kehtiv, loetakse kasutaja hääl arvesse, kuid juhul, kui muster ei ühti andmebaasi kirjetega, keelatakse juurdepääs hääle andmisele. Iga kandidaadi häälte koguarv salvestatakse EEPROMis ja võidab kõige rohkem hääli saanud kandidaat.
Loodan, et teile meeldis õpetus ja õppisite midagi kasulikku. Kui teil on küsimusi, andke meile sellest teada allpool olevas kommentaaride jaotises ja järgige meid ka Instructable'is selliste huvitavate projektide jaoks.
Soovitan:
Google'i assistendil põhinev LED -juhtimine Raspberry Pi abil: 3 sammu
Google'i assistendil põhinev LED -juhtimine Raspberry Pi abil: Hei! Selles projektis rakendame Google'i assistendil põhinevat LED -i juhtimist Raspberry Pi 4 abil, kasutades HTTP -d Pythonis. LED -i saate asendada lambipirniga (ilmselgelt mitte sõna otseses mõttes, vajate releemoodulit vahepeal) või mõne muu koduga
Biomeetriline auto sisenemine - tõeline võtmeta auto: 4 sammu
Biomeetriline sisenemine autosse - tõeline võtmeta auto: mõni kuu tagasi küsis mu tütar minult, miks tänapäeva autod ei ole varustatud biomeetrilise sisestussüsteemiga, isegi kui see on mobiiltelefonil olemas. Sellest ajast saati töötasin selle rakendamise kallal ja lõpuks õnnestus mul midagi T -le installida ja testida
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
Kiirusel põhinev arütmiadetektor Arduino abil: 7 sammu
Rütmipõhine arütmiadetektor Arduino abil: südame rütmihäired vaevavad igal aastal ligikaudu nelja miljonit ameeriklast (Texas Heart Institute, par. 2). Kuigi iga süda kogeb rütmi ja kiirust, võivad kroonilised südame rütmihäired nende ohvritele saatuslikuks saada. Paljud südame rütmihäired
Biomeetriline isiklik päevik: 5 sammu (piltidega)
Biomeetriline isiklik päevik: sellel kenal pisikesel vidinal on sõrmejäljeandur, et saaksite oma lahedad asjad isikupärastatud kaasaskantavasse ümbrisesse kinnitada. Ma hoian oma uute projektide jaoks päevikut ja pliiatsit ning kujundusi. Sisaldab 3D trükitud ümbrist ja kasutab Arduino nano. Suurepärane kingiidee