- Zahtevane komponente:
- Kako deluje:
- Pojasnilo vezja:
- Kako zagnati kodo v Raspberry Pi:
- Pojasnilo programiranja:
Raspberry Pi je priljubljena razvojna plošča, ki temelji na korteksu ARM in je namenjena elektronskim inženirjem in ljubiteljem. Gre za enokrmilni računalnik, ki deluje na nizko porabo z zelo dobro hitrostjo obdelave in pomnilnikom. Raspberry Pi se lahko uporablja za izvajanje različnih funkcij hkrati, kot običajni računalnik, zato se na dlani imenuje Mini Computer.
Ustvarili smo vrsto vadnic za Raspberry Pi, v katerih smo zajemali povezovanje Raspberry Pi z vsemi osnovnimi komponentami, pa tudi nekaj preprostih projektov Raspberry Pi za začetek.
Tu bomo zgradili elektronski glasovalni stroj z uporabo Raspberry Pi Board. Vsi vemo o elektronskem glasovalnem stroju (EVM), ki se uporablja za glasovanje na volitvah s pritiskom na preprost gumb. Elektronsko glasovalno napravo smo že pokrili z različnimi mikrokrmilniki, kot sta EVM z mikrokrmilnikom AVR in EVM z Arduino. Zgradili smo tudi Voting Machine, v katerem je volivec overjen z RFID oznako, tako da je mogoče šteti samo overjene glasove.
Ta elektronski glasovalni stroj z uporabo Raspberry Pi je enostavnejši in enostavnejši v primerjavi s projekti prejšnjih glasovalnih avtomatov.
Zahtevane komponente:
- Raspberry Pi - 1
- 16x2 LCD - 1
- Potisni gumb - 5
- Daska za kruh - 1
- Priključne žice
- 1K upor - 1
- 10K upor - 5
- 10K LONČEK - 1
- LED-diode - 5
Kako deluje:
V tem projektu smo s štirimi gumbi glasovali za štiri kandidate ali stranke. Število kandidatov lahko povečamo, toda za boljše razumevanje smo tukaj uporabili le štiri. Ko volivec pritisne katerega koli od štirih gumbov, se število glasov za spoštovano stranko ali kandidata vsakič poveča za eno. Hkrati LED utripa in zvočni signal za sekundo zapiska, kar pomeni, da je bilo dano glasovanje. Po končanem glasovanju imamo gumb »Rezultat«, da prikažemo rezultate glasovanja. Ko pritisnemo ta gumb, se na LCD zaslonu prikaže ime zmagovalne stranke s št. glasov, danih vsaki stranki.
Pojasnilo vezja:
Shema vezja tega EVM z uporabo Raspberry Pi je podana spodaj. Raspberry Pi nadzoruje celoten postopek, kot je branje gumba, povečanje štetja glasov, ustvarjanje rezultata in prikaz vseh stvari na LCD-prikazovalniku.
Tu smo uporabili ploščo Raspberry Pi 3 za izvedbo vseh operacij v projektu, knjižnico wiringPi pa za izbiro in nadzor GPIO zatičev Raspberry Pi. Tu lahko uporabimo tudi Raspberry Pi 2. Tu smo uporabili pet gumbov, pri katerih so bili štirje uporabljeni za glasovanje za štiri različne kandidate / stranke, en gumb pa za prikaz rezultata na LCD-prikazovalniku. Teh pet gumbov je neposredno povezanih z zatiči GPIO 21 do 25 RPI3, odvisno od tal z 10K vlečnim uporom za vsakega. LCD z ločljivostjo 16 x 2 je povezan z Raspberry Pi. Krmilni zatiči RS, RW in En so povezani z GPIO zatiči 11, GND in 10. Podatkovni zatič D4-D7 pa je povezan z zatiči GPIO 6, 5, 4 in 1 RPI. Zumerse uporablja tudi za pisk, kadar kateri koli gumb pritisne volivec. Tu smo uporabili zeleno LED (D5), ki označuje, da je sistem pripravljen in da lahko volivec odda svoj glas v napravi s pritiskom na gumb. Za nadzor svetlosti LCD se uporablja 10k lonec.
Kako zagnati kodo v Raspberry Pi:
1. Najprej se prijavite v Raspberry Pi s pomočjo SSH s privzetim uporabniškim imenom: 'pi' in geslom: 'raspberry'. Tu smo uporabili odjemalca SSH “Putty for Windows” za povezavo s Pi skozi Windows. Če uporabljate Linux, se lahko neposredno povežete s Pi s pomočjo SSH. V internetu je veliko vadnic o »Povezovanju z Raspberry Pi s pomočjo SSH«, zato tukaj ne bomo podrobneje razpravljali. Preberite tudi Kako začeti z Raspberry Pi, če želite izvedeti več o Pi, namestitvi OS (Raspbian Jessie) in zahtevah glede strojne in programske opreme.
2. Zdaj zaženite spodnji ukaz, da odprete novo datoteko z imenom voice.c in v datoteko prilepite kodo (podano v spodnjem odseku kode), za kodo prilepite tipko "shift + insert".
sudo nano glasovanje.c
3. Po pisanju kode pritisnite ctrl + x in nato pritisnite y, da shranite kodo, in pritisnite enter.
4. Zdaj naredite kodo izvršljivo z danim ukazom:
cc -o glasovanje z glasovanjem.c -lwiringPi -std = c99
5. Končno zaženite kodo z uporabo danega ukaza
sudo./glasovanje
Pojasnilo programiranja:
Tu smo za pisanje kode in kodiranja, ki je zelo podobna kodiranju Arduino, uporabili veliko uporabniku znanega jezika C Za gradnjo tega projekta lahko uporabimo tudi jezik Python.
Najprej vključimo datoteke z glavo in določimo nožice za LCD; Datoteka glave wiringPi.h se uporablja za nadzor GPIO zatičev Pi. Nato inicializirajte nekaj spremenljivk in zatičev za sprejemanje glasovalnih vhodov in LED indikacij.
#include
Po njem smo usmerili vse uporabljene GPIO-je v funkciji void setup () .
void setup () {if (wiringPiSetup () == - 1) printf ("ERROR"); pinMode (led1, IZHOD); pinMode (led2, IZHOD); pinMode (led3, IZHOD); pinMode (led4, IZHOD); pinMode (led5, IZHOD); pinMode (brenčanje, IZHOD); pinMode (RS, IZHOD);……………….
V kodi smo za branje pritisnjenega gumba uporabili funkcijo digitalRead v void main () .
if (digitalRead (in1) == 0) {vote1 ++; show (); digitalWrite (led1, HIGH); zvočni signal (); digitalWrite (led1, LOW); počakajte (); }
funkcija void show () se uporablja za prikaz informacij o glasovanju na LCD-prikazovalniku z imenom stranke.
void show () {setCursor (0,0); tisk ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (glasovanje, "% d", glas1); tisk (glasovanje); setCursor (6,1); sprintf (glas, "% d", glas2);………………..
Tu je še nekaj funkcij, uporabljenih v tem projektu:
void buzzer () se uporablja za piskanje zvočnega signala kot znak, da je bilo dano glasovanje. In void wait () fuction za LED D5 (zelena LED v strojni opremi), kar kaže, da je sistem pripravljen na Vote, ko je LED vklopljena.
void brenčalo () {digitalWrite (brenčanje, VISOKO); zamuda (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); zamuda (3000); }
Funkcija void comapare () se uporablja za primerjavo skupnih glasov vsakega kandidata, za pridobitev rezultata in prikaz stanja rezultata na LCD-prikazovalniku.
void compare () {clear (); tisk ("Počakajte…."); počakajte (); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); za (i = 0; i <2; i ++) {clear (); setCursor (0,0); tisk ("Congrates……."); setCursor (0,1); tisk ("BJP je zmagal na volitvah");…………………
Spodaj preverite celotno kodo.