Indholdsfortegnelse:

Arduino Sorta Sudoku -spil: 3 trin (med billeder)
Arduino Sorta Sudoku -spil: 3 trin (med billeder)

Video: Arduino Sorta Sudoku -spil: 3 trin (med billeder)

Video: Arduino Sorta Sudoku -spil: 3 trin (med billeder)
Video: What is hidden inside the house of the dragon? | Stunning wooden puzzle 2024, November
Anonim
Arduino Sorta Sudoku spil
Arduino Sorta Sudoku spil

Mange mennesker kan lide at spille Sudoku, og børnebørnene kan lide at gætte spil, så jeg besluttede at lave et bærbart "Sorta Sudoku" -spil. I min version er spillet et 4x4 -gitter, men der findes kun et nummer. Ideen er at gætte resten af tallene i de færreste forsøg. Det er et simpelt spil, men det kan være lidt vanedannende, når du forfølger den perfekte score på 15. Spillet kræver både et element af held såvel som logik, og den bedste score, jeg har set hidtil, er 16. Tag et kig, fordi selv hvis du ikke er interesseret i at bygge spillet, kan der være nogle elementer i softwaren, som du kan bruge i et af dine egne projekter.

Trin 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Hardwaren kan være baseret på stort set enhver Arduino -version. Jeg lavede prototypen ved hjælp af en Nano og brændte derefter koden til en ATMega328 -chip. Det er den samme chip, der bruges i Nano, men ved at bruge den i sig selv giver mulighed for en mere kompakt konstruktion og mindre strømforbrug. Som du kan se, byggede jeg kredsløbet på et lille brødbræt, der piggybacks på LCD -modulet. Det andet aspekt, der er anderledes, er, at Nano kører ved 16-MHz ved hjælp af en ekstern krystal, men jeg valgte at bruge den indbyggede 8-MHz-oscillator til ATMega328-chippen. Det sparer dele og strøm.

2004 LCD -grænseflader til Arduino på samme måde som en 1602 LCD. En interessant forskel er i adresseringen af displayplaceringerne. Der er naturligvis en forskel, fordi der er fire linjer i stedet for to, men i 2004 er den tredje linje en forlængelse af den første linje og den fjerde linje er en forlængelse af den anden linje. Med andre ord, hvis du havde et testprogram, der lige sendte en række tegn til LCD'et, ville det 21. tegn dukke op i starten af den tredje linje, og det 41. tegn ombrydes tilbage til starten af den første linje. Softwaren håndterer denne forskel med en LCD -adresseopslagstabel.

Input til spillet er en hjemmelavet 4x4 switch matrix. Hver switch svarer direkte til den tilsvarende placering på displayet. Der er også en afbryder og en nulstillingskontakt. Nulstillingskontakten rydder det gamle spil og genererer et nyt spil.

Jeg besluttede at få min version batteri drevet, så jeg brugte et almindeligt 18650 Li-ion, 3,6-volts batteri. Det krævede, at jeg tilføjede et lille kort til USB -genopladning og et andet lille kort til at øge batterispændingen til 5 volt for LCD'en og ATMega -chippen. Billederne viser de moduler, jeg brugte, men der er også alt-i-et-moduler, der udfører begge funktioner.

Trin 2: Software

Softwaren er den samme for både Nano- og ATMega328 -chippen. Den eneste forskel er i programmeringsmetoden. Jeg bruger min egen barebones -version af LCD -software og tastaturmatrix -dekoder -software. Disse er separate "inkluder" -filer til projektet.

Kommandoerne "random" og "randomSeed" bruges til at hjælpe med at oprette spillet. Jeg tilføjede en gemning til EEPROM af "seed" for at sikre, at der genereres en anden sekvens ved hver opstart. Linjerne til puslespillet er afledt af et opslagsarray med 24 elementer. De tre første linjer vælges tilfældigt fra tabellen med kontroller for at sikre, at en valgt linje ikke er i konflikt med en tidligere linje. Den sidste linje udfyldes manuelt, fordi der kun vil være et muligt mønster på det tidspunkt. Derefter er det bare et spørgsmål om at scanne tastaturmatrixen og konvertere tastetrykkene til tal.

For at gætte et tal skal du trykke gentagne gange på den tilhørende kontakt. Hvert tryk øger det viste nummer. Hvis du overskrider det ønskede nummer, skal du bare trykke på. Hvis du slipper kontakten et sekund, låser den det sidste viste nummer. Hvis nummeret er forkert, slettes nummeret, og du kan prøve igen. Hvert gæt øger den viste tæller, og når et tal er korrekt gættet, deaktiveres matrixkontakten effektivt.

Trin 3: Viser

Viser
Viser
Viser
Viser
Viser
Viser

Her er nogle billeder af de forskellige displays.

Anbefalede: