สารบัญ:

2 ผู้เล่นเชื่อมต่อ 4 (Puissance 4): 7 ขั้นตอน (พร้อมรูปภาพ)
2 ผู้เล่นเชื่อมต่อ 4 (Puissance 4): 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: 2 ผู้เล่นเชื่อมต่อ 4 (Puissance 4): 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: 2 ผู้เล่นเชื่อมต่อ 4 (Puissance 4): 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: การตั้งแคมป์ในรถท่ามกลางพายุฝน - เต็นท์ลม 2024, กรกฎาคม
Anonim

โดย ClemNafติดตาม เพิ่มเติมโดยผู้เขียน:

บัตรขูดแบบกำหนดเอง
บัตรขูดแบบกำหนดเอง
บัตรขูดแบบกำหนดเอง
บัตรขูดแบบกำหนดเอง

เกี่ยวกับ: ฉันเป็นวิศวกรเมคคาทรอนิกส์และฉันชอบทำสิ่งต่างๆ ! ฉันกำลังทำงานกับ Arduino กำลังสร้างเกมหรือ IoT ฉันชอบที่จะค้นพบสิ่งใหม่ ๆ และทำให้ดีที่สุด ข้อมูลเพิ่มเติมเกี่ยวกับเคลมนาฟ »

สวัสดีทุกคน !

ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็นว่าฉันสร้างผู้เล่นสองคนเชื่อมต่อ 4 กับ Arduino nano ได้อย่างไร RGB Led แสดงการจำนำของผู้เล่นและผู้เล่นเลือกตำแหน่งที่จะวางด้วยปุ่มต่างๆ

เคล็ดลับของคำแนะนำนี้คือการควบคุมอินพุตและเอาต์พุตจำนวนมาก: ไฟ LED RGB 49 ดวงและปุ่ม 3 ปุ่ม ฉันแนะนำให้คุณอ่านขั้นตอนทั้งหมดก่อนที่จะเริ่ม Connect4 ของคุณเอง สิ่งเหล่านี้เป็นส่วนที่ยุ่งยากมากมายและคุณจะถูกบล็อกหากคุณไม่สร้างโปรโตคอลที่ถูกต้อง

ฉันขอโทษที่ฉันไม่ได้ถ่ายรูปจำนวนมากในขณะที่ฉันกำลังสร้าง นี่เป็นคำสั่งแรกของฉัน ดังนั้นฉันจะห้ามขั้นตอนที่สำคัญบางอย่าง ใจดีและเตือนฉัน!

รู้สึกอิสระที่จะแสดงความคิดเห็นถ้าฉันทำผิดพลาด ฉันจะแก้ไขหากจำเป็น

ขั้นตอนที่ 1: การวางแผน

ขั้นตอนแรกคือการวางแผน

คุณต้องการทำเกม Arduino แต่คุณต้องเลือกส่วนประกอบบางอย่างก่อน คำแนะนำนี้ไม่แพง Connect 4 ประกอบด้วย Leds และ Arduino nano ดังนั้นอย่าลังเลที่จะเลือกกล่องหรือวงจรไฟฟ้าที่สม่ำเสมอ

หากคุณเป็นผู้แพ้ที่เจ็บ ได้เหล็กที่ต้านทานมากขึ้น !

โปรดทราบว่าคุณจะใช้ไฟ LED RGB 49 ดวง ซึ่งคุณจะต้องจัดการและต่อสาย ดังนั้นคุณจะต้องใช้พื้นที่และความยืดหยุ่น

ในบางกรณี ฉันมีกล่องกระดาษแข็งที่พอดีกับขนาดที่ฉันต้องการสำหรับเกมของฉัน เคยใช้แต่เลือกกล่องไม้ได้

มีความคิดสร้างสรรค์ !

ขั้นตอนที่ 2: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
  1. วัสดุ

    • ไฟ LED RGB 49x
    • 2x 74HC595
    • 7x ทรานซิสเตอร์ NPN pn2222
    • 3x ปุ่ม
    • สวิตช์ไฟ 1x
    • ตัวต้านทาน 7x 100Ω
    • ตัวต้านทาน 7x 1kΩ
    • ตัวต้านทาน 3x10kΩ
    • บอร์ด 2x
    • กล่อง
    • แบตเตอรี่ 1x 9V
    • ลวด
  2. เครื่องมือ

    • หัวแร้ง
    • โวลต์มิเตอร์
    • เครื่องตัดลวด
    • ดีบุก

อย่าลืมเตรียมทุกอย่างที่คุณต้องการ!

ขั้นตอนที่ 3: Arduino Nano Fit - Shift Register หรือไม่

Arduino Nano Fit - Shift Register หรือไม่
Arduino Nano Fit - Shift Register หรือไม่
Arduino Nano Fit - Shift Register หรือไม่
Arduino Nano Fit - Shift Register หรือไม่

เพลย์บอร์ดของ Connect4 แบบคลาสสิกประกอบด้วย 7 คอลัมน์และ 6 บรรทัด เรามีไลน์เพิ่มเติมให้เลือกว่าอยากเล่นที่ไหน อันที่จริง เราต้องสร้างตารางขนาด 7x7

โอเค ตอนนี้ของจริงเริ่มต้นขึ้น จะควบคุม 49 RGB Leds ด้วย Arduino Nano เท่านั้นได้อย่างไร เราต้องการ 49 เอาต์พุตหรือไม่? มากกว่า ?

เรามี 2 สี 49 Leds: 49*2 = 98 pins เพื่อจัดการสำหรับ Leds หากกราวด์ทั้งหมดเชื่อมต่อเข้าด้วยกัน !! คำเตือน: Arduino Nano มี 18 เอาต์พุต !

วิธีหนึ่งในการแก้ปัญหานี้คือการแบ่งกระดานเป็นแถว ไฟ LED ทั้งหมดที่จัดแนวในคอลัมน์แนวตั้งใช้ขั้วบวกร่วมกันที่มีสีเดียว (+) ไฟ LED ทั้งหมดบนเลเยอร์แนวนอนใช้แคโทดร่วมกัน (-)

ตอนนี้ ถ้าฉันต้องการจุดไฟ LED ที่มุมซ้ายบน (A1) ฉันก็แค่ใส่ GND (-) ให้กับเส้น A และ VCC (+) ให้กับสีใน 1 บรรทัด

วิธีแก้ไขคือให้สว่างทีละบรรทัดเท่านั้น แต่ทำอย่างรวดเร็วจนตาไม่รู้ว่าจะติดไฟเพียงเส้นเดียวได้ตลอดเวลา!

จำนวนเอาต์พุตที่ต้องการลดลงจาก 49*3 =147 เป็น 7*2 + 7 = 28 เอาต์พุต Arduino Nano มีเอาต์พุตดิจิตอล 12 ช่องและเอาต์พุตอะนาล็อก 6 ช่อง (สามารถใช้เป็นเอาต์พุตดิจิทัลได้) แน่นอน 28 > 18 และเราต้องจำไว้ว่าเรามีอินพุต 3 ตัว (การตรวจสอบ, เลือกซ้าย, เลือกขวา)

เราจะใช้ Shift Register เพื่อขยายพอร์ต คุณสามารถเข้าใจวิธีการทำงานได้ที่นี่ แต่ส่วนใหญ่ประกอบด้วย 3 อินพุตและ 8 เอาต์พุต เมื่อ SH_CP เปลี่ยนจาก LOW เป็น HIGH DS จะถูกอ่านและส่งไปยัง Q1 ถึง Q8 และสามารถอ่านเอาต์พุตได้เมื่อ ST_CP เปลี่ยนจาก LOW เป็น HIGH

ดังนั้นเราจึงสามารถควบคุม 7 คอลัมน์ของเราด้วย 3 อินพุต เนื่องจากเราต้องลงสี เราจึงต้อง Shift Register

มาดูกันว่าเหลือกี่พิน:

  • 7 สนาม
  • 3 สำหรับสีแดง
  • 3 สำหรับสีเขียว
  • 3 สำหรับปุ่ม

