วันนี้เรามีโครงการที่มีคอนโซลเกมขนาดเล็กซึ่งทุกคนสามารถทำซ้ำได้
วัสดุและส่วนประกอบที่จำเป็น:
คู่มือนี้นำมาจากช่อง AlexGyver YouTube ไมโครคอนโทรลเลอร์สำหรับโครงการนี้ต้องการสิ่งนี้:
นี่คือ Attiny85 ในแพ็คเกจ DIP มันจะเพียงพอสำหรับเรา เพื่อไม่ให้ประสานเราใช้ซ็อกเก็ตที่เรียกว่า
เรายังต้องการจอแสดงผลที่มี Aliexpress, OLED ที่มีความละเอียด 128 คูณ 32 พิกเซล
หมุดยังมีประโยชน์อีกด้วย
ปุ่มที่เราจะใช้ที่นี่คือ:
แน่นอนคุณสามารถใช้แป้นพิมพ์ได้ แต่ต้องได้รับการสรุป แต่ฉันไม่ต้องการตัดและบัดกรี ช่องใส่แบตเตอรี่เป็นประเภทนี้:
และเราจะรวบรวมเกมคอนโซลของเราด้วยเขียงหั่นขนม (ถ้าคุณต้องการคุณสามารถทำบอร์ดด้วยตัวเอง) เราจะแฟลชโปรแกรมเมอร์ USBasp แต่ AVR จะทำอะไร
แผนภาพการเดินสายไฟ ส่วนประกอบจะเป็นดังนี้:
จอแสดงผลเชื่อมต่อกับบัส I2C ของไมโครคอนโทรลเลอร์ เราเชื่อมต่อปุ่มต่างๆกับพินฟรีอื่น ๆ เพิ่มสวิตช์เพื่อเปิด / ปิดระบบ และโดยทั่วไปนั่นคือทั้งหมดที่มันยังคงเชื่อมต่อพลังงาน
โปรแกรมเมอร์ทำการโหลดเฟิร์มแวร์ลงในไมโครคอนโทรลเลอร์ตามรูปแบบต่อไปนี้:
ตอนนี้เรามาเริ่มการประชุมกันแล้วจัดการองค์ประกอบทั้งหมดบนเขียงหั่นขนม ลองรวบรวมและดูว่ามันมีลักษณะอย่างไร
มันเปิดออกนักพรตค่อนข้าง ไม่เลว ส่วนเกินของเขียงหั่นขนมสามารถตัดออกได้
ตอนนี้เราแก้ไขส่วนประกอบทั้งหมดเพียงแค่บัดกรีขาของพวกเขา
ตอนนี้คุณต้องเชื่อมต่อข้อสรุปตามรูปแบบ เพื่อจุดประสงค์นี้ผู้เขียนแนะนำให้ใช้ลวดยึดจีนแบบบาง
และเพื่อความสะดวกคุณสามารถใช้ไดอะแกรมการเชื่อมต่อที่ทำมิเรอร์นี้ได้
สายเหล่านี้มีฉนวนกันความร้อนบาง ๆ ที่คุณสามารถบัดกรีได้โดยตรง ฉนวนกันความร้อนจะละลายและลวดจะถูกบัดกรี
จากนั้นดำเนินการปิดผนึกช่องใส่แบตเตอรี่และสวิตช์ ช่องจะต้องได้รับการแก้ไขเพิ่มเติมด้วยปืนกาวร้อน
นั่นคือทั้งหมดที่ระบบประกอบมันยังคงดาวน์โหลดเฟิร์มแวร์ เราจะฉาย“ ก้อนหิน” แยกจากกันโดยเชื่อมต่อกับโปรแกรมเมอร์บนเขียงหั่นขนม
เฟิร์มแวร์เช่นเดียวกับโครงการทั้งหมดของผู้เขียนอยู่ในโดเมนสาธารณะและสามารถดาวน์โหลดได้ นอกจากนี้ในหน้าโครงการคุณจะพบไดอะแกรมและข้อมูลที่จำเป็นอื่น ๆ ทั้งหมดในโครงการนี้
เราจะไม่อยู่ในรายละเอียดการดาวน์โหลดหากมีสิ่งที่ไม่ชัดเจนคุณสามารถดูคำแนะนำโดยละเอียดสำหรับผู้แต่งได้ตลอดเวลา
สำหรับเฟิร์มแวร์เพียงติดตั้ง Arduino IDE ติดตั้งเคอร์เนลสำหรับการทำงานกับไมโครคอนโทรลเลอร์ Attiny ซีรีส์เลือกบอร์ดเลือกโปรแกรมเมอร์
จากนั้นเราเลือกความถี่ 8 หรือ 16 MHz เปิดแท็บ“ เครื่องมือ” ค้นหาและเลือก“ บันทึกตัวโหลด”
ไม่มีตัวโหลด แต่ไมโครคอนโทรลเลอร์จะปรับตามความถี่ที่ต้องการ จากนั้นเลือกแท็บ "ร่าง" - "ดาวน์โหลดผ่านโปรแกรมเมอร์" และเรารอจนกว่าภาพร่างจะถูกโหลดเข้าไปในไมโครคอนโทรลเลอร์
ตอนนี้เรานำ“ หิน” ออกมาและใส่เข้าไปในหัวใจของมินิเกมคอนโซลของเรา
อย่างที่คุณเห็นมันใช้งานได้! และตอนนี้เรามาดูสิ่งที่เรามีในเฟิร์มแวร์กันดีกว่า ATtiny85 เป็นไมโครคอนโทรลเลอร์ที่มี RAM 512 ไบต์ซึ่งเล็กมาก 99% ของไลบรารีสำหรับทำงานกับจอแสดงผลใช้บัฟเฟอร์ที่ด้านข้างของไมโครคอนโทรลเลอร์เพื่อวาดภาพใหม่อย่างถูกต้องเนื่องจากจอแสดงผลนี้ไม่สามารถอ่านข้อมูลจากบัฟเฟอร์ของตัวเองและมันอยู่ที่นั่น
บัฟเฟอร์สำหรับการแสดงผลขนาด 128 * 32 พิกเซลนี้จะใช้เวลา 512 ไบต์หากเราต้องการจดจำสถานะของแต่ละบิตนั่นคือพิกเซล
นอกจากบัฟเฟอร์แล้วเรายังต้องจัดเก็บข้อมูลอื่นดังนั้นตัวเลือกนี้จึงไม่พอดีกับขนาดหน่วยความจำ
ดังนั้นจึงตัดสินใจลดความละเอียดในการแสดงผลเป็น 64 * 16 พิกเซลโดยกำหนดบัฟเฟอร์สี่เหลี่ยมเป็น 4 พิกเซล
ผู้เขียนทำงานกับจอแสดงผลนี้โดยตรงและจัดการเพื่อใช้ความคิดของเขาสำเร็จ แบบร่างอาจมีประโยชน์สำหรับผู้ที่ต้องการทำงานกับจอแสดงผลนี้โดยใช้ Attiny
ตอนนี้เกี่ยวกับเกมเอง มันใช้งานได้ง่ายมาก ลูกบอลเคลื่อนที่บนตัวจับเวลาแยกต่างหากการเคลื่อนที่นั้นประกอบด้วยการลบจุดที่มีพิกัดเดียวกันและเพิ่มจุดใหม่ในพิกัดใหม่
การคำนวณพิกัดเป็นเพียงการเพิ่มค่าความเร็วให้กับพิกัดในระบบการแสดงผล
เมื่อลูกบอลออกไปนอกกำแพงแนวนอนมันจะกระดอนมันออกไปโดยเปลี่ยนองค์ประกอบแนวตั้งของความเร็วไปทางตรงข้ามนั่นคือมีเครื่องหมายลบ (-)
นอกจากนี้โปรแกรมจะตรวจสอบขอบเขตแนวตั้งของสนามเล่นถ้าลูกบอลถูกตีด้วยไม้ (ดีหรืออะไรก็ตามที่คุณเรียกอย่างถูกต้อง) จากนั้นก็ตีกลับและมุมตีกลับเป็นแบบสุ่ม
หากลูกบอลพังกำแพงด้านหลังไม้ตีผู้เล่นเสียรอบปัจจุบันและฝ่ายตรงข้ามได้รับแต้ม
การเคลื่อนไหวของแร็กเกตของผู้เล่นนั้นถูกนำไปใช้ในลักษณะเดียวกับการเคลื่อนที่ของลูกบอลนั่นคือแร็กเกตเก่าจะถูกลบและอันใหม่จะถูกดึงออกมาพร้อมกับพิกัดใหม่แล้ว พิกัดจะเปลี่ยนไปเมื่อคุณคลิกที่ปุ่ม
ดังนั้นจึงปรากฎเร็วกว่าการทำความสะอาดจอแสดงผลทั้งหมดและเรนเดอร์องค์ประกอบทั้งหมดอีกครั้ง
ตอนนี้สำหรับแร็กเก็ตของฝ่ายตรงข้าม มันถูกควบคุมโดย AI (ปัญญาประดิษฐ์)
แน่นอนว่าปัญญาประดิษฐ์นั้นถูกกล่าวเสียงดังอย่างแน่นอน แต่อย่างไรก็ตามปัญญานี้ทำสิ่งที่ง่ายมากกล่าวคือมันทำให้ไม้เคลื่อนที่ไปในทิศทางที่ลูกอยู่ในขณะนี้ขณะที่พยายามจัดตำแหน่งศูนย์ตามแนวแกนกับพิกัดแนวตั้งของลูก เพื่อที่จะเอาชนะคู่ต่อสู้ได้ผู้เขียนทำให้เขาช้าลงนั่นคือเขาคำนวณการเคลื่อนที่ครั้งต่อไปของเขาอีกครั้งโดยตัวจับเวลาและอาจไม่มีเวลาจับลูกบอลและขับไล่เขาออกไป
นอกจากนี้ในเกมยังใช้กลไกของการเพิ่มความซับซ้อน ทุก ๆ 10 คะแนนแก่ผู้เล่นความเร็วของลูกบอลเพิ่มขึ้น นอกจากนี้ความเร็วปฏิกิริยาของ AI (คู่ต่อสู้) ก็เพิ่มขึ้นเช่นกัน
เป็นผลให้ที่นี่เป็นเช่น Pong ง่าย ๆ ไม่ใช่วิดีโอเกมนี้ได้รับการพัฒนาขึ้นเป็นอย่างแรกเพราะแม้แต่นักเขียนโปรแกรมมือใหม่ก็สามารถเขียนได้ แต่แม้จะมีความเรียบง่ายที่ชัดเจนของโครงการความยุ่งยากกับการแสดงของจีนใช้เวลาประมาณ 20 ชั่วโมงของเวลาที่บริสุทธิ์จากผู้เขียน ในเวลาเดียวกันเขาไม่ได้คำนึงถึงเวลาที่ใช้ในการเขียนรหัสของเกมและขั้นตอนการทำงานอื่น ๆ ที่เกี่ยวข้องกับการแก้ไขข้อบกพร่องและการตั้งค่าวงจร
ในสิ่งนี้เสียงพึมพำตัวเองเป็นกระบวนการประกอบไม่ใช่แอปพลิเคชันการพัฒนาเกมแม้แต่เกมง่ายๆเหล่านั้นก็น่าสนใจทีเดียว โดยเฉพาะอย่างยิ่งเมื่อคุณพยายามที่จะผลักดันพวกเขาเข้าไปในไมโครคอนโทรลเลอร์ขนาดเล็กมาก และเมื่อการแสดงภาษาจีนรอคุณอยู่ใกล้ ๆ ...
นั่นคือทั้งหมดที่ ขอบคุณสำหรับความสนใจของคุณ แล้วพบกันเร็ว ๆ นี้!
วิดีโอของผู้แต่ง: