Mundarija:
- 1-qadam: LED chiroqlarini o'rnatish
- 2 -qadam: Vaqtinchalik yorug'lik sensori qo'shing
- 3 -qadam: Lug'atingizni qo'shing
- 4 -qadam: Chiroqlarni sukut bo'yicha yoqing
- 5 -qadam: Kirishni qo'shish
- 6 -qadam: kirishni boshqarish
- 7 -qadam: To'g'ri taxmin qilingan harflarni morsing
- 8 -qadam: O'rnatish va tiklash sozlamalarini ko'rib chiqish
- 9 -qadam: Barcha rasmlar bitta rasmda
Video: Arduino Xangman Morzda: 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
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
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
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
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
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
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
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
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
Nihoyat, siz buni barcha kerakli o'zgaruvchilar to'g'ri sozlanganligini tekshirish uchun ishlatishingiz mumkin.
Endi Morsda "Hangman" o'yinidan zavqlaning!
Tavsiya:
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
Arduino UNO bilan qadam motor: 3 qadam
Arduino UNO bilan qadam dvigateli: Bosqichli motorlar - bu alohida bosqichlarda harakatlanadigan shahar motorlari. Ularda "fazalar" deb nomlangan guruhlarga bo'lingan bir nechta rulon bor. Har bir fazani ketma -ket quvvatlantirganda, dvigatel birma -bir aylanadi, zinapoyali dvigatellar juda foydali
Arduino Uno bilan akustik levitatsiya bosqichma-bosqich (8-qadam): 8-qadam
Akustik levitatsiya Arduino Uno bilan bosqichma-bosqich (8 bosqichli): ultratovushli ovoz o'tkazgichlar L298N Dc ayol adapterli erkak quvvat manbai Arduino UNOBreadboard Bu qanday ishlaydi: Birinchidan, siz kodni Arduino Uno-ga yuklaysiz (bu raqamli bilan jihozlangan mikrokontroller) va kodni aylantirish uchun analog portlar (C ++)
Arduino avtomatlashtirilgan ekranli ekran loyihasi uchun qadam dvigatel va haydovchini tanlash: 12 qadam (rasmlar bilan)
Arduino avtomatlashtirilgan ekranli ekran loyihasi uchun qadam dvigateli va haydovchini tanlash: Ushbu yo'riqnomada men avtomatlashtirilgan ekran pardasi prototipi uchun qadam dvigateli va haydovchini tanlash uchun qilgan qadamlardan o'taman. Soyali ekranlar - qo'lda krankirovka qilingan mashhur va arzon modellar, va men ularni almashtirmoqchi edim
Arduino qo'llanmasi - Potentsiometr yordamida qadam motorini boshqarish: 5 qadam
Arduino qo'llanmasi - Potentsiometr yordamida qadam motorini boshqarish: Bu "Arduino: Potentsiometr yordamida qadam dvigatelini qanday boshqarish kerak" ning yozma versiyasi. Yaqinda yuklagan YouTube videosi. Men buni tekshirib ko'rishingizni qat'iy tavsiya qilaman.YouTube kanalim, birinchi navbatda, siz