สารบัญ:

ปิงปองพร้อม LED Matrix, Arduino และจอยสติ๊ก: 5 ขั้นตอน (พร้อมรูปภาพ)
ปิงปองพร้อม LED Matrix, Arduino และจอยสติ๊ก: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ปิงปองพร้อม LED Matrix, Arduino และจอยสติ๊ก: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ปิงปองพร้อม LED Matrix, Arduino และจอยสติ๊ก: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Using an 8x8 LED Matrix with Arduino Tutorial 2024, ธันวาคม
Anonim
ปิงปองพร้อม LED Matrix, Arduino และจอยสติ๊ก
ปิงปองพร้อม LED Matrix, Arduino และจอยสติ๊ก

โปรเจ็กต์นี้จัดทำขึ้นสำหรับผู้เริ่มต้นและคนจรจัดที่มีประสบการณ์ ในระดับพื้นฐานสามารถทำได้ด้วยเขียงหั่นขนม สายจัมเปอร์ และติดกับเศษวัสดุ (ฉันใช้ไม้) ด้วย Blu-Tack และไม่มีการบัดกรี อย่างไรก็ตาม ในระดับที่สูงขึ้น สามารถบัดกรีไปยังบอร์ดที่สมบูรณ์แบบหรือ PCB แบบกำหนดเองได้

เนื่องจากเป็นโครงการล็อคดาวน์ ฉันจึงไม่สามารถเข้าถึงเครื่องมือหรือวัสดุต่างๆ ได้มากนัก เหตุใดจึงติดอยู่กับเศษไม้ที่มี Blu-Tack ที่เล็กเกินไปเล็กน้อย อย่างไรก็ตาม แม้ว่าโครงการนี้จะเป็นโครงการที่สนุกก็ตาม อย่างรวดเร็วและประกอบด้วยชิ้นส่วนที่หาได้ทั่วไปซึ่งสามารถพบได้ในราคาถูกทางออนไลน์

ขั้นตอนที่ 1: อะไหล่

ในการสร้างเกมโป่งที่คุณต้องการ

  • 1x Arduino (ประเภทใดก็ได้)
  • 4x MAX7219 8x8 LED เมทริกซ์
  • 2x จอยสติ๊ก
  • 1x Piezo Buzzer (อุปกรณ์เสริม)
  • สายจัมเปอร์หญิง-หญิง 15x (3x กลุ่ม 5)
  • 15x สายจัมเปอร์ชาย-หญิง (3x กลุ่ม 5)
  • สายจัมเปอร์ชาย-ชาย 18x
  • 1x เขียงหั่นขนม
  • ตัวต้านทาน 1x220Ω

แทนที่จะใช้บอร์ด Arduino Uno หรือ Nano คุณสามารถใช้ Arduino แบบ breadboard ด้วย;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz Crystal Oscillator
  • 2x 22pF ตัวเก็บประจุแบบเซรามิก
  • 1x USB FTDI UART Converter
  • 1x 100uF ตัวเก็บประจุด้วยไฟฟ้า
  • 1x ไมโคร USB ฝ่าวงล้อม (อุปกรณ์เสริม)

เครื่องมือ;

  • พีซีที่มี Arduino IDE (และ LedControl Library)
  • สาย USB ที่เกี่ยวข้องสำหรับ Arduino. ของคุณ
  • Power Bank เพื่อเพิ่มพลังให้กับเกมจากคอมพิวเตอร์ของคุณ

ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ

การเดินสายไฟนั้นง่ายมาก เพียงคุณมีสายจัมเปอร์เพื่อเชื่อมต่อส่วนหัวของเมทริกซ์และจอยสติ๊กกับ Arduino ความซับซ้อนเพียงอย่างเดียวคือพลังงานเนื่องจาก Arduino Uno มีการเชื่อมต่อ GND 3 รายการและการเชื่อมต่อ 5v หนึ่งรายการ นี่คือที่ที่เขียงหั่นขนมเข้ามาและทำหน้าที่เป็นรางจ่ายไฟสำหรับส่วนประกอบทั้งหมด หากคุณใช้ NANO เขียงหั่นขนมจะทำหน้าที่เดียวกันและให้คุณเสียบทุกอย่างเข้าไป

สำหรับการเดินสายให้ทำตามการเชื่อมต่อเหล่านี้

  • จอยสติ๊กด้านซ้าย - GND และ 5v ไปยังรางไฟฟ้าตามลำดับ SW - พิน 9, VRx - A0, VRy - A1
  • จอยสติ๊กขวา - GND และ 5v ไปยังรางไฟฟ้าตามลำดับ SW - พิน 8, VRx - A2, VRy - A3
  • เมทริกซ์ LED ขวาสุด - GND และ 5v ไปยังรางไฟฟ้าตามลำดับ DIN - 13, CS - 11, CLK - 12. (ตามบรรทัดที่ 25)
  • เมทริกซ์ LED อื่น ๆ ทั้งหมดสามารถผูกมัดแบบเดซี่กับเอาต์พุตของอันแรกจากขวาไปซ้ายเพื่อให้โค้ดทำงานได้อย่างถูกต้อง
  • ออดเสริม - แอโนด (+) ผ่านตัวต้านทานจำกัดกระแส 220Ω ถึงพิน 10, แคโทด (-) - GND

ขั้นตอนที่ 3: การเดินสายไฟสำรอง

การเดินสายไฟทางเลือก
การเดินสายไฟทางเลือก
การเดินสายไฟทางเลือก
การเดินสายไฟทางเลือก
การเดินสายไฟทางเลือก
การเดินสายไฟทางเลือก

หลังจากเดินสายกับ Arduino UNO เพื่อประหยัดพื้นที่ ฉันตัดสินใจวาง Arduino IC จาก UNO บนเขียงหั่นขนมด้วย Crystal Oscillator 16Mhz และตัวเก็บประจุ 22pF จากแต่ละด้านสู่กราวด์ ฉันรู้สึกว่านี่เป็นการปรับเปลี่ยนที่คุ้มค่าเพราะทำให้โปรเจ็กต์ดูเรียบร้อยและเสร็จสิ้นมากขึ้น อย่างไรก็ตาม คุณต้องใช้โปรแกรมเมอร์ USB FTDI เพื่ออัปเดตโปรแกรม

ขั้นตอนที่ 4: รหัส + คำอธิบาย

ในการอัปโหลดรหัสไปยัง Arduino ดาวน์โหลดไลบรารี LedControl จาก GitHub ที่นี่

github.com/wayoda/LedControl และเพิ่มไฟล์ Zip หรือเพิ่มผ่าน Library Manager ภายใน IDE หลังจากนั้นเปิดภาพร่างที่แนบมา เลือก Arduino ของคุณในการตั้งค่าบอร์ดและพอร์ตภายใต้เครื่องมือและอัปโหลดไปยัง Arduino

คำอธิบาย

บรรทัดที่ 1: เพิ่มห้องสมุด

บรรทัดที่ 5-23: ตั้งค่าตัวแปร ค่าคงที่ และหมายเลขพินทั้งหมด

บรรทัดที่ 25: ตั้งค่า LED Martix และตั้งค่าหมุดควบคุมและจำนวนจอแสดงผล

บรรทัดที่ 27: ตั้งค่าฟังก์ชันรีเซ็ต

บรรทัดที่ 30-35: ฟังก์ชัน Shutdown เพื่อเปิด/ปิดจอแสดงผลทั้งหมดพร้อมกัน

บรรทัดที่ 38-43: ฟังก์ชัน SetIntensity เพื่อตั้งค่าความสว่างของจอแสดงผลทั้งหมดเข้าด้วยกัน

บรรทัดที่ 46-51: ฟังก์ชั่น ClearAll เพื่อเช็ดจอแสดงผลทั้งหมดเข้าด้วยกัน

บรรทัด 53-64: จอยสติ๊ก ฟังก์ชันรับตำแหน่งของจอยสติ๊ก แมปไปยังตำแหน่งไม้ตีที่เป็นไปได้ 7 ตำแหน่งสำหรับการตีลูกแล้วย้ายไม้ตีไปยังตำแหน่งใหม่

บรรทัดที่ 67-435: ฟังก์ชันที่เคลื่อนลูกบอลไปทางซ้ายของผู้เล่นที่ความสูงและความเร็วที่กำหนด ตรวจสอบว่าผู้เล่นตีและดำเนินการต่อไปและตั้งค่าสถานะการชนเป็น true หรือเด้งลูกบอลกลับ บวก 1 ในคะแนนและ เพิ่มความเร็ว

บรรทัดที่ 438-811: ฟังก์ชันที่เคลื่อนลูกบอลไปยังผู้เล่นที่ถูกต้องที่ความสูงและความเร็วที่กำหนด ตรวจสอบว่าผู้เล่นตีและดำเนินการต่อไปและตั้งค่าสถานะการชนเป็น จริง หรือตีกลับลูกบอล บวก 1 คะแนนและ เพิ่มความเร็ว

บรรทัด 813-823: ฟังก์ชันสำหรับแสดงหน้ายิ้ม ขีด กากบาท หรือเครื่องหมายคำถามไปยังหน้าจอที่ระบุ (0 ทางด้านขวาถึง 3 ทางด้านซ้าย)

บรรทัดที่ 861-979: ฟังก์ชันสำหรับแสดงตัวเลข 0-9 ไปยังจอแสดงผลที่ระบุ

บรรทัดที่ 981-1047: ฟังก์ชันสำหรับแสดงคะแนนให้กับผู้เล่นแต่ละคนของหน้าจอ

บรรทัดที่ 1049-1064: ฟังก์ชันตรวจสอบว่าผู้เล่นพร้อมหรือไม่

บรรทัด 1066-1076: ส่วนการตั้งค่าของรหัสสำหรับรหัสที่ทำงานครั้งเดียวเมื่อโปรแกรมเริ่มทำงาน

บรรทัดที่ 1078-1136: ส่วนลูปหลักสำหรับตรรกะของเกมที่ใช้ฟังก์ชันทั้งหมดและใครชนะจะถูกตัดสิน จากนั้นโปรแกรมจะรีสตาร์ทโปรแกรมหลังจากแสดงคะแนน 5 วินาที

ขั้นตอนที่ 5: ขอบคุณสำหรับการอ่าน

ขอบคุณที่อ่าน
ขอบคุณที่อ่าน

ขอบคุณที่อ่าน Instructable นี้ เป็นโปรเจ็กต์ lockdown ที่สนุกสนานที่มารวมกันในช่วงสองสามวันเมื่อฉันเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรม Arduino หากคุณชอบ อย่าลังเลที่จะลงคะแนนในการประกวด Arduino

แนะนำ: