- Необхідні компоненти:
- Як це працює:
- Пояснення схеми:
- Як запустити код у Raspberry Pi:
- Пояснення програмування:
Raspberry Pi - це популярна дошка розробок на основі ARM, розроблена для інженерів-електронників та любителів. Це одноплатний комп'ютер, що працює на низькій потужності, з дуже хорошою швидкістю обробки та пам'яттю. Raspberry Pi можна використовувати одночасно для виконання різних функцій, як звичайний ПК, і тому він називається Mini Computer на вашій долоні.
Ми створили серію підручників Raspberry Pi, в яких ми розглянули взаємодію Raspberry Pi з усіма основними компонентами, а також деякі прості проекти Raspberry Pi для початку.
Тут ми збираємося створити електронну машину для голосування за допомогою дошки Raspberry Pi. Ми всі знаємо про електронну машину для голосування (EVM), яка використовується для голосування на виборах, натисканням простої кнопки. Ми вже охопили електронну систему голосування, використовуючи різні мікроконтролери, такі як EVM з мікроконтролером AVR та EVM з Arduino. Ми також створили голосувальну машину, в якій виборця аутентифікують за допомогою тегу RFID, так що можна підраховувати лише підтверджені голоси.
Ця електронна голосувальна машина з використанням Raspberry Pi простіша та легша у порівнянні з попередніми проектами голосувальної машини.
Необхідні компоненти:
- Raspberry Pi - 1
- РК-дисплей 16x2 - 1
- Кнопка - 5
- Хлібна дошка - 1
- Підключення проводів
- 1K резистор - 1
- 10K резистор - 5
- 10K POT - 1
- Світлодіодів - 5
Як це працює:
У цьому проекті ми за допомогою чотирьох кнопок проголосували за чотирьох кандидатів або партії. Ми можемо збільшити кількість кандидатів, але для кращого розуміння ми використали тут лише чотирьох. Коли виборець натискає будь-яку з чотирьох кнопок, тоді "підрахунок голосів" за поважну партію чи кандидата щоразу збільшується на одну. У той же час світлодіодний індикатор блимає і звуковий сигнал протягом секунди вказує на те, що голосування подано. Після завершення голосування ми маємо кнопку «Результат», щоб показати результати голосування. Коли ми натискаємо цю кнопку, на РК-екрані відображається ім'я переможця партії з ні. голосів, наданих кожній партії.
Пояснення схеми:
Принципова схема цього EVM з використанням Raspberry Pi наведена нижче. Raspberry Pi контролює весь процес, наприклад, читання кнопки, збільшення підрахунку голосів, отримання результату та відображення всіх речей на РК-дисплеї.
Тут ми використовували плату Raspberry Pi 3 для виконання всіх операцій у проекті, а бібліотеку wiringPi використовували для вибору та управління виводами GPIO Raspberry Pi. Тут ми також можемо використовувати Raspberry Pi 2. Тут ми використали П’ять кнопок, в яких чотири були використані для голосування за чотирьох різних кандидатів / партій, а одна кнопка використовується для відображення результату на РК-дисплеї. Ці п'ять кнопок безпосередньо підключені до штифтів GPIO 21-25 до RPI3, по відношенню до землі за допомогою 10К підтягуючого резистора для кожної. РК-дисплей 16x2 підключений до Raspberry Pi. Керуючий штифт RS, RW та En підключені до виводів GPIO 11, GND та 10. А контактний штифт D4-D7 підключений до виводів GPIO 6, 5, 4 та 1 RPI. зумертакож використовується для звукового сигналу, коли будь-яка кнопка натискається виборцем. Тут ми використали зелений світлодіод (D5), щоб вказати, що система готова, і виборець може подати свій голос у машині, натиснувши кнопку. Для управління яскравістю рідкокристалічного дисплея використовується 10k Pot.
Як запустити код у Raspberry Pi:
1. По-перше, увійдіть у свій Raspberry Pi за допомогою SSH із іменем користувача за замовчуванням: 'pi' та паролем: 'raspberry'. Тут ми використали клієнт SSH “Putty for Windows” для встановлення зв’язку з Pi через Windows. Якщо ви працюєте на Linux, ви можете безпосередньо підключитися до Pi за допомогою SSH. В Інтернеті є багато підручників про „Підключення до Raspberry Pi за допомогою SSH”, тому тут ми не будемо вдаватися до деталей. Ви також повинні перевірити, як розпочати роботу з Raspberry Pi, щоб дізнатись більше про Pi, встановлення ОС (Raspbian Jessie) та вимоги до обладнання та програмного забезпечення.
2. Тепер запустіть наведену нижче команду, щоб відкрити новий файл з ім'ям voice.c та вставте код (вказаний у розділі коду нижче) у файл, використовуйте клавішу «shift + insert», щоб вставити код.
голосування судо нано. c
3. Після введення коду натисніть ctrl + x, а потім натисніть y, щоб зберегти код, і натисніть enter.
4. Тепер зробіть код виконуваним за допомогою заданої команди:
cc -o голосування з голосуванням. c -lwiringPi -std = c99
5. Нарешті запустіть код за допомогою заданої команди
судо. / голосування
Пояснення програмування:
Тут ми використали знайому користувачеві мову С для написання коду та кодування, схожого на кодування Arduino. Ми також можемо використовувати мову Python для побудови цього проекту.
Перш за все ми включаємо файли заголовків і визначаємо шпильки для РК; Файл заголовка wiringPi.h використовується для управління виводами GPIO Pi. Потім ініціалізуйте деякі змінні та шпильки для прийому вхідних даних для голосування та світлодіодних індикацій.
#включати
Після цього ми дали вказівку всім використаним 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 ++; show (); digitalWrite (led1, HIGH); зумер (); digitalWrite (led1, LOW); чекати (); }
Функція void show () використовується для відображення інформації про голосування на РК-дисплеї з назвою партії-кандидата.
void show () {setCursor (0,0); друк ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (голосування, "% d", голос1); друк (голосування); setCursor (6,1); sprintf (голосування, "% d", голосування2);………………..
Ось ще кілька функцій, використаних у цьому проекті:
Функція void buzzer () використовується для подання звукового сигналу, як ознака того, що було подано голос. І функція void wait () для світлодіода D5 (зелений світлодіод в апаратному забезпеченні), який показує, що система готова до голосування, коли світлодіод увімкнено.
void buzzer () {digitalWrite (buzz, HIGH); затримка (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); затримка (3000); }
використовується функція void comapare () для порівняння загальної кількості голосів кожного з кандидатів, отримання результату та відображення стану результату на РК-дисплеї.
void compare () {clear (); print ("Будь ласка, почекайте…."); чекати (); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); для (i = 0; i <2; i ++) {clear (); setCursor (0,0); друк ("Вітаємо……."); setCursor (0,1); друк ("BJP виграв вибори");…………………
Перевірте повний код нижче.