Sisällysluettelo:
- Vaihe 1: Biometrisen äänestyskoneen rakentamiseen tarvittavat komponentit
- Vaihe 2: Piirikaavio biometriselle äänestyskoneelle Arduinolla
- Vaihe 3: Lähdekoodi ja vaihe vaiheen koodi Selitys
- Vaihe 4: Sormenjälkiäänestysjärjestelmän testaaminen Arduinolla
Video: Sormenjälkiin perustuva biometrinen äänestyskone Arduinolla: 4 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Olemme kaikki tietoisia nykyisestä sähköisestä äänestyskoneesta, jossa käyttäjän on painettava painiketta äänestääkseen. Mutta näitä koneita on kritisoitu karkaisusta alusta lähtien. Hallitus aikoo siis ottaa käyttöön sormenjälkipohjaisen äänestyskoneen, jossa käyttäjät voivat äänestää hänen sormenjälkensä perusteella. Tämä järjestelmä poistaa paitsi päällekkäisten äänestysten mahdollisuuden myös estää kaikenlaisen manipuloinnin.
Joten tässä projektissa aiomme rakentaa biometrisen äänestyskoneen prototyypin käyttämällä Arduino Unoa, TFT -näyttöä ja sormenjälkitunnistinta. Aiemmin käytimme R305-sormenjälkitunnistinta NodeMCU: n kanssa biometriseen pohjaiseen läsnäolojärjestelmään, mutta täällä käytämme edistynyttä GT-511C3-sormenjälkitunnistinta Arduinon kanssa.
Vaihe 1: Biometrisen äänestyskoneen rakentamiseen tarvittavat komponentit
- Arduino Uno
- 2,4 tuuman TFT LCD -näytön suojus
- GT-511C3-sormenjälkitunnistin
Tätä 2,4 tuuman TFT -näyttöä on aiemmin käytetty Arduinon kanssa IoT -pohjaisen ravintolavalikon tilausjärjestelmän rakentamiseen.
Vaihe 2: Piirikaavio biometriselle äänestyskoneelle Arduinolla
Tämän projektin piirikaavio on hyvin yksinkertainen, koska yhdistämme vain TFT -näytön ja sormenjälkitunnistinmoduulin Arduino Unoon. Sormenjälkitunnistimen VCC- ja GND -nastat on kytketty Arduinon 5V- ja GND -nastoihin, kun taas TX- ja RX -nastat on liitetty Arduino Unon digitaalisiin nastoihin 11 ja 12.
2,4 tuuman TFT -LCD -näyttö on Arduino Shield, ja se voidaan asentaa suoraan Arduino Unoon, kuten alla olevassa kuvassa näkyy. TFT -näytössä on 28 nastaa, jotka sopivat täydellisesti Arduino Unoon, joten minun piti juottaa sormenjälkitunnistin Arduinon takana.
Vaihe 3: Lähdekoodi ja vaihe vaiheen koodi Selitys
Tämän sormenjälkiäänestysjärjestelmäprojektin täydellinen koodi Arduinoa käyttäen on artikkelin lopussa; tässä selitämme koodin tärkeitä toimintoja.
Koodi käyttää SPFD5408-, Software Serial- ja FPS_GT511C3 -kirjastoja. SPFD5408 -kirjasto on alkuperäisen Adafruit -kirjaston muokattu versio. Nämä kirjastotiedostot voi ladata alla olevista linkeistä:
- SPFD5408 -kirjasto
- Ohjelmistosarja
- FPS_GT511C3
Kun olemme sisällyttäneet kirjastot ja määrittäneet joitain tärkeitä parametreja, voimme päästä ohjelmointiosaan. Tässä ohjelmassa on kolme osaa. Yksi on äänestyskoneen käyttöliittymän luominen, toinen painikkeiden kosketuspisteiden saaminen ja painikkeiden tunnistaminen kosketuksen perusteella ja lopulta tulosten laskeminen ja tallentaminen Arduinon muistiin.
1. Käyttöliittymän luominen:
Olen luonut yksinkertaisen käyttöliittymän, jossa on kolme painiketta ja projektin nimi. TFT -näyttökirjaston avulla voit piirtää viivoja, suorakulmioita, ympyröitä, merkkejä, merkkijonoja ja paljon muuta haluamaasi väriä ja kokoa. Tässä kaksi suorakulmaista painiketta luodaan fillRoundRect- ja drawRoundRect -funktioilla. Tft.drawRoundRect -funktion syntaksi on annettu alla:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t säde, uint16_t väri)
Missä:
x0 = X-koordinaatti suorakulmaisen aloituspisteestä
y0 = suorakulmaisen lähtöpisteen Y -koordinaatti
w = suorakulmion leveys
h = Suorakulmion korkeus
säde = pyöreän kulman säde
väri = oikeuden väri.
tyhjä piirtääKoti ()
{
tft.fillScreen (VALKOINEN);
tft.drawRoundRect (0, 0, 319, 240, 8, VALKOINEN); // Sivun reuna
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, VALKOINEN); //Äänestys
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, VALKOINEN); // Ilmoittaudu
tft.fillRoundRect (10, 250, 220, 50, 8, KULTA); //Tulos
tft.drawRoundRect (10, 250, 220, 50, 8, VALKOINEN);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Äänestys");
tft.setCursor (57, 29);
tft.print ("Kone");
tft.setTextSize (3);
tft.setTextColor (VALKOINEN);
tft.setCursor (25, 82);
tft.print ("Ehdokas 1");
tft.setCursor (25, 172);
tft.print ("Ehdokas 2");
tft.setCursor (25, 262);
tft.print ("Ehdokas 3");
}
2. Kosketuspisteiden ja tunnistuspainikkeiden hankkiminen:
Nyt koodin toisessa osassa havaitsemme painikkeiden kosketuspisteet ja käytämme näitä pisteitä painikkeen ennustamiseen. ts.getPoint () -toimintoa käytetään tunnistamaan käyttäjän kosketus TFT -näytöllä. ts.getPoint antaa Raw ADC -arvot kosketetulle alueelle. Nämä RAW ADC -arvot muunnetaan sitten pikselikoordinaateiksi karttatoiminnon avulla.
TSPoint p = ts.getPoint ();
jos (pz> ts.pressureThreshhold)
{
p.x = kartta (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = kartta (p.y, TS_MAXY, TS_MINY, 0, 240);
//Sarja.juliste ("X: ");
// Sarjanjälki (px);
//Sarja.jälki ("Y: ");
//Sarjanjälki (p.y);
Nyt kun tiedämme kunkin painikkeen X- ja Y -koordinaatit, voimme ennustaa, mihin käyttäjä on koskenut käyttämällä "jos" -lausetta.
jos (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("Ehdokas 1");
Kun äänestäjä painaa ehdokaspainiketta, häntä pyydetään skannaamaan sormenjälkitunnistimen sormi. Jos sormitunnus on sallittu, äänestäjä saa äänestää. Jos joku rekisteröimätön käyttäjä haluaa äänestää, sormenjälkimoduuli ei tunnista tunnustaan järjestelmään ja näytössä näkyy "Sorry You Can not Äänestää".
jos (fps. IsPressFinger ())
{
fps. CaptureFinger (epätosi);
int id = fps. Identify1_N ();
jos (id <200)
{
msg = "Ehdokas 1";
ääni1 ++;
EEPROM.write (0, ääni1);
tft.setCursor (42, 170);
tft.print ("Kiitos");
viive (3000);
drawHome ();
3. Tulos:
Viimeinen vaihe on saada äänimäärät EEPROM -muistista ja vertailla kaikkien kolmen ehdokkaan ääniä. Eniten ääniä saanut ehdokas voittaa. Tulos on käytettävissä vain sarjamonitorista, eikä sitä näytetä TFT -näytöllä.
ääni1 = EEPROM.read (0);
ääni2 = EEPROM.read (1);
ääni3 = EEPROM.read (2);
jos (äänestä)
{
jos ((äänestys1> ääni2 && äänestys1> ääni3))
{
Serial.print ("Can1 voittaa");
viive (2000);
}
Vaihe 4: Sormenjälkiäänestysjärjestelmän testaaminen Arduinolla
Testaa projektia liittämällä Arduino Uno kannettavaan tietokoneeseen ja lataamalla annettu koodi. Kun koodi on ladattu, TFT -näytössä pitäisi näkyä ehdokkaan nimi. Kun joku napauttaa ehdokkaan nimeä, laite pyytää skannaamaan sormenjälkitunnistimen. Jos sormenjälki on kelvollinen, käyttäjän ääni lasketaan, mutta jos kuvio ei vastaa tietokannan tietueita, äänioikeus evätään. Kunkin ehdokkaan äänien kokonaismäärä tallennetaan EEPROMiin ja eniten ääniä saanut ehdokas voittaa.
Toivottavasti pidit opetusohjelmasta ja opit jotain hyödyllistä. Jos sinulla on kysyttävää, ilmoita siitä meille alla olevassa kommenttiosassa ja seuraa meitä myös Instructable -sivustossa saadaksesi lisää tällaisia mielenkiintoisia projekteja.
Suositeltava:
Biometrinen sisäänpääsy autoon - todellinen avaimeton auto: 4 vaihetta
Biometrinen sisäänpääsy autoon - todellinen avaimeton auto: Muutama kuukausi sitten tyttäreni kysyi minulta, miksi nykyaikaisissa autoissa ei ole biometristä syöttöjärjestelmää, vaikka jopa matkapuhelimessa on se. Siitä lähtien on työskennellyt saman toteuttamiseksi ja lopulta onnistuin asentamaan ja testaamaan jotain laitteelleni
Kuvankäsittelyyn perustuva palontunnistus- ja sammutusjärjestelmä: 3 vaihetta
Kuvankäsittelyyn perustuva palontunnistus- ja sammutusjärjestelmä: Hei ystävät, tämä on kuvankäsittelyyn perustuva palonhavaitsemis- ja sammutusjärjestelmä, joka käyttää Arduinoa
Kylo Renin valomiekkaan perustuva audiovisualisoija: 5 vaihetta
Kylo Renin valomiekkoon perustuva audiovisualisaattori: Kylo Renin valosapelin innoittamana päätin tehdä audiovisualisaattorin käyttämällä arduinoon kytkettyjä LED -valoja ja käyttää sitten prosessointia pulssamaan LEDit kappaleen perusteella … arvasit oikein Keisarillinen maaliskuu
PIC -mikrokontrolleriin perustuva robottivarsi: 6 vaihetta (kuvilla)
PIC -mikrokontrolleriin perustuva robottivarsi: Robottiaseita löytyy kaikkialta autoteollisuuden kokoonpanolinjalta avaruudessa sijaitseviin telekirurgiaroboteihin. Näiden robottien mekanismit ovat samanlaisia kuin ihmisen, joka voidaan ohjelmoida samanlaiseen toimintaan ja lisäyksiin
Biometrinen henkilökohtainen päiväkirja: 5 vaihetta (kuvilla)
Biometrinen henkilökohtainen päiväkirja: Tässä siistissä pienessä gadgetissa on sormenjälkitunnistin, joten voit turvata viileät tavarasi henkilökohtaiseen kannettavaan koteloon. Minulla on tapana pitää päiväkirjaa ja kynää sekä suunnitelmia uusille projekteilleni. Sisältää 3D -painetun kotelon ja käyttää Arduino nanoa. Hieno lahjaidea