สารบัญ:

เกม Arduino Sorta Sudoku: 3 ขั้นตอน (พร้อมรูปภาพ)
เกม Arduino Sorta Sudoku: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เกม Arduino Sorta Sudoku: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เกม Arduino Sorta Sudoku: 3 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino TETRIS Game With RGB LEDs 2024, พฤศจิกายน
Anonim
เกม Arduino Sorta Sudoku
เกม Arduino Sorta Sudoku

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

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

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

ฮาร์ดแวร์สามารถใช้กับ Arduino เวอร์ชันใดก็ได้ ฉันสร้างต้นแบบโดยใช้นาโน แล้วเบิร์นโค้ดลงในชิป ATMega328 นั่นคือชิปตัวเดียวกับที่ใช้ในนาโน แต่การใช้เพียงตัวมันเองช่วยให้มีโครงสร้างที่กะทัดรัดยิ่งขึ้นและใช้พลังงานน้อยลง อย่างที่คุณเห็น ฉันสร้างวงจรบนเขียงหั่นขนมขนาดเล็กที่เสียบไว้บนโมดูล LCD อีกแง่มุมที่แตกต่างคือนาโนทำงานที่ 16-MHz โดยใช้คริสตัลภายนอก แต่ฉันเลือกใช้ออสซิลเลเตอร์ 8-MHz ในตัวสำหรับชิป ATMega328 ที่ช่วยประหยัดชิ้นส่วนและพลังงาน

อินเทอร์เฟซ LCD 2004 กับ Arduino เช่นเดียวกับ 1602 LCD ความแตกต่างที่น่าสนใจอยู่ที่การระบุตำแหน่งที่แสดง เห็นได้ชัดว่ามีความแตกต่างกันเนื่องจากมีสี่บรรทัดแทนที่จะเป็นสอง แต่ในปี 2547 บรรทัดที่สามเป็นส่วนต่อขยายของบรรทัดแรกและบรรทัดที่สี่เป็นส่วนต่อขยายของบรรทัดที่สอง กล่าวอีกนัยหนึ่ง หากคุณมีโปรแกรมทดสอบที่เพิ่งส่งสตริงอักขระไปยัง LCD อักขระที่ 21 จะปรากฏขึ้นที่จุดเริ่มต้นของบรรทัดที่สาม และอักขระที่ 41 จะกลับมาที่จุดเริ่มต้นของบรรทัดแรก ซอฟต์แวร์จัดการความแตกต่างนั้นด้วยตารางค้นหาที่อยู่ LCD

อินพุตสำหรับเกมคือเมทริกซ์สวิตช์ 4x4 แบบโฮมเมด สวิตช์แต่ละตัวจะสัมพันธ์โดยตรงกับตำแหน่งที่เท่ากันบนจอแสดงผล นอกจากนี้ยังมีสวิตช์เปิดปิดและสวิตช์รีเซ็ต สวิตช์รีเซ็ตจะล้างเกมเก่าและสร้างเกมใหม่

ฉันตัดสินใจที่จะใช้แบตเตอรี่เวอร์ชันของฉันดังนั้นฉันจึงใช้แบตเตอรี่ Li-ion 18650 ทั่วไป 3.6 โวลต์ ฉันต้องเพิ่มบอร์ดขนาดเล็กเพื่อให้สามารถชาร์จ USB และบอร์ดขนาดเล็กอีกอันเพื่อเพิ่มแรงดันแบตเตอรี่เป็น 5 โวลต์สำหรับ LCD และชิป ATMega รูปภาพแสดงโมดูลที่ฉันใช้ แต่ก็มีโมดูลแบบครบวงจรที่ทำหน้าที่ทั้งสองอย่าง

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

ซอฟต์แวร์เหมือนกันสำหรับทั้งชิป Nano และ ATMega328 ข้อแตกต่างเพียงอย่างเดียวคือวิธีการเขียนโปรแกรม ฉันใช้ซอฟต์แวร์ LCD เวอร์ชันแบร์โบนและซอฟต์แวร์ถอดรหัสเมทริกซ์แป้นพิมพ์ เหล่านี้เป็นไฟล์ "รวม" แยกต่างหากสำหรับโครงการ

คำสั่ง "random" และ "randomSeed" ใช้เพื่อช่วยสร้างเกม ฉันเพิ่มการบันทึกลงใน EEPROM ของ "seed" เพื่อให้แน่ใจว่ามีการสร้างลำดับที่แตกต่างกันในแต่ละการเพิ่มพลัง เส้นสำหรับปริศนานั้นมาจากอาร์เรย์การค้นหา 24 องค์ประกอบ สามบรรทัดแรกจะถูกสุ่มเลือกจากตาราง โดยมีการตรวจสอบเพื่อให้แน่ใจว่าบรรทัดที่เลือกไม่ขัดแย้งกับบรรทัดก่อนหน้า บรรทัดสุดท้ายถูกเติมด้วยตนเอง เนื่องจากจะมีรูปแบบที่เป็นไปได้เพียงรูปแบบเดียว ณ จุดนั้น หลังจากนั้นก็เป็นเพียงเรื่องของการสแกนเมทริกซ์ของแป้นพิมพ์และแปลงการกดปุ่มเป็นตัวเลข

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

ขั้นตอนที่ 3: แสดง

จอแสดงผล
จอแสดงผล
จอแสดงผล
จอแสดงผล
จอแสดงผล
จอแสดงผล

นี่คือภาพบางส่วนจากการแสดงต่างๆ

แนะนำ: