Inhoudsopgave:

Arduino Sorta Sudoku-spel: 3 stappen (met afbeeldingen)
Arduino Sorta Sudoku-spel: 3 stappen (met afbeeldingen)

Video: Arduino Sorta Sudoku-spel: 3 stappen (met afbeeldingen)

Video: Arduino Sorta Sudoku-spel: 3 stappen (met afbeeldingen)
Video: Make a CSGO C4 prop - Part 4 (Software) Finale 2024, November
Anonim
Arduino Sorta Sudoku-spel
Arduino Sorta Sudoku-spel

Veel mensen spelen graag Sudoku en de kleinkinderen houden van raadspelletjes, dus besloot ik een draagbaar "Sorta Sudoku"-spel te maken. In mijn versie is het spel een 4x4 raster, maar er wordt slechts één nummer gegeven. Het idee is om de rest van de getallen in zo min mogelijk pogingen te raden. Het is een eenvoudig spel, maar het kan een beetje verslavend zijn als je de perfecte score van 15 nastreeft. Het spel vereist zowel een element van geluk als logica en de beste score die ik tot nu toe heb gezien is 16. Kijk eens, want zelfs als je niet geïnteresseerd bent in het bouwen van het spel, zijn er misschien enkele elementen van de software die je in een van je eigen projecten kunt gebruiken.

Stap 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

De hardware kan gebaseerd zijn op vrijwel elke Arduino-versie. Ik deed het prototype met behulp van een Nano en brandde de code vervolgens in een ATMega328-chip. Dat is dezelfde chip die in de Nano wordt gebruikt, maar als hij alleen wordt gebruikt, is hij compacter gebouwd en wordt er minder stroom verbruikt. Zoals je kunt zien, heb ik het circuit gebouwd op een klein breadboard dat op de LCD-module meelift. Het andere aspect dat anders is, is dat de Nano op 16 MHz werkt met een extern kristal, maar ik heb ervoor gekozen om de ingebouwde 8 MHz-oscillator te gebruiken voor de ATMega328-chip. Dat scheelt onderdelen en stroom.

Het 2004 LCD-interface op de Arduino op dezelfde manier als een 1602 LCD. Een interessant verschil zit in de adressering van de weergavelocaties. Er is duidelijk een verschil omdat er vier lijnen zijn in plaats van twee, maar in de 2004 is de derde lijn een verlenging van de eerste lijn en de vierde lijn een verlenging van de tweede lijn. Met andere woorden, als u een testprogramma had dat zojuist een reeks tekens naar het LCD-scherm stuurde, zou het 21e teken verschijnen aan het begin van de derde regel en het 41e teken loopt terug naar het begin van de eerste regel. De software verwerkt dat verschil met een opzoektabel voor LCD-adressen.

De input voor het spel is een zelfgemaakte 4x4 schakelmatrix. Elke schakelaar komt rechtstreeks overeen met de equivalente locatie op het display. Er is ook een aan / uit-schakelaar en een reset-schakelaar. De reset-schakelaar wist het oude spel en genereert een nieuw spel.

Ik besloot om mijn versie op batterijen te laten werken, dus gebruikte ik een gewone 18650 Li-ion, 3,6-volt batterij. Daarvoor moest ik een klein bord toevoegen om USB-opladen mogelijk te maken en nog een klein bord om de batterijspanning op te voeren tot 5 volt voor het LCD-scherm en de ATMega-chip. De foto's tonen de modules die ik heb gebruikt, maar er zijn ook alles-in-één modules die beide functies vervullen.

Stap 2: Software

De software is hetzelfde voor zowel de Nano- als de ATMega328-chip. Het enige verschil zit in de programmeermethode. Ik gebruik mijn eigen barebones-versie van LCD-software en toetsenbordmatrixdecoderingssoftware. Dit zijn afzonderlijke "include"-bestanden voor het project.

De commando's "random" en "randomSeed" worden gebruikt om het spel te maken. Ik heb een save toegevoegd aan EEPROM van het "seed" om ervoor te zorgen dat bij elke power-up een andere reeks wordt gegenereerd. De regels voor de puzzel zijn afgeleid van een opzoekarray met 24 elementen. De eerste drie regels worden willekeurig uit de tabel geselecteerd, met controles om er zeker van te zijn dat een geselecteerde regel niet conflicteert met een vorige regel. De laatste regel wordt handmatig ingevuld omdat er op dat moment maar één patroon mogelijk is. Daarna is het gewoon een kwestie van de toetsenbordmatrix scannen en de toetsaanslagen omzetten in cijfers.

Druk herhaaldelijk op de corresponderende schakelaar om een getal te raden. Elke keer dat u op drukt, wordt het weergegeven nummer verhoogd. Als u het gewenste aantal overschrijdt, blijft u gewoon drukken. Als u de schakelaar een seconde loslaat, wordt het laatst weergegeven nummer vergrendeld. Als het nummer onjuist is, wordt het nummer gewist en kunt u het opnieuw proberen. Elke gok verhoogt de weergegeven teller en zodra een getal correct is geraden, wordt die matrixschakelaar effectief uitgeschakeld.

Stap 3: Beeldschermen

Displays
Displays
Displays
Displays
Displays
Displays

Hier zijn enkele foto's van de verschillende displays.

Aanbevolen: