- Nødvendige komponenter:
- Hvordan det fungerer:
- Kretsforklaring:
- Slik kjører du koden i Raspberry Pi:
- Programmeringsforklaring:
Raspberry Pi er et ARM cortex-basert populært utviklingskort designet for elektroniske ingeniører og hobbyister. Det er en enkelt datamaskin som arbeider med lite strøm med veldig god prosesseringshastighet og minne. Raspberry Pi kan brukes til å utføre forskjellige funksjoner om gangen, som en vanlig PC, og derfor kalles den Mini Computer i håndflaten.
Vi har laget en serie Raspberry Pi-veiledninger, der vi har dekket grensesnitt av Raspberry Pi med alle grunnleggende komponenter, samt noen enkle Raspberry Pi-prosjekter til å begynne med.
Her skal vi bygge en elektronisk stemmemaskin ved hjelp av Raspberry Pi Board. Vi er alle kjent med Electronic Voting Machine (EVM) som brukes til å stemme i valg, ved å trykke på en enkel knapp. Vi har allerede dekket Electronic Voting Machine ved hjelp av forskjellige mikrokontrollere som EVM med AVR-mikrokontroller og EVM med Arduino. Vi har også bygget en stemmemaskin der velgeren er godkjent av RFID-koden, slik at bare godkjente stemmer kan telles.
Denne elektroniske stemmemaskinen som bruker Raspberry Pi er enklere og enklere, sammenlignet med våre forrige stemmemaskins prosjekter.
Nødvendige komponenter:
- Raspberry Pi - 1
- 16x2 LCD - 1
- Trykknapp - 5
- Brødbrett - 1
- Koble ledninger
- 1K motstand - 1
- 10K motstand - 5
- 10K POTTE - 1
- LED-er - 5
Hvordan det fungerer:
I dette prosjektet har vi brukt fire knapper for å stemme på fire kandidater eller partier. Vi kan øke antall kandidater, men for bedre forståelse har vi bare brukt fire her. Når en velger trykker på en av de fire knappene, økes 'stemmetallet' for det respekterte partiet eller kandidaten hver gang. Samtidig blinker LED-lampen og summeren piper et sekund for å indikere at avstemningen er gitt. Etter at avstemmingen er fullført, har vi en “Resultat” -knapp for å vise resultatene av avstemmingen. Når vi trykker på denne knappen, viser LCD-skjermen navnet på det vinnende partiet med nr. av stemmer gitt til hvert parti.
Kretsforklaring:
Kretsdiagram for denne EVM ved hjelp av Raspberry Pi er gitt nedenfor. Raspberry Pi kontrollerer hele prosessen som å lese knappen, øker antall teller, genererer resultat og viser alle ting på LCD.
Her har vi brukt Raspberry Pi 3-kortet til å utføre alle operasjonene i prosjektet og brukt wiringPi Library for å velge og kontrollere GPIO-pinnene til Raspberry Pi. Vi kan også bruke Raspberry Pi 2 her. Her har vi brukt Five Buttons, hvor fire har blitt brukt til å stemme på fire forskjellige kandidater / partier, og en knapp brukes til å vise resultatet på LCD. Disse fem knappene er direkte koblet til GPIO-pinnene 21 til 25 på RPI3, i forhold til bakken med 10K opptrekksmotstand for hver enkelt. En 16x2 LCD er koblet til Raspberry Pi. Kontrollpinne RS, RW og En er koblet til GPIO-pinne 11, GND og 10. Og datapinnen D4-D7 er koblet til GPIO-pinnene 6, 5, 4 og 1 i RPI. En summerbrukes også til pip når noen av knappene trykkes av velgeren. Her har vi brukt en grønn LED (D5) for å indikere at systemet er klart og velgeren kan avgi sin stemme ved å trykke på knappen. En 10k gryte brukes til å kontrollere lysstyrken på LCD-skjermen.
Slik kjører du koden i Raspberry Pi:
1. For det første, Logg deg på Raspberry Pi ved hjelp av SSH med standard brukernavn: 'pi' og passord: 'bringebær'. Her har vi brukt SSH-klienten "Putty for Windows" for å få kontakt med Pi gjennom Windows. Hvis du bruker Linux, kan du koble direkte til Pi ved hjelp av SSH. Det er mye opplæring på Internett om 'Få kontakt med Raspberry Pi ved hjelp av SSH', så her går vi ikke i detaljene. Du bør også sjekke hvordan du starter med Raspberry Pi for å lære mer om Pi, OS-installasjon (Raspbian Jessie) og maskinvare- og programvarekravene.
2. Kjør nå kommandoen nedenfor for å åpne en ny fil med navnet voting.c og lime inn koden (gitt i kodeseksjonen nedenfor) i filen, bruk “shift + insert” -tasten for å lime inn koden.
sudo nano voting. c
3. Etter å ha skrevet koden, trykk ctrl + x og trykk deretter på y for å lagre koden og trykk på enter.
4. Gjør nå koden kjørbar ved hjelp av gitt kommando:
cc -o voting voting.c -lwiringPi -std = c99
5. Til slutt kjører du koden ved å bruke gitt kommando
sudo./stemming
Programmeringsforklaring:
Her har vi brukt mye kjent C-språk for å skrive koden og kodingen som ligner på Arduino-koding. Vi kan også bruke Python-språk for å bygge dette prosjektet.
Først og fremst inkluderer vi headerfiler og definerer pins for LCD; wiringPi.h header-fil brukes til å kontrollere GPIO-pinnene til Pi. Initialiser deretter noen variabler og pinner for å ta stemmeinngang og LED-indikasjoner.
#inkludere
Etter det har vi gitt retning til alle brukte GPIO-er i ugyldig oppsett () -funksjonen .
ugyldig oppsett () {if (wiringPiSetup () == - 1) printf ("FEIL"); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (buzz, OUTPUT); pinMode (RS, OUTPUT);……………….
I kode har vi brukt digitalRead- funksjonen i void main () for å lese knappen som er trykket ned.
hvis (digitalRead (in1) == 0) {vote1 ++; vise fram(); digitalWrite (led1, HIGH); summer (); digitalWrite (led1, LOW); vente(); }
void show () -funksjonen brukes til å vise stemmeinformasjon på LCD-skjermen med kandidatpartiets navn.
void show () {setCursor (0,0); utskrift ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (stemme, "% d", stemme1); skrive ut (stemme); sett markør (6,1); sprintf (stemme, "% d", stemme2);………………..
Her er noen flere funksjoner som brukes i dette prosjektet:
void buzzer () fuction brukes til å pippe lyden som en indikasjon på at stemme er gitt. Og ugyldig vent () fuksjon for LED D5 (grønn LED i maskinvare), som viser at systemet er klart for avstemning når LED-en er slått PÅ.
void buzzer () {digitalWrite (buzz, HIGH); forsinkelse (1000); digitalWrite (buzz, LOW); } ugyldig vent () {digitalWrite (led5, LOW); forsinkelse (3000); }
void comapare () -funksjonen brukes til å sammenligne det totale antallet stemmer for hver av kandidatene for å få resultatet og vise status for resultatet på LCD-skjermen.
ugyldig sammenligne () {clear (); skriv ut ("Vennligst vent…."); vente(); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); for (i = 0; i <2; i ++) {clear (); setCursor (0,0); utskrift ("Congrates……."); setCursor (0,1); utskrift ("BJP vant valg");…………………
Sjekk hele koden nedenfor.