สารบัญ:

เกม Dot Jump (โดยไม่ต้องใช้ Arduino): 6 ขั้นตอน
เกม Dot Jump (โดยไม่ต้องใช้ Arduino): 6 ขั้นตอน

วีดีโอ: เกม Dot Jump (โดยไม่ต้องใช้ Arduino): 6 ขั้นตอน

วีดีโอ: เกม Dot Jump (โดยไม่ต้องใช้ Arduino): 6 ขั้นตอน
วีดีโอ: ธาติทองโยชิ🤭 #ธาตุทองซาวด์ [kajrsp.ankh] 2024, พฤศจิกายน
Anonim
เกม Dot Jump (โดยไม่ต้องใช้ Arduino)
เกม Dot Jump (โดยไม่ต้องใช้ Arduino)

ภาพรวม

สวัสดี! ฉันชื่อ Shivansh นักเรียนที่ IIIT-Hyderabad ฉันมาที่นี่พร้อมคำแนะนำแรกของฉันซึ่งเป็นเกมที่ได้รับแรงบันดาลใจจากเกม Dinosaur Jump ของ Google Chrome เกมนี้เรียบง่าย: กระโดดข้ามสิ่งกีดขวางที่เข้ามาเพื่อทำคะแนน หากคุณชนกัน ถือว่าคุณแพ้และคะแนนจะรีเซ็ต

คุณลักษณะเด่นของโครงการนี้คือไม่มีการใช้ Arduino หรือไมโครคอนโทรลเลอร์อื่นใด ได้มาจากส่วนประกอบทางไฟฟ้าพื้นฐานล้วนๆ และเกี่ยวข้องกับการใช้งาน Finite State Machines (FSM) ด้วยความช่วยเหลือของไดอะแกรมลอจิก ฯลฯ

สนใจ? มาเริ่มกันเลย.

ข้อกำหนดเบื้องต้น:

  • ความรู้พื้นฐานเกี่ยวกับส่วนประกอบทางไฟฟ้า เช่น ตัวต้านทาน ตัวเก็บประจุ วงจรรวม (ICs)
  • ความรู้พื้นฐานเกี่ยวกับลอจิกเกตส์ (AND, OR, NOT, ฯลฯ)
  • ความรู้เกี่ยวกับการทำงานของ Flip-Flop, Counter, Multiplexer เป็นต้น

หมายเหตุ: ข้อกำหนดเบื้องต้นที่ระบุไว้ข้างต้นมีไว้สำหรับการทำความเข้าใจการทำงานทั้งหมดของโครงการ ผู้ที่ไม่มีความรู้เชิงลึกในเรื่องเดียวกันก็สามารถสร้างโครงการตามขั้นตอนในคำแนะนำได้

ขั้นตอนที่ 1: การพัฒนารูปแบบการทำงาน

การพัฒนารูปแบบการทำงาน
การพัฒนารูปแบบการทำงาน
การพัฒนารูปแบบการทำงาน
การพัฒนารูปแบบการทำงาน

งานแรกคือการสร้างแบบจำลองการทำงานสำหรับโครงการ เมื่อนั้นเราสามารถตัดสินใจเลือกวัสดุที่จำเป็นสำหรับโครงการได้ โครงการทั้งหมดสามารถแบ่งออกเป็นสามส่วน

Part-1: การสร้างอุปสรรค

ประการแรก เราต้องสร้างสิ่งกีดขวางแบบสุ่มเพื่อให้ Dot กระโดดข้ามไปได้ อุปสรรคจะอยู่ในรูปแบบของดอตพัลส์ซึ่งย้ายจากปลายด้านหนึ่งของอาร์เรย์ LED ไปอีกด้านหนึ่ง

ในการสร้างสิ่งกีดขวาง เราใช้วงจรจับเวลาสองวงจร (แนบแผนภาพวงจร) วงจรหนึ่งมีความถี่สูง (ตัวตั้งเวลา HF) และอีกวงจรหนึ่งมีความถี่ต่ำ (ตัวตั้งเวลา LF) ส่วน 'การสุ่ม' ถูกจัดการโดย HF Timer ซึ่งจะเห็นเอาต์พุตในทุกขอบที่เพิ่มขึ้นของตัวจับเวลา LF (ซึ่งใช้เป็นอินพุต CLK) คำแนะนำการสร้างอุปสรรคคือสถานะของตัวจับเวลา HF ในทุกขอบที่เพิ่มขึ้นของตัวจับเวลา LF (1 -> สร้างอุปสรรค | 0 -> อย่าสร้างอุปสรรค) HF Timer จะถูกรีเซ็ตในทุก 'JUMP' เพื่อให้แน่ใจว่ามีการสร้างสิ่งกีดขวางแบบสุ่ม เอาต์พุตของ HF Timer ถูกกำหนดเป็นอินพุต D ไปยัง D Flip Flop (สำหรับการจัดเก็บคำสั่งสำหรับรอบถัดไป) โดยมีอินพุต CLK เป็นเอาต์พุต LF Timer

เมื่อคำสั่งไบนารีสำหรับการสร้างสิ่งกีดขวางหมดลง เราจำเป็นต้องสร้าง 'พัลส์อุปสรรค' บน LED Array เราทำเช่นนั้นด้วยความช่วยเหลือของตัวนับ 4 บิตที่มีเอาต์พุตให้กับเครื่องแยกสัญญาณ 4x16 (DeMUX) เอาต์พุตของ DeMUX จะทำให้ LED 16 ดวงสว่างขึ้นตามลำดับ

Part-2: กระโดด

สำหรับ JUMP Action เราจะใช้ Push Button Input เป็นคำสั่ง เมื่อได้รับคำสั่งแล้ว ไฟ LED ของวัตถุในบรรทัดจะหยุดเรืองแสงและไฟ LED อีกดวงที่อยู่ด้านบนจะสว่าง ซึ่งหมายถึงการกระโดด

Part-3: ผลลัพธ์

ผลลัพธ์จะเป็นดังนี้: หากวัตถุขัดข้อง ให้รีเซ็ตเกม อย่างอื่นเพิ่มคะแนน

การชนกันสามารถแสดงเป็น ANDing ของทั้งสอง สัญญาณสิ่งกีดขวางและสัญญาณวัตถุสำหรับตำแหน่งพื้นของสิ่งกีดขวาง หากไม่มีการชนกัน ตัวนับจุดจะเพิ่มขึ้นซึ่งจะแสดงบนจอแสดงผล 7 ส่วนคู่

ขั้นตอนที่ 2: รวบรวมส่วนประกอบ

ส่วนประกอบที่จำเป็นมีดังนี้:

  • PCB x 1, เขียงหั่นขนม x 3
  • ไฟ LED: เขียว(31), แดง(1), สองสี:แดง+เขียว (1)
  • ปุ่มกด x 2
  • จอแสดงผล 7 ส่วน x 2
  • IC 555 x 3 [สำหรับวงจรจับเวลา]
  • IC 7474 x 1 (ดี FlipFlop)
  • IC 7490 x 2 (ตัวนับทศวรรษ) [สำหรับแสดงคะแนน]
  • IC 7447 x 2 (ตัวถอดรหัส BCD ถึง 7 ส่วน) [สำหรับแสดงคะแนน]
  • IC 4029 x 1 (ตัวนับ 4 บิต) [สำหรับการแสดงสิ่งกีดขวาง]
  • IC 74154 x 1 (DeMUX) [สำหรับการแสดงสิ่งกีดขวาง]
  • IC 7400 x 3 (ไม่ใช่เกท)
  • IC 7404 x 1 (เกท NAND)
  • IC 7408 x 1 (และเกท)
  • ซ็อกเก็ตไอซี
  • แหล่งจ่ายแรงดัน (5V)

เครื่องมือที่จำเป็น:

  • หัวแร้ง
  • เครื่องตัดลวด

ขั้นตอนที่ 3: การสร้างอุปสรรค: Part-A

การสร้างอุปสรรค: Part-A
การสร้างอุปสรรค: Part-A
การสร้างอุปสรรค: Part-A
การสร้างอุปสรรค: Part-A

อันดับแรก เราต้องตั้งค่าวงจรจับเวลาเพื่อสร้างสัญญาณสร้างอุปสรรค (สูง/ต่ำ)

วงจรจะถูกตั้งค่าตามทฤษฎีที่กล่าวถึงก่อนหน้านี้ แผนภาพวงจรสำหรับสิ่งเดียวกันนั้นแนบมาด้านบน วงจรถูกนำไปใช้บนเขียงหั่นขนม (แม้ว่าจะสามารถนำไปใช้กับ PCB ได้) ดังนี้:

  • วาง 555 ICs และ D Flip Flop (IC 7474) สองตัวบนตัวแบ่งของเขียงหั่นขนมโดยมีที่ว่างบางส่วน (4-5 คอลัมน์) อยู่ระหว่างนั้น
  • เชื่อมต่อแถวบนสุดของเขียงหั่นขนมกับขั้วบวกของแหล่งจ่ายแรงดันและแถวล่างกับขั้วลบ
  • ทำการเชื่อมต่อเพิ่มเติมตามแผนภาพวงจร หลังจากเชื่อมต่อที่จำเป็นแล้ว วงจรจะมีลักษณะคล้ายกับภาพที่แนบด้านบน

หมายเหตุ: ค่าความต้านทาน R1 & R2 และความจุ C คำนวณโดยใช้สมการต่อไปนี้:

T = 0.694 x (R1 + 2*R2) * C

โดยที่ T คือช่วงเวลาที่ต้องการ

D = 0.694 x [(R1 + R2)/T] *100

โดยที่ D คือ Duty Cycle คืออัตราส่วนของ ON Time ต่อ Total Time

ในโครงการนี้ สำหรับตัวจับเวลาความถี่สูง T = 0.5 วินาที และสำหรับตัวจับเวลาความถี่ต่ำ T = 2 วินาที

ขั้นตอนที่ 4: การสร้างอุปสรรค: Part-B

การสร้างอุปสรรค: Part-B
การสร้างอุปสรรค: Part-B
การสร้างอุปสรรค: Part-B
การสร้างอุปสรรค: Part-B
การสร้างอุปสรรค: Part-B
การสร้างอุปสรรค: Part-B

ตอนนี้เรารู้แล้วว่าเมื่อใดควรสร้างสิ่งกีดขวาง ตอนนี้เราต้องแสดงมัน เราจะใช้ตัวนับ 4 บิต Demultiplexer ตัวจับเวลาและอาร์เรย์ LED 16 ดวง ทำไมต้อง 16? นั่นเป็นเพราะเราจะจับคู่เอาต์พุต 4 บิตของตัวนับกับ LED 16 ดวงโดยใช้เครื่องแยกสัญญาณ หมายความว่าตัวนับจะนับ 0 ถึง 15 และตัวแยกสัญญาณจะเปิดไฟ LED ด้วยดัชนีนั้น

บทบาทของตัวจับเวลาคือการควบคุมความเร็วในการนับ เช่น ความเร็วของการเคลื่อนที่ของสิ่งกีดขวาง สิ่งกีดขวางจะเปลี่ยนหนึ่งตำแหน่งในช่วงเวลาเดียวของตัวจับเวลา คุณสามารถลองเล่นกับค่า R1, R2 และ C ที่แตกต่างกันโดยใช้สมการในขั้นตอนก่อนหน้าเพื่อให้ได้ความเร็วที่แตกต่างกัน

สำหรับเมทริกซ์ LED ให้บัดกรี LED 16 ดวงในลักษณะเชิงเส้นพร้อมกราวด์ทั่วไป ขั้วบวกของ LED แต่ละตัวจะเชื่อมต่อกับ DeMUX (หลังจากกลับด้านโดยใช้เกท NOT เนื่องจาก DeMUX ให้เอาต์พุตต่ำ)

แผนภาพวงจรสำหรับสิ่งเดียวกันนั้นแนบมาด้านบน

ขั้นตอนที่ 5: กระโดดและผลลัพธ์

กระโดดและผลลัพธ์
กระโดดและผลลัพธ์
กระโดดและผลลัพธ์
กระโดดและผลลัพธ์
กระโดดและผลลัพธ์
กระโดดและผลลัพธ์

สิ่งต่อไปคือการดำเนินการกระโดด สำหรับการแสดงการกระโดด เพียงวาง LED ที่มีสีต่างกันเหนือเมทริกซ์ ต่อสายดินและต่อขั้ว +ve เข้ากับปุ่ม แนบปลายอีกด้านของปุ่มกดเข้ากับแหล่งจ่ายแรงดันไฟ

นอกจากนี้ ให้กดอีกปุ่มหนึ่งซึ่งอยู่ติดกับปุ่มก่อนหน้าแล้วต่อขั้วใดขั้วหนึ่งเข้ากับ +5V เทอร์มินัลอื่นไปที่เกต NAND (IC 7404) โดยมีอินพุตอื่นของ NAND Gate เป็นอินพุตไปยัง LED ด้านล่าง JUMP LED (เช่น LED วัตถุ) เอาต์พุตของประตู NAND ไปที่ RESET (PIN 2 และ 3 ของตัวนับ BCD ทั้งคู่) ของตัวนับคะแนน สิ่งที่เราทำคือรีเซ็ตคะแนนหากทั้งสัญญาณ LED วัตถุ (ในตำแหน่งฐาน) และสัญญาณอุปสรรคได้รับพร้อมกัน กล่าวคือ วัตถุและสิ่งกีดขวางชนกัน

จัดการบางอย่างเพื่อให้แน่ใจว่ากดปุ่มทั้งสองพร้อมกัน คุณสามารถใช้เหรียญและติดปุ่มทั้งสองไว้

สำหรับการตั้งค่าตัวนับคะแนน ให้ทำตามแผนภาพวงจรที่แนบมาด้านบน (ที่มาของภาพ: www.iamtechnical.com)

หมายเหตุ: เชื่อมต่อพิน 2 และ 3 กับเอาต์พุตของ NAND Gate เพื่อให้รีเซ็ตคะแนนในกรณีที่ชนกับสิ่งกีดขวาง

ขั้นตอนที่ 6: เล่นอย่างมีความสุข

มีความสุขในการเล่น!
มีความสุขในการเล่น!
มีความสุขในการเล่น!
มีความสุขในการเล่น!
มีความสุขในการเล่น!
มีความสุขในการเล่น!

แค่นั้นแหละ. คุณทำกับโครงการของคุณเสร็จแล้ว คุณสามารถเพิ่มการตกแต่งเพื่อให้ดูดี พักผ่อนก็ดี

เพลิดเพลิน..!!

แนะนำ: