Arduino เป็นที่นิยมอย่างมากในการสร้างโปรเจ็กต์งานอดิเรกและเกมและก่อนหน้านี้เราเคยใช้ Arduino ในการสร้างเกมงูเกมปิงปองเกมแข่งอวกาศ ฯลฯ วันนี้เรากำลังสร้างเกมยอดนิยมอีกหนึ่งเกมโดยใช้เกม Arduino- Buzz wire หรือเกมมือนิ่ง.
สำหรับโครงการนี้เราจะใช้ Arduino Uno, Buzzer และสายอลูมิเนียมสองเส้น นอกจากนี้ยังมีการเชื่อมต่อ LCD 16x2 เพื่อแสดงสถานะของเกม ปลายทั้งสองด้านของลวดเขาวงกตจะเชื่อมต่อกับพินดิจิตอล 2 และ 3 ของ Arduino และสายที่จับจะเชื่อมต่อกับขากราวด์ของ Arduino พินดิจิทัลถูกกำหนดให้เป็นพิน INPUT_PULLUP ดังนั้นเมื่อสายที่จับสัมผัสกับลวดเขาวงกตมันจะเปลี่ยนสถานะพินดิจิทัลเป็นต่ำและเสียงกริ่งจะส่งเสียง
ไดโอดเชื่อมต่อที่ปลายลวดเขาวงกตดังนั้นเมื่อคุณผ่านไปยังไดโอดนั้นและสัมผัสลวดเขาวงกตที่มีลวดจับทรงกลมพินเดียว (พิน 3) จะอยู่ในระดับต่ำ ในเงื่อนไขนั้นข้อความแสดงความยินดี (ทำได้ดีมาก) จะแสดงบน LCD
ส่วนประกอบที่จำเป็น
- Arduino Uno
- ลวดอลูมิเนียม
- 16x2 LCD
- โมดูลI 2 C
- เขียงหั่นขนม
- Buzzer
- ไดโอด
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับ Arduino Buzz Wire Game แสดงไว้ด้านบน พิน SCL และ SDA ของโมดูล I2C เชื่อมต่อกับหมุด A5 และ A4 ของ Arduino ในขณะที่ขา V CCและ GND ของโมดูล I2C เชื่อมต่อกับขา 5V และ GND ของ Arduino รางบวกของ Buzzer เชื่อมต่อกับพินดิจิตอล 4 ของ Arduino และรางลบเชื่อมต่อกับ GND ตัดลวดอลูมิเนียมแล้วโค้งเป็นรูปซิกแซก บัดกรีไดโอดที่ปลายด้านหนึ่งของสายไฟ จากนั้นตัดลวดอีกเส้นเพื่อทำเป็นที่จับและงอปลายด้านหนึ่งให้เป็นห่วง
LCD 16x2 สามารถเชื่อมต่อกับ Arduino ได้โดยไม่ต้องใช้โมดูล I2C
เชื่อมต่อพิน D2 & D3 ของ Arduino เข้ากับปลายสาย Zig-Zag ทั้งสองข้างและเชื่อมต่อสายที่จับเข้ากับขา GND ของ Arduino
คำอธิบายรหัส
รหัสที่สมบูรณ์สำหรับArduino Buzz Wire Gameนี้จะได้รับในตอนท้ายของเอกสาร
เริ่มต้นรหัสของคุณโดยรวมไฟล์ไลบรารีสำหรับโมดูล LCD ไลบรารี LiquidCrystal_I2C.h ใช้สำหรับการสื่อสาร I2C ระหว่างโมดูล Arduino และ LCD
# รวม
หลังจากนั้นกำหนดพิน Arduino สำหรับกริ่งจุดเริ่มต้นของสายและจุดสิ้นสุดของสาย
const int startPin = 2; const int endPin = 3; const int buzzer = 4;
จากนั้นกำหนดตัวแปร start & end_ สองตัวแปร ตัวแปรเหล่านี้จะถูกใช้เพื่อบันทึกการอ่านลวด
int เริ่มต้น end_;
ตอนนี้กำหนดขาออดเป็นผลผลิตและลวดหมุดINPUT_PULLUP Arduino มีตัวต้านทานแบบดึงขึ้นภายในโดยมีค่าประมาณ 20k โอห์ม ต้านทานเหล่านี้สามารถเชื่อมต่อภายในโดยใช้INPUT_PULLUP การกำหนด INPUT_PULLUP จะเหมือนกับการเชื่อมต่อตัวต้านทาน ~ 20k ohm ระหว่างพินและ + 5V
pinMode (เสียงกริ่งเอาท์พุท); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
ภายใน ช่องว่างให้ อ่านสถานะของหมุดลวด
เริ่มต้น = digitalRead (startPin); end_ = digitalRead (endPin);
ตอนนี้เปรียบเทียบการอ่านพินลวด หากทั้งสองขาอยู่ในระดับต่ำแสดงว่าคุณแตะสายแล้วดังนั้นเสียงกริ่งจะส่งเสียงและหากพินเริ่มต้นของสายอยู่สูงและปลายพินต่ำนั่นหมายความว่าคุณมาถึงจุดสิ้นสุดแล้ว
ถ้า (start == LOW && end _ == LOW) {digitalWrite (buzzer, HIGH); ล่าช้า (1,000); digitalWrite (เสียงกริ่งต่ำ); lcd.setCursor (0,0); lcd.print ("ลองอีกครั้ง"); Serial.print ("ลองอีกครั้ง"); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("ทำได้ดี"); Serial.print ("ทำได้ดี"); }
ทดสอบเกม Buzz Wire
หลังจากเชื่อมต่อฮาร์ดแวร์และอัปโหลดรหัสที่กำหนดคุณสามารถเริ่มเล่นเกมได้ ดังนั้นถือลวดด้วยวงกลมไว้ในมือของคุณและพยายามเอาลวดที่มีวงกลมมาตลอดจนถึงไดโอดที่บัดกรีด้วยลวดซิกแซกโดยไม่ให้ลวดกลมสัมผัสที่ใด หากคุณสัมผัสสายไฟเสียงกริ่งจะส่งเสียงและ LCD จะแสดงข้อความ“ ลองอีกครั้ง ” และหากคุณเล่นเกมจนจบโดยไม่ต้องแตะลวดเกมจะแสดงข้อความ“ ทำได้ดีมาก ”
นี่คือวิธีที่คุณสามารถทำให้เกมลวดกระซิบกระซาบกับ Arduino วิดีโอที่ใช้งานได้และรหัสที่สมบูรณ์จะได้รับด้านล่าง