- Nödvändiga komponenter:
- Hur det fungerar:
- Kretsförklaring:
- Så här kör du koden i Raspberry Pi:
- Programmeringsförklaring:
Raspberry Pi är ett ARM-cortexbaserat populärt utvecklingskort utformat för elektroniska ingenjörer och hobbyister. Det är en enda kortdator som arbetar med låg effekt med mycket bra bearbetningshastighet och minne. Raspberry Pi kan användas för att utföra olika funktioner åt gången, som en vanlig dator, och därför kallas den Mini-dator i din handflata.
Vi har skapat en serie Raspberry Pi-handledning, där vi har täckt gränssnitt mellan Raspberry Pi och alla grundläggande komponenter, samt några enkla Raspberry Pi-projekt till att börja med.
Här ska vi bygga en elektronisk röstmaskin med hjälp av Raspberry Pi Board. Vi är alla medvetna om den elektroniska röstmaskinen (EVM) som används för att rösta i val genom att trycka på en enkel knapp. Vi har redan täckt elektronisk röstmaskin med olika mikrokontroller som EVM med AVR-mikrokontroller och EVM med Arduino. Vi har också byggt en röstmaskin där väljaren är autentiserad av RFID-taggen, så att endast autentiserade röster kan räknas.
Denna elektroniska röstmaskin som använder Raspberry Pi är enklare och enklare, jämfört med våra tidigare röstmaskins projekt.
Nödvändiga komponenter:
- Raspberry Pi - 1
- 16x2 LCD - 1
- Tryckknapp - 5
- Brödbräda - 1
- Anslutande ledningar
- 1K motstånd - 1
- 10K motstånd - 5
- 10K POT - 1
- Lysdioder - 5
Hur det fungerar:
I detta projekt har vi använt fyra knappar för att rösta på fyra kandidater eller partier. Vi kan öka antalet kandidater, men för bättre förståelse har vi bara använt fyra här. När en väljare trycker på någon av de fyra knapparna ökar "rösträkningen" för det respekterade partiet eller kandidaten med en varje gång. Samtidigt blinkar lysdioden och summern piper i en sekund för att indikera att rösten har avgivits. Efter att omröstningen är klar har vi en “Resultat” -knapp för att visa resultatet av omröstningen. När vi trycker på den här knappen visar LCD-skärmen namnet på det vinnande partiet med nr. röster till varje parti.
Kretsförklaring:
Kretsschemat för denna EVM med Raspberry Pi ges nedan. Raspberry Pi styr hela processen som att läsa knappen, öka rösträkningen, generera resultat och visa alla saker på LCD.
Här har vi använt Raspberry Pi 3-kortet för att utföra alla operationer i projektet och använt wiringPi Library för att välja och kontrollera GPIO-stiften på Raspberry Pi. Vi kan också använda Raspberry Pi 2 här. Här har vi använt Fem knappar, där fyra har använts för att rösta på fyra olika kandidater / partier och en knapp används för att visa resultatet på LCD. Dessa fem knappar är direkt anslutna till GPIO-stift 21 till 25 på RPI3, i förhållande till jord med 10K uppdragningsmotstånd för var och en. En 16x2 LCD är ansluten till Raspberry Pi. Kontrollstift RS, RW och En är anslutna till GPIO-stift 11, GND och 10. Och datapinne D4-D7 är ansluten till GPIO-stift 6, 5, 4 och 1 i RPI. En summeranvänds också för pip när någon av knapparna trycks ned av väljaren. Här har vi använt en grön lysdiod (D5) för att indikera att systemet är klart och väljaren kan lämna sin röst i maskinen genom att trycka på knappen. En 10k-kruka används för att kontrollera LCD-skärmens ljusstyrka.
Så här kör du koden i Raspberry Pi:
1. Logga in på din Raspberry Pi med SSH med standardanvändarnamn: 'pi' och lösenord: 'hallon'. Här har vi använt SSH-klienten "Putty for Windows" för att få kontakt med Pi via Windows. Om du använder Linux kan du direkt ansluta till Pi med SSH. Det finns massor av handledning på Internet om "Att få kontakt med Raspberry Pi med SSH", så här går vi inte i detaljerna. Du bör också kolla Hur man börjar med Raspberry Pi för att lära dig mer om Pi, OS-installation (Raspbian Jessie) och dess hårdvaru- och mjukvarukrav.
2. Kör nu kommandot nedan för att öppna en ny fil med namnet voting.c och klistra in koden (anges i kodavsnittet nedan) i filen, använd “shift + insert” -tangenten för att klistra in koden.
sudo nano röstning. c
3. Efter att ha skrivit koden, tryck på ctrl + x och tryck sedan på y för att spara koden och tryck på enter.
4. Gör nu koden körbar med det givna kommandot:
cc -o röstningsröstning.c -lwiringPi -std = c99
5. Kör slutligen koden med ett kommando
sudo./röstning
Programmeringsförklaring:
Här har vi använt mycket användarvänligt C-språk för att skriva koden och kodningen som mycket liknar Arduino-kodning. Vi kan också använda Python-språket för att bygga detta projekt.
Först och främst inkluderar vi rubrikfiler och definierar stift för LCD; wiringPi.h-huvudfilen används för att styra GPIO-stiften på Pi. Initiera sedan några variabler och stift för att ta röstingång och LED-indikationer.
#omfatta
Efter det har vi gett anvisningar till alla använda GPIO: er i ogiltig installation () -funktionen .
ogiltig installation () {if (wiringPiSetup () == - 1) printf ("ERROR"); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (buzz, OUTPUT); pinMode (RS, OUTPUT);……………….
I kod har vi använt digitalRead- funktionen i void main () för att läsa knappen nedtryckt.
if (digitalRead (in1) == 0) {vote1 ++; visa(); digitalWrite (led1, HIGH); summer(); digitalWrite (led1, LOW); vänta(); }
void show () -funktionen används för att visa röstinformation på LCD-skärmen med kandidatpartiets namn.
void show () {setCursor (0,0); tryck ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (omröstning, "% d", omröstning 1); skriva ut (rösta); setCursor (6,1); sprintf (omröstning, "% d", röst2);………………..
Här är några fler funktioner som används i detta projekt:
void buzzer () fuction används för att pipa summern som ett tecken på att röst har givits. Och ogiltig vänta () -funktion för LED D5 (grön lysdiod i hårdvara), som visar att systemet är klart för att rösta när lysdioden är PÅ.
void buzzer () {digitalWrite (buzz, HIGH); fördröjning (1000); digitalWrite (buzz, LOW); } ogiltig vänta () {digitalWrite (led5, LOW); fördröjning (3000); }
void comapare () -funktionen används för att jämföra de totala rösterna för var och en av kandidaterna för att få resultatet och visa statusens resultat på LCD-skärmen.
ogiltig jämför () {clear (); skriva ut ("Vänligen vänta…."); vänta(); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); för (i = 0; i <2; i ++) {clear (); setCursor (0,0); tryck ("Grattis……."); setCursor (0,1); tryck ("BJP vann val");…………………
Kontrollera hela koden nedan.