Turinys:

Arduino budelis Morzėje: 9 žingsniai
Arduino budelis Morzėje: 9 žingsniai

Video: Arduino budelis Morzėje: 9 žingsniai

Video: Arduino budelis Morzėje: 9 žingsniai
Video: The Perfect Cup of Coffee by 2012 United States Barista Champion Katie Carguilo 2024, Birželis
Anonim
Arduino budelis Morzėje
Arduino budelis Morzėje

Šioje pamokoje aš jums parodysiu, kaip nustatyti savo „Arduino“žaisti „Hangman“, siunčiant Morzės kodą naudojant paprastą žibintuvėlį arba žibintuvėlio funkciją iš savo telefono.

Viskas, ko jums reikia laikytis, yra: „Arduino“plokštė. 10 LED lempučių. Laidai, norint visa tai prijungti. Papildoma: pjezo elementas (norint pridėti garsą).

1 žingsnis: LED lempučių nustatymas

LED lempučių nustatymas
LED lempučių nustatymas

Šiame Morzės žaidime bus naudojamos 4 lemputės, nurodančios 4 žodžio raides, kurias reikia atspėti, ir 5 lemputės, nurodančios žaidėjo likusius atspėti gyvenimus, todėl pirmiausia turėsite prijungti 9 šviesos diodus -šviečia įprastu būdu, kaip matyti paveikslėlyje.

2 veiksmas: pridėkite „Makeshift“šviesos jutiklį

Negalime mėtyti pinigų į elektronines parduotuves, todėl nusprendžiau, kad šis projektas būtų pigus, kaip paprastą LED lemputę kaip laikiną šviesos jutiklį.

Viskas, ką jums reikia padaryti, tai prijungti pliusinę šviesos diodo pusę prie vieno iš analoginių prievadų (mano atveju A0), o minusinę-prie žemės.

3 veiksmas: pridėkite savo žodyną

Pridėkite savo žodyną
Pridėkite savo žodyną

Pirmiausia pradėkime nuo to, kad pridėsime tam tikrą žodyną, kuris išverstų raides į atitinkamus Morzės kodus. Norėdami tai padaryti, mes tiesiog sudarome masyvą nuo 26 iki 5, o kiekvieno antrinio masyvo pirmoje vietoje yra raidė, o 4 sekančiuose - atitinkamas Morzės kodas arba tarpas, jei jo nelieka. Pavyzdžiui, naudojant raidę s, pirmasis lizdas turi „s“, antrasis, trečiasis ir ketvirtasis - „.“o galutinis lizdas turi „“.

4 veiksmas: pagal numatytuosius nustatymus įjunkite lemputes

Pagal numatytuosius nustatymus įjunkite lemputes
Pagal numatytuosius nustatymus įjunkite lemputes
Pagal numatytuosius nustatymus įjunkite lemputes
Pagal numatytuosius nustatymus įjunkite lemputes

Atlikdami šį veiksmą, įsitikiname, kad paleidus programą užsidega lemputės, o Morzei - raidė, kurią jie atstovauja, kai vartotojas teisingai juos atspėja (kodas bus parašytas 6 veiksme). Mes taip pat pasirūpiname, kad šviesų dega tik tiek gyvybių, kiek liko žaidėjui.

Prieš tai įsitikinkite, kad turite masyvą, kurio prievadų numeriai ir sveikieji skaičiai yra nustatyti į 0, kad būtų nurodytas laikas, kuriuo šviesa turėtų užsidegti, išsijungti ir kuri Morzės dalis šiuo metu rodoma.

5 veiksmas: įvesties pridėjimas

Įvesties pridėjimas
Įvesties pridėjimas

Dabar parašysime kodą, kad patikrintume, ar grotuvas šviečia šviesos diodų lempute, prijungta prie mūsų analoginio prievado A0, ir ar jie nori išversti jį į teisingą raidę.

Norėdami įsitikinti, kad rodmenys yra teisingi, mes vidutiniškai apskaičiuojame kas 20 LED lemputės rodmenų ir naudojame šį skaičių sekdami, ar šviesa yra išjungta, ar įjungta. Norėdami tai padaryti, programos pradžioje nustatėme NUM_AVG, kiek kartų norime, kad ji patikrintų šviesą prieš vidurkį. Kuo didesnis šis skaičius, tuo tikslesnis rodmuo, tačiau tai taip pat gali sukelti vėlavimą.

„msBtnPushed“nurodo laiką, kurį lemputė buvo įjungta. lastpressed yra loginis, kuris seka, ar ankstesnėje ciklo šviesa buvo įjungta.

6 veiksmas: įvesties tvarkymas

Įvesties tvarkymas
Įvesties tvarkymas
Įvesties tvarkymas
Įvesties tvarkymas

Atlikdami šį žingsnį, pažvelgsime į tai, ką daryti, kai praėjo pakankamai laiko manyti, kad daugiau Morzės nebus pridėta, ir turime patikrinti, ar Morzė atsiuntė laišką ir ar tai teisinga raidė.

Norėdami tai padaryti, turime nustatyti eilutę wordToGuess į žodį, kurį norime, kad mūsų žaidėjai atspėtų. Aš asmeniškai turiu atsitiktinių skaičių generatorių, kad pradžioje jis būtų nustatytas kaip atsitiktinis žodis, bet jūs taip pat galite tiesiog nustatyti jį į vieną žodį.

Taip pat turime įsitikinti, kad skaitiklis kiekvieną kilpą pakyla po vieną, kitaip visa programa nieko nedarytų. Be to, pridėjau uždelsimo funkciją, kad įsitikinčiau, jog kas milisekundė yra ciklas.

PS: Visos „Serial.println“funkcijos skirtos tik bandymams. Baigus juos galima ištrinti.

„GoodTimer“ir „badTimer“yra tiesiog vertybės, jei planuojate garsui pridėti „Piezo“elementą. Jei norite tai padaryti, taip pat turite pridėti antrame paveikslėlyje esantį kodą, kuris atkuria garsus.

7 žingsnis: taisykite teisingai atspėtas raides

Pataisykite teisingai atspėtas raides
Pataisykite teisingai atspėtas raides

Kaip buvo žadėta anksčiau, šiame žingsnyje mes padarysime šviesas, atspindinčias teisingai atspėtas raides, Morzes.

Tam aš parašiau dvi funkcijas: „morseThis“ir „nextLetter“. Jis naudoja skaičius, kuriuos anksčiau nustatėme savo laikmačių masyve, ir keičia juos priklausomai nuo to, kuri Morzės kodo dalis šiuo metu šviečia.

Jei laikmatis pasiekia laiką, kuriuo šviesa turėtų įsijungti, jis tiesiog įjungia šviesą ir paleidžia kodą, kad nustatytų naujus laikmačius, kad šviesa išjungtų ir vėl įjungtų. Jei laikmatis pasiekia tą dalį, kurioje šviesa turėtų grįžti atgal išjungtas, jis išjungia šviesą ir nustato kodą, kuris atspindėtų kitą raidės dalį. Jei kitos dalies nėra, ji grąžina ją į pirmą dalį.

8 veiksmas: peržiūrėkite mūsų sąranką ir nustatykite iš naujo

Mūsų sąrankos ir atkūrimo peržiūra
Mūsų sąrankos ir atkūrimo peržiūra

Žinoma, programa nebus paleista, jei lemputės nebus išvesties ir įvesties. Taip pat pridedu atsitiktinių skaičių generatorių, kad pridėčiau žodį iš žodžių, kuriuos įdėjau į masyvą, pavadintą „wordsToGuess“, sąrašo.

Be to, turėtume pridėti atstatymo funkciją ir įsitikinti, kad visos vertės yra atstatytos į numatytąsias.

9 veiksmas: visi kintamieji viename paveikslėlyje

Visi kintamieji viename paveikslėlyje
Visi kintamieji viename paveikslėlyje

Galiausiai galite tai naudoti norėdami patikrinti, ar teisingai nustatėte visus reikiamus kintamuosius.

Dabar mėgaukitės „Hangman“žaidimu Morze!

Rekomenduojamas: