Sadržaj:
- Korak 1: Potrošni materijal/alati
- Korak 2: Sheme i planiranje
- Korak 3: SQL baza podataka
- Korak 4: Hardver
- Korak 5: Softver
Video: Digitalni šah - Pratite svoju šahovsku igru na mreži: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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:
- Napravite shemu za naš projekt
- Izradite bazu podataka za pohranu i dobivanje podataka.
- Dizajnirajte web stranicu koristeći Adobe XD
- Ponovo stvorite ovu web stranicu s CSS -om i HTML -om
- Pročitajte senzore s pythonom
- 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
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
-
- 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
- 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
Senzori dodira:
Radi kao gumb, za ovo koristim klasu s metodom povratnog poziva. O ovome kasnije
RFID čitač (MFRC 522):
7 segment (TM1637)
Korak 3: 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
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
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:
Programirajte svoju igru 2048 s Javom !: 8 koraka
Programirajte svoju igru 2048 s Javom !: Obožavam igru 2048. I tako sam odlučio programirati svoju verziju. Vrlo je slična stvarnoj igri, ali sama programiranje daje mi slobodu da promijenim što god poželim kad god to poželim. Ako želim igru 5x5 umjesto tipičnih 4x4, s
Džepni šah: 4 koraka
Džepni šah: To je šah! U džepu. Ovaj projekt ima za cilj stvoriti mali uređaj koji može pokretati male igre poput zmija, pac-man-a, tetrisa, pa čak i šaha
Blokiranje oglasa na čitavoj mreži s vašim Raspberry Pi: 4 koraka
Blokiranje oglasa na čitavoj mreži s vašim Raspberry Pi: Doživite čistiji, brži web i blokirajte dosadne oglase na cijeloj svojoj kućnoj mreži pomoću Pi-hole-a i Raspberry Pi-ja
Mobilni uređaj za igre na mreži Raspberry Pi: 11 koraka
Raspberry Pi mobilni gaming uređaj: Jeste li ikada htjeli moći igrati klasične video igre u pokretu, ali niste bili sigurni gdje nabaviti uređaj sposoban za pokretanje starih igara ili su jednostavno preskupi? Onda napravite sami! Ovo je dokumentacija o izgradnji moje Raspberry P
Senzor De Luz na mreži: 8 koraka
Sensor De Luz Online: Projeto de um Sensor de Luz que avisa para o celular se se luz está acesa ou nãoPode ser usado como forma de segurança ou alerta para economia de energia