ตอนนี้เราใช้พิน 16/18 พินแล้ว เพื่อเพิ่มประสิทธิภาพโปรแกรม เราจะใช้พินเดียวกันสำหรับ SH_CP และพินเดียวกันสำหรับ ST_CP เลยใช้ 14 พิน ด้วยสายเคเบิลนี้ เราจึงมั่นใจได้ว่าจะเปิดไฟ LED สีเขียวเท่านั้นหรือไฟสีแดงเท่านั้น

ขั้นตอนที่ 4: แผนภาพวงจร

แผนภูมิวงจรรวม
แผนภูมิวงจรรวม

นี่คือไดอะแกรมของ Connect 4 ของเรา ฉันใช้ Fritzing (ฟรี) ในการออกแบบ คุณต้องตั้งค่า LED 7 เส้นด้วยทรานซิสเตอร์

นี่คือพินของ Arduino:

  • D0: ไม่ได้ใช้
  • D1: ไม่ได้ใช้
  • D2: บรรทัดที่ 1
  • D3: บรรทัด 2
  • D4: บรรทัด 3
  • D5: บรรทัด 4
  • D6: สาย 5
  • D7: สาย 6
  • D8: สาย 7
  • D9: ไม่ได้ใช้
  • D10: ปุ่มขวา
  • D11: ปุ่มซ้าย
  • D12: ปุ่มที่ถูกต้อง
  • D13: SH_CP
  • A0: ST_CP
  • A1: สีแดง DS
  • A2: สีเขียว DS
  • A3 - A7: ไม่ได้ใช้

และหมุดของ Shift Register:

  • 1: นำ 2
  • 2: นำ 3
  • 3: นำ 4
  • 4: นำ 5
  • 5: นำ 6
  • 6: นำ 7
  • 7: ไม่ได้ใช้
  • 8: พื้นดิน
  • 9: ไม่ได้ใช้
  • ตัวต้านทาน 10: 10K และ +5V
  • 11: Arduino D13
  • 12: Arduino A1 หรือ A2
  • 13: พื้นดิน
  • 14: Arduino A0
  • 15: นำ 1
  • 16: +5V

ขั้นตอนที่ 5: Mount Leds

Mount Leds
Mount Leds
Mount Leds
Mount Leds

กริด LED ของฉันดูแย่มาก มันเป็นโครงการแรกของฉันอย่างอ่อนโยน!

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

โปรดทราบว่าคุณจะต้องประสานหมุดของ LED ทั้งหมดเข้าด้วยกันและต่อสายไฟและคอลัมน์ ต้องสามารถเข้าถึงได้ Arduino และ Register จะเชื่อมต่อกับสิ่งเหล่านี้

ฉันแนะนำให้คุณทดสอบไฟ LED ทุกตัวก่อนที่จะบัดกรี หลังจากนั้นจะสายเกินไป… คุณสามารถใช้สายอื่นของบอร์ดได้มากกว่านั้น: หากคุณเปลี่ยนพินกราวด์ การเชื่อมต่อเข้าด้วยกันจะง่ายขึ้น

ขั้นตอนที่ 6: วงจรบัดกรี

วงจรบัดกรี
วงจรบัดกรี

ฉันใช้บอร์ด 2 อัน: อันหนึ่งเพื่อเชื่อมต่อ LED เข้าด้วยกันและอีกอันสำหรับวงจร

หากคุณเป็นคนพิถีพิถันและมองการณ์ไกล เส้นและคอลัมน์ของคุณก็สามารถเข้าถึงได้ง่าย และสามารถบัดกรีเข้ากับกระดานหลักของคุณได้

ใช้เวลาของคุณ ! มันคือกุญแจสู่ความสำเร็จ !

ขั้นตอนที่ 7: โปรแกรม

ตอนนี้คุณมี Connect4 แล้ว คุณต้องอัปโหลดโค้ดเพื่อใช้งาน ของผมใช้งานได้เต็มประสิทธิภาพ

ดาวน์โหลดจากที่นี่และโอนไปยัง Arduino Nano ของคุณ

โปรดทราบว่าคุณใช้พินใด คุณจะต้องเปลี่ยนรหัสหากจำเป็น

สามารถอัพเกรดได้: AI, เวลาเล่น, …

แนะนำ: