- ส่วนประกอบที่จำเป็น:
- มันทำงานอย่างไร:
- คำอธิบายวงจร:
- วิธีเรียกใช้รหัสใน Raspberry Pi:
- คำอธิบายการเขียนโปรแกรม:
Raspberry Pi เป็นบอร์ดพัฒนาที่ได้รับความนิยมจาก ARM Cortex ซึ่งออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และนักทำงานอดิเรก เป็นคอมพิวเตอร์บอร์ดเดี่ยวที่ใช้พลังงานต่ำพร้อมความเร็วในการประมวลผลและหน่วยความจำที่ดีมาก ราสเบอร์รี่ Piสามารถนำมาใช้สำหรับการปฏิบัติหน้าที่แตกต่างกันในเวลาเช่นเครื่องคอมพิวเตอร์ตามปกติและด้วยเหตุนี้มันถูกเรียกว่ามินิคอมพิวเตอร์ในฝ่ามือของคุณ
เราได้สร้างชุดบทเรียน Raspberry Pi ซึ่งเราได้กล่าวถึงการเชื่อมต่อของ Raspberry Pi กับส่วนประกอบพื้นฐานทั้งหมดรวมถึงโครงการ Raspberry Pi ง่ายๆที่จะเริ่มต้นด้วย
ที่นี่เราจะไปสร้างเครื่องลงคะแนนอิเล็กทรอนิกส์โดยใช้ราสเบอร์รี่ Pi คณะกรรมการ เราทุกคนทราบเกี่ยวกับเครื่องลงคะแนนอิเล็กทรอนิกส์ (EVM) ซึ่งใช้ในการลงคะแนนในการเลือกตั้งโดยการกดปุ่มง่ายๆ เราได้กล่าวถึงเครื่องลงคะแนนเสียงอิเล็กทรอนิกส์โดยใช้ไมโครคอนโทรลเลอร์ที่แตกต่างกันเช่น EVM พร้อมไมโครคอนโทรลเลอร์ AVR และ EVM พร้อม Arduino นอกจากนี้เรายังได้สร้างเครื่องลงคะแนนซึ่งผู้ลงคะแนนได้รับการรับรองความถูกต้องด้วยแท็ก RFID เพื่อให้สามารถนับเฉพาะคะแนนเสียงที่ได้รับการรับรองความถูกต้องเท่านั้น
เครื่องลงคะแนนอิเล็กทรอนิกส์ที่ใช้ Raspberry Pi นี้ง่ายกว่าและง่ายกว่าเมื่อเทียบกับโครงการของเครื่องลงคะแนนก่อนหน้านี้
ส่วนประกอบที่จำเป็น:
- ราสเบอร์รี่ 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เพื่อดำเนินการทั้งหมดในโครงการและใช้ไลบรารี WirePi สำหรับเลือกและควบคุมพิน GPIO ของ Raspberry Pi เรายังสามารถใช้ Raspberry Pi 2 ได้ที่นี่ ที่นี่เราได้ใช้ห้าปุ่มซึ่งในสี่ได้ใช้ในการลงคะแนนให้ผู้สมัครที่สี่ที่แตกต่างกัน / ฝ่ายและปุ่มเดียวจะใช้สำหรับการแสดงผลบนจอแอลซีดีปุ่มทั้งห้านี้เชื่อมต่อโดยตรงกับพิน GPIO 21 ถึง 25 ของ RPI3 โดยเทียบกับกราวด์ด้วยตัวต้านทานแบบดึงขึ้น 10K สำหรับแต่ละอัน 16x2 LCD เชื่อมต่อกับ 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' ดังนั้นเราจะไม่ลงรายละเอียดที่นี่ นอกจากนี้คุณยังควรตรวจสอบวิธีการเริ่มต้นด้วยราสเบอร์รี่ Pi ที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Pi การติดตั้งระบบปฏิบัติการ (Raspbian เจสซี) และฮาร์ดแวร์และซอฟแวร์ความต้องการ
2. ตอนนี้เรียกใช้คำสั่งด้านล่างเพื่อเปิดไฟล์ใหม่ชื่อ vote.cและวางรหัส (ระบุในส่วนโค้ดด้านล่าง) ลงในไฟล์ใช้ปุ่ม "shift + insert" เพื่อวางโค้ด
การลงคะแนน sudo nanoc
3. หลังจากเขียนโค้ดแล้วให้กด ctrl + x จากนั้นกด y เพื่อบันทึกรหัสแล้วกด Enter
4. ตอนนี้ทำให้โค้ดทำงานได้โดยใช้คำสั่งที่กำหนด:
cc -o การลงคะแนนโหวต c -lwiringPi -std = c99
5. สุดท้ายรันโค้ดโดยใช้คำสั่งที่กำหนด
sudo./voting
คำอธิบายการเขียนโปรแกรม:
ที่นี่เราใช้ภาษา C ที่ผู้ใช้คุ้นเคยมากในการเขียนโค้ดและการเข้ารหัสคล้ายกับการเข้ารหัส Arduino มาก เรายังสามารถใช้ภาษา Python เพื่อสร้างโปรเจ็กต์นี้
ก่อนอื่นเรารวมไฟล์ส่วนหัวและกำหนดพินสำหรับ LCD ไฟล์ส่วนหัว WirePi.h ใช้สำหรับควบคุมพิน GPIO ของ Pi จากนั้นเริ่มต้นตัวแปรและพินสำหรับรับอินพุตการลงคะแนนและไฟ LED
# รวม
หลังจากนั้นเราได้ให้ทิศทางทุก GPIO ที่ใช้ใน การติดตั้งเป็นโมฆะ () ฟังก์ชัน
การตั้งค่าเป็นโมฆะ () {if (WirePiSetup () == - 1) printf ("ERROR"); PinMode (led1, เอาท์พุท); PinMode (led2, เอาท์พุท); PinMode (led3, เอาท์พุท); PinMode (led4, เอาท์พุท); PinMode (led5, เอาท์พุท); pinMode (ฉวัดเฉวียนเอาท์พุท); pinMode (RS, เอาท์พุท);…. ป……….
ในโค้ดเราได้ใช้ฟังก์ชัน digitalRead ใน void main () เพื่ออ่านปุ่มที่กด
ถ้า (digitalRead (in1) == 0) {vote1 ++; แสดง(); digitalWrite (led1, สูง); ออด (); 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 ใช้สำหรับส่งเสียงบี๊บเพื่อเป็นการแสดงความคิดเห็นที่ได้รับการโหวต และ โมฆะ wait () fuction สำหรับ LED D5 (LED สีเขียวในฮาร์ดแวร์) ซึ่งแสดงว่าระบบพร้อมสำหรับการโหวตเมื่อ LED เปิดอยู่
เป็นโมฆะ buzzer () {digitalWrite (buzz, HIGH); ล่าช้า (1,000); digitalWrite (ฉวัดเฉวียนต่ำ); } เป็นโมฆะ wait () {digitalWrite (led5, LOW); ล่าช้า (3000); }
ใช้ฟังก์ชัน void comapare () เพื่อเปรียบเทียบคะแนนโหวตรวมของผู้สมัครแต่ละคนเพื่อรับผลลัพธ์และแสดงสถานะของผลลัพธ์บน LCD
โมฆะเปรียบเทียบ () {ชัดเจน (); พิมพ์ ("กรุณารอ…. "); รอ(); ถ้า (โหวต 1> โหวต 2 && โหวต 1> โหวต 3 && โหวต 1> โหวต 4) {digitalWrite (led1, HIGH); สำหรับ (i = 0; i <2; i ++) {clear (); setCursor (0,0); พิมพ์ ("Congrates……. "); setCursor (0,1); พิมพ์ ("BJP ชนะเลือกตั้ง");…………………
ตรวจสอบรหัสเต็มด้านล่าง