Raspberry Pi 는 전자 엔지니어 및 애호가를 위해 설계된 ARM Cortex 기반 인기 개발 보드입니다. 매우 우수한 처리 속도와 메모리로 저전력으로 작동하는 단일 보드 컴퓨터입니다. Raspberry Pi 는 일반 PC처럼 한 번에 다른 기능을 수행하는 데 사용할 수 있으므로 손바닥 속의 Mini Computer 라고 합니다.
Raspberry Pi 자습서 시리즈를 만들었습니다. 여기에서 Raspberry Pi의 모든 기본 구성 요소 와 함께 시작하는 간단한 Raspberry Pi 프로젝트 를 다루었 습니다.
여기에서는 Raspberry Pi Board를 사용하여 전자 투표 기계 를 만들 것 입니다. 우리 모두는 간단한 버튼을 눌러 선거에서 투표하는 데 사용되는 전자 투표 기계 (EVM)에 대해 알고 있습니다. 우리는 이미 AVR 마이크로 컨트롤러가있는 EVM 및 Arduino가있는 EVM과 같은 다른 마이크로 컨트롤러를 사용하는 전자 투표 기계를 다루었습니다. 또한 투표자가 RFID 태그로 인증되는 투표기를 구축하여 인증 된 투표 만 집계 할 수 있습니다.
Raspberry Pi를 사용하는이 전자 투표기는 이전 투표기의 프로젝트에 비해 더 간단하고 쉽습니다.
필수 구성 요소:
- 라즈베리 파이-1
- 16x2 LCD-1 개
- 푸시 버튼-5
- 브레드 보드-1
- 전선 연결
- 1K 저항-1
- 10K 저항-5
- 10K POT-1
- LED-5
작동 원리:
이 프로젝트에서 우리는 네 개의 버튼을 사용하여 네 명의 후보자 또는 정당에 투표했습니다. 후보자 수를 늘릴 수 있지만 더 나은 이해를 위해 여기에서는 4 개만 사용했습니다. 투표자가 4 개의 버튼 중 하나를 누르면 존경받는 정당이나 후보에 대한 '투표 수'가 매번 하나씩 증가합니다. 동시에 LED가 깜박이고 부저가 1 초 동안 울려 투표가 완료되었음을 나타냅니다. 투표가 완료되면 투표 결과를 표시하는 "결과"버튼이 있습니다. 이 버튼을 누르면 LCD 화면에 번호가 붙은 당첨자의 이름이 표시됩니다. 각 정당에 주어진 투표의.
회로 설명:
Raspberry Pi를 사용 하는이 EVM 의 회로도 는 다음과 같습니다. Raspberry Pi는 버튼 읽기, 투표 수 증가, 결과 생성 및 LCD에 모든 항목 표시와 같은 전체 프로세스를 제어합니다.
여기 에서는 프로젝트의 모든 작업을 수행하기 위해 Raspberry Pi 3 보드 를 사용하고 Raspberry Pi 의 GPIO 핀을 선택하고 제어하기 위해 wirePi 라이브러리를 사용했습니다. 여기에서 Raspberry Pi 2를 사용할 수도 있습니다. 여기에서는 5 개의 버튼 을 사용 했는데, 4 개의 다른 후보자 / 당국에 투표하는 데 4 개가 사용되고 LCD에 결과를 표시하는 데 하나의 버튼이 사용되었습니다. 이 5 개의 버튼은 각각 10K 풀업 저항이있는 접지와 관련하여 RPI3의 GPIO 핀 21 ~ 25에 직접 연결됩니다. 16x2 LCD는 Raspberry Pi와 연결되어 있습니다. 제어 핀 RS, RW 및 En은 GPIO 핀 11, GND 및 10에 연결됩니다. 데이터 핀 D4-D7은 RPI의 GPIO 핀 6, 5, 4 및 1에 연결됩니다. 부저투표자가 버튼을 눌렀을 때 경고음에도 사용됩니다. 여기 에서는 시스템이 준비되었으며 투표자가 버튼을 눌러 투표를 기계에 제출할 수 있음을 나타내는 녹색 LED (D5)를 사용했습니다. 10k Pot은 LCD의 밝기를 조절하는데 사용됩니다.
Raspberry Pi에서 코드를 실행하는 방법:
1. 먼저 기본 사용자 이름: 'pi'및 암호: 'raspberry'로 SSH 를 사용하여 Raspberry Pi에 로그인합니다. 여기서는 Windows를 통해 Pi와 연결하기 위해 SSH 클라이언트 "Putty for Windows"를 사용했습니다. Linux를 사용하는 경우 SSH를 사용하여 Pi에 직접 연결할 수 있습니다. 인터넷에는 'SSH를 사용하여 Raspberry Pi에 연결하기'에 대한 많은 자습서가 있으므로 여기서는 자세히 설명하지 않습니다. 또한 Pi, OS 설치 (Raspbian Jessie) 및 하드웨어 및 소프트웨어 요구 사항 에 대해 자세히 알아 보려면 Raspberry Pi로 시작하는 방법을 확인해야 합니다.
2. 이제 아래 명령을 실행하여 voting.c라는 새 파일 을 열고 코드 (아래 코드 섹션에 제공됨)를 파일에 붙여넣고 "shift + insert"키를 사용하여 코드를 붙여 넣습니다.
sudo nano voting.c
3. 코드를 작성한 후 ctrl + x를 누른 다음 y를 눌러 코드 를 저장 하고 Enter를 누릅니다.
4. 이제 주어진 명령을 사용하여 코드를 실행 가능하게 만듭니다.
cc -o 투표 voting.c -lwiringPi -std = c99
5. 마지막으로 주어진 명령을 사용하여 코드 를 실행합니다.
sudo./voting
프로그래밍 설명:
여기서는 사용자에게 친숙한 C 언어 를 사용하여 코드를 작성하고 Arduino 코딩과 매우 유사한 코딩을했습니다. Python 언어를 사용하여이 프로젝트를 빌드 할 수도 있습니다.
우선 헤더 파일을 포함하고 LCD 용 핀을 정의합니다. wirePi.h 헤더 파일은 Pi의 GPIO 핀을 제어하는 데 사용됩니다. 그런 다음 투표 입력 및 LED 표시를 받기 위해 몇 가지 변수와 핀을 초기화합니다.
#포함
그 후, 우리는 void setup () function 에서 사용 된 모든 GPIO에 대한 지침을 제공했습니다 .
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);……………….
코드에서 우리는 void main ()의 digitalRead 함수를 사용 하여 눌러 진 Button을 읽었습니다.
if (digitalRead (in1) == 0) {vote1 ++; 보여 주다(); digitalWrite (led1, HIGH); 부저 (); digitalWrite (led1, LOW); 기다림(); }
void show () 함수는 후보자의 이름과 함께 투표 정보를 LCD에 표시하는 데 사용됩니다.
void show () {setCursor (0,0); print ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (vote, "% d", vote1); print (투표); setCursor (6,1); sprintf (vote, "% d", vote2);………………..
이 프로젝트에서 사용되는 몇 가지 추가 기능은 다음과 같습니다.
void buzzer () 기능은 투표가 주어 졌다는 표시로 부저를 울리기 위해 사용됩니다. 그리고 LED D5 (하드웨어의 녹색 LED)에 대한 wait () 기능은 LED가 켜지면 시스템이 투표 할 준비가되었음을 나타냅니다.
void buzzer () {digitalWrite (buzz, HIGH); 지연 (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); 지연 (3000); }
void comapare () 함수를 사용하여 각 후보의 총 투표 수를 비교하여 결과를 얻고 결과 상태를 LCD에 표시합니다.
void compare () {clear (); print ("기다려주십시오…."); 기다림(); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); for (i = 0; i <2; i ++) {clear (); setCursor (0,0); print ("축하합니다……."); setCursor (0,1); print ("BJP 승리 선거");…………………
아래 의 전체 코드를 확인하십시오.