Raspberry Pi הוא לוח פיתוח פופולרי מבוסס קליפת ARM המיועד למהנדסים אלקטרוניים ותחביבים. זהו מחשב לוח יחיד שעובד בהספק נמוך עם מהירות עיבוד וזיכרון טובים מאוד. ניתן להשתמש ב- Raspberry Pi לביצוע פונקציות שונות בכל פעם, כמו מחשב רגיל, ומכאן שהוא נקרא בכף היד מיני מחשב.
יצרנו סדרה של מדריכי Raspberry Pi, בהן סקרנו את הממשק של Raspberry Pi עם כל המרכיבים הבסיסיים, כמו גם כמה פרויקטים פשוטים של Raspberry Pi מלכתחילה.
כאן אנו הולכים לבנות מכונת הצבעה אלקטרונית באמצעות לוח Raspberry Pi. כולנו מודעים לגבי מכונת ההצבעה האלקטרונית (EVM) המשמשת להצבעה בבחירות, על ידי לחיצה על כפתור פשוט. כבר כיסינו את מכונת ההצבעה האלקטרונית באמצעות מיקרו-בקרים שונים כמו EVM עם מיקרו-בקר AVR ו- EVM עם Arduino. בנינו גם מכונת הצבעה בה מאומת הבוחר על ידי תג RFID, כך שרק קולות מאומתים ניתנים לספירה.
מכונת הצבעה אלקטרונית זו המשתמשת ב- Raspberry Pi היא פשוטה וקלה יותר בהשוואה לפרויקטים הקודמים של מכונת ההצבעה שלנו.
רכיבים נדרשים:
- פטל פי - 1
- LCD 16x2 - 1
- לחצן לחיצה - 5
- לוח לחם - 1
- חוטי חיבור
- נגד 1K - 1
- נגד 10K - 5
- סיר 10K - 1
- נוריות LED - 5
איך זה עובד:
בפרויקט זה השתמשנו בארבעה כפתורים להצביע לארבעה מועמדים או מפלגות. אנו יכולים להגדיל את מספר המועמדים, אך להבנה טובה יותר השתמשנו רק בארבעה כאן. כאשר מצביע לוחץ על אחד מארבעת הכפתורים אז 'ספירת ההצבעה' עבור המפלגה או המועמד המכובד, מוגדלת אחת בכל פעם. במקביל נורית LED מהבהבת וזמזם מצפצף לרגע, כדי לציין כי ניתן הצבעה. לאחר סיום ההצבעה, יש לנו כפתור "תוצאה" כדי להציג את תוצאות ההצבעה. כאשר אנו לוחצים על כפתור זה, מסך LCD מציג את שם המסיבה הזוכה עם המספר לא. של קולות שניתנו לכל מפלגה.
הסבר מעגל:
תרשים המעגל של EVM זה באמצעות Raspberry Pi מוצג להלן. Raspberry Pi שולט בתהליך כולו כמו קריאת הכפתור, הגדלת ספירת הקולות, יצירת תוצאה והצגת כל הדברים על גבי LCD.
כאן השתמשנו בלוח Raspberry Pi 3 לביצוע כל הפעולות בפרויקט והשתמשנו בספריית wiringPi לבחירה ושליטה בסיכות 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 משמש לשליטה על בהירות ה- LCD.
כיצד להפעיל את הקוד ב- Raspberry Pi:
1. ראשית, היכנס ל- Raspberry Pi שלך באמצעות SSH עם שם משתמש ברירת מחדל: 'pi' וסיסמה: 'פטל'. כאן השתמשנו בלקוח SSH "Putty for Windows" לצורך חיבור ל- Pi דרך Windows. אם אתה משתמש ב- Linux, אתה יכול להתחבר ישירות ל- Pi באמצעות SSH. יש הרבה הדרכות באינטרנט בנושא 'התחברות עם פטל פי באמצעות SSH', אז הנה אנחנו לא נכנסים לפרטים. עליכם לבדוק כיצד להתחיל עם Raspberry Pi כדי ללמוד עוד על Pi, התקנת מערכת הפעלה (Raspbian Jessie) ודרישות החומרה והתוכנה שלה.
2. כעת הפעל את הפקודה למטה כדי לפתוח קובץ חדש בשם voting.c והדבק את הקוד (המופיע בסעיף הקוד למטה) בקובץ, השתמש במקש "shift + insert" כדי להדביק את הקוד.
הצבעה בסודו ננו. ג
3. לאחר כתיבת הקוד לחץ על ctrl + x ואז לחץ על y כדי לשמור את הקוד ולחץ על Enter.
4. הפוך את הקוד להפעלה באמצעות הפקודה הנתונה:
cc -o הצבעה הצבעה. c -lwiringPi -std = c99
5. לבסוף הפעל את הקוד באמצעות הפקודה הנתונה
סודו./הצבעה
הסבר על תכנות:
כאן השתמשנו בשפת C מוכרת הרבה למשתמשים כדי לכתוב את הקוד ואת הקידוד הדומה הרבה לקידוד Arduino. אנו יכולים גם להשתמש בשפת פיתון לבניית פרויקט זה.
קודם כל אנו כוללים קבצי כותרת ומגדירים סיכות עבור LCD; קובץ הכותרת wiringPi.h משמש לשליטה בסיכות GPIO של Pi. ואז אתחל כמה משתנים וסיכות לצורך קבלת קלט הצבעות ואינדיקציות LED.
#לִכלוֹל
אחריה, נתנו כיוון לכל GPIO המשומשים בפונקציית התקנת הריק () .
הגדרת חלל () {if (wiringPiSetup () == - 1) printf ("ERROR"); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (באז, OUTPUT); pinMode (RS, OUTPUT);……………….
בקוד השתמשנו בפונקציה digitalRead ב- main main () כדי לקרוא את הלחצן שנלחץ.
אם (digitalRead (in1) == 0) {vote1 ++; הופעה(); digitalWrite (led1, HIGH); זַמזָם(); digitalWrite (led1, LOW); לַחֲכוֹת(); }
פונקציה show void () משמשת להצגת מידע על הצבעה על גבי LCD עם שם המפלגה המועמדת.
show void () {setCursor (0,0); הדפס ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (הצבעה, "% d", vote1); הדפס (הצבעה); setCursor (6,1); sprintf (הצבעה, "% d", vote2);………………..
להלן מספר פונקציות נוספות המשמשות בפרויקט זה:
זמזם ריק () fuction משמש לצפצוף על הבאזר כאינדיקציה לכך שניתנה הצבעה. וזה המתנה ריקה () fuction עבור LED D5 (גרין LED בחומרה), אשר מראה כי המערכת מוכנה להצביע, כאשר הנורית מופעלת.
זמזם ריק () {digitalWrite (buzz, HIGH); עיכוב (1000); digitalWrite (באז, LOW); } בטל המתנה () {digitalWrite (led5, LOW); עיכוב (3000); }
נעשה שימוש בפונקציה void comapare () , להשוואת סך הקולות של כל אחד מהמועמדים, לקבלת התוצאה ולהצגת מצב התוצאה על גבי LCD.
בטל השווה () {ברור (); הדפס ("אנא המתן…."); לַחֲכוֹת(); אם (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); עבור (i = 0; i <2; i ++) {clear (); setCursor (0,0); הדפס ("מזל טוב……."); setCursor (0,1); הדפס ("BJP זכה בבחירות");…………………
בדוק את הקוד המלא למטה.