Innholdsfortegnelse:

Arduino Sorta Sudoku -spill: 3 trinn (med bilder)
Arduino Sorta Sudoku -spill: 3 trinn (med bilder)

Video: Arduino Sorta Sudoku -spill: 3 trinn (med bilder)

Video: Arduino Sorta Sudoku -spill: 3 trinn (med bilder)
Video: I Reviewed the Most Ridiculous Gadgets from my Spam Folder 2024, Kan
Anonim
Arduino Sorta Sudoku -spill
Arduino Sorta Sudoku -spill

Mange liker å spille Sudoku og barnebarna liker å gjette spill, så jeg bestemte meg for å lage et bærbart "Sorta Sudoku" -spill. I min versjon er spillet et 4x4 -rutenett, men bare ett nummer er gitt. Tanken er å gjette resten av tallene i færrest forsøk. Det er et enkelt spill, men det kan være litt avhengighetsskapende når du forfølger den perfekte poengsummen på 15. Spillet krever både et element av flaks og logikk, og den beste poengsummen jeg har sett så langt er 16. Ta en titt fordi selv Hvis du ikke er interessert i å bygge spillet, kan det være noen elementer i programvaren du kan bruke i et av dine egne prosjekter.

Trinn 1: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

Maskinvaren kan være basert på stort sett alle Arduino -versjoner. Jeg gjorde prototypingen ved hjelp av en Nano og brente deretter koden til en ATMega328 -brikke. Det er den samme brikken som ble brukt i Nano, men bruk av den i seg selv gir en mer kompakt konstruksjon og mindre strømforbruk. Som du kan se, bygde jeg kretsen på et lite brødbrett som piggybacks på LCD -modulen. Det andre aspektet som er annerledes er at Nano kjører på 16-MHz ved hjelp av en ekstern krystall, men jeg valgte å bruke den innebygde 8-MHz-oscillatoren for ATMega328-brikken. Det sparer deler og strøm.

2004 LCD -grensesnittet til Arduino på samme måte som en 1602 LCD. En interessant forskjell er adresseringen av visningsstedene. Det er åpenbart en forskjell fordi det er fire linjer i stedet for to, men i 2004 er den tredje linjen en forlengelse av den første linjen og den fjerde linjen er en forlengelse av den andre linjen. Med andre ord, hvis du hadde et testprogram som nettopp sendte ut en rekke tegn til LCD -skjermen, ville det 21. tegnet dukke opp i begynnelsen av den tredje linjen og det 41. tegnet brytes tilbake til begynnelsen av den første linjen. Programvaren håndterer denne forskjellen med et LCD -adressetabell.

Inngangen til spillet er en hjemmelaget 4x4 switch -matrise. Hver bryter svarer direkte til tilsvarende plassering på displayet. Det er også en strømbryter og en tilbakestillingsbryter. Tilbakestillingsbryteren fjerner det gamle spillet og genererer et nytt spill.

Jeg bestemte meg for å gjøre min versjon batteri drevet, så jeg brukte en vanlig 18650 Li-ion, 3,6-volts batteri. Det krevde at jeg la til et lite kort for å tillate USB -lading og et annet lite kort for å øke batterispenningen til 5 volt for LCD -en og ATMega -brikken. Bildene viser modulene jeg brukte, men det er også alt-i-ett-moduler som utfører begge funksjonene.

Trinn 2: Programvare

Programvaren er den samme for både Nano- og ATMega328 -brikken. Den eneste forskjellen er i programmeringsmetoden. Jeg bruker min egen barebones -versjon av LCD -programvare og tastaturmatrise -dekodingsprogramvare. Dette er separate "inkluderer" -filer for prosjektet.

Kommandoene "random" og "randomSeed" brukes til å lage spillet. Jeg la til en lagring i "EEPROM" av "seedet" for å sikre at en annen sekvens genereres ved hver oppstart. Linjene for puslespillet er avledet fra en oppslagsserie med 24 elementer. De tre første linjene velges tilfeldig fra tabellen, med kontroller for å sikre at en valgt linje ikke er i konflikt med en tidligere linje. Den siste linjen fylles ut manuelt fordi det bare vil være ett mulig mønster på det tidspunktet. Etter det er det bare å skanne tastaturmatrisen og konvertere tastetrykkene til tall.

Trykk på den tilhørende bryteren gjentatte ganger for å gjette et tall. Hvert trykk øker antallet som vises. Hvis du overskrider nummeret du vil ha, er det bare å trykke på. Hvis du slipper bryteren et sekund, låses det siste nummeret som vises. Hvis nummeret er feil, slettes nummeret, og du kan prøve igjen. Hvert gjetning øker den viste telleren, og når et tall er riktig gjettet, deaktiveres matrisebryteren effektivt.

Trinn 3: Viser

Viser
Viser
Viser
Viser
Viser
Viser

Her er noen bilder av de forskjellige skjermene.

Anbefalt: