สารบัญ:
- ขั้นตอนที่ 1: ภาพรวม
- ขั้นตอนที่ 2: วัสดุ
- ขั้นตอนที่ 3: การสร้างเกม
- ขั้นตอนที่ 4: การปรับเปลี่ยนในอนาคต
- ขั้นตอนที่ 5: บทสรุป
วีดีโอ: เรือกวาดทุ่นระเบิด: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สำหรับโครงการสุดท้าย CPE 133 ของเรา Chase และฉันตัดสินใจสร้างเกม 'เรือกวาดทุ่นระเบิด' ที่ใช้ปุ่มและสลับอินพุตจากกระดาน Basys-3 รวมถึงรหัส VHDL ชื่อที่ดีกว่าสำหรับเกมนี้อาจเป็น 'Russian Roulette' แต่เราอยากจะใช้ชื่อที่เป็นมิตรกับครอบครัวมากกว่านี้ เกมดังกล่าวให้ผู้ใช้กดปุ่มกลางบนกระดาน Basys เพื่อสุ่มกำหนดสวิตช์ตัวใดตัวหนึ่งจาก 16 ตัวให้ 'ใช้งาน' ด้วยระเบิด จากนั้นผู้เล่นสองคนผลัดกันพลิกสวิตช์ขึ้นทีละตัว จนกว่าผู้เล่นคนใดคนหนึ่งจะพลิกสวิตช์ด้วย "ระเบิด" เมื่อสิ่งนั้นเกิดขึ้น การแสดงเจ็ดส่วนจะเตือนผู้เล่นว่าผู้เล่นเพิ่งแพ้เกม
ขั้นตอนที่ 1: ภาพรวม
โครงการใช้โมดูล VHDL จำนวนมากที่เราใช้ในช่วงไตรมาสนี้ ใช้ตัวนับสี่บิตร่วมกับขอบนาฬิกาเพื่อจำลองตัวเลขสี่บิตแบบสุ่มเพื่อเปิดใช้งานสวิตช์ตัวใดตัวหนึ่ง ไดอะแกรมสถานะยังใช้เพื่อแสดงคำต่างๆ บนหน้าจอเจ็ดส่วน ตั้งแต่ "เล่น" เมื่อผู้เล่นอยู่ในระหว่างเกม ไปจนถึง "แพ้" เมื่อผู้เล่นคนใดคนหนึ่งพลิกสวิตช์ที่ทำงานอยู่
ขั้นตอนที่ 2: วัสดุ
- คณะกรรมการพัฒนา Basy3 จาก Digilent, Inc.
- Vivado Design Suite BC_DEC.vhd (ไฟล์นี้จัดเตรียมให้เราใน Polylearn และเขียนโดย Bryan Mealy)
- ตัวนับ 4 บิตทำจากรองเท้าแตะ T
- FSM
ขั้นตอนที่ 3: การสร้างเกม
ขั้นตอนแรกในการสร้างเกมนี้คือการวาดแผนภาพวงจรพร้อมส่วนประกอบทั้งหมดที่เราจะใช้ อินพุตสำหรับระบบนี้คือปุ่ม 1, สวิตช์ 16 ตัวและนาฬิกา ผลลัพธ์คือการแสดงผลเจ็ดส่วนและขั้วบวก หลังจากวาดแผนภาพวงจร เราได้เขียนไฟล์ต้นฉบับสำหรับแต่ละส่วนประกอบใน Vivado และรวมเข้าด้วยกันโดยใช้แผนที่พอร์ตภายใต้ไฟล์ต้นฉบับหลัก
พื้นฐานทั้งหมดของเกมหมุนโดยการสุ่มกำหนดให้สวิตช์ตัวใดตัวหนึ่งจาก 16 ตัวทำงานพร้อมกับระเบิด และสำหรับผู้เล่นจะไม่ทราบว่าสวิตช์ตัวใดทำงานอยู่จนกว่าจะเปิดสวิตช์ที่ทำงานอยู่นั้น เราตรวจสอบตัวสร้างตัวเลขสุ่มและสุ่มปลอมทางออนไลน์ แต่ในที่สุดเราก็ตัดสินใจว่าการใช้ตัวนับ 4 บิตและการกำหนดสวิตช์ที่เกี่ยวข้องให้ทำงานนั้นสุ่มเพียงพอสำหรับสิ่งที่เรากำลังมองหา เราสามารถปรับเปลี่ยนตัวนับ 4-Bit ที่เราสร้างขึ้นในโปรเจ็กต์ก่อนหน้าเพื่อให้สามารถทำงานสำหรับงานนี้ได้ เราใช้ตัวนับเพื่อสร้างตัวเลขสุ่มระหว่าง 0-15; จากนั้นในองค์ประกอบ main1 เรากำหนดจุดทศนิยมของตัวเลขสุ่มให้กับสวิตช์ที่เกี่ยวข้องบนกระดาน ตามที่เห็นในแผนผัง ทั้งเอาต์พุต X ('active bomb') จากส่วนประกอบ main1 และสวิตช์ที่ผู้เล่นเปิดจะไปที่ FSM1 เครื่องสถานะจะส่งออกค่า Z หนึ่งบิตซึ่งจะถูกอ่านโดย BC_DEC1 Finite State Machine ที่เราใช้มีสองสถานะที่แตกต่างกัน: ในสถานะ A การแสดงผลเจ็ดส่วนจะแสดงเป็น "PLAY" และเครื่องจะอยู่ในสถานะนั้นจนกว่าจะรู้ว่าสวิตช์ที่เปิดใช้งานถูกพลิก เมื่อสิ่งนั้นเกิดขึ้น FSM จะไปยังสถานะ B โดยจะส่งสัญญาณ 'LOSE' ไปที่จอแสดงผลเจ็ดส่วนและอยู่ในสถานะนั้นจนกว่าสวิตช์ทั้ง 16 ตัวจะเปลี่ยนเป็น '0' เมื่อตรงตามเงื่อนไขนั้น FSM จะเข้าสู่สถานะ A อีกครั้งและรอให้ผู้เล่นเริ่มเกมใหม่ แผนภาพ Moore เพื่อช่วยให้เข้าใจ FSM นี้แสดงไว้ด้านบน
ขั้นตอนที่ 4: การปรับเปลี่ยนในอนาคต
การปรับเปลี่ยนบางอย่างที่เรากำลังพิจารณาเกี่ยวกับการทำเกมของเรา ได้แก่ การเพิ่มระเบิดลงในสนาม (อาจเพิ่มขึ้นจากหนึ่งเป็นสาม) เพิ่มตัวนับคะแนนและหลายรอบ เราตัดสินใจไม่ปรับปรุงในท้ายที่สุด เนื่องจากเราพบว่าการเล่นเกมที่ยาวและยาวขึ้นมักมีความตึงเครียดมากกว่า และในตอนท้ายสนุกกว่าเกมที่มักจะจบลงหลังจากสลับสามหรือสี่ครั้ง
ขั้นตอนที่ 5: บทสรุป
เรามีความสุขมากกับผลลัพธ์สุดท้ายของโครงการนี้ ไม่เพียงเพราะเกมเวอร์ชั่นสุดท้ายนั้นเล่นสนุก แต่ยังเพราะการสร้างและตั้งโปรแกรมโปรเจ็กต์ต้องการให้เราใช้ประโยชน์มากที่สุด หากไม่ใช่ทั้งหมดที่เราได้เรียนรู้ในไตรมาสนี้ เราใช้ Flip Flops, เคาน์เตอร์, FSM, นาฬิกา, อินพุตของผู้ใช้จากบอร์ด และเอาต์พุตไปยังจอแสดงผลทั้งเจ็ดส่วน
นอกจากนี้เรายังได้เรียนรู้ว่าข้อผิดพลาดทางไวยากรณ์สองสามอย่างสามารถทำลายโปรแกรมได้อย่างสมบูรณ์ (แม้ว่าจะถือว่าใช้ได้ในภาษาการเขียนโปรแกรมอื่น ๆ เช่น Python หรือ Java) และหลังจากการจำลองหลายครั้งและการวนซ้ำหลายครั้งของรหัสที่ถูกอัปโหลดและทดสอบบน บอร์ด คุณจะแก้ไขจุดบกพร่องทั้งหมดจากโค้ดของคุณได้หรือไม่
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-