Mundarija:

Arduino Xangman Morzda: 9 qadam
Arduino Xangman Morzda: 9 qadam

Video: Arduino Xangman Morzda: 9 qadam

Video: Arduino Xangman Morzda: 9 qadam
Video: LIN-BUS Анализатор бомбер Response 2024, Noyabr
Anonim
Arduino Hangman Morz tilida
Arduino Hangman Morz tilida

Bu qo'llanmada men sizga telefoningizdagi oddiy chiroq yoki mash'ala funksiyasi bilan Morze kodini yuborib, osma odamni o'ynash uchun o'zingizning Arduino -ni qanday o'rnatishni ko'rsataman.

Buning uchun quyidagilar kerak: Arduino taxtasi.10 LED chiroqlari Hammasini ulash uchun simlar Qo'shimcha: Piezo elementi (ovoz qo'shish uchun).

1-qadam: LED chiroqlarini o'rnatish

LED chiroqlarini sozlash
LED chiroqlarini sozlash

Bu Morz o'yini taxmin qilish kerak bo'lgan so'zdagi 4 ta harfni ko'rsatish uchun 4 ta chiroq va o'yinchi o'ylab topgan hayotini ko'rsatish uchun 5 ta chiroqdan foydalanadi, shuning uchun birinchi navbatda siz 9 ta LEDni ulashingiz kerak bo'ladi. -rasmda ko'rinib turganidek, chiroqlar odatdagidek.

2 -qadam: Vaqtinchalik yorug'lik sensori qo'shing

Biz elektron do'konlarga pul tashlab, aylanib o'tolmaymiz, shuning uchun men bu loyihani arzon saqlashga qaror qildim.

Sizga kerak bo'lgan yagona narsa-LED-chiroqning ortiqcha tomonini analog portlardan biriga (mening holatimda A0) va minus tomonini erga ulash.

3 -qadam: Lug'atingizni qo'shing

Lug'atingizni qo'shing
Lug'atingizni qo'shing

Birinchidan, biz harflarni tegishli Morze kodlariga tarjima qilish uchun lug'atni qo'shish bilan boshlaymiz. Buni amalga oshirish uchun biz 26 dan 5 gacha bo'lgan qatorni tuzamiz, har bir ikkinchi qatorning birinchi uyasi harfga ega va keyingi 4 uyasi mos keladigan Morse kodiga ega yoki bo'sh joy bo'lsa, bo'sh joy. Masalan, s harfi bilan birinchi uyada 's', ikkinchi, uchinchi va to'rtinchi uyalarda '' bor. va oxirgi uyada "" bor.

4 -qadam: Chiroqlarni sukut bo'yicha yoqing

Chiroqlarni sukut bo'yicha yoqing
Chiroqlarni sukut bo'yicha yoqing
Chiroqlarni sukut bo'yicha yoqing
Chiroqlarni sukut bo'yicha yoqing

Bu bosqichda biz dastur ishga tushganidan keyin chiroqlar yoqilganligiga ishonch hosil qilamiz va foydalanuvchi ularni to'g'ri taxmin qilganidan keyin Morze ko'rsatadigan harf (buning kodi 6 -bosqichda yoziladi). Biz, shuningdek, o'yinchining hayoti qolganidek, hayot uchun qancha yorug'lik borligiga ishonch hosil qilamiz.

Bundan oldin, sizda yorug'lik yonishi, o'chishi va LED-chiroq Morsning qaysi qismi ko'rsatilayotgan vaqtni ko'rsatish uchun port raqamlari va tamsayılari 0 ga o'rnatilgan qator borligiga ishonch hosil qiling.

5 -qadam: Kirishni qo'shish

Kirish kiritish
Kirish kiritish

Endi biz kodni yozamiz, agar o'yinchi bizning analog A0 portimizga ulangan LED-chiroqqa nur sochib turadimi va agar uni to'g'ri harfga tarjima qilsa.

O'qishning to'g'riligiga ishonch hosil qilish uchun, biz LED-chiroq orqali har 20 o'qishni o'rtacha hisoblab chiqamiz va shu raqamdan foydalanib, yorug'lik o'chirilgan yoki yoqilmaganligini kuzatamiz. Buning uchun dastur boshlanishida biz NUM_AVG ni yorug'likni o'rtacha o'chirishdan oldin tekshirishni xohlagan soniga qo'yamiz. Bu raqam qanchalik baland bo'lsa, o'qish shunchalik aniq bo'ladi, lekin u ham kechikishga olib kelishi mumkin.

msBtnPushed - bu chiroq yonib turgan vaqtni bildiradi.lastPressed - bu oldingi tsiklda yorug'lik yoqilganligini kuzatuvchi boolean.

6 -qadam: kirishni boshqarish

Kirishni boshqarish
Kirishni boshqarish
Kirishni boshqarish
Kirishni boshqarish

Bu qadam uchun, biz endi Morse qo'shilmayapti deb o'ylash uchun etarli vaqt o'tganidan keyin nima qilish kerakligini ko'rib chiqamiz va biz Morsning maktub yuborganligini va uning to'g'ri harf ekanligini tekshirishimiz kerak.

Buning uchun biz o'yinchilarimiz taxmin qilmoqchi bo'lgan so'zni o'rnatishimiz kerak. Menda tasodifiy sonlar generatori bor, uni boshida tasodifiy so'zga o'rnataman, lekin siz uni bitta so'zga qo'yishingiz mumkin.

Hisoblagich har bir tsiklga ko'tarilganligiga ishonch hosil qilishimiz kerak, aks holda butun dastur hech narsa qilmaydi. Bundan tashqari, men har bir soniyada tsikl borligiga ishonch hosil qilish uchun kechiktirish funktsiyasini qo'shdim.

PS: Barcha Serial.println funktsiyalari faqat sinov maqsadida. Ish tugagandan so'ng ular o'chirilishi mumkin.

GoodTimer va badTimer - bu tovush qo'shish uchun Piezo elementidan foydalanmoqchi bo'lsangiz, oddiy qiymatlar. Agar xohlasangiz, ikkinchi rasmdagi tovushlarni ijro etuvchi kodni ham qo'shishingiz kerak.

7 -qadam: To'g'ri taxmin qilingan harflarni morsing

To'g'ri taxmin qilingan harflarni morsing
To'g'ri taxmin qilingan harflarni morsing

Oldin va'da qilinganidek, bu bosqichda biz to'g'ri taxmin qilingan harflarni ifodalovchi chiroqlarni Mors harfiga aylantiramiz.

Buning uchun men ikkita funktsiyani yozdim: morseThis va nextLetter. It biz taymerlar qatorida ilgari o'rnatgan raqamlarni ishlatadi va Morse kodining qaysi qismi hozirda porlayotganiga qarab o'zgartiradi.

Agar taymer yorug'lik yoqilishi kerak bo'lgan vaqtga etib kelsa, u faqat yorug'likni yoqadi va kodni ishga tushiradi, shunda chiroqni o'chirish va qayta yoqish uchun yangi taymerlar o'rnatiladi. o'chirilsa, u chiroqni o'chiradi va keyin harfning keyingi qismini ko'rsatish uchun kodni o'rnatadi. Agar keyingi qism bo'lmasa, uni birinchi qismga qaytaradi.

8 -qadam: O'rnatish va tiklash sozlamalarini ko'rib chiqish

O'rnatish va tiklash sozlamalarini ko'rib chiqish
O'rnatish va tiklash sozlamalarini ko'rib chiqish

Albatta, chiroqlar chiqish va kirishga o'rnatilmagan bo'lsa, dastur ishlamaydi. WordToGuess deb nomlangan qatorga kiritgan so'zlar ro'yxatidan so'z qo'shish uchun tasodifiy sonlar generatorini ham qo'shaman.

Bundan tashqari, biz tiklash funktsiyasini qo'shishimiz va barcha qiymatlar asl holatiga qaytarilganligiga ishonch hosil qilishimiz kerak.

9 -qadam: Barcha rasmlar bitta rasmda

Bitta rasmdagi barcha o'zgaruvchilar
Bitta rasmdagi barcha o'zgaruvchilar

Nihoyat, siz buni barcha kerakli o'zgaruvchilar to'g'ri sozlanganligini tekshirish uchun ishlatishingiz mumkin.

Endi Morsda "Hangman" o'yinidan zavqlaning!

Tavsiya: