Innehållsförteckning:

Arduino Sorta Sudoku -spel: 3 steg (med bilder)
Arduino Sorta Sudoku -spel: 3 steg (med bilder)

Video: Arduino Sorta Sudoku -spel: 3 steg (med bilder)

Video: Arduino Sorta Sudoku -spel: 3 steg (med bilder)
Video: Увеличение надежности схем на микроконтроллерах (Arduino, STM32, Atmel)/ на что обращать внимание. 2024, November
Anonim
Arduino Sorta Sudoku -spel
Arduino Sorta Sudoku -spel

Många gillar att spela Sudoku och barnbarnen gillar gissningsspel så jag bestämde mig för att göra ett bärbart "Sorta Sudoku" -spel. I min version är spelet ett 4x4 -rutnät men endast ett nummer tillhandahålls. Tanken är att gissa resten av siffrorna i de få försöken. Det är ett enkelt spel men det kan vara lite beroendeframkallande när du strävar efter den perfekta poängen 15. Spelet kräver både ett inslag av lycka och logik och den bästa poängen jag har sett hittills är 16. Ta en titt eftersom även Om du inte är intresserad av att bygga spelet kan det finnas några delar av programvaran som du kan använda i ett av dina egna projekt.

Steg 1: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara

Hårdvaran kan baseras på i stort sett vilken som helst Arduino -version. Jag gjorde prototypen med en Nano och brände sedan koden till ett ATMega328 -chip. Det är samma chip som används i Nano men att använda det i sig ger en mer kompakt konstruktion och mindre strömförbrukning. Som du kan se byggde jag kretsen på en liten brödbräda som piggybacks på LCD -modulen. Den andra aspekten som är annorlunda är att Nano körs vid 16-MHz med hjälp av en extern kristall men jag valde att använda den inbyggda 8-MHz-oscillatorn för ATMega328-chipet. Det sparar delar och kraft.

2004 LCD -gränssnittet till Arduino på samma sätt som en 1602 LCD. En intressant skillnad är adresseringen av displayplatserna. Det är uppenbarligen en skillnad eftersom det finns fyra rader istället för två men under 2004 är den tredje raden en förlängning av den första raden och den fjärde raden är en förlängning av den andra raden. Med andra ord, om du hade ett testprogram som just skickade ut en rad tecken till LCD -skärmen, skulle det 21: e tecknet dyka upp i början av den tredje raden och det 41: e tecknet sveper tillbaka till början av den första raden. Programvaran hanterar den skillnaden med en LCD -adressuppslagstabell.

Ingången för spelet är en hemgjord 4x4 -switchmatris. Varje switch motsvarar direkt motsvarande plats på displayen. Det finns också en strömbrytare och en återställningsbrytare. Återställningsomkopplaren rensar det gamla spelet och genererar ett nytt spel.

Jag bestämde mig för att göra min version batteridrivna så jag använde ett vanligt 18650 Li-ion, 3,6-volts batteri. Det krävde att jag lägger till ett litet kort för att möjliggöra USB -laddning och ett annat litet kort för att öka batterispänningen till 5 volt för LCD -skärmen och ATMega -chipet. Bilderna visar modulerna jag använde men det finns också allt-i-ett-moduler som gör båda funktionerna.

Steg 2: Programvara

Programvaran är densamma för både Nano- och ATMega328 -chipet. Den enda skillnaden är i programmeringsmetoden. Jag använder min egen barebones -version av LCD -programvara och tangentbordsmatrisavkodningsprogramvara. Dessa är separata "inkludera" -filer för projektet.

Kommandona "random" och "randomSeed" används för att skapa spelet. Jag lade till en spara till EEPROM för "seed" för att säkerställa att en annan sekvens genereras vid varje uppstart. Linjerna för pusslet härrör från en 24-elementslagsuppsättning. De tre första raderna väljs slumpmässigt från tabellen, med kontroller för att se till att en vald rad inte står i konflikt med en tidigare rad. Den sista raden fylls manuellt eftersom det bara kommer att finnas ett möjligt mönster vid den punkten. Därefter är det bara att skanna tangentbordsmatrisen och konvertera knapptryckningarna till siffror.

För att gissa ett nummer, tryck på motsvarande omkopplare upprepade gånger. Varje tryck ökar det visade antalet. Om du överskrider det nummer du vill, fortsätt bara att trycka på. Om du släpper omkopplaren en sekund låses den senast visade siffran. Om numret är felaktigt rensas numret och du kan försöka igen. Varje gissning ökar den visade räknaren och när ett tal är korrekt gissat, är matrisomkopplaren inaktiverad.

Steg 3: Visar

Visar
Visar
Visar
Visar
Visar
Visar

Här är några bilder på de olika displayerna.

Rekommenderad: