- Požadované komponenty:
- Jak to funguje:
- Vysvětlení obvodu:
- Jak spustit kód v Raspberry Pi:
- Vysvětlení programování:
Raspberry Pi je populární vývojová deska založená na ARM kůře určená pro elektronické inženýry a fandy. Jedná se o jednodeskový počítač pracující na nízkou spotřebu s velmi dobrou rychlostí zpracování a pamětí. Raspberry Pi lze použít k provádění různých funkcí najednou, jako normální počítač, a proto se mu říká Mini počítač v dlani.
Vytvořili jsme řadu výukových programů Raspberry Pi, ve kterých jsme pokryli Rozhraní Raspberry Pi se všemi základními komponentami a také několik jednoduchých projektů Raspberry Pi.
Zde budeme stavět elektronický hlasovací stroj pomocí desky Raspberry Pi. Všichni víme o elektronickém hlasovacím zařízení (EVM), které se používá k hlasování ve volbách, stisknutím jednoduchého tlačítka. Elektronický hlasovací stroj jsme již pokryli pomocí různých mikrokontrolérů, jako je EVM s mikrokontrolérem AVR a EVM s Arduino. Postavili jsme také hlasovací stroj, ve kterém je volič ověřen pomocí tagu RFID, takže lze počítat pouze ověřené hlasy.
Tento elektronický hlasovací automat využívající Raspberry Pi je jednodušší a snazší ve srovnání s předchozími projekty hlasovacího automatu.
Požadované komponenty:
- Raspberry Pi - 1
- 16x2 LCD - 1
- Tlačítko - 5
- Chlebová deska - 1
- Připojovací vodiče
- 1K rezistor - 1
- 10K rezistor - 5
- 10K POT - 1
- LED diody - 5
Jak to funguje:
V tomto projektu jsme použili čtyři tlačítka k hlasování pro čtyři kandidáty nebo strany. Můžeme zvýšit počet kandidátů, ale pro lepší pochopení jsme zde použili pouze čtyři. Když volič stiskne kterékoli ze čtyř tlačítek, pak se „počet hlasů“ pro respektovanou stranu nebo kandidáta pokaždé zvýší o jedno. Současně bliká LED a na sekundu pípne bzučák, což znamená, že byl udělen hlas. Po dokončení hlasování máme tlačítko „Výsledek“, které zobrazuje výsledky hlasování. Když stiskneme toto tlačítko, na LCD obrazovce se zobrazí název vítězné strany s číslem ne. hlasů udělených každé straně.
Vysvětlení obvodu:
Obvodové schéma tohoto EVM využívající Raspberry Pi je uvedeno níže. Raspberry Pi řídí celý proces, jako je čtení tlačítka, zvyšování počtu hlasů, generování výsledku a zobrazení všech věcí na LCD.
Zde jsme použili desku Raspberry Pi 3 k provedení všech operací v projektu a použili jsme knihovnu wiringPi pro výběr a ovládání GPIO pinů Raspberry Pi. Můžeme zde také použít Raspberry Pi 2. Zde jsme použili pět tlačítek, ve kterých byla čtyři použita k hlasování pro čtyři různé kandidáty / strany a jedno tlačítko slouží k zobrazení výsledku na LCD. Těchto pět tlačítek je přímo připojeno k GPIO pinům 21 až 25 RPI3, vzhledem k zemi s 10K pull-up rezistorem pro každé z nich. 16x2 LCD je připojen k Raspberry Pi. Ovládací kolíky RS, RW a En jsou připojeny k GPIO kolíku 11, GND a 10. A datový kolík D4-D7 je připojen k GPIO kolíkům 6, 5, 4 a 1 RPI. bzučákse také používá k pípnutí, když volič stiskne kterékoli z tlačítek. Zde jsme použili zelenou LED (D5) pro indikaci, že systém je připraven a volič může odeslat svůj hlas ve stroji stisknutím tlačítka. K ovládání jasu LCD se používá hrnec 10k.
Jak spustit kód v Raspberry Pi:
1. Nejprve se přihlaste ke svému Raspberry Pi pomocí SSH s výchozím uživatelským jménem: 'pi' a heslem: 'raspberry'. Zde jsme použili klienta SSH „Putty for Windows“ pro připojení k Pi přes Windows. Pokud používáte Linux, můžete se přímo připojit k Pi pomocí SSH. Na internetu je spousta výukových programů na téma „Získání spojení s Raspberry Pi pomocí SSH“, takže zde nejdeme podrobněji. Měli byste také zkontrolovat, jak začít s Raspberry Pi, abyste se dozvěděli více o Pi, instalaci OS (Raspbian Jessie) a jeho hardwarových a softwarových požadavcích.
2. Nyní spusťte níže uvedený příkaz, abyste otevřeli nový soubor s názvem voting.c a vložte do něj kód (uvedený v sekci o kódu níže), pomocí klávesy „shift + insert“ vložte kód.
sudo nano hlasování. c
3. Po napsání kódu stiskněte ctrl + x a poté stisknutím y kód uložte a stiskněte enter.
4. Nyní proveďte kód spustitelný pomocí zadaného příkazu:
cc -o hlasování hlasování.c -lwiringPi -std = c99
5. Nakonec spusťte kód pomocí zadaného příkazu
sudo./ hlasování
Vysvětlení programování:
Zde jsme použili hodně uživatelsky známý jazyk C k napsání kódu a kódování velmi podobného kódování Arduino. K sestavení tohoto projektu můžeme také použít jazyk Python.
Nejprve zahrneme hlavičkové soubory a definujeme piny pro LCD; Soubor záhlaví wiringPi.h se používá pro ovládání pinů GPIO Pi. Poté inicializujte některé proměnné a piny pro přijetí hlasovacího vstupu a indikace LED.
#zahrnout
Poté jsme dali směr všem použitým GPIO ve funkci void setup () .
void setup () {if (wiringPiSetup () == - 1) printf ("ERROR"); 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ódu jsme použili funkci digitalRead ve void main () ke čtení stisknutého tlačítka.
if (digitalRead (in1) == 0) {vote1 ++; ukázat(); digitalWrite (led1, HIGH); bzučák(); digitalWrite (led1, LOW); Počkejte(); }
funkce void show () se používá k zobrazení informací o hlasování na LCD s názvem kandidáta.
void show () {setCursor (0,0); tisk ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (hlas, "% d", hlas1); tisk (hlasování); setCursor (6,1); sprintf (hlas, "% d", hlas2);………………..
Zde je několik dalších funkcí použitých v tomto projektu:
funkce void buzzer () se používá k pípnutí bzučáku jako indikace, že byl dán hlas. A fukce void wait () pro LED D5 (zelená LED v hardwaru), která ukazuje, že systém je připraven na hlasování, když LED svítí.
void buzzer () {digitalWrite (buzz, HIGH); zpoždění (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); zpoždění (3000); }
Funkce void comapare () slouží k porovnání celkového počtu hlasů každého z kandidátů, k získání výsledku a zobrazení stavu výsledku na LCD.
void compare () {clear (); print ("Prosím čekejte…."); Počkejte(); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); for (i = 0; i <2; i ++) {clear (); setCursor (0,0); tisk („Blahopřejeme…….“); setCursor (0,1); tisk („BJP vyhrál volby“);…………………
Zkontrolujte celý kód níže.