Innehållsförteckning:

Arduino Hangman in Morse: 9 steg
Arduino Hangman in Morse: 9 steg

Video: Arduino Hangman in Morse: 9 steg

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

I denna handledning kommer jag att visa dig hur du ställer in din egen Arduino för att spela Hangman genom att skicka Morse -kod med en enkel ficklampa eller fackelfunktionen från din telefon.

Allt du behöver följa är: Ett Arduino-kort. 10 LED-lampor Ledningar för att ansluta allt. Extra: Ett Piezo-element (för att lägga till ljud).

Steg 1: Installera LED-lamporna

Inställning av LED-lampor
Inställning av LED-lampor

Detta Morse -spel kommer att använda 4 lampor för att indikera de 4 bokstäverna i ordet som måste gissas och 5 lampor för att indikera de liv som spelaren har kvar att gissa med, så först och främst måste du ansluta 9 LED -lampor på vanligt sätt, som kan ses på bilden.

Steg 2: Lägg till en Makeshift Light Sensor

Vi kan inte gå runt och kasta pengar på elektronikbutiker, så jag har bestämt mig för att hålla detta projekt billigt genom att använda en enkel LED-lampa som en provisorisk ljussensor.

Allt du behöver göra är att ansluta plus-sidan av LED-lampan till en av dina analoga portar (i mitt fall A0) och minussidan till din mark.

Steg 3: Lägg till din ordlista

Lägg till din ordbok
Lägg till din ordbok

Först och främst, låt oss börja med att lägga till ett slags ordlista för att översätta bokstäver till motsvarande morskoder. För att göra detta gör vi helt enkelt en array med 26 x 5, där den första platsen i varje sekundär array har bokstaven och de 4 nästa luckorna har motsvarande Morse -kod eller ett mellanslag om det inte finns någon kod kvar. Så till exempel med bokstaven s har den första platsen 's', den andra, tredje och fjärde platsen har en '.' och den sista platsen har ''.

Steg 4: Få lamporna att lysa som standard

Gör att lamporna tänds som standard
Gör att lamporna tänds som standard
Gör att lamporna tänds som standard
Gör att lamporna tänds som standard

I detta steg ser vi till att lamporna är tända när programmet startar och Morse bokstaven de representerar när användaren har gissat dem korrekt (koden för detta kommer att skrivas i steg 6). Vi ser också till att det bara är lika många lampor tända för livet som spelaren har liv kvar.

Innan detta, se till att du har en array med portnummer och heltal som är inställda på 0 för att representera den tid då lampan ska tändas, släckt och vilken del av Morse som LED-lampan visar för närvarande.

Steg 5: Lägga till ingången

Lägga till ingången
Lägga till ingången

Nu ska vi skriva koden för att kontrollera om spelaren lyser på LED-lampan som är ansluten till vår analoga port A0, och om de ska översätta den till rätt bokstav.

För att säkerställa att avläsningen är korrekt, genomsnitt vi ut var 20: e avläsning med LED-lampan och använder det numret för att spåra om lampan är släckt eller på. För att göra detta, i början av programmet ställer vi in NUM_AVG till antalet gånger vi vill att det ska kontrollera ljuset innan det görs i genomsnitt. Ju högre detta tal är, desto mer exakt är avläsningen, men det kan också orsaka förseningar.

msBtnPushed representerar den tid som ljuset har varit på för. lastPressed är en boolean som håller reda på om lampan var på i den föregående slingan.

Steg 6: Hantera inmatningen

Hantera ingången
Hantera ingången
Hantera ingången
Hantera ingången

För det här steget ska vi titta på vad vi ska göra när tillräckligt med tid har gått för att anta att inte mer Morse kommer att läggas till, och vi måste kontrollera om morsen skickade in ett brev och om det är en korrekt bokstav.

För att göra detta måste vi ha strängen wordToGuess inställd på det ord vi vill att våra spelare ska gissa. Jag har personligen en slumptalsgenerator för att ställa in det till ett slumpmässigt ord i början, men du kan också helt enkelt ställa in det på ett enda ord.

Vi måste också se till att räknaren går upp med en varje slinga, annars skulle inte hela programmet göra någonting. Dessutom har jag lagt till fördröjningsfunktionen för att se till att det finns en slinga varje milsekund.

PS: Alla Serial.println -funktioner är bara för teständamål. De kan raderas när de är klara.

GoodTimer och badTimer är helt enkelt värden för om du planerar att använda ett Piezo -element för att lägga till ljud. Om du vill göra det måste du också lägga till koden i den andra bilden, som spelar ljuden.

Steg 7: Morsa de korrekt gissade bokstäverna

Morsing de korrekt gissade bokstäverna
Morsing de korrekt gissade bokstäverna

Som utlovat tidigare, i detta steg ska vi göra lamporna som representerar bokstäverna som har gissats korrekt Morse deras bokstav.

För detta har jag skrivit två funktioner: morseThis och nextLetter. Det använder de siffror som vi tidigare har ställt in i vår timers array och ändrar dem beroende på vilken del av Morse -koden den för närvarande lyser.

Om timern når den tid då lampan ska tändas, tänds den helt enkelt och kör koden för att ställa in nya timers för att släcka och tända lampan igen. Om timern når den del som ljuset ska gå tillbaka släckt, det släcker lampan och ställer sedan in koden för att representera nästa del av bokstaven. Om det inte finns någon nästa del återställs den till den första delen.

Steg 8: Granska vår installation och återställning

Granska vår installation och återställning
Granska vår installation och återställning

Självklart körs inte programmet om lamporna inte är inställda på utmatning och inmatning. Jag lägger också till en slumptalsgenerator för att lägga till ett ord från en lista med ord jag har lagt i en array som heter wordToGuess.

Förutom det bör vi lägga till återställningsfunktionen och se till att alla värden återställs till standard.

Steg 9: Alla variabler i en bild

Alla variabler i en bild
Alla variabler i en bild

Slutligen kan du använda detta för att kontrollera om du har alla nödvändiga variabler korrekt inställda.

Njut nu av att spela Hangman in Morse!

Rekommenderad: