Innholdsfortegnelse:

Arduino Hangman in Morse: 9 trinn
Arduino Hangman in Morse: 9 trinn

Video: Arduino Hangman in Morse: 9 trinn

Video: Arduino Hangman in Morse: 9 trinn
Video: Morse Code Converter with arduino 2024, Juni
Anonim
Arduino Hangman i Morse
Arduino Hangman i Morse

I denne opplæringen vil jeg vise deg hvordan du konfigurerer din egen Arduino for å spille Hangman ved å sende Morse -kode med en enkel lommelykt eller fakkelfunksjonen fra telefonen.

Alt du trenger å følge med er: Et Arduino-bord. 10 LED-lys Ledninger for å koble det hele. Ekstra: Et Piezo-element (for å legge til lyd).

Trinn 1: Sette opp LED-lysene

Sette opp LED-lysene
Sette opp LED-lysene

Dette spillet Morse vil bruke 4 lys for å indikere de 4 bokstavene i ordet som må gjettes og 5 lys for å indikere livene spilleren har igjen å gjette med, så først og fremst må du koble til 9 LED -lys på vanlig måte, som det kan sees på bildet.

Trinn 2: Legg til en Makeshift Light Sensor

Vi kan ikke gå rundt og kaste penger på elektronikkbutikker, så jeg har bestemt meg for å holde dette prosjektet billig ved å bruke et enkelt LED-lys som en provisorisk lyssensor.

Alt du trenger å gjøre er å koble plussiden til LED-lyset til en av dine analoge porter (i mitt tilfelle A0) og minus-siden til bakken.

Trinn 3: Legg til ordlisten din

Legg til ordboken din
Legg til ordboken din

Først av alt, la oss starte med å legge til en slags ordbok for å oversette bokstaver til de tilsvarende morse -kodene. For å gjøre dette lager vi ganske enkelt en matrise på 26 x 5, med det første sporet i hvert sekundært array som har bokstaven og de 4 neste sporene har den tilsvarende morse -koden eller et mellomrom hvis det ikke er noen kode igjen. Så for eksempel med bokstaven s har det første sporet 's', det andre, tredje og fjerde sporet har et '.' og den siste sporet har ''.

Trinn 4: Få lysene til å lyse som standard

Få lysene til å lyse som standard
Få lysene til å lyse som standard
Få lysene til å lyse som standard
Få lysene til å lyse som standard

I dette trinnet sørger vi for at lysene er på når programmet starter og Morse bokstaven de representerer når brukeren har gjettet riktig (koden for dette vil bli skrevet i trinn 6). Vi sørger også for at det bare er så mange lys på for livet som spilleren har liv igjen.

Før dette må du kontrollere at du har en matrise med portnumre og heltall satt til 0 for å representere tidspunktet da lyset skal gå på, av og hvilken del av Morse LED-lyset viser for øyeblikket.

Trinn 5: Legge til inndata

Legger til inndata
Legger til inndata

Nå skal vi skrive koden for å kontrollere om spilleren skinner et lys på LED-lyset som er koblet til vår analoge port A0, og om de skal oversette den til riktig bokstav.

For å være sikker på at avlesningen er korrekt, gjennomsnitt vi hver 20. avlesning av LED-lyset og bruker det tallet til å spore om lyset er av eller på. For å gjøre dette, ved starten av programmet, satte vi NUM_AVG til antall ganger vi vil at det skal kontrollere lyset før det blir gjennomsnittlig. Jo høyere dette tallet er, desto mer nøyaktig er avlesningen, men det kan også forårsake forsinkelser.

msBtnPushed representerer hvor lang tid lyset har vært på. lastPressed er en boolsk som holder orden på om lyset var på i forrige sløyfe.

Trinn 6: Håndtering av inngangen

Håndtering av inngangen
Håndtering av inngangen
Håndtering av inngangen
Håndtering av inngangen

For dette trinnet skal vi ta en titt på hva vi skal gjøre når nok tid har gått til å anta at ikke mer Morse kommer til å bli lagt til, og vi må sjekke om Morse sendte inn et brev og om det er en riktig bokstav.

For å gjøre dette må vi ha strengen wordToGuess satt til ordet vi vil at spillerne våre skal gjette. Jeg har personlig en tilfeldig tallgenerator for å sette det til et tilfeldig ord i starten, men du kan også sette det til et enkelt ord.

Vi må også sørge for at telleren går opp med en hver sløyfe, ellers ville ikke hele programmet gjort noe. Videre har jeg lagt til forsinkelsesfunksjonen for å sikre at det er en sløyfe hvert milisekund.

PS: Alle Serial.println -funksjonene er bare for testformål. De kan bli slettet når de er fullført.

GoodTimer og badTimer er ganske enkelt verdier for hvis du planlegger å bruke et Piezo -element for å legge til lyd. Hvis du vil gjøre det, må du også legge til koden i det andre bildet, som spiller lydene.

Trinn 7: Morsing de korrekt gjettede bokstavene

Morsing de riktig gjettede bokstavene
Morsing de riktig gjettede bokstavene

Som lovet før, i dette trinnet skal vi lage lysene som representerer bokstavene som er gjettet riktig Morse til bokstaven deres.

For dette har jeg skrevet to funksjoner: morseThis og nextLetter. Den bruker tallene vi tidligere har angitt i timers -matrisen og endrer dem avhengig av hvilken del av Morse -koden den lyser for øyeblikket.

Hvis timeren når den tiden lyset skal gå på, slår den bare på og kjører koden for å sette nye tidtakere til å slå lyset av og på igjen. Hvis timeren når delen der lyset skal gå tilbake av, den slår av lyset og setter deretter koden til å representere den neste delen av bokstaven. Hvis det ikke er noen neste del, tilbakestiller den den til den første delen.

Trinn 8: Gjennomgå oppsettet og tilbakestillingen

Gjennomgang av oppsettet og tilbakestillingen
Gjennomgang av oppsettet og tilbakestillingen

Selvfølgelig vil ikke programmet kjøre hvis lysene ikke er satt til utgang og inngang. Jeg legger også til en tilfeldig tallgenerator for å legge til et ord fra en liste med ord jeg har lagt i en matrise som heter wordsToGuess.

Dessuten bør vi legge til tilbakestillingsfunksjonen og sørge for at alle verdier tilbakestilles til standard.

Trinn 9: Alle variabler i ett bilde

Alle variabler i ett bilde
Alle variabler i ett bilde

Til slutt kan du bruke dette til å kontrollere om du har alle nødvendige variabler riktig konfigurert.

Nyt nå å spille Hangman in Morse!

Anbefalt: