- Nødvendige komponenter:
- Hvordan det virker:
- Forklaring af kredsløb:
- Sådan køres koden i Raspberry Pi:
- Programmeringsforklaring:
Raspberry Pi er et ARM cortex-baseret populært udviklingskort designet til elektroniske ingeniører og hobbyister. Det er en enkelt bordcomputer, der arbejder med lav effekt med en meget god behandlingshastighed og hukommelse. Raspberry Pi kan bruges til at udføre forskellige funktioner ad gangen, som en normal pc, og derfor kaldes den Mini Computer i din håndflade.
Vi har oprettet en række Raspberry Pi-vejledninger, hvor vi har dækket Interfacing of Raspberry Pi med alle de grundlæggende komponenter samt nogle enkle Raspberry Pi-projekter til at begynde med.
Her skal vi bygge en elektronisk stemmemaskine ved hjælp af Raspberry Pi Board. Vi er alle opmærksomme på den elektroniske afstemningsmaskine (EVM), der bruges til at stemme ved valg ved at trykke på en simpel knap. Vi har allerede dækket elektronisk stemmemaskine ved hjælp af forskellige mikrokontroller som EVM med AVR-mikrocontroller og EVM med Arduino. Vi har også bygget en stemmemaskine, hvor vælgeren er godkendt af RFID-mærket, så kun godkendte stemmer kan tælles.
Denne elektroniske stemmemaskine ved hjælp af Raspberry Pi er enklere og lettere sammenlignet med vores tidligere stemmemaskins projekter.
Nødvendige komponenter:
- Hindbær Pi - 1
- 16x2 LCD - 1
- Trykknap - 5
- Brødbræt - 1
- Tilslutning af ledninger
- 1K modstand - 1
- 10K modstand - 5
- 10K POT - 1
- LED'er - 5
Hvordan det virker:
I dette projekt har vi brugt fire knapper til at stemme på fire kandidater eller partier. Vi kan øge antallet af kandidater, men for bedre forståelse har vi kun brugt fire her. Når en vælger trykker på en af de fire knapper, øges 'stemmetællingen' for det respekterede parti eller kandidat hver gang. Samtidig blinker LED, og summeren bipper et sekund for at indikere, at der er afgivet stemme. Når afstemningen er afsluttet, har vi en “Resultat” -knap for at vise resultaterne af afstemningen. Når vi trykker på denne knap, viser LCD-skærmen navnet på den vindende fest med nr. af stemmer givet til hver parti.
Forklaring af kredsløb:
Kredsløbsdiagram for denne EVM ved hjælp af Raspberry Pi er angivet nedenfor. Raspberry Pi styrer hele processen som at læse knappen, øge antallet af stemmer, generere resultat og vise alle ting på LCD.
Her har vi brugt Raspberry Pi 3-kort til at udføre alle operationer i projektet og brugt wiringPi Library til valg og styring af GPIO-pins i Raspberry Pi. Vi kan også bruge Raspberry Pi 2 her. Her har vi brugt Five Buttons, hvor fire er blevet brugt til at stemme på fire forskellige kandidater / partier, og en knap bruges til at vise resultatet på LCD. Disse fem knapper er direkte forbundet til GPIO-benene 21 til 25 i RPI3 i forhold til jorden med 10K pull-up-modstand for hver enkelt. En 16x2 LCD er forbundet med Raspberry Pi. Kontrolstift RS, RW og En er forbundet til GPIO pin 11, GND og 10. Og datapind D4-D7 er forbundet til GPIO ben 6, 5, 4 og 1 i RPI. En summerbruges også til bip, når vælgeren trykker på en af knapperne. Her har vi brugt en grøn LED (D5) til at indikere, at systemet er klar, og vælgeren kan afgive deres stemme i maskinen ved at trykke på knappen. En 10k pot bruges til at kontrollere lysstyrken på LCD.
Sådan køres koden i Raspberry Pi:
1. For det første skal du logge ind på din Raspberry Pi ved hjælp af SSH med standardbrugernavn: 'pi' og adgangskode: 'hindbær'. Her har vi brugt SSH-klienten "Putty for Windows" til at få forbindelse til Pi via Windows. Hvis du bruger Linux, kan du oprette direkte forbindelse til Pi ved hjælp af SSH. Der er masser af tutorial på Internettet om 'Sådan får du forbindelse til Raspberry Pi ved hjælp af SSH', så her går vi ikke i detaljerne. Du bør også tjekke Sådan starter du med Raspberry Pi for at lære mere om Pi, OS-installation (Raspbian Jessie) og dets hardware- og softwarekrav.
2. Kør nu kommandoen nedenfor for at åbne en ny fil med navnet voting.c og indsæt koden (angivet i kodesektionen nedenfor) i filen, brug "shift + insert" -tasten til at indsætte koden.
sudo nano afstemning. c
3. Når du har skrevet koden, skal du trykke på ctrl + x og derefter trykke på y for at gemme koden og trykke på enter.
4. Gør nu koden eksekverbar ved hjælp af den givne kommando:
cc -o voting voting.c -lwiringPi -std = c99
5. Kør endelig koden ved hjælp af den givne kommando
sudo. / afstemning
Programmeringsforklaring:
Her har vi brugt meget brugerkendt C-sprog til at skrive koden og kodningen meget lig Arduino-kodning. Vi kan også bruge Python-sprog til at opbygge dette projekt.
Først og fremmest inkluderer vi headerfiler og definerer pins til LCD; wiringPi.h header-fil bruges til at styre GPIO-benene på Pi. Initialiser derefter nogle variabler og stifter til optagelse af stemmeinput og LED-indikationer.
#omfatte
Efter det har vi givet retning til alle brugte GPIO'er i ugyldig opsætningsfunktion () .
ugyldig opsætning () {if (wiringPiSetup () == - 1) printf ("FEJL"); 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 brugt digitalRead- funktionen i ugyldigt hoved () til at læse den trykte knap.
hvis (digitalRead (in1) == 0) {vote1 ++; at vise(); digitalWrite (led1, HIGH); summer(); digitalWrite (led1, LOW); vente(); }
void show () -funktionen bruges til at vise stemmeanvisninger på LCD'et med kandidatpartiets navn.
ugyldigt show () {setCursor (0,0); print ("BJP Cong AAP Ex"); sæt markør (1,1); sprintf (afstemning, "% d", afstemning1); print (afstemning); sæt markør (6,1); sprintf (afstemning, "% d", afstemning2);………………..
Her er nogle flere funktioner, der bruges i dette projekt:
void buzzer () fuction bruges til at bippe summeren som et tegn på, at der er afgivet stemme. Og ugyldig ventefunktion () for LED D5 (grøn LED i hardware), som viser, at systemet er klar til afstemning, når LED'en er tændt.
ugyldig summer () {digitalWrite (buzz, HIGH); forsinkelse (1000); digitalWrite (buzz, LOW); } ugyldig ventetid () {digitalWrite (led5, LOW); forsinkelse (3000); }
void comapare () -funktionen bruges til at sammenligne de samlede stemmer for hver af kandidaterne for at få resultatet og vise status for resultatet på LCD'et.
ugyldigt sammenligne () {clear (); print ("Vent venligst…."); vente(); hvis (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); for (i = 0; i <2; i ++) {clear (); setCursor (0,0); print ("Tillykke……."); setCursor (0,1); print ("BJP vandt valg");…………………
Tjek den fulde kode nedenfor.