สารบัญ:
- ขั้นตอนที่ 1: กำหนดการกำหนดค่าปุ่มที่เหมาะสมที่สุด
- ขั้นตอนที่ 2: ชุดประกอบ 4 ปุ่มของฉัน
- ขั้นตอนที่ 3: เล่นเกม
- ขั้นตอนที่ 4: การแข่งขันแบบตัวต่อตัว
- ขั้นตอนที่ 5: ตัวเลือกตัวควบคุมผู้เล่น 2 คน
- ขั้นตอนที่ 6: อัปเดต
วีดีโอ: เกม 4 ปุ่มที่ใช้อินพุตแบบอะนาล็อกเดียว: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
คำแนะนำนี้เน้นที่การใช้สายอินพุตแบบแอนะล็อกหนึ่งสายสำหรับหลายปุ่มซึ่งสามารถตรวจจับได้โดยไม่ขึ้นกับแต่ละอื่น ๆ
และเพื่อเน้นการใช้ปุ่มเหล่านี้รวมอยู่ด้วยคือซอฟต์แวร์เพื่อเล่นเกม 4 ปุ่มที่แตกต่างกันสี่เกม เกมทั้งหมด (ทั้งหมด 8 เกม) ในที่นี้ใช้จอแสดงผลแลดเดอร์ LED (ดูโปรเจ็กต์ก่อนหน้า: คำสั่ง: Single-Line-LED-Display-Games)
คุณสามารถใช้ชุดปุ่ม 4 ปุ่มของคุณเองกับเอาต์พุตการแสดงผลอื่นๆ เพียงใช้ฟังก์ชัน 'scanButtons()' จากหนึ่งในภาพร่างที่รวมไว้ และใช้สเก็ตช์เหล่านั้นเช่นใช้
เกมดังกล่าวเป็นเกมที่ใช้ทักษะ: Whack-a-Mole เกมหน่วยความจำ: Simon Says เกมตรรกะ Sea Hunt และ Flip'd เป็นเกมสำหรับผู้เล่นสองคนที่คล้ายกับ Reveri ต่อมา ในคำแนะนำนี้ ฉันจะแนะนำเกมสองคนแบบตัวต่อตัวสี่เกมในภายหลัง
ขั้นตอนที่ 1: กำหนดการกำหนดค่าปุ่มที่เหมาะสมที่สุด
เพียงใช้ตัวต้านทานบางตัวในซีรีส์โดยแยกปุ่มระหว่างแต่ละปุ่มก็ใช้งานได้ หากคุณไม่ต้องกังวลกับการกดปุ่มเดียวเพื่อปิดอีกปุ่มหนึ่ง ในการกำหนดค่าดังกล่าว แต่ละปุ่ม เมื่อกดแล้ว จะบล็อกปุ่มใดปุ่มหนึ่งที่อยู่ด้านล่าง แม้ว่าคุณต้องการเพียงสองปุ่มและคุณสนใจเพียงปุ่มเดียวในแต่ละครั้ง เช่น ในการใช้งานปิงปอง มันจะเป็นปัญหา ถ้าผู้เล่นล้มเหลว (แค่ช้าเกินไปหรือคิดร้าย) ในการเอานิ้วออกจากปุ่มของเขาก่อนที่อีกฝ่ายจะต้องตีเขา
ปุ่มหลายปุ่มมักจะเชื่อมต่อกับสายอะนาล็อกเส้นเดียว โดยแต่ละปุ่มมีค่าความต้านทานต่างกันไปที่อินพุต คุณสามารถแยกความแตกต่างระหว่างปุ่มหรือคู่ที่กดปุ่มได้อย่างง่ายดายเมื่อมีปุ่มเพียง 2 หรือ 3 ปุ่ม แต่ไม่น่าเชื่อถือด้วยปุ่มมากกว่าหรือกดมากกว่าสองปุ่ม เนื่องจากชุดค่าผสมที่แย่ที่สุดของการอ่านจะอยู่ใกล้กันมากเกินไปอย่างคลุมเครือ
ที่นี่ด้วยสิ่งที่ฉันเรียกว่าการกำหนดค่า Double-Y ของปุ่มและตัวต้านทานสี่ตัว คุณสามารถแยกแยะการกดปุ่มเดี่ยว สองเท่า สามปุ่ม หรือทั้งสี่ปุ่มได้อย่างน่าเชื่อถือ ไดรเวอร์ซอฟต์แวร์สำหรับดำเนินการดังกล่าวมีอยู่ในส่วนถัดไปและรายการโค้ด
ด้วยความปรารถนาที่จะมีปุ่มสี่ปุ่มติดอยู่กับอินพุตแบบอะนาล็อกหนึ่งอัน ซึ่งแต่ละปุ่มสามารถตรวจจับการกดได้โดยไม่คำนึงถึงสถานะของปุ่มอื่นๆ ผมจึงจำลองการกำหนดค่าหลายอย่างในสเปรดชีต ฉันพบว่าการกำหนดค่า double-Y (ประกอบด้วย 2 ชุดของตัวต้านทานสามตัว) ให้ความเป็นไปได้ที่ดีที่สุด ดูแผนผังการเดินสายไฟด้านล่าง ฉันกำลังประเมินพวกมันโดยพิจารณาจากการแยกความต้านทานทั้งหมดระหว่างการกดปุ่มสองปุ่มแบบผสมกัน ฉันจำลองค่าอะนาล็อกที่คำนวณได้เพิ่มเติม อ้างถึงไฟล์สเปรดชีตด้านล่าง
เพื่อกำหนดค่าที่ดีที่สุดที่จะใช้ในการกำหนดค่าข้างต้น ฉันได้เขียนการจำลอง ซึ่งได้ลองเปลี่ยนค่าที่เป็นไปได้ทั้งหมดของค่าความต้านทานที่เป็นไปได้อย่างละเอียดถี่ถ้วน ค้นหาชุดที่สร้างความแตกต่างน้อยที่สุดระหว่างอินพุตการอ่านที่เป็นไปได้ ฉันได้ให้รหัสที่ฉันใช้ นี่เป็นเครื่องมือเดรัจฉานที่ฉันเอามารวมกัน ได้สิ่งที่ฉันต้องการแล้ววางมันลง ดังนั้นจึงไม่ได้ปรับให้เหมาะสม เป็นไปตามที่เป็นอยู่ทั้งหมด สำหรับการอ้างอิงในอดีตเท่านั้น (Solve_4R.html ด้านล่าง)
นี่คือผลลัพธ์สำหรับการตรวจสอบ:
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 15 นาที R เดลต้า: 3.3658818125
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 18 นาที R เดลต้า: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 12 R5: 18 R6: 10 นาทีR เดลต้า: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 15 R5: 10 R6: 33 นาที R เดลต้า: 5.0576510475 R1: 10 R2: 12 R3: 10 R4: 15 R5: 12 R6: 10 นาที R เดลต้า: 7.104826870 R1: 10 R2: 12 R3: 10 R4: 18 R5: 10 R6: 18 นาทีR เดลต้า: 8.1673424912 R1: 10 R2: 12 R3: 10 R4: 18 R5: 15 R6: 22 นาทีR เดลต้า: 8.6504939648 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 18 เดลต้า minR: 10.1721492515 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 22 นาทีเดลต้า R: 10.5040000560 R1: 10 R2: 12 R3: 10 R4: 27 R5: 12 R6: 27 นาทีR เดลต้า: 10.7814361579 R1: 10 R2: 12 R3: 12 R4: 33 R5: 15 R6: 36 นาทีR เดลต้า: 10.8827552754 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 22 นาทีR เดลต้า: 11.4499029683 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 27 นาที R เดลต้า: 12.0961591599 R1: 10 R2: 12 R3: 15 R4: 68 R5: 10 R6: 27 นาที R เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 75 R5: 10 R6: 27 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 82 R5: 10 R6: 27 นาที เดลต้า: 1 2.7992171382 R1: 10 R2: 12 R3: 15 R4: 91 R5: 10 R6: 27 นาที R เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 82 R5: 10 R6: 15 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 91 R5: 10 R6: 15 นาที R เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 100 R5: 10 R6: 15 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 68 R4: 15 R5: 10 R6: 27 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 75 R4: 15 R5: 10 R6: 27 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 15 R5: 10 R6: 27 นาที R เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 27 R5: 10 R6: 15 นาที R เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 15 R5: 10 R6: 27 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 27 R5: 10 R6: 15 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 12 R3: 100 R4: 27 R5: 10 R6: 15 นาทีR เดลต้า: 12.7992171382 R1: 10 R2: 15 R3: 10 R4: 18 R5: 18 R6: 12 นาทีR เดลต้า: 13.2909379968 R1: 10 R2: 15 R3: 10 R4: 22 R5: 12 R6: 10 นาที R เดลต้า: 14.245362837 R1: 10 R2: 15 R3: 10 R4: 39 R5: 18 R6: 27 นาทีR เดลต้า: 14.5126340326 R1: 10 R2: 15 R3: 10 R4: 56 R5: 12 R6: 15 นาทีR เดลต้า: 15.220571553 R1: 10 R2: 15 R3: 12 R4: 27 R5: 12 R6: 12 นาที R เดลต้า: 18.8228671943 R1: 10 R2: 15 R3: 12 R4: 39 R5: 18 R6: 27 นาทีR เดลต้า: 19.236186493 R1: 10 R2: 15 R3: 15 R4: 47 R5: 22 R6: 33 นาที R เดลต้า: 19.5685736556 R1: 10 R2: 15 R3: 22 R4: 56 R5: 22 R6: 27 นาทีR เดลต้า: 19.7887024012 R1: 10 R2: 15 R3: 27 R4: 220 R5: 12 R6: 10 นาทีR เดลต้า: 21.2533513149 R1: 10 R2: 15 R3: 220 R4: 27 R5: 12 R6: 10 นาที R เดลต้า: 21.2533513149 R1: 10 R2: 18 R3: 22 R4: 68 R5: 33 R6: 39 นาทีR เดลต้า: 21.58566448 R1: 10 R2: 18 R3: 27 R4: 75 R5: 33 R6: 36 นาทีR เดลต้า: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 36 minR delta: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 39 minR delta: 22.158443806 R1: 10 R2: 18 R3: 33 R4: 75 R5: 27 R6: 18 นาที R delta: 24.2578084248 R1: 10 R2: 18 R3: 75 R4: 33 R5: 27 R6: 18 นาที R เดลต้า: 24.2578084248 R1: 10 R2: 36 R3: 36 R4: 68 R5: 12 R6: 18 นาที R เดลต้า: 24.380952380 R1: 10 R2: 36 R3: 36 R4: 75 R5: 12 R6: 18 นาที R เดลต้า: 24.380952380 R1: 10 R2: 36 R3: 39 R4: 75 R5: 12 R6: 15 นาที R เดลต้า: 24.380952380 R1: 10 R2: 36 R3: 68 R4: 36 R5: 12 R6: 18 นาที R เดลต้า: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 36 R5: 12 R6: 18 นาที R เดลต้า: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 39 R5: 12 R6: 15 นาที R เดลต้า: 24.380952380 R1: 10 R2: 39 R3: 15 R4: 39 R5: 10 R6: 27 นาที R เดลต้า: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 47 R5: 10 R6: 22 นาที R เดลต้า: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 56 R5: 10 R6: 22 นาทีR เดลต้า: 24.4674161824 R1: 10 R2: 39 R3: 27 R4: 56 R5: 10 R6: 15 นาทีR เดลต้า: 24.4674161824 R1: 10 R2: 39 R3: 39 R4: 15 R5: 10 R6: 27 นาทีR เดลต้า: 24.4674161824 R1: 10 R2: 39 R3: 47 R4: 22 R5: 10 R6: 22 นาทีR เดลต้า: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 22 R5: 10 R6: 22 นาทีR เดลต้า: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 27 R5: 10 R6: 15 นาที R เดลต้า: 24.4674161824 R1: 12 R2: 39 R3: 33 R4: 75 R5: 15 R6: 39 นาที R เดลต้า: 24.5467795136 R1: 12 R2: 39 R3: 33 R4: 82 R5: 18 R6: 47 นาที R เดลต้า: 24.789976640 R1: 12 R2: 39 R3: 47 R4: 100 R5: 18 R6: 33 นาที R เดลต้า: 24.789976640 R1: 12 R2: 39 R3: 56 R4: 100 R5: 15 R6: 12 นาที R เดลต้า: 25.3564579616 R1: 12 R2: 39 R3: 100 R4: 56 R5: 15 R6: 12 นาทีR เดลต้า: 25.3564579616 R1: 12 R2: 47 R3: 18 R4: 47 R5: 10 R6: 27 นาที R เดลต้า: 27.4996466431 R1: 12 R2: 47 R3: 22 R4: 56 R5: 10 R6: 22 นาที R เดลต้า: 27.4996466431 R1: 12 R2: 47 R3: 27 R4: 56 R5: 10 R6: 18 นาที R เดลต้า: 27.4996466431 R1: 12 R2: 47 R3: 47 R4: 18 R5: 10 R6: 27 นาที R เดลต้า: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 22 R5: 10 R6: 22 นาทีR เดลต้า: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 27 R5: 10 R6: 18 นาที R เดลต้า: 27.4996466431 R1: 15 R2: 56 R3: 22 R4: 56 R5: 10 R6: 27 นาทีR เดลต้า: 29.1605253709 R1: 15 R2: 56 R3: 22 R4: 56 R5: 12 R6: 33 นาทีเดลต้า R: 29.811354701 R1: 15 R2: 56 R3: 33 R4: 68 R5: 12 R6: 22 นาทีR เดลต้า: 29.811354701 R1: 15 R2: 56 R3: 56 R4: 22 R5: 12 R6: 33 นาทีR เดลต้า: 29.811354701 R1: 15 R2: 56 R3: 68 R4: 33 R5: 12 R6: 22 นาทีR เดลต้า: 29.811354701 R1: 18 R2: 68 R3: 27 R4: 68 R5: 12 R6: 33 นาทีเดลต้า R: 30.7487559507 R1: 18 R2: 68 R3: 33 R4: 68 R5: 12 R6: 27 นาทีเดลต้า: 30.8965517241 R1: 18 R2: 68 R3: 68 R4: 33 R5: 12 R6: 27 นาที R เดลต้า: 30.8965517241 R1: 18 R2: 75 R3: 27 R4: 68 R5: 12 R6: 36 นาที R เดลต้า: 30.9007058823 R1: 18 R2: 75 R3: 47 R4: 91 R5: 12 R6: 10 นาที R เดลต้า: 30.9007058823 R1: 18 R2: 75 R3: 68 R4: 27 R5: 12 R6: 36 นาที R เดลต้า: 30.9007058823 R1: 18 R2: 75 R3: 91 R4: 47 R5: 12 R6: 10 นาที R เดลต้า: 30.9007058823 R1: 22 R2: 82 R3: 36 R4: 82 R5: 15 R6: 39 นาที R เดลต้า: 33.2525545171 R1: 22 R2: 82 R3: 82 R4: 36 R5: 15 R6: 39 นาทีเดลต้า R: 33.2525545171 R1: 36 R2: 82 R3: 22 R4: 82 R5: 39 R6: 15 นาทีR เดลต้า: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 นาทีR เดลต้า: 33.2525545171 R1: 82 R2: 22 R3: 36 R4: 82 R5: 15 R6: 39 นาทีR เดลต้า: 33.2525545171 R1: 82 R2: 22 R3: 82 R4: 36 R5: 15 R6: 39 นาทีR เดลต้า: 33.2525545171 R1: 82 R2: 36 R3: 22 R4: 82 R5: 39 R6: 15 นาที R เดลต้า: 33.2525545171 R1: 82 R2: 36 R3: 82 R4: 22 R5: 39 R6: 15 นาทีR เดลต้า: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 นาทีR เดลต้า: 33.2525545171
ขั้นตอนที่ 2: ชุดประกอบ 4 ปุ่มของฉัน
สำหรับปุ่มสี่ปุ่มของฉัน ฉันใช้ปุ่มเหล่านี้และ PCB และตัวต้านทานแบบเจาะรูตามที่ระบุในแผนภาพด้านบน วิธีที่คุณใช้ปุ่มทั้งสี่แบบทางกายภาพนั้นเปิดกว้างและขึ้นอยู่กับคุณและโครงการของคุณต้องการ ตราบใดที่มันเป็นไฟฟ้า สิ่งที่อยู่ในแผนภาพด้านบน ตรวจสอบให้แน่ใจว่าการติดตั้งโครงสร้างของคุณนั้นคุณจะไม่ทำการติดต่อใด ๆ กับการเดินสายไฟไปยังปุ่ม เพราะจะทำให้การอ่านค่าที่อ่านออกส่งผลให้ปุ่มทำงานผิดพลาด
ฉันมีปุ่มเล็กๆ เพิ่มเติมบนกระดาน ซึ่งฉันใช้เหมือนกับปุ่ม 'Function' มันอยู่ในอนุกรมที่มีตัวต้านทาน 2 megohm ซึ่งไม่ได้ทำให้การอ่านอินพุตอื่น ๆ ของฉันหายไปอย่างมีนัยสำคัญ แม้ว่าฉันจะตรวจจับได้ก็ต่อเมื่อกดเพียงลำพัง คุณสามารถเพิกเฉยหรือตรวจสอบรหัสเพื่อทำความเข้าใจเพิ่มเติมว่าฉันใช้งานมันอย่างไร
แบบร่างการทดสอบ 'Test_12Leds_6Btns' สามารถใช้เพื่อทดสอบการตรวจจับการกดปุ่มโดย MCU และการประกอบปุ่มจริง เอาต์พุตถูกตั้งค่าให้ดูด้วยบันได LED หรือจอภาพอนุกรม สามารถปรับเปลี่ยนเป็นเอาต์พุตได้อย่างง่ายดายผ่านจอแสดงผลประเภทใดก็ตามที่คุณมี
คุณอาจต้องปรับชุดการอ่านอ้างอิงของโค้ดที่จะเปรียบเทียบอินพุตกับ เนื่องจากความแตกต่างที่อาจเกิดขึ้นในตัวต้านทานแบบดึงขึ้นภายในของ MCU หรือความคลาดเคลื่อนของตัวต้านทานที่คุณใช้ คุณสามารถใช้ตัวต้านทานความแม่นยำได้หากต้องการ หวังว่าจะไม่ต้องทำการปรับเทียบมาตรฐาน อย่างไรก็ตาม ฉันไม่ได้ใช้ pull-up ภายนอก เนื่องจากจะรบกวนการใช้งานอื่นๆ ที่ฉันวางแผนไว้สำหรับหนึ่งในโปรเจ็กต์ของฉัน
การดำเนินการที่สำคัญอย่างหนึ่งของซอฟต์แวร์ที่ทำขึ้นเพื่อให้แน่ใจว่าการกดปุ่มใดจะไม่ได้รับผลกระทบจากระดับแรงดันไฟฟ้าของแหล่งจ่าย (&/หรือความแปรปรวนของ MCU) คือการปรับมาตราส่วนอินพุตแบบอะนาล็อกตามการอ่านสูงสุดซึ่งในทางกลับกัน ได้รับผลกระทบจากแรงดันไฟฟ้า
ซอฟต์แวร์ 'ไดรเวอร์' ที่ให้บริการปุ่มเหล่านี้เป็นกิจวัตร 'scanButtons()' รอให้ค่าอินพุตแบบอะนาล็อกชำระแล้วจับคู่การอ่านเป็นชุดของค่าที่กำหนดไว้ล่วงหน้า และแปลเป็นสถานะที่สอดคล้องกันสำหรับการรวบรวมปุ่ม กิจวัตรนี้และตัวแปรสาธารณะที่แชร์กับซอฟต์แวร์แอปพลิเคชัน เป็นสิ่งที่จำเป็นสำหรับการใช้ชุดนี้ในลักษณะเดียวกันในปุ่มอิสระ
บันทึก! เวอร์ชันปัจจุบันของ 'scanButtons()' ไม่ได้พยายามระบุชุดค่าผสมของปุ่มที่เป็นไปได้ทั้งหมดสามปุ่มอย่างเฉพาะเจาะจง ซึ่งสำหรับฉัน ไม่จำเป็นต้องใช้ตามความเป็นจริง และจะทำให้โค้ดและความแม่นยำในการสอบเทียบมีความซับซ้อนยิ่งขึ้นไปอีก
ขั้นตอนที่ 3: เล่นเกม
ไม่ว่าจะร่าง 'LadderGames4' หรือ 'Head2head' สามารถโหลดและเรียกใช้โดย Arduino MCU ส่วนใหญ่ได้ แต่ LadderGames4 ต้องมี 'SimonSays' หรืออีกสองเกมที่แสดงความคิดเห็นเพื่อให้พอดีกับพื้นที่โปรแกรม 8K Bytes ใน Attiny-85. เสียงยังเป็นปัญหากับ ATtiny-85 ดูโครงการก่อนหน้านี้ที่กล่าวถึงข้างต้น รหัสได้รับการตั้งค่าด้วยการรวบรวมตามเงื่อนไข และเป็นที่ทราบกันดีว่าสามารถทำงานร่วมกับ Nano, Uno และ ATtiny-85
ด้วยภาพสเก็ตช์เหล่านี้หลังจากเริ่มต้น คุณจะพบกับเมนู โดยแต่ละสีจะแสดงไฟ LED สีแดง…สีเหลือง…สีเขียว…สีน้ำเงิน ซึ่งสอดคล้องกับตัวเลือกเกมสี่แบบที่เป็นไปได้ คุณกด Btn1 เมื่อตัวเลือกความปรารถนาสว่างขึ้น หรือกด 2-4 บาทเมื่อใดก็ได้สำหรับเกม 2-4 วิธีซ้ำซ้อนในการเลือกคือเพื่อให้เข้ากันได้กับการใช้งานและเกมทั้งปุ่มสองและสี่ปุ่ม หากเกมนี้มีหลายเวอร์ชัน คุณจะต้องเลือกสีแดงกะพริบสำหรับ ver-1, กะพริบเป็นสีเหลืองสำหรับ ver-2 และอื่นๆ
เกม 4 ปุ่ม
เกมแห่งความทรงจำ เกมประสานมือและตา และเกมวางแผนสองเกม
Simon กล่าวว่านี่คือการนำเกมกลับมาใช้ใหม่จากรูปแบบที่ฉันมีในโปรเจ็กต์ก่อนหน้านี้เหล่านี้:
www.instructables.com/id/Fast-Easy-Simon/
www.instructables.com/id/Improved-Simon-Says-Code/
มันเล่นได้เหมือนกับเกม 'Simon Says' อื่น ๆ ส่วนใหญ่
แม้ว่าในที่นี้ ฉันได้เพิ่มเวอร์ชันสำหรับสองคน (เมื่อคุณเลือกตัวเลือกที่ 2 ซึ่งเป็นสีเหลืองกะพริบ) โดยที่ผู้เล่นแต่ละคนจะเพิ่มไลท์โน้ตใหม่ในซีรีส์ คนแรกที่ไม่ทำซ้ำทั้งหมดก่อนหน้านี้แพ้เกม
ตีตัวตุ่น
เป็นเวลา 30 วินาที ไฝต่าง ๆ จะปรากฏขึ้น (แดง, ตะโกน, grn, blu) 1, 2 หรือ 3 ครั้ง คุณต้อง 'ตี' พวกเขาโดยกดปุ่มที่เกี่ยวข้อง Btn1-4 ยอมรับการกดปุ่มเพียงครั้งเดียวเท่านั้น ไม่มีการกดปุ่มหลายปุ่มพร้อมกัน นานแค่ไหนที่ไฝจำนวนหนึ่งยังคงอยู่จะสั้นลงเมื่อเกมดำเนินต่อไป หากคุณตีไฝทั้งหมดที่ปรากฏ ชุดใหม่จะปรากฏขึ้น เพื่อให้คุณมีโอกาสโจมตีได้เร็วเท่าตัวตุ่น
เมื่อเล่นเกมเสร็จแล้ว หน้าจอจะแสดงคะแนน โดยให้แสงหนึ่งดวงต่อ 10 โมลที่ถูกโจมตี เนื่องจากเกมได้คะแนน 10 คะแนนสำหรับการตีตัวตุ่นแต่ละครั้ง ไฟ LED 5 ดวงจะแสดงคะแนนจุด Whac-a-Mole มาตรฐานที่ 500+ หากต้องการเล่นอีกรอบ คุณจะต้องเลือกเกมใหม่
ฉันใช้นิ้วบนแต่ละปุ่มเพื่อการเคลื่อนไหวที่รวดเร็วและคะแนนสูง สำหรับความท้าทายที่เหมาะสมมากขึ้น ควรใช้เพียงนิ้วเดียวในมือข้างเดียว ตอบสนองต่อการใช้ค้อนเพียงอันเดียว
คะแนนทั่วไปของฉันโดยใช้หนึ่งนิ้วอยู่ในยุค 500 โดยใช้ 4 นิ้ว (หนึ่งนิ้วต่อปุ่ม) คือ 600+ คะแนนสูงสุดของฉันคือ 700+ การใช้หลายนิ้วเป็นเรื่องยากโดยเฉพาะอย่างยิ่ง หากมีการทับซ้อนกันในการกดหนึ่งนิ้วและอีกนิ้วหนึ่ง ซอฟต์แวร์จะไม่ยอมรับนิ้วที่สอง คุณต้องปล่อยปุ่มทั้งหมดก่อนที่จะยอมรับปุ่มอื่น หากใครได้รับทั้ง 12 อันนำไปสู่แสงสำหรับคะแนน 1200+ โปรดแจ้งให้เราทราบ
ล่าทะเล
มีเรือดำน้ำที่มองไม่เห็นเคลื่อนตัวผ่านส่วนลึก ตำแหน่งเริ่มต้นและทิศทางเป็นแบบสุ่ม มันเคลื่อนที่ไปตามเส้นทางหลังจากที่คุณเลี้ยวแต่ละครั้ง คุณต้องทำนายที่อยู่ของเขาผ่านรายงานโซนาร์และจมลงไปด้วยความลึก คลื่นเสียงโซนาร์ (ในทั้งสองทิศทาง) จากตำแหน่งเริ่มต้นเป็นแสงสลัวและสว่างขึ้น (พร้อมกับปิง) ที่ระยะห่างของคลื่นย่อย อย่างไรก็ตาม โปรดทราบว่าส่วนย่อยอาจเป็นวิธีใดก็ได้ของคุณและกำลังเคลื่อนที่ไปในทิศทางที่ไม่รู้จัก ประจุในเชิงลึกจะระเบิดลึกลงไปใต้จุดที่ปล่อย คุณได้ยินเสียงระเบิดแบบอู้อี้ถ้าไม่มีอะไร หรืออยู่ที่นั่น มิฉะนั้น คุณจะได้ยินการระเบิดขนาดใหญ่ของย่อยและแสงวาบ
ในการเลื่อนเคอร์เซอร์จะนำไปสู่ตำแหน่งที่คุณต้องการวางทุ่นโซนาร์หรือการชาร์จในเชิงลึกด้วย Btn2 & Btn3 สำหรับซ้ายและขวา Button-1 ใช้เพื่อเปิดใช้งาน
ในเวอร์ชัน 1 ความพยายามในแต่ละครั้งจะเป็นการรวมรายงานเชิงลึกและโซนาร์ และคุณสามารถใช้มันได้ไม่จำกัดจำนวน
ในเวอร์ชัน 2 แบบตัวต่อตัว ผลัดกันเพื่อดูว่าใครจัดการซับย่อยได้ ผู้เล่นที่ 1 ใช้ Btn1 และผู้เล่นคนที่สองใช้ Btn4 เพื่อเริ่มการจู่โจมเชิงลึก
ในเวอร์ชัน 3 รายงานการชาร์จเชิงลึกและโซนาร์เปิดตัวแยกกันโดย 1 บาทและ 4 บาทตามลำดับ คุณมีเพียงสามประจุเชิงลึกที่มีให้คุณ คุณสามารถรับรายงานโซนาร์ทั้งหมดที่คุณต้องการ คุณแพ้หากคุณไม่ได้รับเขาด้วยค่าใช้จ่ายเหล่านั้น
ในเวอร์ชัน 4 ตัวรองสามารถเคลื่อนที่ได้ในอัตรา 1-3 ช่องว่างต่อวอลเลย์ มิฉะนั้นจะเล่นได้เหมือนเวอร์ชัน 3 แต่คุณจะได้รับ 6 การชาร์จเชิงลึก
ประวัติ: ฉันสร้างเกม 'Sea Hunt' ครั้งแรกในปี 1970 จากนั้นอุปกรณ์อินพุตและเอาต์พุตก็เป็นโทรพิมพ์ อย่างไรก็ตาม แล้วทะเลก็เป็นตาราง 2 มิติ ซึ่งต่างจาก 1 มิติอย่างที่เป็นอยู่นี้
หมายเหตุ: ฉันได้แสดงความคิดเห็นเกี่ยวกับการจำกัดความลึกในโค้ดด้วยแนวคิดว่ายากพอที่จะเล่นสำหรับคนส่วนใหญ่แล้ว
Flip'd
เกมสำหรับผู้เล่นสองคนนี้คล้ายกับ Reveveri เล็กน้อย โดยที่คุณพยายามเปลี่ยนเซลล์ทั้งหมดให้เป็นสีของคุณ แต่เกมนี้ทำได้ด้วยวิธีที่ต่างออกไป
ในเกมผู้เล่นสองคนนี้ เป้าหมายของผู้เล่นคนหนึ่งคือการดับไฟทั้งหมด และอีกเกมหนึ่งเพื่อเปิดไฟทั้งหมด ผู้เล่นคนหนึ่งใช้ Btn1 เพื่อปิดกลุ่มไฟของผู้เล่นอื่นหรือละทิ้ง "ไฟปิด" อันเดียวของเขา (เปิดไฟ) ผู้เล่นอีกคนใช้ Btn4 เพื่อเปลี่ยนกลุ่ม "ปิดไฟ" เป็นเปิดหรือปิดหลังเดียวของเขา
กระดานเริ่มต้นด้วยชุดไฟ LED แบบสุ่ม เมื่อถึงตาของผู้เล่นคนแรก จะมีไฟหรี่ลงอย่างรวดเร็วหรือไฟ LED ที่ 'เคอร์เซอร์' ซึ่งเป็นจุดสนใจ เพื่อให้สามารถหมุนได้ ระหว่างเทิร์นของผู้เล่น #2 จะมีไฟ LED กะพริบยาวเป็นตัวบ่งชี้เคอร์เซอร์ หากผู้เล่นผิดคนกดปุ่ม ผิดจังหวะ จะมีเสียงบี๊บสั้นมาก เคอร์เซอร์เลื่อนไปทางซ้าย 2 บาท และไปทางขวา 3 บาท ผู้เล่นที่แพ้จะเริ่มเกมต่อไป
กลยุทธ์เกี่ยวกับสิ่งที่จะพลิกมีความสำคัญ
ขั้นตอนที่ 4: การแข่งขันแบบตัวต่อตัว
เกมสองปุ่ม / ผู้เล่นสองคน
ในเกมปุ่ม 4 ปุ่มชุดแรก เฉพาะ 'ตีตัวตุ่น' เท่านั้นที่ต้องอาศัยการประมวลผลปุ่มอย่างอิสระอย่างแท้จริง ฉันยังใช้เกมตัวต่อตัวสี่เกมซึ่งทั้งหมดขึ้นอยู่กับการตรวจจับปุ่มอิสระ เกมเหล่านี้ได้แก่: Quick Draw, Tug a War, Chicken, and Hot Hands (Slapsies)
Quick Draw (การทดสอบปฏิกิริยา)
การแข่งขันเริ่มต้นด้วย 'พร้อม'/สีแดง 'ชุด'/สีเหลือง และ 'เสมอ!'/สีเขียว ค่อนข้างสุ่มว่าจะให้ไฟเขียวแก่คุณเมื่อใด คนแรกที่กดปุ่มชนะ ตีเร็วเกินไปและคุณจะเสียชื่อเสียงกับฉวัดเฉวียน
ผู้เล่นที่ 1 ใช้ Btn1 (ทางซ้าย) และผู้เล่นที่ 2 ใช้ Btn4 (ทางขวา)
ชักเย่อ
เริ่มต้นด้วย 'พร้อม' 'ตั้งค่า' … 'ไป!' มีวัตถุอยู่ตรงกลาง 'คันธนู' บนเชือก จากนั้นผู้เล่นจะกดปุ่มอย่างรวดเร็วและบ่อยที่สุดเท่าที่จะทำได้ คันธนูจะเคลื่อนที่เข้าหาผู้เล่นที่โดนมากที่สุด เมื่อคันธนูถึงปลายด้านหนึ่งที่เป็นผู้ชนะ
ไก่
การแข่งขันนี้เริ่มต้นในทำนองเดียวกัน หลังจากเสียงและแฟลชสีเขียวของ 'Go!' ผู้เล่นกดปุ่มค้างไว้ แสงไฟ (รถรบของพวกเขา) เริ่มเคลื่อนจากพวกเขาไปยังอีกที่หนึ่ง ผู้ชนะคือผู้ที่ปล่อยปุ่ม (กระโดดออกจากรถม้า) สุดท้ายก่อนที่ทั้งสองจะชนกัน ถ้าใครปล่อยสายเกินไปหรือไม่ปล่อยเลยก็พังและแพ้ หากทั้งคู่กระโดด (ปล่อย) สายเกินไปไม่มีใครชนะ
ในตอนเริ่มต้น ไฟ LED ของฝ่ายตรงข้ามจะกวาดไปทั่วจอแสดงผล ในเวลานี้หากคุณกด Fnc-Btn2 ความเร็วของเกมจะเพิ่มขึ้น สามารถทำซ้ำได้สองสามครั้ง
มือร้อน
เกมตบมือเวอร์ชันดิจิทัล (aka Red-Hands หรือ Slapsies) ในการเริ่มต้นให้ผู้เล่นสองคนกดปุ่มพร้อมกัน ด้านหนึ่งจะปล่อยแล้วพยายามกดปุ่มของเขาสองครั้งก่อนที่อีกด้านหนึ่งจะปล่อยปุ่มได้ ถัดมาอีกฝ่ายก็พยายามทำเช่นเดียวกัน ผู้เล่นที่เลี้ยวถูกระบุเมื่อเริ่มรอบโดยไฟ LED ที่ด้านข้างของเขา ฉันพบว่าปุ่มกดเพียงปุ่มเดียวเร็วและง่ายเกินไป ดังนั้นฉันจึงต้องใช้สองปุ่ม ซึ่งต้องใช้เวลาและการกระทำมากกว่า เช่นต้องพลิกมือทั้งสองข้างและเหนืออีกข้างหนึ่งแล้วตบลง TBD: ในเวอร์ชันที่สอง ฟรีสำหรับทุกคน ทุกเมื่อที่ผู้เล่นสามารถพยายามใช้ประโยชน์จากอีกเวอร์ชันหนึ่งได้
สังเกต ! ฉันแนะนำให้คุณพิมพ์กฎการทำงานของเกมด้านบนและอ่านซ้ำก่อนที่คุณจะเล่นเกมที่คุณไม่ได้เล่นเมื่อเร็วๆ นี้ มิฉะนั้น คุณอาจจะหงุดหงิดใจ; คิดว่าเกมทำงานไม่ถูกต้องตามความเป็นจริง แต่คุณและเกมมีวิธีและความคาดหวังต่างกัน ตัวฉันเองตกเป็นเหยื่อของสิ่งนี้มากกว่าสองสามครั้ง
ด้วยแปดเกมที่นี่และสี่เกมในโปรเจ็กต์ก่อนหน้าของฉัน Single-Line-LED-Display-Games ที่ทำให้ซอฟต์แวร์สามารถเล่นได้ 12 เกมด้วยปุ่มสี่ปุ่ม + การรวมฮาร์ดแวร์บันไดนำ
ฉันมีกิจกรรมสันทนาการอีกอย่างน้อยสี่กิจกรรมสำหรับฮาร์ดแวร์ (แสดงปุ่ม) นี้ก่อนสิ้นปี
ขั้นตอนที่ 5: ตัวเลือกตัวควบคุมผู้เล่น 2 คน
สำหรับเกมที่ต้องการเพียงสองปุ่ม แน่นอนว่าฉันสามารถใช้ PCB 4 ปุ่มกับเกมเหล่านั้นได้ อย่างไรก็ตามในการเล่นเกมเหล่านี้คน ๆ หนึ่งมีแนวโน้มที่จะมีร่างกายค่อนข้างมาก ดังนั้นฉันจึงใช้ส่วนประกอบปุ่มแบบลูกสูบแยก ทำจากท่อพลาสติกที่มีด้ามจับจักรยานและปุ่มขนาดใหญ่
ชิ้นส่วนปุ่มประเภทลูกสูบ:
- ท่อน้ำหยด 1/2" สปริงเกอร์สแตนออฟ หรือ PVC (ร้านฮาร์ดแวร์)
- แฮนด์จับจักรยาน (Walmart)
- ปุ่มกดขนาดใหญ่ (อีเบย์)
- ตัวต้านทาน 2 ตัว
เพื่อรักษาความเข้ากันได้ ปุ่มหนึ่งจะมีตัวต้านทาน 75 โอห์มในอนุกรมกับมัน และอีกปุ่มหนึ่งมี 36-39 โอห์มในซีรีย์ เพื่อให้ซอฟต์แวร์เห็นว่าเป็น 1 Btn และ Btn4 ตามลำดับ
คุณสามารถใช้ท่อจากไม้กวาดที่ทิ้งหรือด้ามไม้กวาดหุ้มยาง
คุณสามารถสร้างอะแดปเตอร์ซึ่งคุณสามารถเชื่อมต่อจอยสติ๊กเกมคอนโซลเก่าได้ ให้ปุ่มดับเพลิงแบบมีสายเป็น 1 บาทและ 4 บาทสำหรับอีกชุดหนึ่ง ขณะที่แบ่ง 1-4 บาทไปที่ปุ่มนำทางของจอยสติ๊ก
เมษายน 2018: ตอนนี้ชอบที่จะใช้ตัวต่อแบบ Compression Couplers ขนาด 5/8 เป็นส่วนประกอบสำหรับปุ่มแบบลูกสูบภายนอก ปุ่มขนาดใหญ่ (พร้อมแถบคาดเล็กๆ เหนือด้ายที่เพิ่มเข้ามา) เข้ากันได้ดีกับปุ่มเหล่านี้และจับกระชับมือได้ดีมาก เด็ก ๆ ชอบใช้คู่นี้ ฉันเพิ่มหมุดส่วนหัวสองสามชุดเพื่อให้เชื่อมต่อปุ่มมือถือภายนอกหนึ่งปุ่มกับผู้ติดต่อ Bnt1 ได้อย่างง่ายดายและอีกปุ่มหนึ่งสำหรับ Btn4
ขั้นตอนที่ 6: อัปเดต
ฉันสร้างเคสคอนโซลที่พิมพ์ 3 มิติเพื่อใช้เป็นจอแสดงผลแลดเดอร์ LED แบบอินไลน์และปุ่มต่างๆ
ฉันได้รวม 12 เกมที่ฉันสร้างจนถึงตอนนี้ สำหรับจอแสดงผล LED 12 ดวงนี้ ให้เป็นแบบร่าง 'Menu_12Games' ซอฟต์แวร์นี้ต้องการฮาร์ดแวร์ของโปรเจ็กต์นี้ที่ใช้งานแฟลช MCU ขนาด 32KB (เช่น Nano หรือ Uno) และปุ่ม 5 ปุ่ม, 4 ปุ่มหลัก + FncKey
เมนูการเลือกตอนนี้มีสองชั้น อันดับแรก คุณเลือก 1 จาก 4 กลุ่มของเกม จากนั้นเกม 1-4 ภายในกลุ่มนั้น … ตามรายการด้านล่าง ระหว่างรอหน้าจอที่เลือกจะสแกน R-Y-G-B เป็นระยะ คุณกด Btn1-4 เป็นรายการที่เลือกได้ทุกเมื่อ จึงไม่มีความแตกต่างกับสิ่งที่แสดงเมื่อคุณกดเลือก ระหว่างการเลือก 'กลุ่ม' ไฟ LED ทั้งหมดจะมีแสงอย่างน้อยบางส่วนระหว่างการสแกน RYGB หากต้องการออกจากเกมหรือสำรองข้อมูลจากการเลือก 'เกม' เป็น 'กลุ่ม' ให้กด FncKey-Btn1
ฉันยังไม่ได้เขียนโค้ด 4 สุดท้าย ฉันมี 3 บทที่เขียนขึ้น (รวมถึง 'LeMans') ฉันไม่ได้คิดมาก่อนว่าเกมสุดท้ายจะเป็นอย่างไร ส่งข้อความถึงฉันด้วยความคิดใด ๆ
อัปเดต 25 ม.ค. 60:สำหรับผู้ที่ชอบใช้เครื่องพิมพ์ 3 มิติ คุณอาจสนใจเคสเกมคอนโซลที่ฉันสร้างขึ้นสำหรับอุปกรณ์ของฉัน: https://www.instructables.com/id/3D-Printed-Case- สำหรับ-Inline-LED-Display-Console-and/
อัปเดต 17 ก.พ. 60: ฉันได้เพิ่ม 4 เกมสุดท้าย ซึ่งขณะนี้มีอยู่ใน "Menu_16Games.ino" ภายใต้ "ขั้นตอนที่ 7: อัปเดต เกมเพิ่มเติม" ของ Instructable: Single-Line-LED-Display-Games (Menu_12Games.ino คือ ตอนนี้หมดอายุ)
เกมกลุ่ม: 1– แดง 2- เหลือง 3 – เขียว 4 – น้ำเงิน
1 สีแดง PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans สเปรย์ PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d
แนะนำ:
เกม 3d Maze โดยใช้ Arduino: 8 ขั้นตอน (พร้อมรูปภาพ)
เกม 3d Maze ที่ใช้ Arduino: สวัสดีเพื่อนๆ ดังนั้นวันนี้เราจะมาสร้างเกมเขาวงกตโดยใช้ ARDUINO UNO เนื่องจาก Arduino Uno เป็นบอร์ดที่ใช้กันเป็นส่วนใหญ่ มันจึงเจ๋งมากที่จะสร้างเกมด้วย ในคำแนะนำนี้ ให้สร้างเกมเขาวงกตที่ควบคุมโดยใช้จอยสติ๊ก อย่าลืม
เกม Arduino Sorta Sudoku: 3 ขั้นตอน (พร้อมรูปภาพ)
เกม Arduino Sorta Sudoku: ผู้คนจำนวนมากชอบเล่น Sudoku และหลานๆ ชอบเดาเกม ดังนั้นฉันจึงตัดสินใจสร้างเกม "Sorta Sudoku" แบบพกพา ในเวอร์ชันของฉัน เกมเป็นตารางขนาด 4x4 แต่มีให้เพียงหมายเลขเดียวเท่านั้น แนวความคิดคือการเดาตัวเลขที่เหลือใน
กดปุ่ม); // เกม Arduino LCD: 5 ขั้นตอน (พร้อมรูปภาพ)
กดปุ่ม); //เกม Arduino LCD: เมื่อเร็ว ๆ นี้ใน Scouts ฉันทำงานเกี่ยวกับตราสัญลักษณ์การออกแบบเกม สำหรับข้อกำหนดข้อใดข้อหนึ่ง ฉันสร้างเกมนี้โดยใช้ Arduino ที่อิงจากเกม LED Rocker จุดประสงค์ของเกมคือทำคะแนนให้ได้มากที่สุด ในช่วงเริ่มต้นของเ
เกม Arduino จอแสดงผล LED แบบอินไลน์: 7 ขั้นตอน (พร้อมรูปภาพ)
เกม Arduino จอแสดงผล LED แบบอินไลน์: หรือที่รู้จักว่าระบบเกมแสดงบันได LED Attiny-85 ที่ติดตั้งฮาร์ดแวร์และซอฟต์แวร์เพื่อเล่นแอ็กชัน "วิดีโอ" เกมบนจอแสดงผล LED แบบอินไลน์ มีจอแสดงผลแลดเดอร์ LED 12 ดวงแบบมัลติเพล็กซ์ และรองรับอินพุตปุ่มสูงสุด 6 ปุ่มและออปติ
เกม Arduino Wire: 7 ขั้นตอน (พร้อมรูปภาพ)
เกม Arduino Wire: สำหรับโปรเจ็กต์นี้ ฉันอ้างอิงจากเว็บไซต์นี้ และเปลี่ยนเพื่อสร้างโปรเจ็กต์ใหม่ โปรเจ็กต์นี้เรียกว่าเกม Wire ซึ่งคุณจะจับที่จับโลหะและทำให้มันทะลุลวดโดยไม่ต้องสัมผัสลวด หากที่จับสัมผัสลวด