Satura rādītājs:

Arduino Hangman Morse: 9 soļi
Arduino Hangman Morse: 9 soļi

Video: Arduino Hangman Morse: 9 soļi

Video: Arduino Hangman Morse: 9 soļi
Video: Morse Code Converter with arduino 2024, Novembris
Anonim
Arduino bende Morzē
Arduino bende Morzē

Šajā apmācībā es jums parādīšu, kā iestatīt savu Arduino, lai spēlētu Hangman, nosūtot Morzes kodu ar vienkāršu lukturīti vai degļa funkciju no tālruņa.

Viss, kas jums jāievēro, ir: Arduino dēlis. 10 LED gaismas Vadi, lai to visu savienotu. Papildus: Pjezo elements (lai pievienotu skaņu)

1. darbība: LED gaismas iestatīšana

LED gaismas uzstādīšana
LED gaismas uzstādīšana

Šī Morzes spēle izmantos 4 gaismas, lai norādītu 4 burtus vārdā, kas ir jāuzmin, un 5 gaismas, lai norādītu dzīvības, kuras spēlētājs ir atstājis uzminēt, tāpēc vispirms jums būs jāpievieno 9 gaismas diodes -gaismā parastajā veidā, kā redzams attēlā.

2. darbība: pievienojiet Makeshift gaismas sensoru

Mēs nevaram mest naudu elektroniskajos veikalos, tāpēc esmu nolēmis saglabāt šo projektu lēti, izmantojot vienkāršu LED gaismu kā pagaidu gaismas sensoru.

Viss, kas jums jādara, ir savienot LED gaismas pluspusi ar kādu no analogiem portiem (manā gadījumā A0), bet mīnusu-pie zemes.

3. darbība: pievienojiet vārdnīcu

Pievienojiet savu vārdnīcu
Pievienojiet savu vārdnīcu

Pirmkārt, ļaujiet sākt, pievienojot sava veida vārdnīcu burtu tulkošanai atbilstošajos Morzes kodos. Lai to izdarītu, mēs vienkārši izveidojam masīvu no 26 līdz 5, un katra sekundārā masīva pirmajā slotā ir burts, bet četros nākamajos - atbilstošais Morzes kods vai atstarpe, ja nav atlicis neviens kods. Piemēram, ar burtu s pirmajā slotā ir 's', otrajā, trešajā un ceturtajā slotā ir ''. ' un pēdējā slotā ir ''.

4. darbība. Gaismas iedegas pēc noklusējuma

Gaismas iedegas pēc noklusējuma
Gaismas iedegas pēc noklusējuma
Gaismas iedegas pēc noklusējuma
Gaismas iedegas pēc noklusējuma

Šajā solī mēs pārliecināmies, ka indikatori ir ieslēgti, kad programma tiek palaista, un Morzes burtu, ko tie attēlo, kad lietotājs tos ir pareizi uzminējis (kods tam tiks rakstīts 6. darbībā). Mēs arī pārliecināmies, ka uz mūžu ir ieslēgtas tikai tik daudz gaismas, cik spēlētājam ir atlikušas dzīvības.

Pirms tam pārliecinieties, vai jums ir masīvs ar portu numuriem un veseliem skaitļiem, kas ir iestatīti uz 0, lai attēlotu laiku, kurā gaismai vajadzētu iedegties, izslēgties un kuru Morzes daļu pašlaik rāda LED gaisma.

5. darbība: ievades pievienošana

Ievades pievienošana
Ievades pievienošana

Tagad mēs uzrakstīsim kodu, lai pārbaudītu, vai atskaņotājs spīd uz LED gaismas, kas savienota ar mūsu analogo portu A0, un vai viņi to pārtulko pareizajā burtā.

Lai pārliecinātos, ka rādījums ir pareizs, mēs vidēji aprēķinām ik pēc 20 gaismas diodes rādījumiem un izmantojam šo skaitli, lai izsekotu, vai gaisma ir izslēgta vai ieslēgta. Lai to izdarītu, programmas sākumā mēs iestatījām NUM_AVG uz to reižu skaitu, cik reizes vēlamies, lai tā pārbaudītu gaismu pirms vidējās vērtības noteikšanas. Jo lielāks šis skaitlis, jo precīzāks rādījums, bet tas var izraisīt arī aizkavēšanos.

