- Vaaditut komponentit:
- Kuinka se toimii:
- Piirin selitys:
- Kuinka ajaa koodi Raspberry Pi: ssä:
- Ohjelmoinnin selitys:
Raspberry Pi on ARM cortex -pohjainen suosittu kehityskortti, joka on suunniteltu elektroniikkainsinööreille ja harrastajille. Se on yksi lautatietokone, joka toimii pienellä virralla ja jolla on erittäin hyvä käsittelynopeus ja muisti. Vadelma Pi: tä voidaan käyttää erilaisten toimintojen suorittamiseen kerrallaan, kuten tavallinen tietokone, ja siksi sitä kutsutaan kämmenessäsi Mini Computeriksi.
Olemme luoneet sarjan Raspberry Pi -oppaita, joissa olemme käsitelleet Raspberry Pi -liitännän kaikkien peruskomponenttien kanssa sekä joitain yksinkertaisia Raspberry Pi -projekteja aluksi.
Täällä aiomme rakentaa elektronisen äänestyskoneen Raspberry Pi Boardilla. Olemme kaikki tietoisia sähköisestä äänestyskoneesta (EVM), jota käytetään äänestämään vaaleissa painamalla yksinkertaista painiketta. Olemme jo käsittäneet elektronisen äänestyskoneen käyttämällä erilaisia mikro-ohjaimia, kuten EVM AVR-mikrokontrollerilla ja EVM Arduinolla. Olemme myös rakentaneet äänestyskoneen, jossa äänestäjä todennetaan RFID-tunnisteella, jotta vain todennetut äänet voidaan laskea.
Tämä Vadelma Pi: tä käyttävä elektroninen äänestyskone on yksinkertaisempi ja helpompi verrattuna aiempiin äänestyskoneihimme.
Vaaditut komponentit:
- Vadelma Pi - 1
- 16x2 LCD - 1
- Painike - 5
- Leipälauta - 1
- Johtojen liittäminen
- 1K-vastus - 1
- 10K vastus - 5
- 10K POT - 1
- LEDit - 5
Kuinka se toimii:
Tässä projektissa olemme käyttäneet neljää painiketta äänestääksesi neljä ehdokasta tai puoluetta. Voimme lisätä ehdokkaiden määrää, mutta ymmärtämisen parantamiseksi olemme käyttäneet täällä vain neljää. Kun äänestäjä painaa mitä tahansa neljästä painikkeesta, arvostetun puolueen tai ehdokkaan äänimäärä kasvaa yhdellä kerralla. Samanaikaisesti LED vilkkuu ja summeri piippaa sekunnin ajan osoittaen, että Ääni on annettu. Kun äänestys on päättynyt, meillä on Tulos-painike, joka näyttää äänestyksen tulokset. Kun painamme tätä painiketta, LCD-näytössä näkyy voittaneen osapuolen nimi, jonka numero on. kullekin puolueelle annetuista äänistä.
Piirin selitys:
Tämän EVM: n piirikaavio käyttäen Raspberry Pi: tä on annettu alla. Vadelma Pi hallitsee koko prosessia, kuten painikkeen lukeminen, äänten määrän lisääminen, tuloksen tuottaminen ja kaikkien asioiden näyttäminen LCD-näytöllä.
Tässä olemme käyttäneet Raspberry Pi 3 -korttia kaikkien projektin toimintojen suorittamiseen ja wiringPi-kirjastoa Raspberry Pi: n GPIO-nastojen valitsemiseen ja ohjaamiseen. Voimme myös käyttää Raspberry Pi 2: ta. Tässä olemme käyttäneet viisi painiketta, joissa neljää on käytetty äänestämään neljälle eri ehdokkaalle / puolueelle ja yhtä painiketta käytetään tuloksen näyttämiseen nestekidenäytöllä. Nämä viisi painiketta ovat kytketty suoraan RPI3: n GPIO-nastoihin 21-25, suhteessa maahan, jossa kullakin on 10K ylösvetovastus. Raspberry Pi -laitteeseen on kytketty 16x2-nestekidenäyttö. Ohjaustapit RS, RW ja En on kytketty GPIO-nastoihin 11, GND ja 10. Ja datanapa D4-D7 on kytketty GPI-nastoihin 6, 5, 4 ja 1 RPI. summerikäytetään myös äänimerkkiin, kun äänestäjä painaa mitä tahansa painiketta. Tässä olemme käyttäneet vihreää LEDiä (D5) osoittamaan, että järjestelmä on valmis ja äänestäjä voi lähettää äänensä koneessa painamalla painiketta. 10k Potia käytetään LCD-näytön kirkkauden säätämiseen.
Kuinka ajaa koodi Raspberry Pi: ssä:
1. Kirjaudu ensin Raspberry Pi -laitteeseesi käyttämällä SSH: tä oletusnimellä 'pi' ja salasanalla 'vadelma'. Tässä olemme käyttäneet SSH-asiakasohjelmaa ”Putty for Windows” yhteyden muodostamiseen Pi: hen Windowsin kautta. Jos käytät Linuxia, voit muodostaa yhteyden suoraan Pi: hen SSH: n avulla. Internetissä on paljon opastusta 'Yhteyden muodostaminen Raspberry Pi -palveluun SSH: n avulla', joten tässä ei ole yksityiskohtia. Tarkista myös, miten aloitat Raspberry Pi: n saadaksesi lisätietoja Pi: stä, käyttöjärjestelmän asennuksesta (Raspbian Jessie) ja sen laitteisto- ja ohjelmistovaatimuksista.
2. Suorita alla oleva komento avataksesi uuden tiedoston nimeltä äänestys. C ja liitä koodi (annettu alla olevassa koodiosassa) tiedostoon, liitä koodi näppäimellä "shift + insert".
sudo nanon äänestys. c
3. Kun olet kirjoittanut koodin, paina ctrl + x ja tallenna koodi painamalla y ja paina Enter.
4. Tee koodi suoritettavaksi annetulla komennolla:
cc -o äänestysäänestys. c -langoitusPi -std = c99
5. Suorita koodi lopuksi annetulla komennolla
sudo./äänestys
Ohjelmoinnin selitys:
Tässä olemme käyttäneet paljon käyttäjälle tuttua C-kieltä koodin ja koodauksen kirjoittamiseen, joka on hyvin samanlainen kuin Arduino-koodaus. Voimme käyttää Python-kieltä myös tämän projektin rakentamiseen.
Ensinnäkin sisällytämme otsikkotiedostot ja määritämme nastat LCD: lle; wiringPi.h-otsikkotiedostoa käytetään Pi: n GPIO-nastojen hallintaan. Alusta sitten muutamia muuttujia ja nastoja äänestystulojen ja LED-ilmaisujen ottamista varten.
#sisältää
Sen jälkeen olemme antaneet suunnan kaikille käytetyille GPIO-laitteille void setup () -toiminnossa .
void setup () {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);……………….
Koodissa olemme käyttäneet digitalRead- toimintoa void main () -näppäimessä lukemaan painettua painiketta.
if (digitalRead (in1) == 0) {ääni1 ++; näytä(); digitalWrite (led1, HIGH); summeri(); digitalWrite (led1, LOW); odota(); }
void show () -toimintoa käytetään äänestystietojen näyttämiseen nestekidenäytössä ehdokaspuolueen nimen kanssa.
void show () {setCursor (0,0); tulosta ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (äänestys, "% d", ääni1); tulosta (äänestys); setCursor (6,1); sprintf (äänestys, "% d", ääni 2);………………..
Tässä on joitain muita tässä projektissa käytettyjä toimintoja:
void buzzer () fuctionia käytetään äänimerkin äänimerkkinä merkkinä siitä, että ääni on annettu. Ja tyhjä odota () -toiminto LED D5: lle (vihreä LED laitteistossa), mikä osoittaa, että järjestelmä on valmis äänestykseen, kun LED kytketään päälle.
void buzzer () {digitalWrite (buzz, HIGH); viive (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); viive (3000); }
void comapare () -funktiota käytetään vertaamaan kunkin ehdokkaan äänimäärästä tuloksen saamiseksi ja näyttämään tuloksen tila nestekidenäytöllä.
void vertaa () {selvä (); tulosta ("Odota hetki…."); odota(); jos (äänestys1> äänestys2 && ääni1> ääni3 && ääni1> ääni4) {digitalWrite (led1, HIGH); for (i = 0; i <2; i ++) {selvä (); setCursor (0,0); tulosta ("Onnittelut……."); setCursor (0,1); tulosta ("BJP voitti vaalit");…………………
Tarkista koko koodi alla.