Sisukord:

Digimale - jälgige oma malemängu võrgus: 5 sammu
Digimale - jälgige oma malemängu võrgus: 5 sammu

Video: Digimale - jälgige oma malemängu võrgus: 5 sammu

Video: Digimale - jälgige oma malemängu võrgus: 5 sammu
Video: 🎶 ДИМАШ SOS. История выступления и анализ успеха | Dimash SOS 2024, November
Anonim
Digimale - jälgige oma malemängu võrgus
Digimale - jälgige oma malemängu võrgus

Olen noorest saati mänginud palju malet ja kuna veebis on tohutul hulgal veebisaite, kus arvutitega või vastastega malet mängida, pole ma kunagi leidnud veebisaiti, mis jälgib teie malemängu tegelikult päriselus mängides. Nii et selle projektiga loodan seda mõista!

Ma loodan:

  • Oskab jälgida malendite liikumist
  • Vaadake mõnda edetabelit eelmiste mängude kohta.
  • Jälgige aega ja mängige kiiresti nagu professionaalne mäng.

See on väga keeruline projekt, kuna selle valmimine nõuaks lugemiseks 64 valgusandurit ja 8 kiipi. Mis on juba suur ülesanne ja me isegi ei loe ühtegi teist andurit.

Minu kolledž andis meile suure nimekirja asjadest, mida teha:

  1. Looge meie projekti jaoks skeem
  2. Looge andmebaas andmete salvestamiseks ja hankimiseks.
  3. Kujundage veebisait Adobe XD abil
  4. Looge see veebisait uuesti CSS -i ja HTML -iga
  5. Lugege andureid pythoniga
  6. Näidake anduri andmeid veebisaidil kolbi abil.

Selles õpetlikus juhendis juhendan teid oma teekonnal ning kõiki neid probleeme ja päästmishetki, mida olen viimase paari nädala jooksul läbi elanud.

Samm: tarvikud/tööriistad

Tarvikud, materjalid ja tööriistad on esimene samm eduka projekti jaoks!

Tööriistad:

  • Jootekolb
  • Tina jootmine
  • Tangid
  • Puurimismasin
  • Lint

Tarvikud:

  • Vaarika Pi koos micro SD -kaardiga (4 GB peaks piisama)
  • Rasberry Pi T-cobbler
  • Malelaud koos tükkidega
  • 7 segmendi ekraan (TM 1637)
  • 2 puuteandurit (TTP223B)
  • RFID -lugeja kaartidega (MFRC522)
  • MCP3008 (sõltuvalt sellest, kui kaugele soovite minna, saate iga MCP kohta lugeda 8 malekoordinaati)
  • Valgusõltuv takisti tüüp 5288 (8 iga MCP kohta)
  • Päised (meestelt meestele ja naissoost meestele)

Kui teil on vaja kõike osta, peaks eeldatav omahind olema umbes 125 eurot koos saatekuludega (ainult tarvikud)!

Lisatud on Exceli fail koos linkide ja hindadega kõigele, mida vajate!

2. samm: skeemid ja planeerimine

Skeemid ja planeerimine!
Skeemid ja planeerimine!
Skeemid ja planeerimine!
Skeemid ja planeerimine!

Selle projekti järgmine samm on skeemi loomine. Tegin 2: ühe leivaplaadil ja ühe puhtalt elektroonilise. Me vajame seda skeemi, et hoida kõik puhtana ja veenduda, et me ei ühenda mittevajalikke asju!

Kasutasin nende skeemide loomiseks programmi "Fritzing", kui kedagi huvitab.

Värvikood:

  • Punane = toide
  • Roheline = ühendus
  • Sinine = maapind

Vaarika Pi ühendused:

  • 3V3 => VC liin leivaplaadil, mis toidab kõike
  • 5V => 7 segmendi kuva VCC
  • GND:

    • Leivaplaadil jahvatatud
    • Seitsme segmendi ekraani alus
  • GPIO4 => Kell Valige MCP3008 tihvt
  • GPIO10 => MCP3008 MOSI -tihvt
  • GPIO9 => MCP3008 MISO tihvt
  • GPIO11 => MCP3008 CLK -tihvt
  • GPIO7 => MFRC522 SDA tihvt
  • GPIO19 => Esimese puuteanduri DIG -tihvt
  • GPIO26 => Teise puuteanduri DIG -tihvt
  • GPIO20 => Seitsme segmendi kuva CLK -tihvt
  • GPIO21 = seitsme segmendi kuva DIO -tihvt

Paar märkust skeemi kohta:

  • See skeem sisaldab ainult 1 MCP -d, see tähendab, et ainult 8 koordinaati saab täielikult lugeda.
  • Kasutan oma kiibivalikuna GPIO tihvte. Kuna potentsiaalselt 8 MCP -ga on saadaval ainult 2 kiibi valimise tihvti.
  • Seitsme segmendi ekraan on õpetaja soovitatud, vaja on ainult 4 juhtmest, kuna see töötab oma protokolli alusel.
  • Puuteandurite digitaalse tihvti takistid pole täielikult vajalikud, kuid neid soovitatakse.

Komponentide selgitamine:

  • MCP valgusanduritega:

    • MCP3008 on 8 -kanaliline 10 -bitine ADC:

      • MCP3008 loeb valgussensorite analoogväärtust, see väärtus sõltub sellest, kui palju valgust anduril praegu paistab.
      • Oma Pythoni koodis saan selle analoogväärtuse ja teisendan selle 1 või 0 -ks
  • Puuteandurid:

    Töötab nagu nupp, ma kasutan selle jaoks klassi tagasihelistamismeetodiga. Sellest lähemalt hiljem

    RFID -lugeja (MFRC 522):

    • Kasutab installitud paketiga spetsiaalset protokolli (SPI).
    • Installitud paketiga pole keeruline kodeerida
    • Loeb silti ja tagastab sildi väärtuse
    • Märgendile saate kirjutada ka väärtuse, nii et kuueteistkümnendsüsteemi väärtuse tagastamise asemel tagastab see näiteks nime

    7 segment (TM1637)

    • Kasutab ka kodeerimise hõlbustamiseks installitud paketti
    • Looge muutuja täisarvulise väärtusega, seejärel jagage see neljaks tähemärgiks ja näidake neid märke

3. samm: SQL -andmebaas

SQL andmebaas
SQL andmebaas

Kolmas samm selle projekti suunas on 3NF normaliseeritud SQL -andmebaasi loomine!

Meil läheb seda vaja:

  • Andmete sisestamine
  • Andmete hankimine ja nende kuvamine meie veebisaidil
  • Võimalus täpselt näha, kui palju pöördeid on praeguses malemängus läinud!

Tabelid on selgitatud:

  • Mängud

    • See jälgib, kes võitis kindla mängu ja millal mängu mängiti
    • Esmane võti on siin GameID
    • Kuupäeval on praeguse kuupäeva standardväärtus
    • Võitja ja skoor lisatakse hiljem, pärast mängu lõppu!
  • Mängijad (hollandi keeles kõnelejad)

    • Need sisestatakse käsitsi, kuid neid saab sisestada ka RFID -kaardisüsteemi abil.
    • Kirjutage oma kaardile nimi, lugege kaart ja sisestage nimi sellesse tabelisse
    • Samuti jälgib see iga mängija võitude / kaotuste rekordit, mis kuvatakse veebisaidil
  • Ajaloo (ajalugu)

    • See on pöörde ajalugu
    • kui maletükki teisaldatakse, värskendatakse seda siin
    • Sellel on 3 välisvõti, mängija, mäng ja malend
    • lugemiskuupäev (InleesDatum) on kuupäev, millal andur loeti
    • ReadTime on sama mis ReadDate, kuid ajatempliga
    • LocationID (LocatieID) on koordinaadi nimi, kuhu see on paigutatud. näiteks "a3"
  • Maletükid (Schaakstukken hollandi keeles)

    • Igal malendil on ID, meeskond, nimi ja olek
    • Meeskond on kas 1 või 2, must või valge;
    • Iga tüki nimi oleks st "Pant 1"
    • Staatus tähendab, et tükk on elus või surnud!

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara

Nüüd, kui meil on kõik õiged tükid paigas, saame hakata midagi looma!

Jagame selle osa alametappideks, sest seda on lihtsam selgitada:

  • Samm 1: Kui soovite puurida auku oma malelaua igasse koordinaati, nagu on näidatud esimesel pildil, puurige ka auk, kuhu soovite puuteandurid, RFID -lugeja ja 7 segmendi ekraani paigutada.

    Ärge unustage puurida plaadi küljele mõned augud, need on tahvli peal olevate erinevate komponentide juhtmete jaoks. Palju puurimist, ma tean

  • Samm: proovige juhtmega Raspberry Pi ühendada üks või kaks andurit, kontrollige, kas need töötavad. Soovite need ühendada MCP analooglugejaga, nagu on kirjeldatud 2. sammus (skeemid).
  • 3. samm: see võib olla keeruline ja väga närvesööv, kuna hüppajate päised ei ole väga paigas, võiksite need kõik plaadile kleepida, üksikult või mitu korraga. Peate veenduma, et need jäävad malelauale kinni, vastasel juhul ei saa te andureid edukalt lugeda

    NÕUANNE! Kui see teie jaoks lihtsamaks teeb, võib mõni liim tegelikult aidata andureid lindistamise ajal rohkem paigal hoida, avastasin selle raske tee

Samm: tarkvara

Tarkvara
Tarkvara

Pärast riistvara loomist, mida saate testida, proovime selle jaoks mõne koodi kirjutada! Kui soovite minu koodi vaadata, minge palun minu githubi.

Kõigepealt vajame installimiseks paari paketti, tegin teile nimekirja:

  • kolb

    See on see, mida teie püütoni kood töötab

  • KolbipesaIO

    Ees- ja tagaosa vaheliseks suhtlemiseks

  • numpy

    Kasulik valgusandurite lugemiseks, töötab maatriksitega

  • netiface

    Oma IP -aadressi printimiseks 7 segmendi ekraanile

  • Kolb-CORS

    Päritoluülese pöördumise jagamine võimaldab pakette jagada erinevates domeenides

Selle kõrval olen kirjutanud paar klassi ja saate neid vabalt kasutada.

Esiots

Veebisaidi kood on saadaval ka minu githubi lehel!

Esiotsa kasutan Chessboard.js. See lisab hõlpsasti kasutatava malelaua koos kergesti teisaldatavate tükkidega!

Kõik tahvlil on kohandatav, nii et nautige! Pärast uusima versiooni allalaadimist peate lohistama failid oma projekti ja linkima need lehele, kus soovite maletahvlit näidata!

Pärast seda proovime tahvlit luua, see ei tundu liiga raske:

Esiteks oma html -is:

Teiseks, oma JavaScripti failis:

board1 = ChessBoard ('board1', 'start');

ja seal see on, peaksite nüüd malelauda nägema! Kohandage julgelt CSS -failide tahvlit!

Nüüd tahame näha malelaual mõningaid liigutusi, mitte liiga raskeid. Kuid me peame seda kohandama, nii et käsk teisaldatakse taustast. Ma ei hakka liiga detailidesse laskuma, kuid me tahame teha midagi sellist:

new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (komando);

Saame oma taustaprogrammilt loendi ja paneme kahe koordinaadi vahele kriipsu, seejärel kasutage käiku board.move, et liikuda.

See on minu selgitus selle kohta, mida vajame pistikprogrammi chessboard.js, minge minu githubi, et ise koodi vaadata

Soovitan: