- Các thành phần bắt buộc:
- Làm thế nào nó hoạt động:
- Giải thích mạch:
- Cách chạy Mã trong Raspberry Pi:
- Giải thích lập trình:
Raspberry Pi là một bảng phát triển phổ biến dựa trên vỏ não ARM được thiết kế cho các Kỹ sư và Người yêu thích Điện tử. Nó là một máy tính bảng đơn hoạt động ở mức công suất thấp với tốc độ xử lý và bộ nhớ rất tốt. Raspberry Pi có thể được sử dụng để thực hiện các chức năng khác nhau cùng một lúc, giống như một chiếc PC thông thường, và do đó nó được gọi là Máy tính mini trong lòng bàn tay của bạn.
Chúng tôi đã tạo một loạt các Hướng dẫn về Raspberry Pi, trong đó chúng tôi đã đề cập đến Giao diện của Raspberry Pi với tất cả các thành phần cơ bản, cũng như một số dự án Raspberry Pi đơn giản để bắt đầu.
Ở đây chúng ta sẽ xây dựng Máy bỏ phiếu điện tử sử dụng Bảng Raspberry Pi. Tất cả chúng ta đều biết về Máy bỏ phiếu điện tử (EVM) được sử dụng để bỏ phiếu trong Bầu cử, bằng cách nhấn một nút đơn giản. Chúng tôi đã đề cập đến Máy bỏ phiếu điện tử sử dụng các Bộ vi điều khiển khác nhau như EVM với vi điều khiển AVR và EVM với Arduino. Chúng tôi cũng đã xây dựng Máy bỏ phiếu trong đó Người bỏ phiếu được xác thực bằng thẻ RFID, để chỉ những phiếu bầu đã được xác thực mới có thể được tính.
Máy bỏ phiếu điện tử sử dụng Raspberry Pi này đơn giản và dễ dàng hơn, so với các Dự án máy bỏ phiếu trước đây của chúng tôi.
Các thành phần bắt buộc:
- Raspberry Pi - 1
- 16x2 LCD - 1
- Nút nhấn - 5
- Bảng bánh mì - 1
- Kết nối dây
- Điện trở 1K - 1
- Điện trở 10K - 5
- 10K LẨU - 1
- LED's - 5
Làm thế nào nó hoạt động:
Trong dự án này, chúng tôi đã sử dụng bốn nút để bỏ phiếu cho bốn ứng cử viên hoặc đảng phái. Chúng tôi có thể tăng số lượng ứng viên, nhưng để hiểu rõ hơn, chúng tôi chỉ sử dụng bốn ở đây. Khi một cử tri nhấn bất kỳ nút nào trong bốn nút thì 'số phiếu bầu' cho đảng hoặc ứng cử viên được tôn trọng sẽ được tăng lên mỗi lần. Đồng thời đèn LED nhấp nháy và còi kêu bíp trong một giây, để cho biết rằng Phiếu bầu đã được đưa ra. Sau khi Bình chọn hoàn tất, chúng ta có nút "Kết quả", để hiển thị kết quả của Biểu quyết. Khi chúng ta nhấn nút này, màn hình LCD sẽ hiển thị tên của Bên thắng cuộc không có. phiếu bầu cho mỗi bên.
Giải thích mạch:
Sơ đồ mạch của EVM này sử dụng Raspberry Pi được đưa ra bên dưới. Raspberry Pi kiểm soát toàn bộ quá trình như Đọc nút, tăng số phiếu bầu, tạo kết quả và hiển thị tất cả mọi thứ trên màn hình LCD.
Ở đây chúng tôi đã sử dụng bo mạch Raspberry Pi 3 để thực hiện tất cả các hoạt động trong dự án và sử dụng Thư viện wiringPi để chọn và điều khiển các chân GPIO của Raspberry Pi. Chúng ta cũng có thể sử dụng Raspberry Pi 2 tại đây. Ở đây chúng tôi đã sử dụng Năm nút, trong đó bốn nút được sử dụng để Bỏ phiếu cho bốn ứng cử viên / đảng khác nhau và một nút được sử dụng để hiển thị Kết quả trên màn hình LCD. Năm nút này được kết nối trực tiếp với chân GPIO từ 21 đến 25 của RPI3, được nối đất với điện trở kéo lên 10K cho mỗi nút. Màn hình LCD 16x2 được kết nối với Raspberry Pi. Chân điều khiển RS, RW và En được kết nối với chân GPIO 11, GND và 10. Và chân dữ liệu D4-D7 được kết nối với các chân GPIO 6, 5, 4 và 1 của RPI. Một tiếng còicũng được sử dụng cho tiếng bíp khi bất kỳ nút nào được nhấn bởi cử tri. Ở đây, chúng tôi đã sử dụng đèn LED Xanh lục (D5) để cho biết rằng hệ thống đã sẵn sàng và người bỏ phiếu có thể gửi phiếu bầu của họ trong máy bằng cách nhấn nút. Nồi 10k được sử dụng để kiểm soát độ sáng của màn hình LCD.
Cách chạy Mã trong Raspberry Pi:
1. Đầu tiên, Đăng nhập vào Raspberry Pi của bạn bằng SSH với tên người dùng mặc định: 'pi' và mật khẩu: 'raspberry'. Ở đây chúng tôi đã sử dụng ứng dụng khách SSH “Putty cho Windows” để kết nối với Pi thông qua Windows. Nếu bạn đang sử dụng Linux, bạn có thể kết nối trực tiếp với Pi bằng SSH. Có rất nhiều hướng dẫn trên Internet về 'Cách kết nối với Raspberry Pi bằng SSH', vì vậy ở đây chúng tôi không đi vào chi tiết. Bạn cũng nên kiểm tra Cách bắt đầu với Raspberry Pi để tìm hiểu thêm về Pi, cài đặt hệ điều hành (Raspbian Jessie) và các yêu cầu Phần cứng và Phần mềm của nó.
2. Bây giờ chạy lệnh dưới đây để mở một Tệp mới có tên vote.c và dán mã (được cung cấp trong phần mã bên dưới) vào tệp, sử dụng phím “shift + insert” để dán mã.
sudo nano vote.c
3. Sau khi viết mã, nhấn ctrl + x rồi nhấn y để lưu mã và nhấn enter.
4. Bây giờ làm cho mã có thể thực thi bằng lệnh đã cho:
cc -o bỏ phiếu biểu quyết.c -lwiringPi -std = c99
5. Cuối cùng chạy mã bằng cách sử dụng lệnh đã cho
sudo./voting
Giải thích lập trình:
Ở đây, chúng tôi đã sử dụng ngôn ngữ C quen thuộc với người dùng để viết mã và cách mã hóa tương tự như mã hóa Arduino. Chúng tôi cũng có thể sử dụng ngôn ngữ Python để xây dựng dự án này.
Trước hết, chúng tôi bao gồm các tệp tiêu đề và xác định các chân cho LCD; Tệp tiêu đề wiringPi.h được sử dụng để điều khiển các chân GPIO của Pi. Sau đó, khởi tạo một số biến và chân để lấy đầu vào biểu quyết và chỉ báo LED.
#include
Sau đó, chúng tôi đã đưa ra hướng cho tất cả các GPIO đã sử dụng trong hàm void setup () .
void setup () {if (wiringPiSetup () == - 1) printf ("ERROR"); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (buzz, OUTPUT); pinMode (RS, OUTPUT);……………….
Trong mã, chúng ta đã sử dụng hàm digitalRead trong void main () để đọc Nút được nhấn.
if (digitalRead (in1) == 0) {vote1 ++; chỉ(); digitalWrite (led1, HIGH); buzzer (); digitalWrite (led1, LOW); chờ đợi(); }
Hàm void show () được sử dụng để hiển thị thông tin Bỏ phiếu trên màn hình LCD với Tên của đảng ứng cử viên.
void show () {setCursor (0,0); print ("BJP Cong AAP Ex"); setCursor (1,1); sprintf (bỏ phiếu, "% d", vote1); in (bình chọn); setCursor (6,1); sprintf (bỏ phiếu, "% d", vote2);………………..
Dưới đây là một số chức năng khác được sử dụng trong dự án này:
void buzzer () fuction được sử dụng để phát ra tiếng bíp của buzzer như một dấu hiệu cho thấy phiếu bầu đã được đưa ra. Và void wait () fuction cho LED D5 (LED xanh lục trong phần cứng), cho biết hệ thống đã sẵn sàng cho Bình chọn, khi đèn LED được BẬT.
void buzzer () {digitalWrite (buzz, HIGH); chậm trễ (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); chậm trễ (3000); }
Hàm void comapare () được sử dụng để so sánh tổng số phiếu bầu của từng ứng cử viên, để lấy kết quả và hiển thị trạng thái của kết quả trên màn hình LCD.
void so sánh () {clear (); print ("Vui lòng đợi…."); chờ đợi(); if (vote1> vote2 && vote1> vote3 && vote1> vote4) {digitalWrite (led1, HIGH); for (i = 0; i <2; i ++) {clear (); setCursor (0,0); print ("Congrates……."); setCursor (0,1); print ("BJP Trúng bầu cử");…………………
Kiểm tra Mã đầy đủ bên dưới.