Taula de continguts:

Joc Arduino Sorta Sudoku: 3 passos (amb imatges)
Joc Arduino Sorta Sudoku: 3 passos (amb imatges)

Vídeo: Joc Arduino Sorta Sudoku: 3 passos (amb imatges)

Vídeo: Joc Arduino Sorta Sudoku: 3 passos (amb imatges)
Vídeo: Нағыз ҰБТ-2017 де КЕЛГЕН НҰСҚА | Физика | 1224 - нұсқа | MegaMath 2024, De novembre
Anonim
Arduino Sorta Sudoku Joc
Arduino Sorta Sudoku Joc

A molta gent li agrada jugar al Sudoku i als néts els agraden els jocs d’endevinar, així que vaig decidir fer un joc portàtil de “Sorta Sudoku”. A la meva versió, el joc és una quadrícula 4x4, però només es proporciona un número. La idea és endevinar la resta de números en el menor nombre d’intents. És un joc senzill, però pot resultar addictiu a mesura que persegueixes la puntuació perfecta de 15. El joc requereix tant un element de sort com de lògica i la millor puntuació que he vist fins ara és 16. Fes una ullada perquè fins i tot si no us interessa crear el joc, és possible que hi hagi alguns elements del programari que pugueu utilitzar en algun dels vostres propis projectes.

Pas 1: maquinari

Maquinari
Maquinari
Maquinari
Maquinari
Maquinari
Maquinari

El maquinari es pot basar pràcticament en qualsevol versió d'Arduino. Vaig fer el prototipat amb un Nano i després vaig gravar el codi en un xip ATMega328. Aquest és el mateix xip que s’utilitza al Nano, però utilitzar-lo per si mateix permet una construcció més compacta i menys consum d’energia. Com podeu veure, he construït el circuit en una petita tauleta de suport que es troba al mòdul LCD. L'altre aspecte que és diferent és que el Nano funciona a 16 MHz mitjançant un cristall extern, però vaig optar per utilitzar l'oscil·lador integrat de 8 MHz per al xip ATMega328. Això estalvia peces i potència.

La pantalla LCD del 2004 s’interface amb l’Arduino de la mateixa manera que una pantalla LCD de 1602. Una diferència interessant es troba en l’adreça de les ubicacions de visualització. Viouslybviament hi ha una diferència perquè hi ha quatre línies en lloc de dues, però, el 2004, la tercera línia és una extensió de la primera línia i la quarta línia és una extensió de la segona línia. Dit d’una altra manera, si tinguéssiu un programa de prova que acabés d’enviar una cadena de caràcters a la pantalla LCD, el 21è caràcter apareixeria al principi de la tercera línia i el 41è caràcter es tornaria al començament de la primera línia. El programari gestiona aquesta diferència amb una taula de cerca d’adreces LCD.

L’entrada del joc és una matriu de commutadors 4x4 casolans. Cada commutador correspon directament a la ubicació equivalent a la pantalla. També hi ha un interruptor d’alimentació i un interruptor de reinici. El commutador de reinici esborra el joc antic i genera un joc nou.

Vaig decidir que la meva versió fos alimentada per bateria, de manera que vaig utilitzar una bateria comuna de 18650 Li-ion de 3,6 volts. Això requeria que afegir una petita placa per permetre la recàrrega USB i una altra petita per augmentar el voltatge de la bateria a 5 volts per a la pantalla LCD i el xip ATMega. Les imatges mostren els mòduls que he utilitzat, però també hi ha mòduls tot en un que fan les dues funcions.

Pas 2: programari

El programari és el mateix tant per al xip Nano com per al xip ATMega328. L’única diferència està en el mètode de programació. Utilitzo la meva pròpia versió barebones del programari LCD i el programari de descodificació de matriu de teclat. Es tracta de fitxers "inclosos" separats per al projecte.

Les ordres "random" i "randomSeed" s'utilitzen per ajudar a crear el joc. He afegit un guardat a EEPROM de la "llavor" per assegurar-me que es genera una seqüència diferent a cada engegada. Les línies del trencaclosques es deriven d'una matriu de cerca de 24 elements. Les tres primeres línies se seleccionen a l'atzar de la taula, amb comprovacions per assegurar-se que una línia seleccionada no entri en conflicte amb una línia anterior. L'última línia s'omple manualment perquè només hi haurà un patró possible en aquest punt. Després d’això, només es tracta d’escanejar la matriu del teclat i convertir les tecles premudes en números.

Per endevinar un número, premeu el commutador corresponent diverses vegades. Cada premsa augmenta el nombre mostrat. Si sobrepasseu el número que voleu, continueu pressionant. Si deixeu anar l'interruptor durant un segon, es bloquejarà l'últim número mostrat. Si el número és incorrecte, s'esborrarà i podreu tornar-ho a provar. Cada conjectura augmenta el comptador mostrat i, un cop s'ha endevinat correctament un número, aquest commutador de matriu es desactiva efectivament.

Pas 3: pantalles

Pantalles
Pantalles
Pantalles
Pantalles
Pantalles
Pantalles

Aquí teniu algunes imatges de les diverses pantalles.

Recomanat: