- Components necessaris:
- Com funciona:
- Explicació del circuit:
- Com executar el codi a Raspberry Pi:
- Explicació de la programació:
Raspberry Pi és una popular placa de desenvolupament basada en còrtex ARM dissenyada per a enginyers electrònics i aficionats. És un ordinador de placa única que funciona amb poca potència, amb una velocitat i memòria de processament molt bones. Raspberry Pi es pot utilitzar per realitzar diferents funcions alhora, com un ordinador normal, i per tant s’anomena Mini ordinador al palmell.
Hem creat una sèrie de tutorials de Raspberry Pi, en què hem tractat la interfície de Raspberry Pi amb tots els components bàsics, així com alguns projectes senzills de Raspberry Pi per començar.
Aquí construirem una màquina de votació electrònica mitjançant el tauler Raspberry Pi. Tots coneixem la màquina de vot electrònic (EVM) que s’utilitza per votar a les eleccions prement un simple botó. Ja hem tractat la màquina de vot electrònic mitjançant diferents microcontroladors com EVM amb microcontrolador AVR i EVM amb Arduino. També hem creat una màquina de votar en què el votant s’autentifica mitjançant l’etiqueta RFID, de manera que només es poden comptar els vots autenticats.
Aquesta màquina de votació electrònica que utilitza Raspberry Pi és més senzilla i senzilla en comparació amb els projectes anteriors de la nostra màquina de vot.
Components necessaris:
- Raspberry Pi - 1
- LCD de 16 x 2: 1
- Polsador: 5
- Taula de pa - 1
- Connexió de cables
- 1K resistència - 1
- Resistència de 10K: 5
- POT 10K - 1
- LED: 5
Com funciona:
En aquest projecte hem utilitzat quatre botons per votar quatre candidats o partits. Podem augmentar el nombre de candidats, però per a una millor comprensió només n’hem utilitzat quatre. Quan un votant prem qualsevol dels quatre botons, el "recompte de vots" per al partit o candidat respectat augmenta un cada vegada. Al mateix temps, el LED parpelleja i el timbre emet un so durant un segon, per indicar que s'ha donat el vot. Un cop finalitzada la votació, tenim un botó "Resultat" per mostrar els resultats de la votació. Quan premem aquest botó, la pantalla LCD mostra el nom del partit guanyador amb el núm. de vots donats a cada partit.

Explicació del circuit:
A continuació es mostra el diagrama de circuits d’aquest EVM que utilitza Raspberry Pi. Raspberry Pi controla tot el procés com llegir el botó, augmentar el recompte de vots, generar resultats i mostrar totes les coses a la pantalla LCD.

Aquí hem utilitzat la placa Raspberry Pi 3 per realitzar totes les operacions del projecte i hem utilitzat la biblioteca wiringPi per seleccionar i controlar els pins GPIO de Raspberry Pi. També podem utilitzar Raspberry Pi 2 aquí. Aquí hem utilitzat Five Buttons, en què quatre s’han utilitzat per votar quatre candidats / partits diferents i s’utilitza un botó per mostrar el resultat en pantalla LCD. Aquests cinc botons estan connectats directament als pins GPIO 21 a 25 de RPI3, respecte a terra amb una resistència de tracció de 10K per a cadascun. Una pantalla LCD de 16x2 està connectada amb Raspberry Pi. Els pins de control RS, RW i En estan connectats al pin 11 de GPIO, GND i 10. I el pin de dades D4-D7 està connectat als pins GPIO 6, 5, 4 i 1 de RPI. Un brunzidortambé s’utilitza per emetre un so quan els votants premen qualsevol dels botons. Aquí hem utilitzat un LED verd (D5) per indicar que el sistema està preparat i que els votants poden enviar el seu vot a la màquina prement el botó. Un pot de 10 k s’utilitza per controlar la brillantor de la pantalla LCD.
Com executar el codi a Raspberry Pi:
1. En primer lloc, inicieu sessió al vostre Raspberry Pi mitjançant SSH amb el nom d'usuari per defecte: 'pi' i la contrasenya: 'raspberry'. Aquí hem utilitzat el client SSH "Putty for Windows" per connectar-nos amb Pi a través de Windows. Si esteu a Linux, podeu connectar-vos directament a Pi mitjançant SSH. Hi ha molts tutorials a Internet sobre "Com connectar-se amb Raspberry Pi mitjançant SSH", de manera que aquí no anem a detallar-los. També heu de comprovar Com començar amb Raspberry Pi per obtenir més informació sobre Pi, la instal·lació del sistema operatiu (Raspbian Jessie) i els seus requisits de maquinari i programari.

2. Ara executeu l'ordre següent per obrir un nou fitxer anomenat vote.c i enganxeu el codi (que apareix a la secció de codi següent) al fitxer, utilitzeu la tecla "Maj + inserir" per enganxar el codi.
votació sudo nano.c


3. Després d’escriure el codi, premeu ctrl + x i, a continuació, premeu y per desar el codi i premeu Retorn.
4. Ara feu que el codi sigui executable mitjançant l'ordre donada:
cc -o votació votació.c -lwiringPi -std = c99
5. Finalment, executeu el codi mitjançant l'ordre donada
sudo./votació

Explicació de la programació:
Aquí hem utilitzat un llenguatge C familiar per l'usuari per escriure el codi i la codificació molt similar a la codificació Arduino. També podem utilitzar el llenguatge Python per construir aquest projecte.
Primer de tot, incloem fitxers de capçalera i definim pins per a LCD; El fitxer de capçalera wiringPi.h s’utilitza per controlar els pins GPIO de Pi. A continuació, inicialitzeu algunes variables i pins per obtenir l'entrada de vot i les indicacions del LED.
#incloure
Després d'això, hem donat instruccions a tots els GPIO utilitzats en la funció 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);……………….
En codi, hem utilitzat la funció digitalRead en void main () per llegir el botó premut.
if (digitalRead (in1) == 0) {vote1 ++; espectacle(); digitalWrite (led1, HIGH); zumbador (); digitalWrite (led1, BAIX); wait (); }
La funció void show () s'utilitza per mostrar informació de vot a la pantalla LCD amb el nom del partit candidat.
void show () {setCursor (0,0); print ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (vot, "% d", vot 1); imprimir (votar); setCursor (6,1); sprintf (vot, "% d", vot2);………………..
Aquí hi ha algunes funcions més utilitzades en aquest projecte:
vouction buzzer () fuction s'utilitza per fer sonar el buzzer com a indicació que s'ha donat el vot. I nul·la funció d'espera () per al LED D5 (LED verd al maquinari), que mostra que el sistema està preparat per votar quan el LED s'encén.
void buzzer () {digitalWrite (buzz, HIGH); retard (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); retard (3000); }
s'utilitza la funció void comapare () , per comparar els vots totals de cadascun dels candidats, per obtenir el resultat i mostrar l'estat del resultat a la pantalla LCD.
void compare () {clear (); print ("Si us plau, espereu…."); wait (); if (vot1> vot2 && vot1> vot3 && vot1> vot4) {digitalWrite (led1, HIGH); per a (i = 0; i <2; i ++) {clear (); setCursor (0,0); print ("Enhorabona……."); setCursor (0,1); print ("Eleccions guanyades per BJP");…………………
Consulteu el codi complet a continuació.
