Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Salom ijodkorlar, Men Tohir Miriyev, 2018 yil Yaqin Sharq Texnik Universitetining bitiruvchisi, Anqara/ Turkiya. Men amaliy matematika ixtisosligi bo'yicha o'qiganman, lekin men har doim buyumlar yasashni yaxshi ko'rardim, ayniqsa, elektronika, dizayn va dasturlash bilan bog'liq qo'l ishlarida. Sanoat dizayni bo'limida taqdim etilgan prototiplash bo'yicha noyob kurs tufayli men haqiqatan ham qiziqarli narsalarni qilish imkoniyatiga ega bo'ldim. Loyihani butun semestr (4 oy) davom etadigan muddatli loyiha sifatida ko'rib chiqish mumkin. Talabalarga Arduino mikrokontrollerlari va sensorlar yordamida o'z mahsulotlarini/demolarini loyihalashtirishga ijodiy yondashish va o'z g'oyalarini amalga oshirish vazifasi yuklatilgan. Men shaxmat haqida o'yladim va muvaffaqiyatli loyihalar ustida izlanishlar olib borganimda, oldingi loyihalarda ishlab chiqaruvchilar asosan Raspberry Pi bilan bir qatorda, tayyor shaxmat dvigatellarini (har bir figuraning barcha harakatlari yadroda dasturlashtirilgan) ishlatganini payqadim. es, LED va qamish kalitlari. Men o'z loyihamda, shaxmat dvigateli bo'yicha har qanday tashqi dasturiy ta'minotdan voz kechishga va RFID o'quvchi, Hall effektli datchiklar va Arduino Mega yordamida raqamlarni tanib olish muammosiga ijodiy echim topishga qaror qildim.
1 -qadam: Raqamni aniqlash muammosi nima va uni qanday hal qildim
Oddiy qilib aytganda, sizda "miya" = mikrokontroldorli shaxmat taxtasi bor va siz taxtangizga qaysi figurani qo'lda ushlab turganingizni va qaerga qo'yganingizni tushuntirishingiz kerak. Bu raqamlarni aniqlash muammosi. Agar shaxmat dvigateliga ega bo'lsang, uning barcha qismlari taxtada dastlabki holatida tursa, bu muammoning echimi ahamiyatsiz bo'ladi. Nima uchun bunday bo'lganini tushuntirishdan oldin, ba'zi izohlar beray.
Bu erda ishlar qanday amalga oshishini ishtiyoqmandlar uchun men nima uchun qamish kalitlari kerakligini tushuntirishim kerak (yoki men Hall effektli datchiklardan foydalanganman): agar siz har bir bo'lak ostiga magnit qo'yib, uni olsangiz datchik ustidagi magnit maydonning yo'qligi/yo'qligi sababli, doskadagi kvadrat (har bir kvadrat ostida qamish kaliti bor deb faraz qilinadi), siz boshqaruvchingizga maydonda turgan bo'lak yo'qligini tushunishingiz mumkin.. Biroq, u hali ham mikrokontrollerga aynan qaysi maydonda turgani haqida hech narsa demaydi. Bu faqat maydonda bo'lak yo'qligini ko'rsatadi. Bu vaqtda biz shaxmat dvigateli yordamida hal qilinadigan, shaxmat o'yini boshlanganda barcha qismlari dastlabki holatiga qo'yilgan, raqamlarni tanib olish muammosiga duch keldik. Shunday qilib, mikrokontroller har bir bo'lakning boshidan qaerda turishini "biladi" va barcha manzillar xotirada saqlanadi. Shunday bo'lsa -da, bu bizga katta cheklovlarni keltirib chiqaradi: siz, aytaylik, har qanday sonni tanlay olmaysiz va tasodifan taxtaning istalgan joyiga qo'yib, o'yinni tahlil qila olmaysiz. Siz har doim boshidan boshlashingiz kerak, hamma qismlar dastlab taxtada bo'lishi kerak, chunki siz bir bo'lakni ko'tarib boshqa maydonga qo'yganingizdan so'ng mikrokontroller o'z manzillarini kuzatib borishning yagona yo'li. Aslida, bu men payqagan muammo edi va men hal qilishga harakat qildim.
Mening yechimim ijodiy bo'lsa -da, juda oddiy edi. Men RFID o'quvchisini taxtaning old tomoniga qo'ydim. Shu bilan birga, men faqat bo'laklarga magnitni emas, balki RFID yorlig'ini ham yopishtirdim, uning har bir qismi o'ziga xos identifikatorga ega edi. Shunday qilib, rasmni istalgan maydonga qo'yishdan oldin, siz uni RFID o'quvchisiga yaqin tutib, uning identifikatorini o'qishiga ruxsat berishingiz, buyumni aniqlab, xotirada saqlashingiz va keyin xohlagan joyingizga qo'yishingiz mumkin. Bundan tashqari, qamish kalitlarini ishlatishning o'rniga, kontaktlarning zanglashiga olib keladigan dizaynni soddalashtirish uchun, men xuddi shunday ishlaydigan zal effektli datchiklardan foydalandim, bunda faqat 0 yoki 1 raqamli ma'lumotlar sifatida mikrokontrolderga yuboriladi, bu "bor" degan ma'noni anglatadi. yoki mos ravishda maydonda "yo'q". Men LEDlarni ham qo'shdim (afsuski, bir xil rangda emas, ular yo'q edi), shuning uchun siz bo'lakni ko'targaningizda, ko'tarilgan bo'lak joylashtirilishi mumkin bo'lgan barcha kvadrat joylar yonadi. Buni shaxmat o'rganuvchilar uchun ta'lim amaliyoti deb o'ylang:)
Va nihoyat, shuni ta'kidlashni istardimki, men bir nechta texnikani qo'llagan bo'lsam -da, loyiha sodda va tushunarli bo'lib qolmoqda, chuqur o'ylanmagan yoki murakkab emas. Menda 8x8 shaxmat taxtasi bilan shug'ullanishga vaqtim yo'q edi (shuningdek, Turkiyada 64 ta zal effektli datchiklar qimmat bo'lgani uchun men loyiha bilan bog'liq barcha xarajatlarni o'z zimmamga olganman), shuning uchun men 4x4 demo versiyasini faqat ikkita bo'lak bilan sinovdan o'tkazdim: Piyon va Malika Shaxmat dvigatelidan foydalanish o'rniga men Arduino uchun manba kodini yozdim, u quyidagi videoda ko'rishingiz mumkin bo'lgan hamma narsani yaratadi.
2 -qadam: Ishlar qanday ishlaydi
Loyiha qanday amalga oshirilganligini bosqichma-bosqich tushuntirishga o'tishdan oldin, men o'ylaymanki, tasvirlangan videoni tomosha qilib, men nima haqida gapirayotganimni tushunib olsam yaxshi bo'lardi.
Eslatma #1: qizil LEDlarning biri (birinchi navbatda/ chapdan o'ngga) yonib ketgan, xafa bo'lmang.
Eslatma #2: keng qo'llanilgan bo'lsa -da, o'z tajribamdan shuni aytishim mumkinki, RFID texnologiyasi DIY ilovalarida foydalanish uchun eng yaxshi g'oya emas (agar sizda alternativalar bo'lsa). Hamma narsa ishlamasdan oldin, men shaxsan o'yinchini o'quvchiga yaqin joylashtirish va identifikator to'g'ri o'qilishini kutish bilan ko'p sinovlarni o'tkazdim. Buning uchun ketma -ket portni sozlash kerak, chunki RFID o'quvchining identifikatorni o'qishi - bu bosh og'rig'i. Muammoni tushunish uchun odam o'zi harakat qilishi kerak. Agar sizga ko'proq yordam kerak bo'lsa, iltimos, menga xat yozing ([email protected]) yoki skype -ga qo'shing (tahir.miriyev9r1), shunda biz suhbatni rejalashtirib, narsalarni batafsil muhokama qila olamiz, men hamma narsani batafsil tushuntirib beraman.
3 -qadam: Asboblar va komponentlar
Mana men loyihada ishlatgan barcha asboblar ro'yxati: Elektron komponentlar:
- Non paneli (x1)
- Har tomonlama A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Hall effektli sensorlar (x16)
- Asosiy 5 mm LED (x16)
- Jumper simlari
- 125 kHz chastotali RFID o'quvchi va antenna (x1)
- Arduino Mega (x1)
- RFID 3M teglari (x2)
Boshqa materiallar:
- Pleksiglas
- Yaltiroq qog'oz
- Qisqa taxtalar (yog'och)
- Akril bo'yoq (quyuq yashil va krem) x2
- Yupqa karton
- 10 mm dumaloq magnit (x2)
- Piyon va malika qismlari
- Lehimlash temir va lehim materiallari
4 -qadam: sxemalar (muzlatish)
Bilaman, sxemalar biroz murakkabroq, lekin fikr aniq bo'lishi kerak. Men Fritzingni birinchi marta ishlatganman (aytmoqchi, juda tavsiya qilingan), ehtimol ulanishlarni aniqroq chizish mumkin edi. Qanday bo'lmasin, men sxemadagi hamma narsani qayd qildim. Eslatma: Fritzing ma'lumotlar bazasidagi komponentlar orasida RDIF Reader modelini aniq topa olmadim. Men ishlatgan model - 125 kHz chastotali RFID moduli - UART. Siz Youtube -da ushbu modulni Arduino -da qanday o'rnatish haqida ko'rsatmalarni topishingiz mumkin.
5 -qadam: jarayon
Ishlar qanday yaratilganligini tushuntirish vaqti keldi. Iltimos, bosqichma-bosqich tavsifga amal qiling:
1. A B C D 1 2 3 4 raqamli 16 kvadrat qilish uchun taxtaning yuqori qismining devorlarini kesish va yopishtirish uchun 21x21 sm o'lchamdagi kartonni, shuningdek, qo'shimcha kartonni oling. Karton ingichka bo'lgani uchun, siz har bir kvadratga 16 ta zal effektli datchiklarni yopishtirishingiz mumkin, ularning har birida 3 ta oyoq va har birida 2 ta oyoqli 16 ta LED mavjud.
2. Komponentlarni o'rnatgandan so'ng, siz Hall-effektli datchiklarning oyoqlarini va LEDlarni o'tish simlariga lehim qilishingiz kerak bo'ladi. Shu nuqtada, men rangli simlarni oqilona tanlashni maslahat beraman, shunda siz LEDlarning + va - oyoqlari, shuningdek Hall effektli sensorlarning VCC, GND va PIN oyoqlari bilan adashmaysiz. Albatta, datchikli PCB va hatto WS2812 tipidagi LEDlarni allaqachon lehimlangan holda chop etish mumkin, lekin men loyihani sodda saqlashga va yana "qo'lda ishlov berishga" qaror qildim. Bu erda siz faqat simlar va datchiklarni tayyorlashingiz kerak, keyingi bosqichlarda Fritzing sxemasidan so'ng siz har bir simning uchini qaerga ulashingiz kerakligini ko'rishingiz mumkin. Qisqa vaqt ichida, ularning ba'zilari Arduino Mega -dagi PIN -kodlarga o'tadilar (Arduino -da ular etarli), boshqalari non taxtasida va barcha GND -larni keyinchalik bitta shnurga (umumiy asosda) lehimlash mumkin. Arduino kartasida GND ga ulangan bo'lishi kerak. Bu erda bitta muhim eslatma: Hall effektli sensorlar OMNIDIRECTIONAL, ya'ni magnitning qaysi qutbini sensori yaqinida ushlab turishi muhim emas, u yaqinda magnit maydon mavjud bo'lganda 0 ta ma'lumotni yuboradi va yo'q bo'lganda 1 ta, aniqrog'i, magnit sensordan uzoqda (5 sm dan ortiq).
3. 21x21 sm o'lchamdagi shunga o'xshash karton tayyorlang va unga Arduino Mega va uzun non taxtasini mahkamlang. Siz yana kartondan istalgan balandlikdagi 4 ta devorni kesib, vertikal ravishda 21x21 sm o'lchamdagi to'rtburchaklar taxtalar bilan yopishtirishingiz mumkin. Keyin narsalarni sozlash uchun Fritzing sxemalariga amal qiling. LEDlar va Hall effektli sensorlar bilan ishlashni tugatgandan so'ng, RFID o'quvchisini o'rnatishingiz mumkin.
4. Barcha LEDlar va datchiklarning ishlashini asosiy kodlardan foydalanib signal yuborish orqali tekshiring. Bu qadamni qo'ldan boy bermang, chunki bu sizga hamma narsa to'g'ri ishlayotganini tekshirishga va taxtaning keyingi qurilishiga o'tishga imkon beradi.
5. Quyida 10 sm radiusli ikkita magnit, shuningdek dumaloq RFID teglari qo'yilgan, Piyon va malikani tayyorlang. Keyinchalik, siz Arduino IDE -da Serial Screen -dan ushbu teglarning identifikatorlarini o'qishingiz kerak bo'ladi.
6. Agar hamma narsa yaxshi ishlayotgan bo'lsa, siz asosiy kodni ishga tushirishingiz va narsalarni sinab ko'rishingiz mumkin!
7 (ixtiyoriy). Siz yog'och bilan badiiy ish qilishingiz mumkin, bu sizning demoning tabiiy ko'rinishini beradi. Bu sizning xohishingiz va tasavvuringizga bog'liq.
6 -qadam: Turli bosqichlardan olingan ba'zi rasm va videolar
7 -qadam: Manba kodi
Endi, biz prototipni tugatganimizda, biz uni quyida Arduino kodi yordamida hayotga qaytarishga tayyormiz. Kodni tahlil qilish jarayonini tushunarli bo'lishi uchun iloji boricha ko'proq izoh qoldirishga harakat qildim. Rostini aytsam, mantiq birinchi qarashda biroz murakkab bo'lib tuyulishi mumkin, lekin agar siz kod mantig'ini chuqurroq o'rgansangiz, u yanada kengroq ko'rinadi.
Eslatma: Haqiqiy shaxmat taxtasiga o'xshab, men mavhum ravishda kvadratchalarni A1, A2, A3, A4, B1,…, C1,…, D1,.., D4 deb hisobladim. Biroq, kodda bu belgini ishlatish amaliy emas. Shuning uchun men massivlardan foydalandim va kvadratlarni mos ravishda 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33 sifatida ko'rsatdim.
E'tiboringiz uchun tashakkur! Hamma narsani sinab ko'ring va izohlarda men o'tkazib yuborgan har qanday xatolar, yaxshilanishlar, takliflar va h.k. haqida yozishingiz mumkin. Loyiha haqida ba'zi fikrlarni kutib qolamiz. Agar sizga loyiha bo'yicha har qanday yordam kerak bo'lsa, menga xat yuboring (miriyevt@gmail).com) yoki skype -ga qo'shing (tahir.miriyev9r1), shunda biz suhbatni rejalashtiramiz va narsalarni batafsil muhokama qilamiz. Omad tilaymiz!