เกมงูได้รับความนิยมอย่างมากตั้งแต่เริ่มมีโทรศัพท์มือถือ เริ่มแรกมาในโทรศัพท์มือถือสีดำและสีขาวและในไม่ช้าก็มีชื่อเสียงมาก จากนั้นด้วยความก้าวหน้าของโทรศัพท์มือถือเกมนี้ก็เปลี่ยนไปมากเช่นกันและตอนนี้เกมนี้มีเวอร์ชันกราฟิกและสีสันมากมาย
เกมงูยังกลายเป็นโครงการ DIY ที่ได้รับความนิยมอย่างมากสำหรับงานอดิเรกและนักเรียนอิเล็กทรอนิกส์ ดังนั้นวันนี้เราจะมาสาธิตเกมงู Arduinoพร้อมฟังก์ชั่นพื้นฐานทั้งหมดในขณะที่ทำให้มันง่ายในเวลาเดียวกัน
ส่วนประกอบที่ใช้:
- Arduino UNO
- จอแสดงผล LED Dot Matrix 8x8
- กะลงทะเบียน 74HC595
- 16x2 LCD
- พอท 1 พัน
- ปุ่มกด
- การเชื่อมต่อสายไฟ
- คณะกรรมการขนมปัง
- พาวเวอร์ซัพพลาย
คำอธิบายการทำงาน:
นี่เป็นเกมที่ซับซ้อนเล็กน้อยในการสร้าง แต่ในบทช่วยสอนนี้เราได้ทำให้ง่ายสำหรับคุณ ในการสร้างโปรเจ็กต์นี้เราได้ใช้จอแสดงผล Dot matrix สีแดงขนาด 8x8 สำหรับแสดงงูและจุดอาหาร LCD สำหรับแสดงคะแนนหรือคะแนนปุ่มกด 5 ปุ่มสำหรับบอกทิศทางและเริ่มเกมและสุดท้าย Arduino UNO สำหรับควบคุม กระบวนการทั้งหมด แผนภาพพินของจอแสดงผล LED Dot Matrix 8x8พร้อมภาพต้นฉบับได้รับด้านล่าง:
เมื่อเราเปิดวงจรก่อนอื่นเราจะแสดงข้อความต้อนรับจากนั้นคำใบ้“ กดเริ่มเล่น” บนจอ LCD หลังจากนี้ LCD จะแสดงคะแนนเป็นศูนย์และจอแสดงผลแบบดอทเมทริกซ์จะแสดงจุดสองจุดเป็นงูและจุดเดียวเป็นอาหาร
ตอนนี้ผู้ใช้ต้องกดปุ่มกลางเพื่อเริ่มเกมและงูเริ่มเคลื่อนที่ในทิศทางขึ้นตามค่าเริ่มต้น จากนั้นผู้ใช้ต้องบอกทิศทางให้กับงูโดยกด 'ปุ่มทิศทาง' รอบ ๆ ปุ่มกลาง ที่นี่เราได้ใช้ปุ่มห้าปุ่ม (ปุ่มกด) ได้แก่ ปุ่มซ้ายปุ่มขวาปุ่มขึ้นปุ่มลงและปุ่มเริ่ม เมื่อใดก็ตามที่งูไปถึงจุดอาหารหรือกินอาหารคะแนนจะเพิ่มขึ้น 5 คะแนนในแต่ละครั้งและความยาวของงูจะเพิ่มขึ้นทีละหนึ่งจุด (LED) ในแต่ละครั้งความเร็วของงูก็เร็วขึ้นกว่าเดิม และเมื่อใดก็ตามที่งูโจมตีที่กำแพงใด ๆ หรือไปถึงจุดสิ้นสุดของเมทริกซ์ LED มันก็จะจบเกม (“ จบเกม”) จากนั้นผู้ใช้ต้องเริ่มเกมอีกครั้งโดยกดปุ่มเริ่ม
คำอธิบายวงจร:
วงจรของโครงการเกมงูนี้มีความซับซ้อนเล็กน้อย ที่นี่เรามีการเชื่อมต่อจอแสดงผล dot เมทริกซ์โดยใช้ปุ่ม Shift สมัครสมาชิก 74HC595 ที่นี่มีการใช้ทะเบียนกะสองตัวหนึ่งตัวสำหรับขับเคลื่อนคอลัมน์และตัวที่สองสำหรับการขับแถว พินควบคุมของทั้งรีจิสเตอร์, ทะเบียนกะคอลัมน์และรีจิสเตอร์กะแถว (SH, ST),เชื่อมต่อโดยตรงกับหมายเลขพินของ Arduino 14 และ 16 ตามลำดับ และขา DS ของการลงทะเบียนการเลื่อนคอลัมน์และการลงทะเบียนกะแถวนั้นเชื่อมต่อโดยตรงกับพินหมายเลข 15 และ 17 ของ Arduino ปุ่มเริ่มต้นสำหรับเริ่มเกมเชื่อมต่อที่พินหมายเลข 3 ปุ่มทิศทางซ้ายที่พิน 4 ปุ่มทิศทางขวาที่พิน 6 ปุ่มทิศทางขึ้นที่พิน 2 และปุ่มทิศทางลงที่พิน 5 ยังเชื่อมต่อ LCD ในฮาร์ดแวร์ของเราเพื่อ แสดงคะแนน หมุด RS และ EN เชื่อมต่อโดยตรงที่พิน 13 และ 12 พิน RW เป็นกราวด์โดยตรง และหมุดข้อมูล d4-d7 เชื่อมต่อที่พิน 11, 10, 9, 8 ของ Arduino ส่วนที่เหลือของการเชื่อมต่อจะแสดงในแผนภาพวงจร
คำอธิบายการเขียนโปรแกรม:
ในการเขียนโค้ดเกมงู Arduino นี้ก่อนอื่นเรารวมไฟล์ส่วนหัวและกำหนดพินสำหรับ LCD จากนั้นกำหนดพินสำหรับปุ่มทิศทางและพินข้อมูลสำหรับ shift register
# รวม
จากนั้นเราจะเริ่มต้นทุกสิ่งที่เราใช้ในโปรแกรม ในฟังก์ชั่น การตั้งค่า เราจะเริ่มต้น LCD โดยให้ทิศทางไปยังพินเอาต์พุตอินพุตดึงบิตขึ้นและแสดงข้อความต้อนรับบน LCD
การตั้งค่าเป็นโมฆะ () {lcd.begin (16,2); pinMode (ds_col, เอาท์พุท); pinMode (sh_col, เอาท์พุท); pinMode (st_col, เอาท์พุท); pinMode (ds_row, เอาท์พุท); PinMode (เริ่มต้น, อินพุต);……………
จากนั้นเราก็เริ่มเกมในฟังก์ชัน ลูป
โมฆะ show_snake (int temp) {สำหรับ (int n = 0; n
ที่นี่เราได้ใช้ฟังก์ชั่นด้านล่างสำหรับอ่านทิศทางอินพุตจากปุ่มกด
เป็นโมฆะ read_button () {if (! digitalRead (ซ้าย)) {move_r = 0; move_c! = - 1? move_c = -1: move_c = 1; ในขณะที่ (! digitalRead (ซ้าย));……………
ตรวจสอบC Code of Snake Gameฉบับเต็มด้านล่าง