Mündəricat:

Mors dilində Arduino Hangman: 9 addım
Mors dilində Arduino Hangman: 9 addım

Video: Mors dilində Arduino Hangman: 9 addım

Video: Mors dilində Arduino Hangman: 9 addım
Video: Arduino Mors Kodu 2024, Iyun
Anonim
Mors dilində Arduino Hangman
Mors dilində Arduino Hangman

Bu təlimatda, telefonunuzdan sadə bir fənər və ya məşəl funksiyası ilə Mors kodu göndərərək Cəllad oyunu oynamaq üçün öz Arduino qurmağınızı sizə göstərəcəyəm.

Arduino lövhəsi. 10 LED-işıq

Addım 1: LED işıqlarının qurulması

LED işıqlarının qurulması
LED işıqlarının qurulması

Bu Morse oyunu, təxmin edilməsi lazım olan sözün 4 hərfini göstərmək üçün 4 işıqdan və oyunçunun təxmin etmək üçün buraxdığı həyatları göstərmək üçün 5 işıqdan istifadə edəcək, buna görə də ilk növbədə 9 LED bağlamalı olacaqsınız. -Şəkildə göründüyü kimi işıqlar adi qaydada.

Addım 2: Müvəqqəti İşıq Sensoru əlavə edin

Elektron mağazalarda pul atmaqla dolana bilmərik, buna görə də müvəqqəti işıq sensoru kimi sadə bir LED işığı istifadə edərək bu layihəni ucuz saxlamaq qərarına gəldim.

Etməyiniz lazım olan tək şey, LED işığının artı tərəfini analoq portlarınızdan birinə (mənim vəziyyətim A0) və mənfi tərəfini isə yerə bağlamaqdır.

Addım 3: Sözlüyünüzü əlavə edin

Sözlüğünüzü əlavə edin
Sözlüğünüzü əlavə edin

Hər şeydən əvvəl, hərfləri müvafiq Morze kodlarına tərcümə etmək üçün bir növ lüğət əlavə edərək başlayaq. Bunu etmək üçün, hər ikincili dizinin ilk yuvasında hərfi olan və sonrakı 4 yuvada müvafiq Mors koduna və ya heç bir kod qalmadıqda boşluğa malik olan 26 ilə 5 arasında bir sıra düzəldirik. Məsələn, s hərfi ilə birinci yuvada 's', ikinci, üçüncü və dördüncü yuvalarda '' var. ' və son yuvada '' var.

Addım 4: İşıqları Varsayılan olaraq Yandırın

Varsayılan olaraq işıqları yandırın
Varsayılan olaraq işıqları yandırın
Varsayılan olaraq işıqları yandırın
Varsayılan olaraq işıqları yandırın

Bu addımda, proqram başladıqdan sonra işıqların yandığından və istifadəçi onları düzgün təxmin etdikdən sonra təmsil etdikləri Mors hərfindən əmin oluruq (bunun kodu 6 -cı addımda yazılacaq). Həm də oyunçunun həyatı qaldığı qədər həyat üçün də bir çox işıq yandığından əminik.

Bundan əvvəl, işığın sönmə vaxtı, sönmə vaxtı və LED işığının Morsun hansı hissəsini göstərdiyini göstərmək üçün port nömrələri və tam ədədləri 0 olaraq təyin edilmiş bir sıra olduğunuzdan əmin olun.

Addım 5: Giriş əlavə edin

Giriş əlavə olunur
Giriş əlavə olunur

İndi oyunçunun analog portumuz A0 ilə əlaqəli LED işığına işıq yandırıb-vurmadığını yoxlamaq və onu düzgün hərflərə çevirmək üçün kodu yazacağıq.

Oxumanın düzgün olduğundan əmin olmaq üçün LED işığı ilə hər 20 oxunuşu orta hesabla çıxarırıq və işığın sönüb-sönmədiyini izləmək üçün bu rəqəmdən istifadə edirik. Bunu etmək üçün proqramın əvvəlində NUM_AVG -ni işığı orta hesablamadan əvvəl yoxlamasını istədiyimiz vaxta qoyduq. Bu rəqəm nə qədər yüksək olsa, oxunuş bir o qədər dəqiq olar, ancaq gecikmələrə də səbəb ola bilər.

msBtnPushed, işığın for.lastPressed -in əvvəlki döngədə işığın olub olmadığını izləyən bir boolean olduğunu göstərir.

Addım 6: Girişin idarə edilməsi

Girişin idarə edilməsi
Girişin idarə edilməsi
Girişin idarə edilməsi
Girişin idarə edilməsi

Bu addım üçün, artıq Morsun əlavə edilməyəcəyini düşünmək üçün kifayət qədər vaxt keçdikdən sonra nə edəcəyimizi nəzərdən keçirəcəyik və Morsun bir məktub göndərdiyini və düzgün bir məktub olub olmadığını yoxlamalıyıq.

Bunu etmək üçün, oyunçularımızın təxmin etməsini istədiyimiz sözə WordToGuess simli qurmalıyıq. Şəxsən mənim təsadüfi bir say qurucum var ki, bunu əvvəlində təsadüfi bir sözə təyin edim, ancaq onu da tək bir sözə təyin edə bilərsiniz.

Sayğacın hər döngədə bir dəfə artdığından əmin olmalıyıq, əks halda bütün proqram heç bir şey etməz. Bundan əlavə, hər milisaniyədə bir döngə olduğundan əmin olmaq üçün gecikmə funksiyasını əlavə etdim.

PS: Bütün Serial.println funksiyaları yalnız test məqsədləri üçündür. Tamamlandıqdan sonra silinə bilərlər.

GoodTimer və badTimer, səs əlavə etmək üçün bir Piezo elementindən istifadə etməyi planlaşdırırsınızsa, sadəcə dəyərlərdir. İstəyirsinizsə, ikinci şəkildəki səsləri səsləndirən kodu da əlavə etməlisiniz.

Addım 7: Düzgün Guessed Harfləri Morsing

Düzgün Guessed Məktublar Morsing
Düzgün Guessed Məktublar Morsing

Daha əvvəl söz verdiyimiz kimi, bu addımda, doğru təsəvvür edilən hərfləri əks etdirən işıqları Morsun məktubuna çevirəcəyik.

Bunun üçün iki funksiyanı yazdım: morseThis və nextLetter. İlkin əvvəllər taymerlər sistemimizdə təyin etdiyimiz nömrələrdən istifadə edir və Mors kodunun hansı hissəsinin parıldadığından asılı olaraq onları dəyişir.

Zamanlayıcı işığın yandırılması lazım olan vaxta çatarsa, sadəcə işığı yandırır və işığı söndürüb yenidən açmaq üçün yeni taymerlər təyin etmək üçün kodu işə salır. söndürüldükdə işığı söndürür və sonra məktubun növbəti hissəsini təmsil etmək üçün kodu təyin edir. Növbəti hissə yoxdursa, onu birinci hissəyə qaytarır.

Addım 8: Ayarlarımızı nəzərdən keçirin və sıfırlayın

Quraşdırma və Sıfırlamamızı nəzərdən keçiririk
Quraşdırma və Sıfırlamamızı nəzərdən keçiririk

Əlbəttə ki, işıqlar çıxış və girişə qoyulmadıqda proqram işləməyəcək. WordToGuess adlı bir sıra qoyduğum sözlər siyahısından bir söz əlavə etmək üçün təsadüfi ədəd generatoru da əlavə edirəm.

Bundan əlavə, sıfırlama funksiyasını əlavə etməliyik və bütün dəyərlərin sıfıra sıfırlandığından əmin olmalıyıq.

Addım 9: Bir Şəkildə Bütün Dəyişənlər

Bir Şəkildə Bütün Dəyişənlər
Bir Şəkildə Bütün Dəyişənlər

Nəhayət, bütün lazımi dəyişənlərin düzgün qurulduğunu yoxlamaq üçün bundan istifadə edə bilərsiniz.

İndi Morse'da Cəllad Adam oynamaqdan zövq alın!

Tövsiyə: