Sadržaj:

Digitalni šah - Pratite svoju šahovsku igru na mreži: 5 koraka
Digitalni šah - Pratite svoju šahovsku igru na mreži: 5 koraka

Video: Digitalni šah - Pratite svoju šahovsku igru na mreži: 5 koraka

Video: Digitalni šah - Pratite svoju šahovsku igru na mreži: 5 koraka
Video: PLAYSTATION - ТЕЛЕФОН! 2024, Studeni
Anonim
Digitalni šah - Pratite svoju šahovsku igru na mreži
Digitalni šah - Pratite svoju šahovsku igru na mreži

Igrao sam mnogo šaha od mladosti, a budući da web ima ogromnu količinu web stranica na kojima možete igrati šah protiv računala ili živih protivnika, nikada nisam pronašao web stranicu koja prati vašu šahovsku igru. zapravo igra u stvarnom životu. Stoga se ovim projektom nadam da ću to realizirati!

Nadam se da ću:

  • Moći pratiti kretanje šahovskih figura
  • Pogledajte neke tablice s rezultatima o prošlim igrama.
  • Pratite vrijeme i igrajte brzo poput profesionalne igre.

To je vrlo složen projekt jer će za čitanje zahtijevati 64 svjetlosna senzora i 8 čipova. Što je već veliki zadatak i ne računamo niti jedan drugi senzor.

Moj fakultet dao nam je veliki popis stvari za raditi:

  1. Napravite shemu za naš projekt
  2. Izradite bazu podataka za pohranu i dobivanje podataka.
  3. Dizajnirajte web stranicu koristeći Adobe XD
  4. Ponovo stvorite ovu web stranicu s CSS -om i HTML -om
  5. Pročitajte senzore s pythonom
  6. Prikažite podatke senzora na web stranici pomoću tikvice.

U ovom uputstvu vodit ću vas na svom putovanju i svim nevoljama i trenucima spasenja kroz koje sam prošao ovih zadnjih nekoliko tjedana.

Korak 1: Potrošni materijal/alati

Opskrba, materijali i alati prvi su korak do uspješnog projekta!

Alati:

  • Lemilica
  • Limenka za lemljenje
  • Kliješta
  • Bušilica
  • Traka

Pribor:

  • Raspberry Pi s mikro SD karticom (4 GB bi trebalo biti dovoljno)
  • Rasberry Pi T-postolar
  • Šahovska ploča s figurama
  • 7 -segmentni zaslon (TM 1637)
  • 2 senzora dodira (TTP223B)
  • RFID čitač s karticama (MFRC522)
  • MCP3008 (Ovisno o tome koliko daleko želite ići, za svaki MCP možete pročitati 8 šahovskih koordinata)
  • Otpornik ovisan o svjetlu 5288 (8 za svaki MCP koji imate)
  • Zaglavlja (muški na muški i ženski na muški)

Ako trebate kupiti sve, procijenjena cijena koštanja trebala bi biti oko 125 eura, uključujući troškove dostave (samo potrošni materijal)!

U prilogu je Excel datoteka s vezama i cijenama na sve što vam treba!

Korak 2: Sheme i planiranje

Sheme i planiranje!
Sheme i planiranje!
Sheme i planiranje!
Sheme i planiranje!

Sljedeći korak u ovom projektu je stvaranje sheme. Napravio sam 2: jedan na ploči i jedan čisto elektronički. Ove će nam sheme trebati da sve bude čisto i da ne povežemo nepotrebne stvari!

Koristio sam program pod nazivom "Fritzing" za stvaranje ovih shema ako nekoga zanima.

Kodiranje boja:

  • Crveno = napajanje
  • Zelena = veza
  • Plava = tlo

Raspberry Pi veze:

  • 3V3 => VC linija na ploči, napaja sve
  • 5V => VCC 7 -segmentnog zaslona
  • GND:

    • Uzemljen na ploči
    • Uzemljenje 7 -segmentnog zaslona
  • GPIO4 => Sat Odaberite pin za MCP3008
  • GPIO10 => MOSI pin MCP3008
  • GPIO9 => MISO pin MCP3008
  • GPIO11 => CLK pin MCP3008
  • GPIO7 => SDA pin MFRC522
  • GPIO19 => DIG pin prvog senzora dodira
  • GPIO26 => DIG pin drugog osjetnika na dodir
  • GPIO20 => CLK pin sedmosegmentnog zaslona
  • GPIO21 = DIO pin zaslona sa sedam segmenata

Nekoliko napomena o shemama:

  • Ova shema sadrži samo 1 MCP, što znači da će se samo 8 koordinata moći čitati u potpunosti.
  • Koristit ću GPIO pinove kao svoj Chip Select. Budući da su dostupna samo 2 čipa za odabir čipa s potencijalno 8 MCP -ova.
  • Zaslon od 7 segmenata je jedan koji je predložio učitelj, potrebne su samo 4 žice jer radi po vlastitom protokolu.
  • Otpornici na digitalnom pinu osjetnika na dodir nisu u potpunosti potrebni, ali se savjetuju.

Objašnjavajući komponente:

  • MCP sa svjetlosnim senzorima:

    • MCP3008 je 8 -kanalni 10 -bitni ADC:

      • MCP3008 će očitati analognu vrijednost svjetlosnih senzora, ta vrijednost ovisi o količini svjetlosti koja trenutno sijeva na senzoru.
      • U svom python kodu primit ću tu analognu vrijednost i pretvoriti je u 1 ili 0
  • Senzori dodira:

    Radi kao gumb, za ovo koristim klasu s metodom povratnog poziva. O ovome kasnije

    RFID čitač (MFRC 522):

    • Koristi određeni protokol (SPI) s instaliranim paketom.
    • Nije teško kodirati s instaliranim paketom
    • Čita oznaku i vraća vrijednost oznake
    • Također možete unijeti vrijednost u oznaku, pa umjesto da vrati heksadecimalnu vrijednost, ona vraća naziv, na primjer

    7 segment (TM1637)

    • Također koristi instalirani paket za jednostavno kodiranje
    • Napravite varijablu s cijelom vrijednosti, a zatim je podijelite na 4 znaka i pokažite te znakove

Korak 3: SQL baza podataka

SQL baza podataka
SQL baza podataka

Treći korak prema ovom projektu je stvaranje 3NF normalizirane SQL baze podataka!

Ovo će nam trebati za:

  • Umetanje podataka
  • Dobivanje podataka i njihovo prikazivanje na našoj web stranici
  • Biti u mogućnosti vidjeti koliko je zavoja prošlo u trenutnoj igri šaha!

Objašnjene tablice:

  • Igre

    • Ovo prati tko je pobijedio u određenoj igri i kada je igra odigrana
    • Primarni ključ ovdje je GameID
    • Datum ima standardnu vrijednost tekućeg datuma
    • Pobjednik i rezultat bit će dodani kasnije, nakon što igra završi!
  • Igrači (igrači na holandskom)

    • Oni se umeću ručno, ali se mogu umetnuti i pomoću sustava RFID kartica.
    • Napišite ime na svoju karticu, zatim pročitajte karticu i umetnite ime u ovu tablicu
    • Također prati rekord pobjeda / poraza svakog igrača koji će biti prikazan na web stranici
  • Historiek (Povijest)

    • Ovo je povijest skretanja
    • kad se šahovska figura pomakne, ovdje će se ažurirati
    • Ima 3 strana ključa, igrač, igru i šahovsku figuru
    • ReadDate (InleesDatum) je datum kada je senzor pročitan
    • ReadTime je isto što i ReadDate, ali s vremenskom oznakom
    • LocationID (LocatieID) je naziv koordinate na kojoj se nalazi. na primjer "a3"
  • Šahovske figure (Schaakstukken na holandskom)

    • Svaka šahovska figura ima osobnu iskaznicu, tim, ime i status
    • Ekipa je 1 ili 2, crna ili bijela;
    • Naziv bilo kojeg komada bio bi tj. "Pion 1"
    • Status znači da je komad živ ili mrtav!

Korak 4: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

Sada kada imamo sve ispravne komade na mjestu, možemo početi stvarati nešto!

Podijelimo ovaj dio u podkorake jer će biti lakše objasniti:

  • Korak 1: Želite li izbušiti rupu u svakoj koordinati vaše šahovske ploče, kao što je prikazano na prvoj slici, također izbušite rupu u koju želite postaviti senzore za dodir, RFID čitač i 7 -segmentni zaslon.

    Ne zaboravite izbušiti neke rupe sa strane ploče, to su za žice različitih komponenti na vrhu ploče. Puno bušenja, znam

  • Korak 2: Pokušajte spojiti jedan ili dva senzora na Raspberry Pi, provjerite rade li. Želite ih spojiti na MCP analogni čitač kao što je objašnjeno ranije u koraku 2 (Sheme).
  • Korak 3: Ovo bi moglo biti zeznuto i uništiti živce, budući da zaglavlja kratkospojnika nisu jako zaglavljena, možda biste ih htjeli sve zalijepiti na ploču, pojedinačno ili više odjednom. Morate se pobrinuti da ostanu zaglavljeni na šahovskoj ploči, inače nećete moći uspješno očitati senzore

    SAVJET! Ako vam to olakšava, neko ljepilo bi zapravo moglo pomoći da senzori ostanu na mjestu dok ih lijepite, otkrio sam to na teži način

Korak 5: Softver

Softver
Softver

Nakon što ste napravili hardver koji možete testirati, pokušajmo napisati neki kod za njega! Ako želite pogledati moj kod, prijeđite na moj github.

Back-endPrvo će nam trebati nekoliko paketa za instaliranje, nastavio sam i napravio popis za vas:

  • tikvica

    Na ovome će se raditi vaš python kôd

  • Utičnica za utičnicuIO

    Za komunikaciju između prednjeg i stražnjeg kraja

  • numpy

    Korisno za čitanje svjetlosnih senzora, radi s matricama

  • netifaces

    Za ispis vlastite IP adrese na 7 -segmentnom zaslonu

  • Boca-CORS

    Dijeljenje regresa s više podrijetla, omogućuje dijeljenje paketa na različitim domenama

Uz to, napisao sam nekoliko predavanja i slobodno ih možete koristiti.

Prednji kraj

Kôd web stranice dostupan je i na mojoj github stranici!

Za front-end ću koristiti Chessboard.js. Time se ubacuje šahovska ploča koja se lako koristi s figurama koje se lako premještaju!

Sve na ploči je prilagodljivo pa se zabavite! Nakon što preuzmete najnoviju verziju, datoteke ćete morati prevući u svoj projekt i povezati ih sa stranicom na kojoj želite prikazati šahovsku ploču!

Nakon toga, pokušajmo stvoriti ploču, ne izgleda previše teško:

Prvo, u vašem html -u:

Drugo, u vašoj javascript datoteci:

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

i eto ga, sad biste trebali moći vidjeti šahovsku ploču! Slobodno prilagodite ploču u CSS datotekama!

Sada želimo vidjeti neke poteze na šahovskoj ploči, ne pretjerane. Ali moramo ga prilagoditi tako da naredbu move pošalje back-end. Neću ulaziti u previše detalja, ali želimo učiniti nešto ovako:

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

Dobivamo popis iz našeg back-end programa i stavljamo crticu između dvije koordinate, a zatim pomoću naredbe board.move izvršimo potez!

To je moje objašnjenje onoga što nam treba od dodatka chessboard.js, idite na moj github da sami pogledate kod

Preporučeni: