- Componenti richiesti:
- Come funziona:
- Spiegazione del circuito:
- Come eseguire il codice in Raspberry Pi:
- Spiegazione della programmazione:
Raspberry Pi è una popolare scheda di sviluppo basata su ARM Cortex progettata per ingegneri elettronici e hobbisti. È un computer a scheda singola che funziona a bassa potenza con una velocità di elaborazione e una memoria molto buone. Raspberry Pi può essere utilizzato per eseguire diverse funzioni contemporaneamente, come un normale PC, e quindi si chiama Mini Computer nel palmo della mano.
Abbiamo creato una serie di tutorial Raspberry Pi, in cui abbiamo trattato l'interfacciamento di Raspberry Pi con tutti i componenti di base, oltre ad alcuni semplici progetti Raspberry Pi con cui iniziare.
Qui costruiremo una macchina per il voto elettronico utilizzando la scheda Raspberry Pi. Siamo tutti consapevoli della macchina per il voto elettronico (EVM) che viene utilizzata per votare alle elezioni, premendo un semplice pulsante. Abbiamo già coperto la macchina per il voto elettronico utilizzando diversi microcontrollori come EVM con microcontrollore AVR ed EVM con Arduino. Abbiamo anche costruito una Voting Machine in cui l'elettore è autenticato tramite tag RFID, in modo che possano essere conteggiati solo i voti autenticati.
Questa macchina per il voto elettronico che utilizza Raspberry Pi è più semplice e facile, rispetto ai nostri precedenti progetti della macchina per il voto.
Componenti richiesti:
- Raspberry Pi - 1
- LCD 16x2 - 1
- Pulsante - 5
- Tagliere - 1
- Cavi di collegamento
- Resistenza 1K - 1
- Resistenza 10K - 5
- VASO 10K - 1
- LED - 5
Come funziona:
In questo progetto abbiamo utilizzato quattro pulsanti per votare quattro candidati o partiti. Possiamo aumentare il numero di candidati, ma per una migliore comprensione ne abbiamo usati solo quattro qui. Quando un elettore preme uno qualsiasi dei quattro pulsanti, il "conteggio delle votazioni" per il partito o il candidato rispettato viene aumentato di uno ogni volta. Allo stesso tempo il LED lampeggia e il cicalino emette un segnale acustico per un secondo, ad indicare che è stato assegnato il voto. Dopo il completamento della votazione, abbiamo un pulsante "Risultato", per mostrare i risultati della votazione. Quando premiamo questo pulsante, lo schermo LCD mostra il nome del Party vincitore con il n. di voti dati a ciascuna parte.
Spiegazione del circuito:
Di seguito è riportato lo schema del circuito di questo EVM che utilizza Raspberry Pi. Raspberry Pi controlla l'intero processo come leggere il pulsante, aumentare il conteggio dei voti, generare risultati e visualizzare tutte le cose sull'LCD.
Qui abbiamo utilizzato la scheda Raspberry Pi 3 per eseguire tutte le operazioni nel progetto e abbiamo utilizzato la libreria WiringPi per selezionare e controllare i pin GPIO di Raspberry Pi. Possiamo anche usare Raspberry Pi 2 qui. Qui abbiamo usato cinque pulsanti, di cui quattro sono stati usati per votare per quattro diversi candidati / partiti e un pulsante è usato per mostrare il risultato sul display LCD. Questi cinque pulsanti sono collegati direttamente ai pin GPIO da 21 a 25 di RPI3, rispetto alla massa con resistore pull-up da 10K per ciascuno. Un LCD 16x2 è collegato a Raspberry Pi. I pin di controllo RS, RW ed En sono collegati ai pin GPIO 11, GND e 10. E i pin dati D4-D7 sono collegati ai pin GPIO 6, 5, 4 e 1 di RPI. Un cicalinoviene utilizzato anche per il segnale acustico quando uno qualsiasi dei pulsanti viene premuto dall'elettore. Qui abbiamo utilizzato un LED verde (D5) per indicare che il sistema è pronto e l'elettore può inviare il proprio voto nella macchina, premendo il pulsante. Un Pot 10k viene utilizzato per controllare la luminosità del display LCD.
Come eseguire il codice in Raspberry Pi:
1. Innanzitutto, accedi al tuo Raspberry Pi utilizzando SSH con nome utente predefinito: "pi" e password: "raspberry". Qui abbiamo utilizzato il client SSH "Putty for Windows" per connettersi con Pi tramite Windows. Se sei su Linux, puoi connetterti direttamente a Pi usando SSH. Ci sono molti tutorial su Internet su 'Connettersi con Raspberry Pi usando SSH', quindi qui non entreremo nei dettagli. Dovresti anche controllare Come iniziare con Raspberry Pi per saperne di più su Pi, l'installazione del sistema operativo (Raspbian Jessie) e i suoi requisiti hardware e software.
2. Ora esegui il comando seguente per aprire un nuovo file denominato voting.c e incolla il codice (indicato nella sezione codice di seguito) nel file, usa il tasto "shift + insert" per incollare il codice.
sudo nano voting.c
3. Dopo aver scritto il codice, premere ctrl + x, quindi premere y per salvare il codice e premere invio.
4. Ora rendi eseguibile il codice usando il comando dato:
cc -o voting voting.c -lwiringPi -std = c99
5. Infine eseguire il codice utilizzando il comando fornito
sudo./voting
Spiegazione della programmazione:
Qui abbiamo usato un linguaggio C molto familiare agli utenti per scrivere il codice e la codifica molto simile alla codifica di Arduino. Possiamo anche usare il linguaggio Python per costruire questo progetto.
Prima di tutto includiamo i file di intestazione e definiamo i pin per LCD; Il file di intestazione wiringPi.h viene utilizzato per controllare i pin GPIO di Pi. Quindi inizializza alcune variabili e pin per prendere input di votazione e indicazioni LED.
#includere
Dopo di ciò, abbiamo dato indicazioni a tutti i GPIO usati nella funzione void setup () .
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);……………….
Nel codice, abbiamo usato la funzione digitalRead in void main () per leggere il pulsante premuto.
if (digitalRead (in1) == 0) {vote1 ++; spettacolo(); digitalWrite (led1, HIGH); cicalino(); digitalWrite (led1, LOW); aspettare(); }
La funzione void show () viene utilizzata per visualizzare le informazioni sulla votazione sul display LCD con il nome del candidato.
void show () {setCursor (0,0); print ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (voto, "% d", voto1); stampa (votazione); setCursor (6,1); sprintf (voto, "% d", voto2);………………..
Ecco alcune altre funzioni utilizzate in questo progetto:
la funzione void buzzer () viene utilizzata per emettere un segnale acustico al buzzer come indicazione che è stato dato il voto. E void wait () funzione per LED D5 (LED verde nell'hardware), che mostra che il sistema è pronto per votare, quando il LED è acceso.
void buzzer () {digitalWrite (buzz, HIGH); ritardo (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); ritardo (3000); }
La funzione void comapare () viene utilizzata per confrontare i voti totali di ciascuno dei candidati, per ottenere il risultato e mostrare lo stato del risultato sul display LCD.
void compare () {clear (); print ("Please Wait…."); aspettare(); if (voto1> voto2 && voto1> voto3 && voto1> voto4) {digitalWrite (led1, HIGH); for (i = 0; i <2; i ++) {clear (); setCursor (0,0); print ("Congrates……."); setCursor (0,1); print ("BJP ha vinto le elezioni");…………………
Controlla il codice completo di seguito.