- Απαιτούμενα συστατικά:
- Πως δουλεύει:
- Επεξήγηση κυκλώματος:
- Πώς να εκτελέσετε τον κώδικα στο Raspberry Pi:
- Επεξήγηση προγραμματισμού:
Το Raspberry Pi είναι ένας πίνακας δημοφιλούς ανάπτυξης με βάση το φλοιό ARM, σχεδιασμένος για Ηλεκτρονικούς Μηχανικούς και Χόμπι. Είναι ένας ενιαίος υπολογιστής που λειτουργεί με χαμηλή ισχύ με πολύ καλή ταχύτητα και μνήμη επεξεργασίας. Το Raspberry Pi μπορεί να χρησιμοποιηθεί για την εκτέλεση διαφορετικών λειτουργιών κάθε φορά, όπως ένας κανονικός υπολογιστής, και ως εκ τούτου ονομάζεται Mini Computer στην παλάμη σας.
Έχουμε δημιουργήσει μια σειρά εκμάθησης Raspberry Pi, στην οποία έχουμε καλύψει το Interfacing του Raspberry Pi με όλα τα βασικά στοιχεία, καθώς και μερικά απλά έργα Raspberry Pi για να ξεκινήσετε.
Εδώ πρόκειται να δημιουργήσουμε μια ηλεκτρονική μηχανή ψηφοφορίας χρησιμοποιώντας το Raspberry Pi Board. Όλοι γνωρίζουμε την Ηλεκτρονική Μηχανή Ψηφοφορίας (EVM) που χρησιμοποιείται για την ψηφοφορία στις Εκλογές, πατώντας ένα απλό κουμπί. Έχουμε ήδη καλύψει το ηλεκτρονικό μηχάνημα ψηφοφορίας χρησιμοποιώντας διαφορετικούς μικροελεγκτές όπως το EVM με τον μικροελεγκτή AVR και το EVM με το Arduino. Έχουμε επίσης δημιουργήσει ένα Voting Machine στο οποίο ο Voter πιστοποιείται με ετικέτα RFID, έτσι ώστε να μπορούν να μετρηθούν μόνο οι επικυρωμένες ψήφοι.
Αυτό το ηλεκτρονικό μηχάνημα ψηφοφορίας που χρησιμοποιεί το Raspberry Pi είναι απλούστερο και ευκολότερο, σε σύγκριση με τα προηγούμενα Έργα του Voting Machine.
Απαιτούμενα συστατικά:
- Raspberry Pi - 1
- LCD 16x2 - 1
- Πιέστε το κουμπί - 5
- Πίνακας ψωμιού - 1
- Σύνδεση καλωδίων
- 1Κ αντίσταση - 1
- 10Κ αντίσταση - 5
- 10K POT - 1
- LED - 5
Πως δουλεύει:
Σε αυτό το έργο χρησιμοποιήσαμε τέσσερα κουμπιά για να ψηφίσουμε τέσσερις υποψηφίους ή κόμματα. Μπορούμε να αυξήσουμε τον αριθμό των υποψηφίων, αλλά για καλύτερη κατανόηση χρησιμοποιήσαμε μόνο τέσσερις εδώ. Όταν ένας ψηφοφόρος πιέζει οποιοδήποτε από τα τέσσερα κουμπιά, τότε ο «αριθμός ψήφων» για το σεβαστό κόμμα ή υποψήφιο, αυξάνεται κατά ένα κάθε φορά. Ταυτόχρονα, το LED αναβοσβήνει και ο βομβητής ηχεί για ένα δευτερόλεπτο, για να δείξει ότι έχει δοθεί ψηφοφορία. Αφού ολοκληρωθεί η ψηφοφορία, έχουμε ένα κουμπί "Αποτέλεσμα", για να δείξουμε τα αποτελέσματα της ψηφοφορίας. Όταν πατάμε αυτό το κουμπί, στην οθόνη LCD εμφανίζεται το όνομα του κερδισμένου πάρτι με το όχι. των ψήφων που δόθηκαν σε κάθε κόμμα.
Επεξήγηση κυκλώματος:
Το διάγραμμα κυκλώματος αυτού του EVM χρησιμοποιώντας Raspberry Pi δίνεται παρακάτω. Το Raspberry Pi ελέγχει ολόκληρη τη διαδικασία όπως το Reading the Button, η αύξηση του αριθμού των ψήφων, η δημιουργία αποτελεσμάτων και η εμφάνιση όλων των πραγμάτων στην οθόνη LCD.
Εδώ χρησιμοποιήσαμε το Raspberry Pi 3 board για να εκτελέσουμε όλες τις λειτουργίες του έργου και χρησιμοποιήσαμε το wiringPi Library για την επιλογή και τον έλεγχο των ακίδων GPIO του Raspberry Pi. Μπορούμε επίσης να χρησιμοποιήσουμε το Raspberry Pi 2 εδώ. Εδώ έχουμε χρησιμοποιήσει πέντε κουμπιά, στα οποία τέσσερα έχουν χρησιμοποιηθεί για την ψηφοφορία για τέσσερις διαφορετικούς υποψηφίους / κόμματα και ένα κουμπί χρησιμοποιείται για την εμφάνιση του αποτελέσματος στην οθόνη LCD. Αυτά τα πέντε κουμπιά συνδέονται απευθείας με τους ακροδέκτες GPIO 21 έως 25 του RPI3, σε σχέση με τη γείωση με 10K αντίσταση pull-up για κάθε ένα. Μια οθόνη LCD 16x2 συνδέεται με το Raspberry Pi. Οι ακροδέκτες ελέγχου RS, RW και En συνδέονται με τους ακροδέκτες GPIO 11, GND και 10. Και ο ακροδέκτης δεδομένων D4-D7 συνδέεται με τους ακροδέκτες GPIO 6, 5, 4 και 1 του RPI. Ένας βομβητήςχρησιμοποιείται επίσης για ηχητικό σήμα όταν κάποιο από τα κουμπιά πατηθεί από τον ψηφοφόρο. Εδώ έχουμε χρησιμοποιήσει ένα πράσινο LED (D5) για να δείξουμε ότι το σύστημα είναι έτοιμο και ο ψηφοφόρος μπορεί να υποβάλει την ψήφο του στο μηχάνημα, πατώντας το κουμπί. Ένα δοχείο 10k χρησιμοποιείται για τον έλεγχο της φωτεινότητας της LCD.
Πώς να εκτελέσετε τον κώδικα στο 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. Τώρα εκτελέστε την παρακάτω εντολή για να ανοίξετε ένα νέο αρχείο με το όνομα voting.c και επικολλήστε τον κωδικό (δίνεται στην ενότητα κώδικα παρακάτω) στο αρχείο, χρησιμοποιήστε το πλήκτρο "shift + insert" για να επικολλήσετε τον κώδικα.
sudo nano voting.c
3. Αφού γράψετε τον κωδικό, πατήστε ctrl + x και στη συνέχεια πιέστε y για να αποθηκεύσετε τον κωδικό και πατήστε enter.
4. Τώρα κάντε τον κώδικα εκτελέσιμο χρησιμοποιώντας τη δεδομένη εντολή:
cc -o voting voting.c -lwiringPi -std = c99
5. Τέλος, εκτελέστε τον κώδικα χρησιμοποιώντας δεδομένη εντολή
sudo./ ψηφοφορία
Επεξήγηση προγραμματισμού:
Εδώ έχουμε χρησιμοποιήσει πολύ γνωστή στο χρήστη γλώσσα C για να γράψουμε τον κώδικα και την κωδικοποίηση πολύ παρόμοια με την κωδικοποίηση Arduino. Μπορούμε επίσης να χρησιμοποιήσουμε τη γλώσσα Python για τη δημιουργία αυτού του έργου.
Πρώτα απ 'όλα συμπεριλαμβάνουμε αρχεία κεφαλίδας και καθορίζουμε καρφίτσες για LCD. Το αρχείο κεφαλίδας wiringPi.h χρησιμοποιείται για τον έλεγχο των ακίδων GPIO του Pi. Στη συνέχεια, αρχικοποιήστε μερικές μεταβλητές και καρφίτσες για λήψη ψηφοφορίας και ενδείξεις LED.
#περιλαμβάνω
Μετά από αυτό, έχουμε δώσει κατεύθυνση στις όλων των μεταχειρισμένων GPIO είναι άκυρη ρύθμιση (λειτουργία) .
άκυρη ρύθμιση () {if (wiringPiSetup () == - 1) printf ("ΣΦΑΛΜΑ"); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (buzz, OUTPUT); pinMode (RS, OUTPUT);……………….
Στον κώδικα, χρησιμοποιήσαμε τη λειτουργία digitalRead στο κεντρικό κεντρικό () για να διαβάσουμε το Πιεσμένο κουμπί.
if (digitalRead (in1) == 0) {vote1 ++; προβολή(); digitalWrite (led1, HIGH); βομβητής(); digitalWrite (led1, LOW); Περίμενε(); }
Η λειτουργία void show () χρησιμοποιείται για την εμφάνιση πληροφοριών ψηφοφορίας στην οθόνη LCD με το όνομα του υποψηφίου.
άκυρη εμφάνιση () {setCursor (0,0); εκτύπωση ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (ψηφοφορία, "% d", ψηφοφορία1); εκτύπωση (ψηφοφορία); setCursor (6,1); sprintf (ψηφοφορία, "% d", ψηφοφορία2);………………..
Ακολουθούν μερικές ακόμη λειτουργίες που χρησιμοποιούνται σε αυτό το έργο:
Το void buzzer () fuction χρησιμοποιείται για να ακουστεί ο βομβητής ως ένδειξη ότι έχει δοθεί ψηφοφορία. Και άκυρη αναμονή () για LED D5 (Πράσινο LED σε υλικό), το οποίο δείχνει ότι το σύστημα είναι έτοιμο για ψηφοφορία, όταν το LED είναι αναμμένο.
void buzzer () {digitalWrite (buzz, HIGH). καθυστέρηση (1000) digitalWrite (buzz, LOW); } άκυρη αναμονή () {digitalWrite (led5, LOW); καθυστέρηση (3000) }
Χρησιμοποιείται η λειτουργία void comapare () , για τη σύγκριση των συνολικών ψήφων καθενός από τους υποψηφίους, για τη λήψη του αποτελέσματος και την εμφάνιση της κατάστασης του αποτελέσματος στην οθόνη LCD.
άκυρη σύγκριση () {clear (); εκτύπωση ("Παρακαλώ περιμένετε…."); Περίμενε(); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); για (i = 0; i <2; i ++) {clear (); setCursor (0,0); εκτύπωση ("Συγχαρητήρια……."); setCursor (0,1); εκτύπωση ("Η εκλογή του BJP κέρδισε");…………………
Ελέγξτε τον Πλήρες κωδικό παρακάτω.