- Požadované komponenty:
- Ako to funguje:
- Vysvetlenie obvodu:
- Ako spustiť kód v Raspberry Pi:
- Vysvetlenie programovania:
Raspberry Pi je populárna vývojová doska založená na ARM kôre určená pre elektronických inžinierov a fandov. Je to jednodoskový počítač pracujúci na nízku spotrebu s veľmi dobrou rýchlosťou spracovania a pamäťou. Raspberry Pi sa dá použiť na vykonávanie rôznych funkcií naraz, ako napríklad bežné PC, a preto sa volá Mini Computer v dlani.
Vytvorili sme sériu návodov na Raspberry Pi, v ktorej sme pokryli rozhranie Raspberry Pi so všetkými základnými komponentmi a na úvod aj niekoľko jednoduchých projektov Raspberry Pi.
Tu sa chystáme zostaviť elektronický hlasovací prístroj pomocou dosky Raspberry Pi. Všetci vieme o elektronickom volebnom prístroji (EVM), ktorý sa používa na hlasovanie vo voľbách, stlačením jednoduchého tlačidla. Elektronické hlasovacie zariadenie sme už pokryli pomocou rôznych mikrokontrolérov, ako je EVM s mikrokontrolérom AVR a EVM s Arduinom. Postavili sme tiež hlasovací stroj, v ktorom je volič overený pomocou značky RFID, takže je možné spočítať iba overené hlasy.
Tento elektronický hlasovací prístroj využívajúci Raspberry Pi je jednoduchší a ľahší v porovnaní s našimi predchádzajúcimi projektmi hlasovacieho zariadenia.
Požadované komponenty:
- Raspberry Pi - 1
- 16 x 2 LCD - 1
- Tlačidlo - 5
- Chlebová doska - 1
- Pripojovacie vodiče
- 1K rezistor - 1
- 10K odpor - 5
- 10 tis. Hrniec - 1
- LED diódy - 5
Ako to funguje:
V tomto projekte sme použili štyri tlačidlá na hlasovanie pre štyroch kandidátov alebo strany. Môžeme zvýšiť počet kandidátov, ale pre lepšie pochopenie sme tu použili iba štyroch. Keď volič stlačí ktorékoľvek zo štyroch tlačidiel, potom sa „počet hlasov“ pre rešpektovanú stranu alebo kandidáta zakaždým zvýši o jedno. Súčasne bliká LED a na sekundu pípne bzučiak, čo znamená, že bol daný hlas. Po dokončení hlasovania máme tlačidlo „Výsledok“, ktoré zobrazuje výsledky hlasovania. Keď stlačíme toto tlačidlo, na LCD displeji sa zobrazí meno víťaznej strany s číslom č. odovzdaných hlasov každej strane.
Vysvetlenie obvodu:
Schéma zapojenia tohto EVM s použitím Raspberry Pi je uvedená nižšie. Raspberry Pi riadi celý proces, ako je čítanie tlačidla, zvyšovanie počtu hlasov, generovanie výsledku a zobrazovanie všetkých vecí na displeji LCD.
Tu sme na vykonanie všetkých operácií v projekte použili dosku Raspberry Pi 3 a na výber a kontrolu pinov GPIO Raspberry Pi sme použili knižnicu wiringPi. Môžeme tu tiež použiť Raspberry Pi 2. Tu sme použili päť tlačidiel, z ktorých štyri boli použité na hlasovanie pre štyroch rôznych kandidátov / účastníkov a jedno tlačidlo sa používa na zobrazenie výsledku na LCD displeji. Týchto päť tlačidiel je priamo pripojených k pinom GPIO 21 až 25 RPI3, vzhľadom na zem, pre každý z nich 10K pull-up rezistorom. 16 x 2 LCD je pripojený k Raspberry Pi. Ovládací pin RS, RW a En sú pripojené k GPIO pin 11, GND a 10. A dátový pin D4-D7 je pripojený k GPIO pinom 6, 5, 4 a 1 RPI. bzučiaksa tiež používa na pípnutie, keď volič stlačí ktorékoľvek z tlačidiel. Tu sme použili zelenú LED (D5) na indikáciu, že systém je pripravený a volič môže odoslať svoj hlas v prístroji stlačením tlačidla. Na kontrolu jasu LCD sa používa hrniec 10k.
Ako spustiť kód v Raspberry Pi:
1. Najprv sa prihláste do svojho Raspberry Pi pomocou SSH s predvoleným užívateľským menom: „pi“ a heslom: „malina“. Tu sme použili klienta SSH „Putty for Windows“ na spojenie s Pi cez Windows. Ak používate systém Linux, môžete sa priamo pripojiť k sieti Pi pomocou protokolu SSH. Na internete je veľa tutoriálu „Získanie spojenia s Raspberry Pi pomocou SSH“, takže tu nejdeme podrobnejšie. Mali by ste tiež skontrolovať Ako začať s Raspberry Pi, aby ste sa dozvedeli viac o Pi, inštalácii OS (Raspbian Jessie) a jeho hardvérových a softvérových požiadavkách.
2. Teraz spustením príkazu dole otvorte nový súbor s názvom voting.c a vložte do neho kód (uvedený v časti venovanej kódu), pomocou klávesu „shift + insert“ vložte kód.
sudo nano hlasovanie.c
3. Po napísaní kódu stlačte ctrl + x, potom stlačením y kód uložte a stlačte kláves Enter.
4. Teraz urobte kód spustiteľným pomocou zadaného príkazu:
cc -o hlasovanie hlasovanie.c -lwiringPi -std = c99
5. Nakoniec spustite kód pomocou zadaného príkazu
sudo./ hlasovanie
Vysvetlenie programovania:
Tu sme na napísanie kódu a kódovania použili veľmi dobre známy jazyk C, ktorý je veľmi podobný kódovaniu Arduino. Na zostavenie tohto projektu môžeme použiť aj jazyk Python.
Najskôr zahrnieme hlavičkové súbory a definujeme piny pre LCD; Hlavičkový súbor wiringPi.h sa používa na riadenie pinov GPIO Pi. Potom inicializujte niektoré premenné a kolíky na získanie hlasovacieho vstupu a indikácie LED.
#include
Potom sme dali smer všetkým použitým funkciám GPIO vo void setup () .
void setup () {if (wiringPiSetup () == - 1) printf ("CHYBA"); pinMode (led1, VÝSTUP); pinMode (led2, VÝSTUP); pinMode (led3, VÝSTUP); pinMode (led4, VÝSTUP); pinMode (led5, VÝSTUP); pinMode (buzz, OUTPUT); pinMode (RS, VÝSTUP);……………….
V kóde sme na načítanie stlačeného tlačidla použili funkciu digitalRead vo void main () .
if (digitalRead (in1) == 0) {vote1 ++; šou(); digitalWrite (led1, HIGH); bzučiak (); digitalWrite (led1, LOW); počkaj (); }
funkcia void show () sa používa na zobrazenie informácií o hlasovaní na LCD displeji s menom kandidátskej strany.
void show () {setCursor (0,0); tlač („BJP Cong AAP Ex“); setCursor (1,1); sprintf (hlasovanie, "% d", hlas1); tlač (hlasovanie); setCursor (6,1); sprintf (hlas, "% d", hlas2);………………..
Tu je niekoľko ďalších funkcií použitých v tomto projekte:
void buzzer () funkcia sa používa na pípanie bzučiaka ako indikácia, že bol daný hlas. A fukcia void wait () pre LED D5 (zelená LED v hardvéri), ktorá ukazuje, že systém je pripravený na hlasovanie, keď LED svieti.
void buzzer () {digitalWrite (buzz, HIGH); oneskorenie (1 000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); oneskorenie (3 000); }
Funkcia void comapare () slúži na porovnanie celkového počtu hlasov každého z kandidátov na získanie výsledku a zobrazenie stavu výsledku na LCD displeji.
void compare () {clear (); print ("Prosím čakajte…."); počkaj (); if (hlas1> hlas2 && hlas1> hlas3 && hlas1> hlas4) {digitalWrite (led1, HIGH); pre (i = 0; i <2; i ++) {clear (); setCursor (0,0); tlač („Blahoželáme…….“); setCursor (0,1); tlač („BJP vyhral voľby“);…………………
Skontrolujte celý kód uvedený nižšie.