Mundarija:
- 1 -qadam: materiallar/asboblar
- 2 -qadam: sxemalar va rejalashtirish
- 3 -qadam: SQL ma'lumotlar bazasi
- 4 -qadam: Uskuna
- 5 -qadam: dasturiy ta'minot
Video: Raqamli shaxmat - shaxmat o'yiningizni onlayn kuzatib boring: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Men yoshligimdan ko'p shaxmat o'ynaganman va Internetda shaxmat o'ynaydigan kompyuterlar yoki raqiblar uchun juda ko'p veb -saytlar bo'lgani uchun, men hech qachon sizning shaxmat o'yiningizni kuzatib boradigan veb -saytni topmaganman. aslida haqiqiy hayotda o'ynaydi. Shunday qilib, men ushbu loyihani amalga oshirishga umid qilaman!
Men umid qilaman:
- Shaxmat buyumlarining harakatini kuzatib bora olish
- O'tgan o'yinlar haqida etakchi jadvallarni ko'ring.
- Vaqtni kuzatib boring va professional o'yin kabi tez o'ynang.
Bu juda murakkab loyiha, chunki uni tugatish uchun 64 ta yorug'lik sensori va 8 ta chipni o'qish kerak bo'ladi. Bu allaqachon katta vazifa va biz boshqa sensorlarni hisoblamaymiz.
Mening kollejimiz bizga bajariladigan ishlar ro'yxatini taqdim etdi:
- Loyihamizning sxemasini tuzing
- Ma'lumotlarni saqlash va olish uchun ma'lumotlar bazasini yarating.
- Adobe XD yordamida veb -sayt yaratish
- Ushbu veb -saytni HTML va CSS yordamida yarating
- Datchiklarni python bilan o'qing
- Sensor ma'lumotlarini kolba yordamida veb -saytida ko'rsatish.
Men sizga o'z yo'limda ko'rsatma beraman va barcha qiyinchiliklar va najot lahzalarini men oxirgi bir necha hafta ichida boshdan kechirdim.
1 -qadam: materiallar/asboblar
Materiallar, asboblar va asboblar - bu muvaffaqiyatli loyihaning birinchi qadami!
Asboblar:
- Lehimlash temir
- Lehimlash kalay
- Pense
- Burg'ulash mashinasi
- Lenta
Ta'minot:
- Micro SD kartali Raspberry Pi (4 Gb etarli bo'lishi kerak)
- Oyoq tikuvchi Rasberry Pi
- Shaxmat taxtasi bo'laklar bilan
- 7 segmentli displey (TM 1637)
- 2 ta sensorli sensor (TTP223B)
- Kartali RFID o'quvchi (MFRC522)
- MCP3008 (Qancha borishni xohlayotganingizga qarab, har bir MCP uchun 8 ta shaxmat koordinatasini o'qishingiz mumkin)
- 5288 turdagi nurga chidamli rezistor (har bir MCP uchun 8 ta)
- Sarlavhalar (Erkak - Erkak, Ayol - Erkak)
Agar siz hamma narsani sotib olishingiz kerak bo'lsa, taxminiy narx 125 evro atrofida bo'lishi kerak, shu jumladan etkazib berish xarajatlari (faqat etkazib berish)!
Sizga kerak bo'lgan hamma narsaga havolalar va narxlar qo'shilgan Excel fayli mavjud!
2 -qadam: sxemalar va rejalashtirish
Loyihaning keyingi bosqichi sxemani yaratishdir. Men 2 qildim: bittasi non taxtasida, bittasi faqat elektron. Bizga hamma narsa toza bo'lishi va keraksiz narsalarni ulamasligimiz uchun bu sxemalar kerak bo'ladi!
Agar kimdir qiziqsa, men ushbu sxemalarni yaratish uchun "Fritzing" deb nomlangan dasturdan foydalandim.
Rangli kodlash:
- Qizil = quvvat manbai
- Yashil = aloqa
- Moviy = zamin
Raspberry Pi ulanishlari:
- 3V3 => Non panelidagi hamma narsani quvvatlantiruvchi VC liniyasi
- 5V => 7 segmentli VCC displeyi
-
GND:
- Non taxtasida zamin
- 7 segmentli displeyning asosi
- GPIO4 => Soat MCP3008 pinini tanlang
- GPIO10 => MCP3008 uchun MOSI pin
- GPIO9 => MCP3008 ning MISO pimi
- GPIO11 => MCP3008 ning CLK pimi
- GPIO7 => MFRC522 SDA pin
- GPIO19 => Birinchi Sensorli DIG pin
- GPIO26 => Ikkinchi sensorli sensorning DIG pimi
- GPIO20 => etti segmentli displeyning CLK pimi
- Etti segmentli displeyning GPIO21 = DIO pimi
Er -xotin sxema bo'yicha eslatmalar:
- Ushbu sxemada faqat 1 ta MCP mavjud, demak, faqat 8 ta koordinatani to'liq o'qish mumkin bo'ladi.
- Men GPIO pinlarini chip tanlash sifatida ishlataman. Potentsial 8 ta MCP bilan faqat 2 ta chip tanlash pimi mavjud.
- 7 segmentli displey o'qituvchi tomonidan taklif qilingan, faqat 4 ta sim kerak, chunki u o'z protokoli bo'yicha ishlaydi.
- Sensorli sensorlarning raqamli pinidagi rezistorlar to'liq kerak emas, lekin ular tavsiya etiladi.
Komponentlarni tushuntirish:
-
Yorug'lik sensori bilan MCP:
-
MCP3008 - bu 8 kanalli 10 bitli ADC:
- MCP3008 yorug'lik sezgichlarining analog qiymatini o'qiydi, bu qiymat hozirda sensorda yonayotgan yorug'lik miqdoriga bog'liq.
- Python kodimda men analog qiymatni olaman va uni 1 yoki 0 ga aylantiraman
-
- O'rnatilgan paketli maxsus protokoldan (SPI) foydalanadi.
- O'rnatilgan paket bilan kodlash qiyin emas
- Yorliqni o'qiydi va teg qiymatini qaytaradi
- Siz tegga qiymat yozishingiz mumkin, shuning uchun u o'n oltilik qiymatni qaytarish o'rniga, masalan, ismni qaytaradi.
- Bundan tashqari, oson kodlash uchun o'rnatilgan paket ishlatiladi
- Butun qiymatli o'zgaruvchini yarating, so'ngra uni 4 ta belgiga bo'ling va bu belgilarni ko'rsating
Sensorli sensorlar:
Xuddi tugma kabi ishlaydi, men buni qayta qo'ng'iroq qilish usuli bilan ishlataman. Bu haqda keyinroq
RFID o'quvchi (MFRC 522):
7 -segment (TM1637)
3 -qadam: SQL ma'lumotlar bazasi
Ushbu loyihaga uchinchi qadam - 3NF normallashtirilgan SQL ma'lumotlar bazasini yaratish!
Bu bizga kerak bo'ladi:
- Ma'lumot kiritish
- Ma'lumot olish va uni veb -saytimizda ko'rsatish
- Hozirgi shaxmat o'yinida aynan qancha burilishlar bo'lganini ko'rish imkoniga ega bo'lish!
Jadvallar tushuntirildi:
-
O'yinlar
- Bu o'yinda kim g'alaba qozonganini va o'yin qachon o'tkazilganligini aniqlaydi
- Bu erda asosiy kalit GameID
- Sana joriy sananing standart qiymatiga ega
- G'olib va ochko o'yin tugagandan so'ng qo'shiladi!
-
O'yinchilar (Gollandiyada yozuvchilar)
- Ular qo'lda kiritiladi, lekin RFID karta tizimi yordamida ham kiritilishi mumkin.
- Kartangizga ism yozing, so'ng kartani o'qing va ismingizni shu jadvalga kiriting
- Shuningdek, u har bir o'yinchining g'alaba / yo'qotish rekordini kuzatib boradi, bu veb -saytda ko'rsatiladi
-
Tarixchi (tarix)
- Bu burilish tarixi
- Shaxmat ko'chirilganda, u shu erda yangilanadi
- Unda 3 ta chet el kalitlari, o'yinchi, o'yin va shaxmatchasi bor
- ReadDate (InleesDatum) - bu sensor o'qilgan sana
- ReadTime ReadDate bilan bir xil, lekin vaqt tamg'asi bilan
- LocationID (LocatieID) - u joylashgan koordinataning nomi. masalan "a3"
-
Shaxmat bo'laklari (Schaakstukken Gollandiyada)
- Har bir shaxmatning shaxsiy identifikatori, jamoasi, nomi va maqomi bor
- Jamoa yo 1 yoki 2, qora yoki oq;
- Har bir qismning nomi "Piyon 1" bo'ladi.
- Holat bu asar tirik yoki o'lik ekanligini bildiradi!
4 -qadam: Uskuna
Endi bizda barcha kerakli qismlar bor, biz nimanidir yaratishni boshlashimiz mumkin!
Keling, ushbu qismni kichik bosqichlarga ajratamiz, chunki tushuntirish osonroq bo'ladi:
-
1 -qadam: Siz birinchi rasmda ko'rsatilgandek, shaxmat taxtangizning har bir koordinatasiga teshik ochmoqchisiz, shuningdek, sensorli sensorlar, RFID o'quvchi va 7 segmentli displeyni joylashtirmoqchi bo'lgan teshikni burang.
Taxtaning yon tomonida bir nechta teshiklarni burg'ilashni unutmang, bu taxtaning yuqori qismidagi turli qismlarning simlari uchun. Ko'p burg'ulash, bilaman
- 2 -qadam: Raspberry Pi -ga bitta yoki ikkita sensorni ulashga harakat qiling, ular ishlayotganini tekshiring. Siz ularni MCP analog o'quvchisiga 2 -bosqichda aytilganidek ulashni xohlaysiz (sxemalar).
-
3 -qadam: Bu juda murakkab va asabiy buzilish bo'lishi mumkin, chunki o'tish joylarining sarlavhalari bir -biriga yopishib qolmagan, siz ularni birma -bir yoki birdaniga taxtaga yopishtirishingiz mumkin. Siz ular shaxmat taxtasida qolib ketishlariga ishonch hosil qilishingiz kerak, aks holda siz datchiklarni muvaffaqiyatli o'qiy olmaysiz
MASLAHAT! Agar bu sizga qulaylik tug'dirsa, yopishtiruvchi datchiklarni lentalash paytida joyida saqlashga yordam berishi mumkin, men buni qiyin yo'l bilan kashf qildim
5 -qadam: dasturiy ta'minot
Siz sinab ko'rishingiz mumkin bo'lgan uskuna yaratganingizdan so'ng, keling, unga kod yozishga harakat qilaylik! Agar siz mening kodimni ko'rib chiqmoqchi bo'lsangiz, iltimos, mening github -ga o'ting.
Birinchidan, biz bir nechta paketlarni o'rnatamiz, men oldinga borib, siz uchun ro'yxat tuzdim:
- kolba
Bu sizning python kodingiz ishlaydi
-
Shisha rozetkasi
Old va orqa tomon o'rtasida aloqa o'rnatish uchun
-
befarq
Yorug'lik sensorlarini o'qish uchun foydalidir, matritsa bilan ishlaydi
-
tarmoqlar
O'zingizning IP -manzilingizni 7 segmentli displeyda chop etish uchun
-
Kolba-CORS
O'zaro kelib chiqish manbalarini almashish, paketlarni turli domenlarda bo'lishishga imkon beradi
Buning yonida men bir nechta darslar yozdim va siz ulardan foydalanishingiz mumkin.
Foydalanuvchi interfeysi
Veb -sayt kodi mening github sahifamda ham mavjud!
Old tomondan men Chessboard.js dan foydalanaman. Bu oson harakatlanadigan bo'laklarga ega bo'lgan shaxmat taxtasini joylashtiradi!
Bortda hamma narsa moslashtirilgan, shuning uchun dam oling! Oxirgi versiyani yuklab olgandan so'ng, siz fayllarni loyihangizga sudrab olib borishingiz va shaxmat taxtasini ko'rsatmoqchi bo'lgan sahifaga bog'lashingiz kerak bo'ladi!
Shundan so'ng, keling, taxtani yaratishga harakat qilaylik, unchalik qiyin emas:
Birinchidan, html -da:
Ikkinchidan, javascript faylida:
taxta1 = Shaxmat taxtasi ('taxta1', 'boshlash');
va u erda siz shaxmat taxtasini hozir ko'rishingiz kerak! CSS -dagi fayllar taxtasini sozlang!
Endi biz shaxmat taxtasida juda qiyin bo'lmagan ba'zi harakatlarni ko'rishni xohlaymiz. Ammo biz uni sozlashimiz kerak, shuning uchun ko'chirish buyrug'i orqa tomondan yuboriladi. Men batafsil tafsilotlarni aytmayman, lekin biz shunday qilishni xohlaymiz:
new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (komando);
Biz dasturni ro'yxatidan olamiz va ikkita koordinataning o'rtasiga chiziq qo'yamiz, so'ngra harakatni bajarish uchun board.move buyrug'idan foydalanamiz!
Menga chessboard.js plaginining nima kerakligini tushuntirishim kerak, kodni o'zingiz ko'rib chiqish uchun mening gitubimga o'ting.
Tavsiya:
IoT ESP8266 seriyasi: 2- ThingSpeak.com orqali ma'lumotlarni kuzatib boring: 5 qadam
IoT ESP8266 seriyasi: 2- ThingSpeak.com orqali ma'lumotlarni kuzatib boring: bu IoT ESP8266 seriyasining ikkinchi qismi. 1 -qismni ko'rish uchun IoT ESP8266 seriyali ko'rsatmalarga qarang: 1 WIFI routeriga ulaning, bu bo'lim sizga sensorli ma'lumotni mashhur IoT bepul bulutli xizmatlaridan biriga qanday yuborish kerakligini ko'rsatishga qaratilgan https: //thingspeak.com
NodeMCU va Blynk -da AM2301 yordamida harorat va namlikni kuzatib boring: 3 qadam
NodeMCU & Blynk -dagi AM2301 yordamida harorat va namlikni kuzatib boring: Ma'lumki, ko'pchilik sohalarda vertikallar, harorat, namlik, bosim, havo sifati, suv sifati va boshqalar doimiy ravishda kuzatilishi kerak bo'lgan muhim omillarni o'ynaydi. ogohlantirish tizimlari qiymatga ega bo'lganda bo'lishi kerak
DIY: Avtomobil batareyasini kuzatib boring: Kod va sozlash: 8 qadam
DIY: Avtomobil akkumulyatorini kuzatib boring: Kod va sozlash: Avtomobil akkumulyatorini kuzatish imkoniyati yoqimsiz kutilmagan hodisalarning oldini oladi. Men sizga mashinani qanday o'rnatganimni, dasturiy ta'minotni yuklaganimni va monitorni qanday o'rnatganimni ko'rsataman. Men Wemos D1 Mini deb nomlangan ESP8266 taxtasidan foydalanaman
Arduino robotining 5 tasi 1 - Meni kuzatib boring - Keyingi qator - Sumo - Chizma - To'siqlardan qochish: 6 qadam
Arduino robotining 5 tasi 1 | Meni kuzatib boring | Keyingi qator | Sumo | Chizma | To'siqlardan qochish: Bu robot boshqaruv panelida ATmega328P mikrokontroller va L293D dvigatel drayveri mavjud. Albatta, bu Arduino Uno taxtasidan farq qilmaydi, lekin u foydaliroq, chunki dvigatelni boshqarish uchun boshqa qalqon kerak emas! Bu sakrashdan ozod
ESP8266 bo'yicha COVID-19 tarqalishini kuzatib boring: 11 qadam (rasmlar bilan)
ESP8266 bo'yicha COVID-19 tarqalishini kuzatib boring: Bu kichik gadjet sizga koronavirus tarqalishi va mamlakatingizdagi vaziyat haqida xabardor bo'lishga yordam beradi. Bu IoT-ga asoslangan loyiha, u koronavirus (COVID-19) bilan kasallanganlar, o'limlar va tuzalib ketganlar haqidagi real vaqtda ma'lumotlarni ko'rsatadi.