Mundarija:

Portal 2 minorasi - Turret ustasi boshqaruvi: 9 qadam (rasmlar bilan)
Portal 2 minorasi - Turret ustasi boshqaruvi: 9 qadam (rasmlar bilan)

Video: Portal 2 minorasi - Turret ustasi boshqaruvi: 9 qadam (rasmlar bilan)

Video: Portal 2 minorasi - Turret ustasi boshqaruvi: 9 qadam (rasmlar bilan)
Video: Как построить реалистичную диораму с башней и воротами средневекового замка 2024, Iyul
Anonim
Image
Image

Bu loyiha instruktivlar bo'yicha asl Portal Turretimning kengaytmasi yoki remiksi (Portal-2-Turret-Gun). Bundan tashqari, nRF24L01 radiochipidan foydalanadigan narsalarni boshqarish uchun arzon nazoratchi sifatida ham foydalanish mumkin. LCD displey, xususan, sozlashda foydalidir.

(Radiolarim boshqa tarmoqdagi "nRF24L01" bilan qachon aloqa o'rnatganini va uzilishini tekshirishda juda foydali bo'ladi. Men aylanib yuraman va displey ekranida radiolarning ulanish holatini ko'rsata olaman! Sozlamalarni sozlash va tekshirish uchun juda foydali. diapazon!)

Portal minorasini tugatganimdan so'ng, Portal 2 oxirida Cara Mia opera sahnasining qisqacha videoklipini ko'rdim. Men o'yladim: "Hey, men hozir bir nechta minoralar qurdim. Men buni qila olaman!" Xo'sh, menda minoralar bor edi, lekin ular ishlashi uchun endi ular bir -birlari bilan yoki boshqa qurilmalar bilan aloqa qilishlari kerak edi. Biroz o'ylab, qo'lda boshqarish ham yaxshi bo'lardi deb o'ylaganimdan so'ng, men asosiy turret boshqaruvchisi yoki MTK qurishga qaror qildim.

Xo'sh, buni qanday qilish kerak? Xo'sh, men minoralarni juda ko'p o'zgartirishni xohlamadim, shuning uchun bu cheklov edi. Menda hali ishlatmagan ba'zi nRF24L01 radiochiplari bor edi va bu mening maqsadimga mos keladi, deb o'ylayman, bu arzon komponentlardan foydalanish va mexanik dizayn va kodga tayanish. Men nazoratchi qurishga majbur bo'lardim va nazoratchi nimani o'z ichiga olishi va qasrlarga nima qilishim kerakligini o'ylay boshladim. Cara Mia allaqachon kun tartibida edi, lekin yana nima?

Qo'lda boshqarish: Shunday qilib, qanotlar ochilgach, men maydonni va burilishni nazorat qilmoqchiman. 2 o'q = joystik, shuning uchun joystikni boshqarish va ba'zi tugmalar. 1 tugmachasi turretni yoqib yuborishi mumkin va ehtimol 2 tugmachasi uni o'z so'zlaridan biriga aylantiradi. Juda yaxshi! Etarli darajada oddiy…

Suhbat: Men yaqinda "Kim birinchi" - Abbott va Kostello tartibini yana ko'rdim va boshimda chiroq o'chdi! Men, shuningdek, bir nechta minoralardan foydalanib, barcha so'zlarni ishlatib, sketch -komediya rejasini tuzardim !! To'g'ri, bu to'liq aniqlanmagan, lekin ishonchim komilki, qurilishim boshlanganidan keyin men buni tartibga solaman.

Men ham bu MTMning simsiz bo'lishini xohlardim, shuning uchun men batareyadan ishlaydigan 9V oddiy variantni tanladim va boshqaruvchini orqa tarafdagi Nano orqali mini-USB vilkasi bilan quvvatlanadigan qilib yaratdim. Yangilash uchun ham foydalidir.

1 -qadam: Radorni turetlarga kiritish

Men birinchi bo'lib bir nechta yalang'och nanoslar bilan ishlaydigan radio oldim, bu uning ishlashiga ishonch hosil qilish va bir nechta qurilmalar o'rtasida ma'lumot yuborish imkonini berdi. Bu amalga oshirilgandan so'ng, radio mavjud minoralarga qo'shilishi kerak edi. Hmm, jismoniy tenglikni minoraga qo'shish juda oson edi. Men faqat chip ushlagichini nRF24L01, Nano va mp3 chipini qo'shib o'zgartirdim. Ok. Bir jismoniy qism o'zgartirildi, simlar bilan.

O'zgartirilgan chip ushlagichi allaqachon minora bosilgan qismlarining bir qismidir. Men radio bo'lmagan variantni o'chirilgan qismlardan o'chirib tashladim. Agar kimdir radio bo'lmagan variantni yaratmoqchi bo'lsa, bu farq qilmaydi. Faqat nRF24L01 radiochipini o'z ichiga olmang.

2 -qadam: Turetlarni qayta ulash

Turetlarni qayta ulash
Turetlarni qayta ulash
Turetlarni qayta ulash
Turetlarni qayta ulash
Turetlarni qayta ulash
Turetlarni qayta ulash
Turetlarni qayta ulash
Turetlarni qayta ulash

Uh oh…

Bu yaxshi ko'rinmadi. Men Nano -ga 5 ta ulanishni qo'shishim kerak edi va menda allaqachon mavjud bo'lgan pinlar kam edi. Buni biroz ko'rib chiqqach, men qaysi ulanishlar ustuvorligini angladim va buni amalga oshirish uchun mavjud nano ulanishlarning ko'pini qayta tiklashim kerakligini angladim.

"Radio minorasi" yasamoqchi bo'lgan va avvalgi genni qurganlarga … Kechirasiz …

Endi men bu o'zgarishni bir necha bor qildim va bu jarayon unchalik yomon emasligi ma'lum bo'ldi. Bu orqaga qaytishni o'z ichiga oladi, lekin men Nano bilan mavjud aloqalarni uzib qo'ydim va keyin juda ko'p qayg'urmasdan tegishli pinlarga qayta ulanishga muvaffaq bo'ldim. Men nRF24L01 ga radio chip uchun 7 ta simni qo'shdim (5 ta sim, 3v va GND), keyin boshqa uchlarini Nano ga uladim.

Hozirda simlar ko'proq, shuning uchun simlarni yo'naltirishda tartibni saqlash muhimroq.

MUHIM: O'rnatishda simlar taxtadagi Nano reset tugmasini bosmasligiga ishonch hosil qiling !! Bu men bilan bir marta sodir bo'ldi va meni keraksiz tsiklga tashladi!

Shunday qilib, minora qurilishi ikkita simli sxemaga ega: eski "radio bo'lmagan" variant va qayta ko'rib chiqilgan "radio minorasi" varianti. Agar bugun "radio bo'lmagan" minorani qursam, men baribir radio sxemasi va kodidan foydalangan bo'lardim. Agar tanlangan yo'nalish bo'lsa, radioni o'chiring yoki izohlang. Minora hali ham radiosiz o'z -o'zidan ishlashi kerak.

3 -qadam: MTM elektr komponentlari

MTC elektr komponentlari
MTC elektr komponentlari
MTC elektr komponentlari
MTC elektr komponentlari
MTC elektr komponentlari
MTC elektr komponentlari

To'rlar tartibga solinganidan so'ng, MTM qilish vaqti keldi.

MTM quyidagi tarkibiy qismlardan foydalanadi, hammasi Amazon yoki Baggood yoki Ali Express orqali va hokazo. Men Amazon ma'lumotlarini havola qilish uchun ko'rsatganman. Mexanik konstruktsiyani ishga tushirishimdan oldin o'zimga kerakli narsalarni olish uchun 2+ hafta kuting!)

  • Arduino Nano 0,96 dyuymli LCD, (SSD1306) Men ko'k/sariq versiyasini ishlatardim
  • Small Joystick (HW-504) 5V PS joystik moduli
  • O'tish tugmasi (dx-004) 22mm * 13mm
  • Radio - (nRF24L01)
  • 12 mm tugmachalar (rangli tugmalar uchun CLT1088, qora uchun PBS-33B)
  • 2 mm vintlardek (M2 o'z -o'zidan tejamkor vintlar to'plami, o'zaro faoliyat panjara boshi assortimenti)
  • Ko'rsatkichlar uchun siz tanlagan 5 mm LED. (Yorqin LEDlardan foydalanmang!)
  • To'g'ridan -to'g'ri quyruqli 9V umumiy batareya ulagichi
  • 9V batareya (bu loyihalar uchun har doim ham etarli quvvat bera olmaydigan, dollarning bir xil emas, yaxshisini ishlating!)
  • Men silikon qoplamali simni ishlatardim. Men uni ushbu loyihalar uchun ishlatishni yaxshi ko'raman.

Men dastlab bir nechta yorqin LEDlardan foydalandim, lekin ular juda yaxshi ekanligini topdim. Ular meni ko'r qilishdi! Men eski, zaif LEDlarni ishlatishni tugatdim va bu dastur uchun mantiqiyroq edi.

4 -qadam: 3D bosilgan qismlar

3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar

Men MTJni Fusion yordamida loyihalashtirdim, xuddi shu tariqa dizayniga o'xshab.

Bosma montaj faqat 3 qismdan iborat:

  • Yuqori panel (1 yoki 2 -versiya)
  • Pastki korpus
  • LCD tasmasi

NRF chipi, Nano, 9V batareya, o'tish tugmasi va LEDlar yuqori plastinkaga mahkamlagichsiz o'rnatiladi. LEDlar faqat plastinkada bosiladi va yorliqlar bilan ushlab turiladi. Ular shunchaki kirishi kerak, lekin haddan oshmang. Yuqori plastinka Nano-ni mahkam ushlash uchun mo'ljallangan va nRF chipi sekin kirishi kerak. NRF kichik yorlig'i bilan ehtiyot bo'ling; u kichkina va chipni ushlash uchun ochiladi va qo'yib yuboriladi. Uning sayohati cheklangan bo'lsa ham, bu erda muloyim bo'ling.

Joystik va LCD displeyda ularni yuqori plastinkada ushlab turish uchun 2 mm vintlar (5 mm) kerak. Joystik PCB -da katta teshiklar bor, shuning uchun vintlar burilmaganligiga ishonch hosil qilish uchun menga kichik yuvish vositalari kerak edi.

Men shuni tushunib etdimki, LCD displeylari ishlab chiqaruvchidan ishlab chiqaruvchiga qarab bir oz farq qiladi, shuning uchun men ilgak yoki ilgak o'rniga uni ushlab turish uchun oddiy bilaguzukni tanladim.

E'tibor bering, LCD -ni har qanday usulda yuqori plastinkaga o'rnatish mumkin, lekin displey faqat bitta yo'nalishda ochilish orqali to'liq ko'rinadi! Shu sababli, men sariq/ko'k ekranni ajratish paytida yuqori plastinka variantini qo'shdim. Bir versiyada tepada sariq rang, ikkinchisida esa mening fotosuratlarimda ko'rsatilgandek pastki qismida sariq rang ko'rsatiladi.

LCD -ning bitta rangli versiyasi uchun qaysi biri ishlatilganligi muhim emas, chunki siz dasturiy ta'minot yordamida ekranni aylantira olasiz.

Barcha simlar yuqori plastinkada bajarilganligi sababli, pastki qismi yuqori plastinkaga uzunroq 2 mm vintlar bilan mahkamlangan qopqoqdir (miqdori: 4).

"Batareya eshigi" variantining o'rniga, men batareyani yuqori plastinkaga qo'shdim. Bu shuni anglatadiki, batareyani o'zgartirish uchun pastdan yuqoriga ushlab turadigan 4 vintni olib tashlash kerak, lekin u dunyoning oxiri emas, balki USB kabeli orqali quvvatlanishi mumkin. Yuqori plastinka 9V batareya ushlagichi tizimidan qilingan bo'lib, uni qayta ishlatish uchun etarlicha mustahkam bo'lishi kerak, unchalik murakkab emas, lekin batareyaning harakatlanishiga to'sqinlik qiladi.

Fotosuratda ko'rinib turganidek, yuqori plastinkani 2 rangda chop etdim. Men Prusa i3 Mk2-ni ko'p rangli variantsiz ishlataman, lekin jarayon davomida rangni o'zgartirish uchun ularning rangli chop etish vositasidan (https://www.prusaprinters.org/color-print/) foydalaning. Matn to'xtaydigan va mustahkam bo'ladigan qatlamni tekshiring va o'tish qatlamini belgilang. Voila! Rangli matn!

Men qismlarni 0,35 mm qatlam balandligida chop etdim, chunki bu tekis qismlarni yanada aniqroq hal qilishning hojati yo'q. Men ham ushbu qarorga qanday qarashni afzal ko'raman. Oh, va u juda tez chop etiladi!

5 -qadam: Elektr yig'ish

Elektr yig'ish
Elektr yig'ish
Elektr yig'ish
Elektr yig'ish
Elektr yig'ish
Elektr yig'ish
Elektr yig'ish
Elektr yig'ish

Elektr komponentlarining barchasi yuqori plastinkaning pastki qismiga o'rnatiladi va barcha simlar birgalikda amalga oshiriladi. Avval bosish tugmachalari va almashtirish tugmachalarini o'rnatish kerak, va LCD, Nano, Joystick, nRF radiosi yuqori plastinkaga o'rnatilishidan oldin oldindan ulanishi mumkin. Men alohida komponentlarni oldindan ulash usulini tavsiya qilaman, so'ngra Nano-ga oxirgi ulanishlarni o'rnataman. Men, shuningdek, simlarni ulashdan oldin, eskizni yalang'och Nano -ga yuklashni maslahat beraman.

Qurilmani yoqish va uning tugashi bilan kutilganidek hayotga qaytishini ko'rishdan ko'ra qoniqarli narsa yo'q!

Tayyorlanadigan yagona elektr qism - bu yuqori plastinka ostiga o'rnatish uchun joystikdan bosh pimlarini olib tashlash. LCD displeyni pim o'rnatilgan yoki o'rnatilmagan holda sotib olish mumkin va u har qanday usulda ishlaydi. Nano sarlavhali pinlarsiz tanlanishi kerak.

6 -qadam: kod

MTC, Qizil minorasi, Oq minorasi va Moviy minorasi uchun kod hozir ko'tarildi

Xo'sh, bu kodlash tajribasi edi! Menda minora mustaqil ishlagan, lekin radio qo'shish men o'ylagandan ko'ra qiyinroq edi! Men ham "Chat" bo'limini xohlaganimcha ishlashdan zavq oldim (bu haqda keyinroq).

MTC kodi to'liq aniqlanganidan so'ng, Nano xotira chegaralarini soliqqa tortishni boshladi! Xotirani tejash uchun kodni tejashim kerak edi. Yana bir yaxshi o'rganish tajribasi.

Men birgalikda "Turret w radio variant" kodini qo'shdim, chunki ular birgalikda ishlaydi. Turretni qurish sahifasida radio variantli minorani qurish uni MTM yoki boshqa nRF24L01 boshqaruv usuli uchun ishlatishga tayyor qiladi.

Bundan tashqari, tovushlarni ushbu kod bilan ishlash biroz vaqt talab qildi va tovushlar hammaga ochiq bo'lgan boshqa veb -saytlardan olinganligi sababli, men bir nechta ZIP fayllarida ishlatganimdek, barcha tovushlarni o'z ichiga oldim; bittasi oddiy turret uchun, ikkinchisi nuqsonli turret uchun. Siz uchun yaxshi narsa, aziz o'quvchi, siz SD -kartalaringizdagi tovushlarni yozilgan kodlar bilan ishlatishingiz mumkin, shunda siz borasiz!

7 -qadam: MTC menyusi - Navigatsiya

MTC menyusi - navigatsiya
MTC menyusi - navigatsiya
MTC menyusi - navigatsiya
MTC menyusi - navigatsiya
MTC menyusi - navigatsiya
MTC menyusi - navigatsiya

MTC kodi maxsus ochiladigan ekran bilan boshlanadi, so'ngra minoralar holatini tekshiradi. Agar minora bo'lmasa, u minoralar ulanmaguncha o'tiradi!

Agar hech bo'lmaganda bitta minora ulangan bo'lsa, asosiy menyu ko'rsatiladi va "Tayyor" LED yonadi, agar minoralar uzilmasa yoki "kimdir bilan muomala qilish" bilan band bo'lmasa. Agar ular band bo'lsa, "Turetalar band" ekrani ko'rsatiladi va "Band" LED yonadi.

MTM minoralarni boshqarishi uchun barcha faol ulangan minoralar "Tayyor rejimda" bo'lishi kerak.

Menyuni tanlash uchun joystikdan (yuqoriga va pastga) foydalaning:

  • Ariya
  • Suhbat
  • Qo'l bilan

"X" tugmachasi yordamida yoki joystikni bosib kerakli variantni tanlang.

Aria rejimi - bu variantni tanlash "Aria Mode" ekranini ko'rsatadi va minoralarni Portal 2 o'yini oxirida Aria sahnasini bajarishga majbur qiladi. Tugallangach, minoralar yopiladi va kimdir ularni uyg'otishini yoki buyruq berishini kutadi.

Chat rejimi - bu variantni tanlasangiz, "Chat rejimi" ekrani paydo bo'ladi va suhbat ketma -ketligi boshlanadi. Tugallangach, minoralar yopiladi va kimdir ularni uyg'otishini yoki buyruq kutishini kutadi.

Manuel rejim - bu variantni tanlash "qo'lda rejim" ekranini ko'rsatadi, "qo'lda" LEDni yoritadi va minoralarning qo'lda ishlashiga imkon beradi. Joystick balandligi va aylanishini boshqaradi. "X" tugmachasini bosish otish ketma -ketligini faollashtiradi. "T" tugmachasini bosish ularni "gapirishga" majbur qiladi, bu erda minora o'z kutubxonasidan tasodifiy so'z aytadi.

"<" Yoki orqaga tugmasini bosish bu uchta rejimni bekor qiladi, minoralarni yopadi va asosiy menyuga qaytadi.

Agar siz turetalaringizning ulanish holatini ko'rishni xohlasangiz (hozirda 3 ta), asosiy menyuda "T" tugmasini bosing. Siz "turret holati" ekraniga olib borilasiz, u erda har bir minoraning ulanish holatini ko'rasiz.

"Taret holati" ekranida siz har bir minoraning holatini ko'rasiz.

  • Tayyor - nazoratga tayyor
  • Band - turret kimgadir "boqish" bilan band
  • Mavjud emas - MTK bu minoraga ulana olmaydi

Asosiy menyuga qaytish uchun "<" tugmasini bosing.

8 -qadam: Kodni sozlash

Kodni sozlash
Kodni sozlash

Bu erda ko'rsatilgan ekran tasvirida men uzoq vaqt davomida nimaga qaraganimni ko'rsatadi … bir vaqtning o'zida 4 ta eskiz! Kim disk raskadrovka qilish qiziq emas deb aytdi!

Kod yuqorida ko'rsatilgan boshqaruv va variantlarni beradi, lekin kodni sozlash haqida nima deyish mumkin?

Albatta! Ammo bu erda adolatli miqdor bor, shuning uchun bu erda ba'zi ko'rsatmalar yoki maslahatlar.

Maslahat 1 - "Chat" ketma -ketligini o'zgartirish. Ushbu o'zgartirish turret kodida amalga oshiriladi.

Qaerda bo'lmasin, men uchun kodni ishlash usulini o'ylab topishga harakat qildim. Hikoyaga ko'proq e'tibor qaratishim uchun suhbatlar ketma -ketligini tahrir qilish (bu so'zmi?), Lekin keyinchalik sozlashni osonlashtiradi.

Taqdim etilgan kodlash tuzilmasi yordamida Chat tartibini o'zgartirish, agar siz kodda qo'llanilgan usulga amal qilsangiz, juda sodda tarzda amalga oshirilishi mumkin. Portal 2 o'yinidan taqdim etilgan ovozli fayllardan foydalanib, siz faqat (chatSayings ) jadvalini o'zgartirishingiz kerak bo'ladi.

Oddiy minora yoki nuqsonli minora uchun so'zni tanlang. Bu so'z "00XX -" bilan belgilanadigan mp3 fayli va keyin bu so'zni tavsiflovchi matn. Bu muhim qism bo'lgan raqam. Turet # 1 bu XX qiymatini jadvalda ishlatadi. # 2 -tureta XX qiymatining oldiga "1", 3 -turetka esa "2" bilan XX qiymatining oldiga qo'yadi. Masalan, agar siz "0040 - uzr" iborasini tanlagan bo'lsangiz va 3 -minorada aytishni xohlasangiz, jadvalga "240" ni to'g'ri ketma -ketlikda kiritgan bo'lar edingiz. Agar 1 -sonli minora aytganda, siz stolga "40" raqamini kiritgan bo'lar edingiz.

Keyingi ifoda uchun ham shunday qiling va hokazo. Bu minoralar orasidagi bir nechta iboralar bo'lishi mumkin, yoki bir nechtasi. (Men bu usulning cheklovlari haqida bilmayman, xotiradan boshqa).

Boshqa jadvallarning qiymatlarini o'zgartirishingiz shart emas, chunki ular jadvaldagi so'zlarga mos keladi. O'zgartirish kerak bo'lgan yagona boshqa yo'nalish 520 chizig'i atrofida.

if (i> = 43) {// ketma -ketlik oxiri

Bu erda i qiymati chatSayings jadvalidagi so'zlar soniga o'rnatilishi kerak edi.

To'liq moslashtirilgan so'zlarni aytish uchun (haqiqiy o'yin -kulgi qaerdan boshlanadi!), Siz raqamli fayllarda ifodalarni o'rnatishingiz va faylni ijro etish uchun qancha vaqt kerakligini bilishingiz kerak. Faylni to'rtta raqamli ("0001", "0002" va boshqalar) SD -kartaning asosiy katalogidagi "mp3" papkasida saqlang. Keyin ushbu faylni ijro etish uchun zarur bo'lgan vaqtni millisekundlarda kiriting. Ushbu qiymatlarni tegishli jadvalga kiriting.

5400 millisekund davom etadigan "0037 - [sizning ifodangiz]" deb yozilgan ifoda uchun siz "37" ni chatSayings jadvaliga kerakli joyga qo'ygan bo'lar edingiz (va qaysi minora aytayotganiga qarab prefiks qo'shing) u) va 5400 ni NormaTimings jadvalida bir xil joyda (masalan, har bir jadvalning 5 -bandi).

Endi "i" qiymati oshganda, kod 0037 5400 millisekundda o'ynaydi.

E'tibor bering, men "timeadder" o'zgaruvchisini qo'shdim, bu esa har bir so'zga biroz ko'proq vaqt qo'shadi. Bu so'zlar orasida bir oz masofani beradi, shuning uchun ular bir -biriga mos kelmaydi.

Bu usulning go'zalligi shundaki, to'ldirilgan jadvallar har bir minorada bir xil bo'ladi! Ushbu jadvallarni har bir minoraga moslashtirishning hojati yo'q. Siz faqat bitta jadvalni tartibga solishingiz kerak, va kod har bir turret bir xil jadval asosida nima deganini aniqlab beradi.

Bu shuni anglatadiki, siz kodlash o'rniga skript yozishga e'tibor qaratishingiz mumkin!

Agar kimdir buni qilishning eng yaxshi usuliga ega bo'lsa, men buni eshitishni istardim !!

9 -qadam: Xulosa

Xulosa
Xulosa

Shunday qilib, bu men o'ylagandan ko'ra ko'proq vaqtni oldi, lekin natija meni chalg'itdi. Chatdagi ba'zi tartiblar hali ham meni kuldiradi!

Men o'z kodim ichida qilgan ishimni boshqa usullarini eshitishni xohlardim. Ishonchim komilki, qayta yozish va xotiradan kam foydalanish mumkin bo'lgan bo'limlar mavjud, bu esa ko'proq xususiyatlar yoki variantlarga imkon beradi.

Bundan tashqari, MTJga boshqa g'oyalar va minora nazoratini qo'shishni ham xohlardim!

Umid qilamanki, men boshqa dizaynerlar va koderlardan foydalanish / o'g'irlash / o'rganish uchun platforma yaratdim. Men buni odamlarga kodlashni o'rganishga yordam berish uchun ishlatilganini ko'rdim. MTM va/yoki minoradan, masalan, "Manuel rejim" kabi bo'limni olib tashlang va o'quvchilarni qo'lda boshqarishni o'zlashtirish usulini ishlab chiqing!

Men bu hamjamiyatdan va umuman keng tarmoqdan ko'p narsani o'rgandim. Hali ham hayronman, qancha odamlar ko'p vaqtini narsalarni o'ylab, dunyo bilan baham ko'rishadi. O'ylaymanki, men o'rganganlarimni olishim, qo'llashim va keyin siz bilan bo'lishishim kerak!

Omad tilaymiz va o'z minora armiyasini qurishdan xursand bo'ling!

Tavsiya: