INHOUDSOPGAWE:

Arduino Hangman in Morse: 9 stappe
Arduino Hangman in Morse: 9 stappe

Video: Arduino Hangman in Morse: 9 stappe

Video: Arduino Hangman in Morse: 9 stappe
Video: Morse Code Converter with arduino 2024, Junie
Anonim
Arduino Hangman in Morse
Arduino Hangman in Morse

In hierdie tutoriaal sal ek jou wys hoe om jou eie Arduino op te stel om Hangman te speel deur Morse -kode te stuur met 'n eenvoudige flitslig of die fakkelfunksie vanaf jou selfoon.

Al wat u hoef te volg is: 'n Arduino-bord. 10 LED-ligte Drade om dit alles te verbind. Ekstra: 'n Piezo-element (om klank by te voeg).

Stap 1: Stel die LED-ligte op

Die opstel van die LED-ligte
Die opstel van die LED-ligte

Hierdie speletjie Morse sal gebruik maak van 4 ligte om die 4 letters in die woord aan te dui wat aangeraai moet word en 5 ligte om die lewens aan te dui waarmee die speler moet raai, dus moet u eerstens 9 LED's aansluit -ligte op die gewone manier, soos op die foto gesien kan word.

Stap 2: Voeg 'n Makeshift Light Sensor by

Ons kan nie geld in elektroniese winkels gooi nie, so ek het besluit om hierdie projek goedkoop te hou deur 'n eenvoudige LED-lig as 'n tydelike ligsensor te gebruik.

Al wat u hoef te doen is om die pluskant van die LED-lig aan te sluit op een van u analoog-poort (in my geval A0) en die min-kant aan u grond.

Stap 3: Voeg u woordeboek by

Voeg u woordeboek by
Voeg u woordeboek by

Eerstens, laat ons begin deur 'n soort woordeboek by te voeg om letters na die ooreenstemmende Morse -kodes te vertaal. Om dit te doen, maak ons eenvoudig 'n skikking van 26 by 5, met die eerste gleuf van elke sekondêre skikking met die letter en die vier volgende gleuwe met die ooreenstemmende Morse -kode of 'n spasie as daar geen kode meer is nie. Byvoorbeeld, met die letter s het die eerste gleuf 's', die tweede, derde en vierde gleuf 'n '.' en die laaste slot het ''.

Stap 4: Laat die ligte standaard brand

Laat die ligte standaard brand
Laat die ligte standaard brand
Laat die ligte standaard brand
Laat die ligte standaard brand

In hierdie stap maak ons seker dat die ligte aan is sodra die program begin, en Morse die letter wat hulle voorstel sodra die gebruiker dit reg geraai het (die kode hiervoor sal in stap 6 geskryf word). Ons sorg ook dat daar net soveel ligte vir die lewens aan is as wat die speler lewens oor het.

Maak hiervoor seker dat u 'n skikking met die poortgetalle en heelgetalle op 0 het om die tyd aan te dui waarop die lig moet aan, af en watter deel van die Morse die LED-lig tans vertoon.

Stap 5: Voeg die invoer by

Voeg die invoer by
Voeg die invoer by

Nou skryf ons die kode om te kyk of die speler die LED-lig wat aan ons analoogpoort A0 gekoppel is, laat skyn, en of hulle dit in die regte letter moet vertaal.

Om seker te maak dat die lesing korrek is, bereken ons gemiddeld elke 20 metings deur die LED-lig en gebruik die getal om vas te stel of die lig af is of aan is. Om dit te doen, stel ons aan die begin van die program NUM_AVG in op die aantal kere wat ons wil hê dat dit die lig moet kontroleer voordat dit gemiddeld word. Hoe hoër hierdie getal is, hoe akkurater is die lesing, maar dit kan ook vertragings veroorsaak.

msBtnPushed verteenwoordig die tydsduur waarvoor die lig aangeskakel is. lastPressed is 'n Boolean wat byhou of die lig in die vorige lus was.

Stap 6: hantering van die invoer

Die hantering van die insette
Die hantering van die insette
Die hantering van die insette
Die hantering van die insette

Vir hierdie stap kyk ons na wat ons moet doen sodra genoeg tyd verloop het om aan te neem dat daar nie meer Morse bygevoeg sal word nie, en ons moet kyk of die Morse 'n brief vorm en of dit 'n korrekte letter is.

Om dit te kan doen, moet ons die string wordToGuess stel op die woord wat ons wil hê ons spelers moet raai. Ek het persoonlik 'n ewekansige getalgenerator om dit aan die begin op 'n ewekansige woord te stel, maar u kan dit ook eenvoudig op 'n enkele woord stel.

Ons moet ook seker maak dat die toonbank elke lus met een styg, anders sou die hele program niks doen nie. Verder het ek die vertragingsfunksie bygevoeg om seker te maak dat daar elke milisekonde 'n lus is.

PS: Al die Serial.println -funksies is slegs vir toetsdoeleindes. Hulle kan na voltooiing verwyder word.

Die goodTimer en badTimer is eenvoudig waardes as u van plan is om 'n Piezo -element te gebruik om klank by te voeg. As u dit wil doen, moet u ook die kode byvoeg in die tweede prentjie, wat die klanke speel.

Stap 7: Oorsig van die korrek gelyste letters

Oorsig van die korrek gisbriewe
Oorsig van die korrek gisbriewe

Soos voorheen belowe, in hierdie stap sal ons die ligte wat die letters wat korrek geraai is, Morse tot hul letter maak.

Hiervoor het ek twee funksies geskryf: morseThis en nextLetter. Dit gebruik die getalle wat ons voorheen in ons timers -reeks gestel het en verander dit, afhangende van watter deel van die Morse -kode dit tans skyn.

As die timer die tyd bereik waarop die lig moet aangaan, skakel dit eenvoudig die lig aan en voer die kode uit om nuwe tydtellers in te stel om die lig uit en weer aan te skakel. af, dit skakel die lig af en stel dan die kode in om die volgende deel van die letter voor te stel. As daar geen volgende deel is nie, stel dit dit terug na die eerste deel.

Stap 8: Hersien ons opstelling en herstel

Hersien ons opstelling en herstel
Hersien ons opstelling en herstel

Die program sal natuurlik nie werk as die ligte nie ingestel is op uitvoer en invoer nie. Ek voeg ook 'n ewekansige getalgenerator by om 'n woord by te voeg uit 'n lys woorde wat ek in 'n skikking met die naam wordsToGuess geplaas het.

Daarbenewens moet ons die reset -funksie byvoeg en seker maak dat alle waardes teruggestel word na standaard.

Stap 9: Alle veranderlikes in een prent

Alle veranderlikes in een prent
Alle veranderlikes in een prent

Uiteindelik kan u dit gebruik om te kyk of u al die nodige veranderlikes korrek opgestel het.

Geniet dit nou om Hangman in Morse te speel!

Aanbeveel: