Indholdsfortegnelse:

Arduino Hangman in Morse: 9 trin
Arduino Hangman in Morse: 9 trin

Video: Arduino Hangman in Morse: 9 trin

Video: Arduino Hangman in Morse: 9 trin
Video: Arduino Morse Code Decoder with Audio Biasing Circuit 2024, November
Anonim
Arduino Hangman i Morse
Arduino Hangman i Morse

I denne vejledning vil jeg vise dig, hvordan du konfigurerer din egen Arduino til at spille Hangman ved at sende Morse -kode med en simpel lommelygte eller brænderfunktionen fra din telefon.

Alt du skal følge med er: Et Arduino Board. 10 LED-lamper Ledninger til at forbinde det hele. Ekstra: Et Piezo-element (for at tilføje lyd).

Trin 1: Opsætning af LED-lysene

Opsætning af LED-lamper
Opsætning af LED-lamper

Dette spil Morse vil gøre brug af 4 lys til at angive de 4 bogstaver i ordet, der skal gættes og 5 lys til at angive de liv, spilleren har tilbage at gætte med, så først og fremmest skal du tilslutte 9 LED -lys på den sædvanlige måde, som det kan ses på billedet.

Trin 2: Tilføj en makeshift lyssensor

Vi kan ikke gå rundt og smide penge på elektroniske butikker, så jeg har besluttet at holde dette projekt billigt ved at bruge et simpelt LED-lys som en provisorisk lyssensor.

Alt du skal gøre er at tilslutte plus-siden af LED-lyset til en af dine analoge porte (i mit tilfælde A0) og minus-siden til din jord.

Trin 3: Tilføj din ordbog

Tilføj din ordbog
Tilføj din ordbog

Først og fremmest, lad os starte med at tilføje en slags ordbog til at oversætte bogstaver til deres tilsvarende morse -koder. For at gøre dette laver vi simpelthen en matrix på 26 x 5, hvor den første slot i hvert sekundær array har bogstavet og de 4 næste slots har den tilsvarende Morse -kode eller et mellemrum, hvis der ikke er nogen kode tilbage. Så for eksempel med bogstavet s har den første plads 's', den anden, tredje og fjerde slot har et '.' og den sidste plads har ''.

Trin 4: Få lysene til at lyse som standard

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

I dette trin sørger vi for, at lysene er tændt, når programmet starter, og Morse det bogstav, de repræsenterer, når brugeren har gættet dem korrekt (koden til dette vil blive skrevet i trin 6). Vi sørger også for, at der kun er lige så mange lys tændt for livet, som spilleren har liv tilbage.

Inden dette skal du sørge for at have en matrix med portnumre og heltal sat til 0 for at repræsentere det tidspunkt, hvor lyset skal tændes, slukkes, og hvilken del af Morse, LED-lyset i øjeblikket viser.

Trin 5: Tilføjelse af input

Tilføjelse af input
Tilføjelse af input

Nu skal vi skrive koden for at kontrollere, om afspilleren skinner et lys på LED-lyset forbundet til vores analoge port A0, og om de skal oversætte det til det korrekte bogstav.

For at sikre, at aflæsningen er korrekt, gennemsyrer vi hver 20. aflæsning med LED-lyset og bruger det tal til at spore, om lyset er slukket eller tændt. For at gøre dette indstillede vi i starten af programmet NUM_AVG til det antal gange, vi vil have det til at kontrollere lyset, før det beregnes i gennemsnit. Jo højere dette tal er, desto mere præcis er aflæsningen, men det kan også forårsage forsinkelser.

msBtnPushed repræsenterer den tid, lyset har været tændt. lastPressed er en boolean, der holder styr på, om lyset var tændt i den forrige sløjfe.

Trin 6: Håndtering af input

Håndtering af input
Håndtering af input
Håndtering af input
Håndtering af input

I dette trin skal vi se på, hvad vi skal gøre, når der er gået nok tid til at formode, at der ikke skal tilføjes mere Morse, og vi er nødt til at kontrollere, om morsen sendte et brev til, og om det er et korrekt bogstav.

For at gøre dette skal vi have strengen wordToGuess indstillet til det ord, vi vil have vores spillere til at gætte. Jeg har personligt en tilfældig talgenerator til at indstille det til et tilfældigt ord i starten, men du kan også bare sætte det til et enkelt ord.

Vi er også nødt til at sikre, at tælleren går op med en hver sløjfe, ellers ville hele programmet ikke gøre noget. Desuden har jeg tilføjet forsinkelsesfunktionen for at sikre, at der er en sløjfe hvert milisekund.

PS: Alle Serial.println -funktioner er kun til testformål. De kan blive slettet, når de er færdige.

GoodTimer og badTimer er simpelthen værdier for, hvis du planlægger at bruge et Piezo -element til at tilføje lyd. Hvis du ønsker at gøre det, skal du også tilføje koden i det andet billede, som afspiller lydene.

Trin 7: Morsing de korrekt gættede bogstaver

Morsing de korrekt gættede breve
Morsing de korrekt gættede breve

Som lovet før, i dette trin skal vi lave lysene, der repræsenterer de bogstaver, der er gættet korrekt, Morse deres bogstav.

Til dette har jeg skrevet to funktioner: morseThis og nextLetter. Det bruger de tal, vi tidligere har angivet i vores timers array og ændrer dem afhængigt af hvilken del af Morse -koden det i øjeblikket skinner.

Hvis timeren når det tidspunkt, hvor lyset skulle tændes, tænder den simpelthen lyset og kører koden for at indstille nye timere til at slukke og tænde lyset igen. Hvis timeren når den del, hvor lyset skal gå tilbage slukket, slukker det lyset og indstiller derefter koden til at repræsentere den næste del af brevet. Hvis der ikke er nogen næste del, nulstilles den til den første del.

Trin 8: Gennemgang af vores opsætning og nulstilling

Gennemgang af vores opsætning og nulstilling
Gennemgang af vores opsætning og nulstilling

Programmet kører naturligvis ikke, hvis lysene ikke er indstillet til output og input. Jeg tilføjer også en tilfældig talgenerator for at tilføje et ord fra en liste med ord, jeg har lagt i et array kaldet wordsToGuess.

Udover det skal vi tilføje nulstillingsfunktionen og sikre, at alle værdier nulstilles til standard.

Trin 9: Alle variabler i ét billede

Alle variabler i ét billede
Alle variabler i ét billede

Endelig kan du bruge dette til at kontrollere, om du har alle de nødvendige variabler konfigureret korrekt.

Nyd nu at spille Hangman in Morse!

Anbefalede: