สารบัญ:

เกม Arduino Battleship: 3 ขั้นตอน
เกม Arduino Battleship: 3 ขั้นตอน

วีดีโอ: เกม Arduino Battleship: 3 ขั้นตอน

วีดีโอ: เกม Arduino Battleship: 3 ขั้นตอน
วีดีโอ: Arduino Star Wars Game - how to make 2024, พฤศจิกายน
Anonim
เกม Arduino Battleship
เกม Arduino Battleship

ฉันจำได้ว่าเคยเล่นเกมเรือประจัญบานเวอร์ชั่นกระดาษและดินสอตอนเด็กๆ อันที่จริง มันมีมาตั้งแต่สงครามโลกครั้งที่ 1 ฉันยังมีตัวแปร "อิเล็กทรอนิกส์" ในช่วงต้นทศวรรษ 1960 ที่เรียกว่า "Sonar Sub Hunt" ที่มีแสงและเสียงและทุ่นระเบิดที่ซ่อนอยู่ ตามมาตรฐานวิดีโอเกมในปัจจุบัน Battleship ค่อนข้างน่าเบื่อ แต่ฉันคิดว่าฉันจะสร้างมันขึ้นมาเพื่อดูว่าหลานๆ คิดอย่างไรเกี่ยวกับเรื่องนี้ ท้ายที่สุดแล้วบางครั้งย้อนยุคก็เท่ได้

มีชิ้นส่วนของโปรเจ็กต์นี้ที่จะเป็นประโยชน์ในที่อื่นๆ แม้ว่าคุณจะไม่สนใจที่จะสร้างเกม Battleship ก็ตาม มีอินเทอร์เฟซ LCD แบบ 4 บิต 1602 แบบเรียบง่ายที่มีรูทีนสำหรับการตั้งค่าตำแหน่งอักขระเฉพาะ นอกจากนี้ยังมีอินเทอร์เฟซสำหรับการถอดรหัสเมทริกซ์สวิตช์ 4x4 อินเทอร์เฟซทั้งสองนี้มีให้ใช้งานแยกกัน รวมถึงไฟล์ต่างๆ เพื่อให้สามารถเคลื่อนย้ายได้ง่าย เกมดังกล่าวยังมีรูทีนเอฟเฟกต์เสียงต่างๆ และวงจรแอมพลิฟายเออร์ออดิโอทรานซิสเตอร์หนึ่งตัวอย่างง่าย

ขั้นตอนที่ 1: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์

แผนผังที่นำเสนอนี้มีไว้สำหรับผู้เล่นคนเดียว ดังนั้นจึงต้องสร้างสองหน่วย หน่วยสื่อสารโดยใช้อินเทอร์เฟซ 3 สายซึ่งรวมถึงสาย UART TX และ RX และสายดิน ฉันเลือกใช้แจ็คหูฟังสเตอริโอขนาด 1/8 นิ้วมาตรฐานและสายเคเบิลมาตรฐานพร้อมปลั๊กตัวผู้ที่ปลายทั้งสองข้าง RX จากกล่องหนึ่งไปยัง TX ของอีกกล่องหนึ่งและในทางกลับกัน คุณสามารถทำได้โดยสลับสายไฟที่บัดกรีกับแจ็คหูฟังในกล่องหรือสลับบนแผงวงจรเมื่อคุณสร้าง

เกมคลาสสิกถูกจัดวางเป็นเมทริกซ์ แต่ฉันตัดสินใจที่จะใช้งานอย่างง่ายโดยใช้ LCD 1602 สำหรับจอแสดงผล บรรทัดแรกแสดงตำแหน่งเรือรบของผู้เล่นและการยิงของฝ่ายตรงข้าม บรรทัดที่สองแสดงการยิงของผู้เล่นและการยิงใดๆ บนเรือรบของฝ่ายตรงข้าม ที่ให้ 16 ตำแหน่งที่เป็นไปได้สำหรับเรือรบ จำนวนเรือรบถูกกำหนดในซอฟต์แวร์ และฉันเลือก 5 ลำโดยพลการ

ตำแหน่งของเรือรบทั้ง 16 ลำนั้นเข้ากันได้ดีกับข้อกำหนดของสวิตช์เพราะอนุญาตให้ใช้เมทริกซ์ขนาด 4x4 มีแผ่นสวิตช์เมทริกซ์ขนาด 4x4 ให้เลือก แต่ฉันเลือกใช้สวิตช์แต่ละตัวในบรรทัดเดียวเพื่อให้ตรงกับจอแสดงผลเชิงเส้น อย่างไรก็ตามฉันได้ต่อสวิตช์เป็นเมทริกซ์ 4x4 เพื่อให้จำเป็นต้องใช้หมุด Arduino เพียงแปดตัว อ้างถึงไดอะแกรมการเดินสายสวิตช์และแผนผังสำหรับการเชื่อมต่อที่เหมาะสม

จอ LCD เป็นแบบต่อสายสำหรับอินเทอร์เฟซ 4 บิต ฉันยังเพิ่มไฟ LED ภายนอกที่พิน D13 เพื่อระบุว่าผู้เล่นคนใดควรถ่ายภาพ ในขั้นต้น ผู้เล่นจะตัดสินใจว่าใครเป็นคนยิงลูกแรก จากนั้นซอฟต์แวร์จะควบคุมการกลับมาของเกมโดยอัตโนมัติ

ฉันต้องการเพิ่มเอฟเฟกต์เสียงที่เรียบง่ายสำหรับช็อต การระเบิด เกมพร้อม และผู้ชนะ/ผู้แพ้ ฉันลองใช้ออดแบบเพียโซธรรมดาๆ แต่ลงเอยด้วยลำโพงขนาดเล็กแทน กระแสที่ลำโพงต้องการนั้นเกินที่ Arduino สามารถรองรับได้ ดังนั้นจึงเพิ่มแอมพลิฟายเออร์ทรานซิสเตอร์อย่างง่าย เสียงยังไม่ดีนัก แต่ก็ดีกว่าเสียงกริ่ง ลำโพงของฉันคือ 4 โอห์ม แต่ถ้าคุณมี 8 โอห์มให้เปลี่ยนตัวต้านทานในแผนผังจาก 39 โอห์มเป็น 33 โอห์ม หากคุณใช้ Piezo Buzzer คุณควรจะสามารถขับมันได้โดยตรงจากขา Arduino โดยให้อีกด้านของ Buzzer เชื่อมต่อกับกราวด์

รวมสวิตช์รีเซ็ตภายนอกและเชื่อมต่อโดยตรงระหว่างกราวด์และพิน "รีเซ็ต" บน Arduino ที่ให้วิธีการในการเริ่มเกมใหม่

ขั้นตอนที่ 2: ซอฟต์แวร์

ซอฟต์แวร์มีไฟล์รวมสำหรับอินเทอร์เฟซ LCD ของฉัน และฉันยังสร้างไฟล์รวมสำหรับการสแกนเมทริกซ์สวิตช์ 4x4 การเริ่มต้นจะแจ้งให้ผู้เล่นเลือกตำแหน่งสำหรับเรือรบของเขา จากนั้นไปที่สถานะ "พร้อม" เมื่อผู้เล่นทั้งสองพร้อม หนึ่งในนั้นเริ่มเกมโดยกดสวิตช์

ตำแหน่งการยิงจะถูกส่งผ่าน UART ไปยังผู้เล่นอื่น และผลลัพธ์ที่เหมาะสมจะถูกส่งกลับไปยังผู้เล่นที่ยิงกระสุน ดังที่ได้กล่าวไว้ก่อนหน้านี้ เมื่อถ่ายภาพแรกแล้ว ซอฟต์แวร์จะควบคุมว่าใครเป็นคนยิงต่อไป ก่อนส่งช็อตจะถูกตรวจสอบกับตำแหน่งของช็อตก่อนหน้า หากมีการใช้ตำแหน่งนั้นแล้ว ช็อตจะไม่ถูกส่งต่อไป ไฟ LED “My_Shot” เป็นตัวกำหนดว่าใครจะเลี้ยว นอกจากนี้ยังมีเสียงการยิงที่สร้างขึ้นสำหรับการเลือกที่ถูกต้องและเสียงระเบิดหากเรือรบถูกโจมตี เอฟเฟกต์เสียงได้มาจากตัวอย่างที่พบทางออนไลน์พร้อมการดัดแปลงเพื่อให้เหมาะกับเกม

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

ขั้นตอนที่ 3: ภาพหน้าจอ

ภาพหน้าจอ
ภาพหน้าจอ
ภาพหน้าจอ
ภาพหน้าจอ
ภาพหน้าจอ
ภาพหน้าจอ
ภาพหน้าจอ
ภาพหน้าจอ

นี่คือภาพหน้าจอบางส่วนจากเกม แค่นี้แหละสำหรับโพสต์นี้ ตรวจสอบคำแนะนำอื่น ๆ ของฉันและเว็บไซต์ของฉันได้ที่: www.boomerrules.wordpress.com

แนะนำ: