Tartalomjegyzék:

Arduino Hangman in Morse: 9 lépés
Arduino Hangman in Morse: 9 lépés

Videó: Arduino Hangman in Morse: 9 lépés

Videó: Arduino Hangman in Morse: 9 lépés
Videó: Morse Code Converter with arduino 2024, November
Anonim
Arduino hóhér Morse -ban
Arduino hóhér Morse -ban

Ebben az oktatóanyagban megmutatom, hogyan állíthatja be saját Arduino -ját, hogy játsszon Hóhórt, ha morse -kódot küld egy egyszerű zseblámpával vagy a fáklya funkcióval a telefonjáról.

Csak a következőket kell követnie: Arduino tábla. 10 LED-lámpa

1. lépés: A LED-lámpák beállítása

A LED-lámpák beállítása
A LED-lámpák beállítása

Ez a Morse játék 4 lámpát használ a szó 4 betűjének jelzésére, amelyeket ki kell találni, és 5 lámpát, amelyek jelzik az életet, amellyel a játékosnak találgatnia kell, ezért először 9 LED -et kell csatlakoztatnia -világít a szokásos módon, amint az a képen is látható.

2. lépés: Adjon hozzá egy Makeshift fényérzékelőt

Nem tudunk pénzt dobni az elektronikus üzletekben, ezért úgy döntöttem, hogy olcsón tartom ezt a projektet, egy egyszerű LED-lámpát használva rögtönzött fényérzékelőként.

Csak annyit kell tennie, hogy a LED-lámpa plusz oldalát az egyik analóg porthoz (esetemben A0), a mínusz oldalt pedig a földhöz csatlakoztatja.

3. lépés: Adja hozzá a szótárát

Szótár hozzáadása
Szótár hozzáadása

Először is kezdjünk hozzá egyfajta szótár hozzáadásával, amely lefordítja a betűket a hozzájuk tartozó Morse -kódokhoz. Ehhez egyszerűen 26 x 5 -ös tömböt készítünk, minden másodlagos tömb első résén a betűt, a 4 következő helyen pedig a megfelelő Morse -kódot vagy szóközt, ha nincs kód. Például az s betűvel az első résen az "s", a második, harmadik és negyedik helyen "" van. és a végső nyíláson van "".

4. lépés: Alapértelmezés szerint világítson

Alapértelmezés szerint világítson
Alapértelmezés szerint világítson
Alapértelmezés szerint világítson
Alapértelmezés szerint világítson

Ebben a lépésben megbizonyosodunk arról, hogy a program indításakor a lámpák kigyulladnak, és az általuk képviselt betű Morse, miután a felhasználó helyesen kitalálta őket (ennek kódját a 6. lépésben írjuk fel). Gondoskodunk arról is, hogy csak annyi lámpa égjen, amennyi élete maradt a játékosnak.

Ezt megelőzően győződjön meg arról, hogy van egy tömbje, ahol a portszámok és az egész számok 0-ra vannak állítva, hogy jelöljék azt az időpontot, amikor a lámpának ki kell kapcsolnia, ki kell kapcsolnia, és a Morse melyik részét mutatja a LED-lámpa.

5. lépés: A bemenet hozzáadása

A bemenet hozzáadása
A bemenet hozzáadása

Most írjuk be a kódot annak ellenőrzésére, hogy a lejátszó világít-e az A0 analóg portunkhoz csatlakoztatott LED-lámpán, és hogy a megfelelő betűre kell-e fordítani.

Annak érdekében, hogy a leolvasott adatok helyesek legyenek, a LED-lámpa alapján minden 20 leolvasott értéket átlagolunk, és ezt a számot használjuk annak nyomon követésére, hogy a lámpa ki vagy be van kapcsolva. Ehhez a program elején NUM_AVG értéket állítottunk be, ahányszor szeretnénk, hogy ellenőrizze a fényt, mielőtt átlagolna. Minél magasabb ez a szám, annál pontosabb a leolvasás, de késleltetést is okozhat.

Az msBtnPushed azt az időt jelzi, ameddig a lámpa világít. lastpressed egy logikai érték, amely nyomon követi, hogy az előző ciklusban világított -e.

6. lépés: A bemenet kezelése

A bemenet kezelése
A bemenet kezelése
A bemenet kezelése
A bemenet kezelése

Ebből a lépésből megvizsgáljuk, mit tegyünk, ha elegendő idő telt el ahhoz, hogy feltételezzük, hogy nem adunk hozzá több Morse -t, és ellenőriznünk kell, hogy a Morse levelet küldött -e, és hogy helyes -e.

Ehhez a wordToGuess karakterláncot arra a szóra kell beállítanunk, amelyet szeretnénk, hogy a játékosaink kitalálják. Személy szerint van egy véletlenszám -generátorom, amely az elején egy véletlenszerű szóra állítja be, de egyszerűen beállíthatja egyetlen szóra is.

Arra is ügyelnünk kell, hogy a számláló minden hurokkal eggyel feljebb emelkedjen, különben az egész program semmit sem tenne. Ezenkívül hozzáadtam a késleltetési funkciót annak érdekében, hogy minden milliszekundumban legyen ciklus.

PS: Az összes Serial.println funkció csak tesztelési célokat szolgál. A befejezés után törölhetők.

A goodTimer és a badTimer egyszerűen értékek, ha Piezo elemet tervez használni a hang hozzáadásához. Ha ezt szeretné, akkor hozzá kell adnia a kódot a második képhez, amely lejátssza a hangokat.

7. lépés: A helyesen kitalált levelek javítása

A helyesen kitalált levelek javítása
A helyesen kitalált levelek javítása

Ahogy korábban ígértük, ebben a lépésben a helyesen kitalált betűket jelző lámpákat Morse -ra tesszük.

Ehhez két függvényt írtam: morseThis és nextLetter. Az időzítők tömbjében korábban beállított számokat használja, és attól függően módosítja őket, hogy a Morse -kód melyik része világít.

Ha az időzítő eléri azt az időpontot, amikor a lámpának be kell kapcsolnia, akkor egyszerűen bekapcsolja a lámpát, és lefuttatja a kódot, hogy új időzítőket állítson be a lámpa ki- és bekapcsolásához. Ha az időzítő eléri azt a részt, amikor a fénynek vissza kell térnie kikapcsolva, lekapcsolja a lámpát, majd beállítja a kódot a levél következő részének megjelenítésére. Ha nincs következő rész, akkor visszaállítja az első részre.

8. lépés: A beállítások áttekintése és visszaállítása

Beállításunk és visszaállításunk áttekintése
Beállításunk és visszaállításunk áttekintése

Természetesen a program nem fog futni, ha a fények nincsenek kimenetre és bemenetre beállítva. Hozzáadok egy véletlenszám -generátort is, hogy hozzáadhassak egy szót a szavak listájából, amelyet a wordsToGuess nevű tömbbe tettem.

Ezen kívül hozzá kell adnunk a visszaállítási funkciót, és meg kell győződnünk arról, hogy minden érték visszaáll az alapértelmezett értékre.

9. lépés: Minden változó egy képben

Minden változó egy képben
Minden változó egy képben

Végül ezzel ellenőrizheti, hogy minden szükséges változó helyesen van -e beállítva.

Most élvezze a hóhér játékot Morse -ban!

Ajánlott: