- Необходими компоненти:
- Как работи:
- Обяснение на веригата:
- Как да стартирам кода в Raspberry Pi:
- Обяснение на програмирането:
Raspberry Pi е популярна дъска за разработка, базирана на ARM cortex, предназначена за електронни инженери и любители. Това е едноплатен компютър, работещ с ниска мощност с много добра скорост на обработка и памет. Raspberry Pi може да се използва за изпълнение на различни функции едновременно, като нормален компютър, и следователно се нарича Mini Computer в дланта ви.
Създадохме поредица от уроци за Raspberry Pi, в които покрихме взаимодействието на Raspberry Pi с всички основни компоненти, както и някои прости проекти за Raspberry Pi, с които да започнем.
Тук ще изградим електронна машина за гласуване с помощта на Raspberry Pi Board. Всички сме наясно с електронната машина за гласуване (EVM), която се използва за гласуване в Избори, чрез натискане на прост бутон. Вече покрихме електронната машина за гласуване, използвайки различни микроконтролери като EVM с AVR микроконтролер и EVM с Arduino. Също така сме изградили гласуваща машина, в която избирателят се удостоверява с RFID етикет, така че да могат да се броят само удостоверени гласове.
Тази електронна гласуваща машина, използваща Raspberry Pi, е по-проста и по-лесна в сравнение с предишните проекти на нашата гласова машина.
Необходими компоненти:
- Raspberry Pi - 1
- 16x2 LCD - 1
- Бутон - 5
- Дъска за хляб - 1
- Свързващи проводници
- 1K резистор - 1
- 10K резистор - 5
- 10K POT - 1
- Светодиоди - 5
Как работи:
В този проект ние използвахме четири бутона, за да гласуваме за четирима кандидати или партии. Можем да увеличим броя на кандидатите, но за по-добро разбиране сме използвали само четири тук. Когато избирателят натисне някой от четирите бутона, тогава „броят на гласовете“ за уважаваната партия или кандидат се увеличава всеки път с един. В същото време светодиодът мига и звуков сигнал за секунда, за да покаже, че е гласувано. След приключване на гласуването имаме бутон „Резултат“, за да покажем резултатите от гласуването. Когато натиснем този бутон, LCD екранът показва името на печелившата партия с не. от гласовете, дадени на всяка партия.
Обяснение на веригата:
Схема на този EVM с помощта на Raspberry Pi е дадена по-долу. Raspberry Pi контролира целия процес като Четене на бутона, увеличаване на броя на гласовете, генериране на резултат и показване на всички неща на LCD.
Тук използвахме платката Raspberry Pi 3 за извършване на всички операции в проекта и използвахме wiringPi Library за избор и контрол на GPIO пиновете на Raspberry Pi. Тук можем да използваме и Raspberry Pi 2. Тук сме използвали пет бутона, в които четири са били използвани за гласуване за четири различни кандидати / партии, а един бутон е използван за показване на резултата на LCD. Тези пет бутона са директно свързани към GPIO щифтове 21 до 25 на RPI3, по отношение на земята с 10K издърпващ резистор за всеки един. LCD с 16x2 е свързан с Raspberry Pi. Контролният пин RS, RW и En са свързани към GPIO пин 11, GND и 10. А пинът за данни D4-D7 е свързан към GPIO пинове 6, 5, 4 и 1 на RPI. А зумерсе използва и за звуков сигнал, когато някой от бутоните е натиснат от избирателя. Тук използваме зелен светодиод (D5), за да покажем, че системата е готова и избирателят може да подаде своя глас в машината, като натисне бутона. 10k Pot се използва за управление на яркостта на LCD.
Как да стартирам кода в Raspberry Pi:
1. Първо, влезте във вашия Raspberry Pi, използвайки SSH с потребителско име по подразбиране: 'pi' и парола: 'raspberry'. Тук използвахме SSH клиент “Putty for Windows” за свързване с Pi през Windows. Ако сте на Linux, можете директно да се свържете с Pi, използвайки SSH. В интернет има много уроци за „Свързване с Raspberry Pi с помощта на SSH“, така че тук няма да навлизаме в подробности. Трябва също да проверите Как да започнете с Raspberry Pi, за да научите повече за Pi, инсталиране на OS (Raspbian Jessie) и хардуерните и софтуерните изисквания.
2. Сега изпълнете командата по-долу, за да отворите нов файл с име glasa.c и поставете кода (даден в раздела за кодове по-долу) във файла, използвайте бутона "shift + insert", за да поставите кода.
судо нано гласуване.в
3. След като напишете кода, натиснете ctrl + x и след това натиснете y, за да запазите кода и натиснете enter.
4. Сега направете кода изпълним с помощта на дадена команда:
cc -o гласуване с гласуване.c -lwiringPi -std = c99
5. Накрая стартирайте кода, като използвате дадената команда
sudo./voting
Обяснение на програмирането:
Тук използвахме познатия на потребителя език C, за да напишем кода и кодирането, много подобно на Arduino кодирането. Също така можем да използваме езика Python, за да изградим този проект.
На първо място включваме заглавни файлове и дефинираме щифтове за LCD; wiringPi.h заглавният файл се използва за управление на GPIO пиновете на Pi. След това инициализирайте някои променливи и щифтове за вземане на вход за гласуване и LED индикации.
#include
След него дадохме посока на всички използвани GPIO във функция void setup () .
void setup () {if (wiringPiSetup () == - 1) printf ("ГРЕШКА"); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (бръмча, ИЗХОД); pinMode (RS, OUTPUT);……………….
В кода използвахме функцията digitalRead в void main (), за да прочетем натиснатия бутон.
if (digitalRead (in1) == 0) {vote1 ++; покажи (); digitalWrite (led1, HIGH); зумер (); digitalWrite (led1, LOW); изчакайте(); }
Функцията void show () се използва за показване на информация за гласуване на LCD с името на кандидат-партията.
void show () {setCursor (0,0); печат ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (глас, "% d", глас1); печат (гласуване); setCursor (6,1); sprintf (глас, "% d", глас2);………………..
Ето още някои функции, използвани в този проект:
void buzzer () fuction се използва за бипкане на зумера като индикация, че е даден глас. И празно изчакване () за LED D5 (зелен светодиод в хардуера), което показва, че системата е готова за гласуване, когато светодиодът е включен.
void зумер () {digitalWrite (вест, HIGH); забавяне (1000); digitalWrite (бръмча, НИСКО); } void wait () {digitalWrite (led5, LOW); забавяне (3000); }
Функцията void comapare () се използва за сравняване на общия брой гласове на всеки от кандидатите, за получаване на резултата и показване на състоянието на резултата на LCD дисплея.
void compare () {clear (); print ("Моля, изчакайте…."); изчакайте(); ако (гласуване1> гласуване2 && гласуване1> гласуване3 && гласуване1> гласуване4) {digitalWrite (led1, HIGH); за (i = 0; i <2; i ++) {clear (); setCursor (0,0); print ("Поздравления……."); setCursor (0,1); печат ("BJP спечели изборите");…………………
Проверете пълния код по-долу.