msBtnPushed apzīmē laiku, cik ilgi gaisma ir ieslēgta. lastPressed ir Būla vērtība, kas izseko, vai iepriekšējā ciklā gaisma bija ieslēgta.

6. darbība: ievades apstrāde

Ievades apstrāde
Ievades apstrāde
Ievades apstrāde
Ievades apstrāde

Šim solim mēs apskatīsim, kā rīkoties, kad būs pagājis pietiekami daudz laika, lai pieņemtu, ka Morze vairs netiks pievienota, un mums jāpārbauda, vai Morze nosūtīja vēstuli un vai tā ir pareiza vēstule.

Lai to izdarītu, mums ir jāiestata virkne wordToGuess uz vārdu, kuru mēs vēlamies, lai mūsu spēlētāji uzminētu. Man personīgi ir nejaušu skaitļu ģenerators, lai sākumā to iestatītu uz nejaušu vārdu, bet jūs varat arī vienkārši iestatīt to uz vienu vārdu.

Mums arī jāpārliecinās, ka skaitītājs katru cilpu palielinās par vienu, pretējā gadījumā visa programma neko nedarītu. Turklāt esmu pievienojis aizkaves funkciju, lai pārliecinātos, ka ik pēc milisekundes ir cilpa.

PS: Visas Serial.println funkcijas ir paredzētas tikai testēšanai. Pēc pabeigšanas tos var izdzēst.

GoodTimer un badTimer ir vienkārši vērtības, ja jūs plānojat izmantot Pjezo elementu skaņas pievienošanai. Ja vēlaties to darīt, jums jāpievieno kods arī otrajā attēlā, kas atskaņo skaņas.

7. darbība. Pareizi uzminēto burtu labošana

Morsing pareizi uzminētas vēstules
Morsing pareizi uzminētas vēstules

Kā solīts iepriekš, šajā solī mēs izgatavosim lukturus, kas attēlo pareizi uzminētos burtus, par Morzes burtu.

Šim nolūkam esmu uzrakstījis divas funkcijas: morseThis un nextLetter. Tas izmanto numurus, kurus mēs iepriekš esam iestatījuši mūsu taimeru masīvā, un maina tos atkarībā no tā, kura Morzes koda daļa pašlaik spīd.

Ja taimeris sasniedz laiku, kurā gaismai vajadzētu iedegties, tas vienkārši ieslēdz gaismu un izpilda kodu, lai iestatītu jaunus taimerus, lai izslēgtu un atkal ieslēgtu gaismu. Ja taimeris sasniedz to daļu, kurā gaismai vajadzētu atgriezties izslēgts, tas izslēdz gaismu un pēc tam nosaka kodu, kas attēlo nākamo burta daļu. Ja nākamās daļas nav, tā to atiestata uz pirmo daļu.

8. darbība. Pārskatiet mūsu iestatījumus un atiestatiet

Mūsu iestatīšanas un atiestatīšanas pārskatīšana
Mūsu iestatīšanas un atiestatīšanas pārskatīšana

Protams, programma nedarbosies, ja gaismas nav iestatītas uz izvadi un ievadi. Es pievienoju arī nejaušu skaitļu ģeneratoru, lai pievienotu vārdu no vārdu saraksta, ko esmu ievietojis masīvā, ko sauc vārdi wordsToGuess.

Turklāt mums jāpievieno atiestatīšanas funkcija un jāpārliecinās, vai visas vērtības ir atiestatītas uz noklusējuma vērtību.

9. solis: visi mainīgie vienā attēlā

Visi mainīgie vienā attēlā
Visi mainīgie vienā attēlā

Visbeidzot, varat to izmantot, lai pārbaudītu, vai visi nepieciešamie mainīgie ir pareizi iestatīti.

Tagad izbaudiet Hangman spēli Morzē!

Ieteicams: