- Потребне компоненте:
- Како то ради:
- Објашњење кола:
- Како покренути код у Распберри Пи:
- Објашњење програмирања:
Распберри Пи је популарна развојна плоча заснована на АРМ кортексу дизајнирана за електронске инжењере и хобисте. То је рачунар са једном плочом који ради на мало напајања, са врло добром брзином обраде и меморијом. Распберри Пи се може користити за обављање различитих функција одједном, попут уобичајеног рачунара, и зато се на длану назива Мини рачунар.
Направили смо серију туторијала за Распберри Пи, у којима смо покрили Интерфацеинг Распберри Пи са свим основним компонентама, као и неке једноставне пројекте Распберри Пи за почетак.
Овде ћемо направити електронску машину за гласање помоћу Распберри Пи плоче. Сви смо упознати са електронском гласачком машином (ЕВМ) која се користи за гласање на изборима притиском на једноставно дугме. Већ смо покрили електронско гласање користећи различите микроконтролере попут ЕВМ са АВР микроконтролером и ЕВМ са Ардуином. Такође смо изградили гласовну машину у којој је гласач овјерен РФИД ознаком, тако да се могу бројати само овјерени гласови.
Ова електронска гласачка машина која користи Распберри Пи је једноставнија и лакша у поређењу са нашим претходним пројектима гласачке машине.
Потребне компоненте:
- Распберри Пи - 1
- ЛЦД 16к2 - 1
- Тастер - 5
- Даска за хлеб - 1
- Повезивање жица
- 1К отпорник - 1
- Отпорник 10К - 5
- 10К ПОТ - 1
- ЛЕД диоде - 5
Како то ради:
У овом пројекту користили смо четири дугмета за гласање за четири кандидата или странке. Можемо повећати број кандидата, али за боље разумевање овде смо користили само четири. Када бирач притисне било које од четири дугмета, тада се „бројање гласова“ за поштовану странку или кандидата сваки пут повећава за једно. У исто време ЛЕД трепће и зујалица се оглашава на секунду, што указује на то да је дато гласање. По завршетку гласања, имамо дугме „Резултат“ за приказ резултата гласања. Када притиснемо ово дугме, ЛЦД екран приказује име победничке странке са бр. гласова датих свакој странци.
Објашњење кола:
Кружни дијаграм овог ЕВМ-а који користи Распберри Пи дат је у наставку. Распберри Пи контролише читав процес попут читања дугмета, повећавајући бројање гласова, генеришући резултат и приказујући све ствари на ЛЦД-у.
Овде смо користили плочу Распберри Пи 3 за извођење свих операција у пројекту и користили смо вирингПи библиотеку за одабир и контролу ГПИО пинова на Распберри Пи. Овде такође можемо да користимо Распберри Пи 2. Овде смо користили Пет тастера, у којима су четири коришћена за гласање за четири различита кандидата / странке, а једно дугме служи за приказивање резултата на ЛЦД-у. Ових пет дугмади је директно повезано на ГПИО пинове 21 до 25 РПИ3, у односу на масу са 10К отпорним отпорником за сваки од њих. ЛЦД димензија 16к2 повезан је са Распберри Пи. Контролни пин РС, РВ и Ен повезани су на ГПИО пин 11, ГНД и 10. А пин за податке Д4-Д7 повезан је на ГПИО пинове 6, 5, 4 и 1 РПИ. звучни сигналсе такође користи за звучни сигнал када бирач притисне било које дугме. Овде смо користили зелену ЛЕД (Д5) која показује да је систем спреман и да гласач може да преда свој глас притиском на дугме. 10к лонац се користи за контролу осветљености ЛЦД екрана.
Како покренути код у Распберри Пи:
1. Прво се пријавите на Распберри Пи користећи ССХ са подразумеваним корисничким именом: 'пи' и лозинком: ' Распберри '. Овде смо користили ССХ клијент „Путти фор Виндовс“ за повезивање са Пи преко Виндовс-а. Ако сте на Линуку, можете се директно повезати са Пи користећи ССХ. На интернету постоји пуно упутстава о „Повезивању са Распберри Пи помоћу ССХ-а“, тако да овде нећемо улазити у детаље. Такође бисте требали проверити Како започети са Распберри Пи да бисте сазнали више о Пи, инсталацији ОС-а (Распбиан Јессие) и његовим хардверским и софтверским захтевима.
2. Сада покрените доњу команду да бисте отворили нову датотеку која се зове воте.ц и залепите код (дат у одељку кода доле) у датотеку, користите тастер "схифт + инсерт" да бисте налепили код.
судо нано гласање.в
3. Након писања кода притисните цтрл + к, а затим притисните и да бисте сачували код и притисните ентер.
4. Сада направите извршни код помоћу задате наредбе:
цц -о гласањем са гласањем.ц -лвирингПи -стд = ц99
5. На крају покрените код помоћу задате наредбе
судо./гласање
Објашњење програмирања:
Овде смо за писање кода и кодирања слични Ардуино кодирању користили језик који је добро познат Ц језику. За изградњу овог пројекта такође можемо користити језик Питхон.
Пре свега укључујемо датотеке заглавља и дефинишемо игле за ЛЦД; Датотека заглавља вирингПи.х се користи за контролу ГПИО пинова Пи. Затим иницијализујте неке променљиве и пинове за унос гласа и ЛЕД индикације.
#инцлуде
Након ње, дали смо смер за све коришћене ГПИО-ове у воид сетуп () функцији .
воид сетуп () {иф (вирингПиСетуп () == - 1) принтф ("ЕРРОР"); пинМоде (лед1, ИЗЛАЗ); пинМоде (лед2, ИЗЛАЗ); пинМоде (лед3, ИЗЛАЗ); пинМоде (лед4, ИЗЛАЗ); пинМоде (лед5, ИЗЛАЗ); пинМоде (зујање, ИЗЛАЗ); пинМоде (РС, ИЗЛАЗ);……………….
У коду смо користили функцију дигиталРеад у воид маин () за читање притиснутог дугмета.
иф (дигиталРеад (ин1) == 0) {воте1 ++; Прикажи(); дигиталВрите (лед1, ВИСОКО); зујалица (); дигиталВрите (лед1, ЛОВ); чекати(); }
функција воид схов () користи се за приказ информација о гласању на ЛЦД екрану са именом кандидата.
воид схов () {сетЦурсор (0,0); принт ("БЈП Цонг ААП Ек"); сетЦурсор (1,1); спринтф (глас, "% д", глас1); штампати (гласати); сетЦурсор (6,1); спринтф (глас, "% д", глас2);………………..
Ево још неких функција које се користе у овом пројекту:
фукција воид буззер () користи се за звучни сигнал као знак да је дат глас. И воид ваит () фукција за ЛЕД Д5 (зелена ЛЕД у хардверу), што показује да је систем спреман за Воте, када се ЛЕД укључи.
воид зујалица () {дигиталВрите (зујање, ВИСОКО); кашњење (1000); дигиталВрите (зујање, ЛОВ); } воид ваит () {дигиталВрите (лед5, ЛОВ); кашњење (3000); }
функција воид цомапаре () користи се за поређење укупног броја гласова сваког од кандидата, за добијање резултата и приказивање статуса резултата на ЛЦД-у.
воид цомпаре () {цлеар (); принт ("Сачекајте…."); чекати(); иф (глас1> глас2 && глас1> глас3 && глас1> глас4) {дигиталВрите (лед1, ХИГХ); за (и = 0; и <2; и ++) {цлеар (); сетЦурсор (0,0); принт ("Честитамо……."); сетЦурсор (0,1); штампај („БЈП је победио на изборима“);…………………
Проверите пуни код у наставку.