- Componentes necessários:
- Como funciona:
- Explicação do circuito:
- Como executar o código no Raspberry Pi:
- Explicação de programação:
Raspberry Pi é uma placa de desenvolvimento popular baseada no ARM cortex projetada para engenheiros eletrônicos e amadores. É um computador de placa única funcionando com baixo consumo de energia, com uma velocidade de processamento e memória muito boas. Raspberry Pi pode ser usado para executar diferentes funções ao mesmo tempo, como um PC normal, e por isso é chamado de Mini Computador na palma da mão.
Criamos uma série de tutoriais do Raspberry Pi, nos quais cobrimos a interface do Raspberry Pi com todos os componentes básicos, bem como alguns projetos simples do Raspberry Pi para começar.
Aqui vamos construir uma máquina de votação eletrônica usando a placa Raspberry Pi. Todos nós conhecemos a Máquina de Votação Eletrônica (EVM) que serve para votar nas Eleições, pressionando um simples botão. Já cobrimos a Votação Eletrônica usando diferentes microcontroladores como EVM com microcontrolador AVR e EVM com Arduino. Também construímos uma máquina de votação na qual o eleitor é autenticado por etiqueta RFID, de forma que apenas os votos autenticados possam ser contados.
Esta máquina de votação eletrônica usando Raspberry Pi é mais simples e fácil, em comparação com nossos projetos de máquina de votação anteriores.
Componentes necessários:
- Raspberry Pi - 1
- 16x2 LCD - 1
- Botão de pressão - 5
- Tábua de pão - 1
- Fios de conexão
- Resistor 1K - 1
- Resistor de 10K - 5
- 10K POT - 1
- LEDs - 5
Como funciona:
Neste projeto, usamos quatro botões para votar em quatro candidatos ou partidos. Podemos aumentar o número de candidatos, mas para melhor compreensão usamos apenas quatro aqui. Quando um eleitor pressiona qualquer um dos quatro botões, a 'contagem de votos' para o partido ou candidato respeitado é aumentada em um a cada vez. Ao mesmo tempo, o LED pisca e a campainha emite um bipe por um segundo, para indicar que o voto foi dado. Após a Votação terminar, temos um botão “Resultado”, para mostrar os resultados da Votação. Quando pressionamos este botão, a tela LCD mostra o nome da Parte vencedora com o nº. de votos dados a cada partido.
Explicação do circuito:
O diagrama de circuito deste EVM usando Raspberry Pi é fornecido abaixo. Raspberry Pi controla todo o processo como ler o botão, incrementar a contagem de votos, gerar resultado e exibir tudo no LCD.
Aqui, usamos a placa Raspberry Pi 3 para realizar todas as operações no projeto e a biblioteca wiringPi Library para selecionar e controlar os pinos GPIO do Raspberry Pi. Também podemos usar Raspberry Pi 2 aqui. Aqui, usamos Cinco Botões, em que quatro foram usados para Votar em quatro candidatos / partidos diferentes e um botão é usado para mostrar o Resultado no LCD. Esses cinco botões são conectados diretamente aos pinos GPIO 21 a 25 do RPI3, em relação ao aterramento com resistor pull-up de 10K para cada um. Um LCD 16x2 está conectado ao Raspberry Pi. Os pinos de controle RS, RW e En são conectados ao GPIO pino 11, GND e 10. E o pino de dados D4-D7 é conectado aos pinos GPIO 6, 5, 4 e 1 do RPI. Uma campainhatambém é usado para bip quando qualquer um dos botões é pressionado pelo eleitor. Aqui utilizamos um LED Verde (D5) para indicar que o sistema está pronto e o eleitor pode enviar seu voto na máquina, pressionando o botão. Um potenciômetro de 10k é usado para controlar o brilho do LCD.
Como executar o código no Raspberry Pi:
1. Em primeiro lugar, faça o login no seu Raspberry Pi usando SSH com o nome de usuário padrão: 'pi' e senha: 'raspberry'. Aqui, usamos o cliente SSH “Putty for Windows” para nos conectarmos com Pi por meio do Windows. Se você estiver no Linux, poderá se conectar diretamente a Pi usando SSH. Há muitos tutoriais na Internet sobre 'Como se conectar ao Raspberry Pi usando SSH', então não entraremos em detalhes aqui. Você também deve verificar Como começar com Raspberry Pi para saber mais sobre Pi, instalação do sistema operacional (Raspbian Jessie) e seus requisitos de hardware e software.
2. Agora execute o comando abaixo para abrir um novo arquivo chamado vote.c e cole o código (fornecido na seção de código abaixo) no arquivo, use a tecla “shift + insert” para colar o código.
votação sudo nano.c
3. Após escrever o código, pressione ctrl + x e, em seguida, pressione y para salvar o código e pressione enter.
4. Agora torne o código executável usando o comando fornecido:
cc -o votação vote.c -lwiringPi -std = c99
5. Por fim, execute o código usando o comando fornecido
sudo./voting
Explicação de programação:
Aqui, usamos muita linguagem C familiar ao usuário para escrever o código e a codificação muito semelhante à do Arduino. Também podemos usar a linguagem Python para construir este projeto.
Em primeiro lugar, incluímos arquivos de cabeçalho e definimos pinos para LCD; O arquivo de cabeçalho wiringPi.h é usado para controlar os pinos GPIO de Pi. Em seguida, inicialize algumas variáveis e pinos para obter a entrada de votação e as indicações do LED.
#incluir
Depois disso, demos instruções a todos os GPIOs usados na função 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);……………….
No código, usamos a função digitalRead em void main () para ler o botão pressionado.
if (digitalRead (in1) == 0) {vote1 ++; exposição(); digitalWrite (led1, HIGH); campainha (); digitalWrite (led1, LOW); esperar(); }
A função void show () é usada para exibir informações de votação no LCD com o nome do partido candidato.
void show () {setCursor (0,0); imprimir ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (vote, "% d", vote1); imprimir (votar); setCursor (6,1); sprintf (votação, "% d", votação2);………………..
Aqui estão mais algumas funções usadas neste projeto:
A função void buzzer () é usada para bipar a campainha como uma indicação de que o voto foi dado. E void wait () função para o LED D5 (LED verde no hardware), que mostra que o sistema está pronto para votação, quando o LED é ligado.
void buzzer () {digitalWrite (buzz, HIGH); atraso (1000); digitalWrite (zumbido, BAIXO); } void wait () {digitalWrite (led5, LOW); atraso (3000); }
É utilizada a função void comapare () , para comparar o total de votos de cada um dos candidatos, para obter o resultado e mostrar o status do resultado no LCD.
void compare () {clear (); imprimir ("Aguarde…"); esperar(); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); para (i = 0; i <2; i ++) {limpar (); setCursor (0,0); print ("Parabéns……."); setCursor (0,1); imprimir ("BJP ganhou a eleição");…………………
Verifique o código completo abaixo.