สารบัญ:

Mastermind Star Wars ด้วย Arduino MEGA: 5 ขั้นตอน (พร้อมรูปภาพ)
Mastermind Star Wars ด้วย Arduino MEGA: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Mastermind Star Wars ด้วย Arduino MEGA: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Mastermind Star Wars ด้วย Arduino MEGA: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: 🔴 Playing YOUR Game Jam Entries! Trying to Escape in VR 2024, พฤศจิกายน
Anonim
ผู้บงการ Star Wars ด้วย Arduino MEGA
ผู้บงการ Star Wars ด้วย Arduino MEGA
Mastermind Star Wars ด้วย Arduino MEGA
Mastermind Star Wars ด้วย Arduino MEGA
ผู้บงการ Star Wars ด้วย Arduino MEGA
ผู้บงการ Star Wars ด้วย Arduino MEGA

นี่เป็นช่วงเวลาที่เลวร้ายสำหรับการกบฏ แม้ว่าเดธสตาร์จะถูกทำลาย แต่กองทหารของจักรวรรดิก็ใช้ฮาร์ดแวร์ฟรีและ Arduino เป็นอาวุธลับ

นั่นคือข้อดีของเทคโนโลยีฟรีที่ทุกคน (ไม่ว่าจะดีหรือไม่ดี) ก็สามารถใช้ได้

ในฐานลับที่ตั้งอยู่บนดาวเคราะห์ Anoat พวกเขากำลังสร้างเครื่องพิมพ์ 3 มิติที่สามารถจำลองเรือพิฆาตจักรวรรดิได้

ทางออกเดียวที่จะเอาชนะจักรวรรดิคือกลุ่มกบฏที่ได้รับคำสั่งจากลุค สกายควาร์เทียลส์และโอบีวัน บันซี เอาชนะกองทัพจักรวรรดิและรับกุญแจที่จะให้เข้าถึงแผนการทำลายอาวุธลับได้

คีย์นี้ประกอบด้วย 4 สีและคุณมี 10 ครั้งในการถอดรหัส มีเพียงสี่กฎ:

  1. สีสามารถทำซ้ำได้
  2. ไฟสีขาวแสดงว่าคุณได้สีและตำแหน่งที่ถูกต้อง
  3. แสงสีม่วงบ่งบอกว่าคุณได้สีแต่ไม่ถึงตำแหน่ง
  4. หากไม่มีแสงแสดงว่าคุณไม่ได้เดาสีหรือตำแหน่ง

คุณต้องรีบร้อนเพราะในอีกทางหนึ่ง Darth Ballmer ผู้ชั่วร้ายจะพยายามหากุญแจก่อนคุณ ในกรณีนี้ คุณจะไม่สามารถค้นหาได้ว่ามันคืออะไร และคุณจะไม่สามารถเข้าถึงแผนการของอาวุธลับได้ ภารกิจของคุณจะล้มเหลว

พาดาวันตัวน้อย ขอพลังที่มากับคุณในการถอดรหัสกุญแจ และสามารถกอบกู้กาแล็กซี่ได้

ขั้นตอนที่ 1: วัสดุ

วัสดุ
วัสดุ

วัสดุที่จำเป็นในการสร้าง Mastermind Star Wars ด้วย Arduino แบ่งออกเป็นสามส่วน

  • ช่างไม้และเครื่องเขียนเพื่อการเคหะ
  • ส่วนประกอบ สายเคเบิล และ Arduino สำหรับอุปกรณ์อิเล็กทรอนิกส์ทั้งหมด
  • เครื่องมือ

เริ่มจากช่างไม้กันก่อน จำเป็นต้องใช้วัสดุต่อไปนี้:

  • 2 x แผ่น MDF จาก90x60
  • 1 x แผ่นกระดาษผัก

ในส่วนอิเล็กทรอนิกส์จำเป็นต้องใช้วัสดุต่อไปนี้:

  • 1 x NeoPixel Strip 5 เมตร
  • 1 x Arduino MEGA
  • 1 x ตัวเก็บประจุ 100 µF
  • ความต้านทาน 4 x 470 Ω
  • 5 x ปุ่มสีดำ
  • 5 x ปุ่มสีขาว
  • 1 x กำลังไฟ 5V-5A
  • 1 x กำลังไฟ 5V-2A

สุดท้ายนี้ ในส่วนของเครื่องมือ เราได้ใช้สิ่งต่อไปนี้:

  • ปืนซิลิโคนร้อน
  • เลเซอร์ CNC de MxN
  • ช่างเชื่อมไฟฟ้า
  • กระป๋องเชื่อม

ขั้นตอนที่ 2: ออกแบบ

ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ

หนึ่งในส่วนที่สำคัญที่สุดของโครงการนี้คือการออกแบบที่อยู่อาศัย ประกอบด้วย 3 ชิ้นตัดด้วยเครื่องตัดเลเซอร์

ฐานทำจากไม้ MDF ขนาด 90x60 คำนึงถึงขนาดของวัสดุเนื่องจากคุณจะต้องมีเครื่องตัดเลเซอร์ที่ใหญ่พอ

คุณสามารถค้นหาไฟล์ SVG ได้ที่ส่วนท้ายของขั้นตอนนี้

ฝาครอบด้านบนเป็นภาพที่มีภาพวาดเฉพาะเรื่องของ Star Wars รวมถึงรูสำหรับทั้งปุ่มและพิกเซล

มีรูปร่างเหมือนกับฐาน

ผนังด้านข้างใช้เทคนิคการตัดด้วยเลเซอร์ที่เรียกว่า kerf ทำให้วัสดุมีความยืดหยุ่น ในการวางผนังบางชิ้นได้รับการออกแบบเพื่อใช้เป็นแนวทาง

สุดท้าย เมทริกซ์ NeoPixel แต่ละตัวจะมีตารางโดยที่ด้านหนึ่งจะมีการแก้ไข NeoPixel และอีกทางหนึ่งจะยึดกระดาษจากพืชเพื่อกระจายแสงของ NeoPixel ที่นี่คุณมีไฟล์ SVG ทั้งหมดเพื่อให้คุณสามารถตัดและผลิตได้เอง

ขั้นตอนที่ 3: การประกอบอิเล็กทรอนิกส์

การประกอบอิเล็กทรอนิกส์
การประกอบอิเล็กทรอนิกส์
การประกอบอิเล็กทรอนิกส์
การประกอบอิเล็กทรอนิกส์
การประกอบอิเล็กทรอนิกส์
การประกอบอิเล็กทรอนิกส์
การประกอบอิเล็กทรอนิกส์
การประกอบอิเล็กทรอนิกส์

ขั้นตอนแรกของการประกอบอุปกรณ์อิเล็กทรอนิกส์คือการตัดแถบ NeoPixel ขนาด 5 เมตรออกเป็น 8 แถบ 10 พิกเซลและ 4 พิกเซลแยกกันสำหรับเครื่องเล่นแต่ละคน รวมทั้งหมด 84 พิกเซลต่อเครื่องเล่น ในอีกด้านหนึ่ง แถบ 10 อันถูกประกอบเข้าด้วยกัน ตามด้วยอีกอันเหลือสายเคเบิลให้เพียงพอเพื่อให้แต่ละแถบขนานกันไม่กี่มิลลิเมตร เมทริกซ์พิกเซลนี้จะทำหน้าที่แสดงการเล่นแต่ละครั้งและผลลัพธ์ 4 พิกเซลแสดงสี่สีของคีย์และอีกสี่พิกเซลแสดงผลลัพธ์ ฉันเตือนคุณว่าด้วยเหตุนี้เราต้อง:

  • หากพิกเซลเป็นสีขาว แสดงว่าตำแหน่งและสีสำเร็จแล้ว
  • หากพิกเซลเป็นสีม่วง แสดงว่าสีถูกต้อง แต่ไม่ใช่ตำแหน่ง
  • หากพิกเซลปิดอยู่ แสดงว่าสีหรือตำแหน่งไม่ถูกต้อง

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

ในทางกลับกัน เรามี 4 พิกเซลแยกกันที่ต้องเชื่อมต่อระหว่างกัน พิกเซลเหล่านี้จะแสดงสีที่เราเลือกด้วยปุ่มต่างๆ

เชื่อมต่อแบบอนุกรมกับแต่ละแถบเป็นตัวต้านทาน 470Ω เพื่อปกป้องข้อมูล สายเคเบิลข้อมูลของพิกเซลแต่ละแถบเชื่อมต่อกับพินดิจิตอล พินที่เลือกใน Arduino MEGA คือ 6, 7, 8 และ 9

ตัวอย่างเช่น 6 และ 7 สำหรับผู้เล่น 1 และ 8 และ 9 สำหรับผู้เล่น 2

ปุ่มที่เราใช้นั้นเป็นปุ่มทั่วไปของเครื่องอาร์เคด เราคิดว่าพวกเขาจะดูดีและมันก็เป็นอย่างนั้น

สามารถใช้ปุ่มกดอื่นๆ ได้ แต่ต้องคำนึงว่าหากมีขนาดเล็กกว่าหรือใหญ่กว่า จะต้องแก้ไขไฟล์ DXF ก่อนตัดด้วยเลเซอร์ซีเอ็นซี

เพื่อแยกความแตกต่างของผู้เล่น ปุ่มบางปุ่มจะเป็นสีขาวและปุ่มอื่นๆ เป็นสีดำ

ผู้เล่นแต่ละคนมีปุ่มขึ้น 4 ปุ่มและปุ่มลง 1 ปุ่ม ปุ่มบนทั้ง 4 ปุ่มใช้เพื่อเลือกสีของแต่ละตำแหน่งของปุ่ม

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

ก่อนประกอบทุกอย่างเราบัดกรีสายเคเบิลทั้งหมด ดังนั้นคุณจะต้องใช้สายเคเบิลจำนวนมาก จะขึ้นอยู่กับขนาดของเกม ในกรณีของเรามันค่อนข้างใหญ่

ตัวอย่างเช่น คุณสามารถใช้สายอีเทอร์เน็ตในการเปิดและใช้สายภายใน มันเป็นทางออกที่ดี พยายามจัดพวกมันให้เป็นระเบียบที่สุดเท่าที่จะทำได้เพราะจำเป็นต้องทำการเชื่อมต่อกับ Arduino MEGA ดังที่คุณเห็นในแผนภาพไฟฟ้า

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

กระดาษนี้จะกระจายแสงของแต่ละพิกเซลให้ผลที่สวยงามยิ่งขึ้น จากนั้นโครงสร้างนั้นจะเกาะติดกับส่วนบนด้านใน มันค่อนข้างซับซ้อน แต่ด้วยความระมัดระวัง ผลลัพธ์ที่ดีก็สำเร็จ

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

แต่ละพิกเซลสามารถกินไฟสูงสุด 60 mA หากเราคูณด้วย 168 พิกเซล คุณจะได้รับการบริโภคประมาณ 10 A

แม้ว่านี่จะเป็นกรณีที่เลวร้ายที่สุด ในการเขียนโปรแกรม เราได้พิจารณาแล้วว่าจะไม่เพิ่มความเข้มของ NeoPixel ให้สูงสุด

เรายังไม่ถึง 50% ดังนั้นด้วยเครื่องชาร์จ 5V และ 5A ก็เกินพอ

ในทางกลับกัน Arduino MEGA มีที่ชาร์จแยกต่างหากที่สามารถเชื่อมต่อผ่านช่องเสียบแจ็คหรือผ่านพอร์ต USB การปรับปรุงที่เป็นไปได้อย่างหนึ่งคือการมีที่ชาร์จเพียงเครื่องเดียวสำหรับทั้งระบบ

ขั้นตอนที่ 4: การเขียนโปรแกรมเกม

การเขียนโปรแกรมเกม
การเขียนโปรแกรมเกม
การเขียนโปรแกรมเกม
การเขียนโปรแกรมเกม

การเขียนโปรแกรมทำได้โดยใช้สองไลบรารี: OneButton และ Adafruit_NeoPixel

ไลบรารี OneButton ช่วยให้สามารถควบคุมปุ่มต่างๆ ได้อย่างง่ายดายโดยมีการขัดจังหวะ

ไลบรารี Adafruit_NeoPixel ช่วยให้เราควบคุมแถบ NeoPixel ได้อย่างง่ายดาย

การเขียนโปรแกรมขึ้นอยู่กับสถานะต่างๆ ซึ่งโปรแกรมซอฟต์แวร์สามารถ:

เริ่มเกม. รัฐ = 0

ในสถานะนี้ เกมจะเริ่มต้นขึ้นและมีลำดับไฟในผู้เล่นทั้งสองที่ระบุว่าเกมกำลังจะเริ่มต้นขึ้น ในระหว่างสถานะนี้ ปุ่มกดไม่ตอบสนอง

สถานะเริ่มต้น รัฐ = 1

ในสถานะเริ่มต้น ให้รอให้ผู้เล่นหนึ่งในสองคนคลิกสองครั้งที่ปุ่มยืนยัน (ปุ่มที่ห้า) การดำเนินการนี้จะอนุญาตให้เริ่มเกมได้

เตรียมเกม. รัฐ = 2

ในสถานะการเตรียมเกม ตัวแปรทั้งหมดจะถูกรีเซ็ตและสุ่มเลือกสีสำหรับคีย์

สถานะการเล่น = 3

ในสถานะ 3 เกมจะเริ่มขึ้น ผู้เล่นแต่ละคนเลือกคีย์ด้วยปุ่มต่างๆ และตรวจสอบความถูกต้องโดยคลิกที่ปุ่มยืนยัน สถานะนี้สามารถสิ้นสุดได้สองวิธี: เมื่อผู้เล่นค้นพบกุญแจหรือเมื่อผู้เล่นสองคนใช้ความพยายาม 10 ครั้งที่พวกเขามีอยู่

ผู้ชนะหนึ่งรัฐ = 4

หากผู้เล่นชนะ เช็คสีเขียวจะปรากฏบนกระดานของเขาและชุดค่าผสมที่ชนะและกาชาดบนผู้แพ้

เกมผูก. รัฐ = 5

ในกรณีที่เสมอกัน จะไม่มีอะไรปรากฏบนกระดานใด ๆ และชุดค่าผสมที่ชนะบนกระดานของผู้เล่นทั้งสอง

ไม่ว่าจะมีผู้ชนะหรือเสมอกันในเกม สถานะถัดไปจะเป็นสถานะเริ่มต้นที่รอการดับเบิลคลิก

คุณสามารถค้นหารหัสทั้งหมดด้านล่าง สิ่งเดียวที่เป็นภาษาสเปน:)

ขั้นตอนที่ 5: การทดสอบและปรับปรุง

เกมได้รับการทดสอบโดยการเล่น ในวิดีโอด้านบน คุณสามารถดูเกมทั้งหมดได้

จากที่นี่ เราสามารถนึกถึงการปรับปรุงหลายอย่างที่สามารถเพิ่มลงใน Mastermind Star Wars ด้วย Arduino ได้

ต่อไปฉันจะแสดงรายการ

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

ฉันแน่ใจว่าหลายคนจะมีการปรับปรุงมากมาย ฉันรอความคิดเห็นด้านล่าง

และขอพลังจงสถิตอยู่กับท่าน

แนะนำ: