Cuprins:
- Pasul 1: consumabile / instrumente
- Pasul 2: Scheme și planificare
- Pasul 3: Baza de date SQL
- Pasul 4: Hardware
- Pasul 5: Software
Video: Șah digital - Urmăriți-vă jocul de șah online: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Am jucat o mulțime de șah încă de când eram tânăr și, din moment ce web-ul are o cantitate imensă de site-uri web pentru a juca șah împotriva computerelor sau a adversarilor live, nu am găsit niciodată un site web care să urmărească jocul dvs. de șah pe care îl sunteți. jucând de fapt în viața reală. Deci, cu acest proiect, sper să realizez asta!
Sper să:
- Să poți urmări mișcarea pieselor de șah
- Vedeți câteva clasamente despre jocurile anterioare.
- Urmăriți timpul și jucați rapid ca un joc profesionist.
Este un proiect foarte complex, deoarece dacă ar fi finalizat ar necesita 64 de senzori de lumină și 8 cipuri pentru citire. Ceea ce este deja o sarcină importantă și nici măcar nu numărăm niciunul dintre ceilalți senzori.
Colegiul meu ne-a oferit o listă mare de lucruri de făcut:
- Creați o schemă pentru proiectul nostru
- Creați o bază de date pentru stocarea și obținerea datelor.
- Proiectați un site web utilizând Adobe XD
- Recreați acest site web cu CSS și HTML
- Citiți senzorii cu python
- Afișați datele senzorului pe site folosind balonul.
În acest instructiv te voi ghida în călătoria mea și în toate necazurile și momentele de mântuire prin care am trecut în ultimele două săptămâni.
Pasul 1: consumabile / instrumente
Consumabile, materiale și instrumente sunt primul pas către un proiect de succes!
Instrumente:
- Ciocan de lipit
- Tinut de lipit
- Cleşte
- Masina de gaurit
- Bandă
Provizii:
- Raspberry Pi cu card micro SD (4 GB ar trebui să fie suficient)
- T-cobbler Rasberry Pi
- Tablă de șah cu bucăți
- Afișaj pe 7 segmente (TM 1637)
- 2 senzori tactili (TTP223B)
- Cititor RFID cu carduri (MFRC522)
- MCP3008 (În funcție de cât de departe doriți să mergeți, pentru fiecare MCP puteți citi 8 coordonate de șah)
- Rezistor dependent de lumină tip 5288 (8 pentru fiecare MCP pe care îl aveți)
- Anteturi (de la bărbat la bărbat și de la femeie la bărbat)
Dacă trebuie să cumpărați totul, prețul de cost estimat ar trebui să fie de aproximativ 125 de euro, inclusiv costurile de expediere (numai consumabile)!
Există un fișier Excel atașat cu linkuri și prețuri la tot ce aveți nevoie!
Pasul 2: Scheme și planificare
Următorul pas al acestui proiect este de a crea o schemă. Am făcut 2: una pe panou și una pur electronică. Vom avea nevoie de aceste scheme pentru a menține totul curat și pentru a ne asigura că nu conectăm lucruri inutile!
Am folosit un program numit „Fritzing” pentru a crea aceste scheme dacă cineva este interesat.
Cod de culoare:
- Roșu = sursa de alimentare
- Verde = conexiune
- Albastru = pământ
Conexiuni Raspberry Pi:
- 3V3 => Linia VC de pe panou, alimentând totul
- 5V => VCC cu afișaj pe 7 segmente
-
GND:
- Pământ pe panou
- Masa afișajului pe 7 segmente
- GPIO4 => Ceas Selectați pinul MCP3008
- GPIO10 => pin MOSI al MCP3008
- GPIO9 => pin MISO al MCP3008
- GPIO11 => pin CLK al MCP3008
- GPIO7 => pin SDA al MFRC522
- GPIO19 => Pin DIG al primului senzor tactil
- GPIO26 => PIN DIG al celui de-al doilea senzor tactil
- GPIO20 => PIN CLK al afișajului cu șapte segmente
- GPIO21 = pin DIO al afișajului de șapte segmente
Câteva note despre schemă:
- Această schemă conține doar 1 MCP, ceea ce înseamnă că doar 8 coordonate vor putea fi citite complet.
- Voi folosi pini GPIO ca Chip Select. Deoarece doar 2 pini de selectare a cipurilor sunt disponibili cu potențial 8 MCP-uri.
- Afișajul pe 7 segmente este unul sugerat de un profesor, sunt necesare doar 4 fire, deoarece funcționează pe propriul protocol.
- Rezistențele de pe pinul digital al senzorilor tactili nu sunt pe deplin necesare, dar sunt recomandate.
Explicarea componentelor:
-
MCP cu senzori de lumină:
-
Un MCP3008 este un ADC pe 8 canale pe 10 biți:
- un MCP3008 va citi valoarea analogică a senzorilor de lumină, această valoare depinde de cantitatea de lumină care strălucește în prezent pe senzor.
- În codul meu Python voi primi acea valoare analogică și o voi converti într-un 1 sau 0
-
- Folosește un protocol specific (SPI) cu un pachet instalat.
- Nu este greu de codificat cu un pachet instalat
- Citește eticheta și returnează valoarea etichetei
- De asemenea, puteți scrie o valoare într-o etichetă, astfel încât, în loc să returneze valoarea hexazecimală, returnează un nume, de exemplu
- De asemenea, folosește un pachet instalat pentru codificare ușoară
- Creați o variabilă cu o valoare întreagă, apoi împărțiți-o în 4 caractere și arătați aceste caractere
Senzori tactili:
Funcționează la fel ca un buton, folosesc o clasă pentru aceasta cu o metodă de apel invers. Mai multe despre asta mai târziu
Cititor RFID (MFRC 522):
7 segmente (TM1637)
Pasul 3: Baza de date SQL
Al treilea pas către acest proiect este crearea unei baze de date SQL normalizate 3NF!
Vom avea nevoie de acest lucru pentru:
- Introducerea datelor
- Obținerea datelor și afișarea lor pe site-ul nostru web
- Putând vedea exact câte ture au trecut în jocul actual de șah!
Tabelele explicate:
-
Jocuri
- Acesta urmărește cine a câștigat un anumit joc și când a fost jucat jocul
- Cheia principală aici este un GameID
- Data are o valoare standard a datei curente
- Câștigătorul și scorul vor fi adăugate mai târziu, după terminarea jocului!
-
Jucători (Spelers în olandeză)
- Acestea sunt inserate manual, dar pot fi inserate și folosind sistemul de carduri RFID.
- Scrieți un nume pe card, apoi citiți cardul și introduceți numele în acest tabel
- De asemenea, urmărește înregistrarea de câștig / pierdere a fiecărui jucător, care va fi afișată pe site
-
Historiek (Istorie)
- Aceasta este istoria rândurilor
- când o piesă de șah este mutată, aceasta va fi actualizată aici
- Are 3 chei străine, jucător, joc și piesă de șah
- ReadDate (InleesDatum) este data la care senzorul a fost citit
- ReadTime este același cu ReadDate, dar cu un timestamp
- LocationID (LocatieID) este numele coordonatei pe care este poziționată. de exemplu „a3”
-
Piese de șah (Schaakstukken în olandeză)
- Fiecare piesă de șah are un ID, o echipă, un nume și un statut
- Echipa este fie 1, fie 2, negru sau alb;
- Numele piesei vreodată ar fi „Pion 1”
- Statutul înseamnă că piesa este vie sau moartă!
Pasul 4: Hardware
Acum, că avem toate piesele corecte la locul lor, putem începe să creăm ceva!
Să împărțim această parte în sub-pași, deoarece va fi mai ușor de explicat:
-
Pasul 1: doriți să găuriți o gaură în fiecare coordonată a tabloului de șah, așa cum se arată în prima imagine, de asemenea, găuriți o gaură în care doriți să plasați senzorii tactili, cititorul RFID și afișajul pe 7 segmente.
Nu uitați să faceți niște găuri pe partea laterală a plăcii, acestea sunt pentru firele diferitelor componente de deasupra plăcii. O mulțime de foraje, știu
- Pasul 2: Încercați să conectați unul sau doi senzori la Raspberry Pi, verificați dacă funcționează. Doriți să le conectați la cititorul analogic MCP așa cum s-a explicat mai devreme în Pasul 2 (Schemele).
-
Pasul 3: Acest lucru ar putea fi complicat și foarte nervos, deoarece anteturile jumperului nu sunt foarte blocate la locul lor, poate doriți să le lipiți pe toate pe tablă, fie individual, fie mai multe simultan. Trebuie să vă asigurați că rămân blocați pe tabla de șah, altfel nu veți putea citi senzorii cu succes
BACSIS! Dacă vă este mai ușor, un anumit adeziv ar putea ajuta la menținerea senzorilor mai în poziție în timp ce îi înregistrați, am descoperit acest lucru în mod greu
Pasul 5: Software
După ce ați creat hardware pe care îl puteți testa, să încercăm să scriem un cod pentru el! Dacă doriți să aruncați o privire asupra codului meu, vă rugăm să vă îndreptați către github-ul meu.
În primul rând, vom avea nevoie de câteva pachete pentru a fi instalate, am continuat și am făcut o listă pentru dvs.:
-
balon
Pe asta va rula codul dvs. python
-
Flask-socketIO
Pentru a comunica între front-end și back-end
-
neclintit
Util pentru citirea senzorilor de lumină, funcționează cu matrice
-
netifaces
Pentru a imprima propria adresă IP pe afișajul pe 7 segmente
-
Flask-CORS
Partajarea recursurilor pe mai multe origini, permite partajarea pachetelor în diferite domenii
Apoi, am scris câteva clase și ești liber să le folosești.
În față
Codul site-ului este, de asemenea, disponibil pe pagina mea de github!
Pentru front-end voi folosi Chessboard.js. Aceasta introduce o tablă de șah ușor de utilizat, cu piese ușor de mutat!
Totul de pe tablă este personalizabil, așa că distrează-te! După ce ați descărcat cea mai recentă versiune, va trebui să trageți fișierele în proiect și să le conectați la pagina în care doriți să afișați o tablă de șah!
După aceea, să încercăm să creăm o placă, nu arată prea greu:
Mai întâi, în html:
În al doilea rând, în fișierul dvs. javascript:
board1 = ChessBoard ('board1', 'start');
și iată-l, ar trebui să poți vedea acum o tablă de șah! Simțiți-vă liber să personalizați placa în fișierele CSS!
Acum, vrem să vedem câteva mișcări pe tabla de șah, nu prea greu. Dar trebuie să o personalizăm, astfel încât comanda de mutare să fie trimisă de back-end. Nu voi intra în prea multe detalii, dar vrem să facem așa ceva:
new_lijst = [Data.data [0], Data.data [1]; comando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (comando);
Primim o listă din programul nostru back-end și punem o liniuță între cele două coordonate, apoi folosim comanda board.move pentru a executa mutarea!
Aceasta este explicația mea despre ce avem nevoie de pluginul chessboard.js, mergeți la github-ul meu pentru a arunca singur codul
Recomandat:
Robot de șah realizat cu LEGO și Raspberry Pi: 6 pași
Robot de șah realizat cu LEGO și Raspberry Pi: Uimiți-vă prietenii cu acest robot de șah! Nu este prea dificil de construit dacă ați creat roboți LEGO înainte și dacă aveți cel puțin cunoștințe elementare despre programarea computerelor și Linux. Robotul își face propriile mișcări și folosește recunoașterea vizuală
Șah Robot Raspberry Pi Lynxmotion AL5D Arm: 6 pași
Rob de șah Raspberry Pi Lynxmotion AL5D Arm: Construiți acest robot de șah și vedeți-l cum bate pe toată lumea! Este destul de ușor de construit dacă puteți urma instrucțiunile despre cum să construiți brațul și dacă aveți cel puțin cunoștințe elementare despre programarea computerelor și Linux . Omul, jucându-se alb, face
Șah de buzunar: 4 pași
Șah de buzunar: Este șah! În buzunar. Acest proiect își propune să creeze un dispozitiv mic care poate rula jocuri mici, cum ar fi șarpe, pac-man, tetris și chiar șah
Piese de șah vorbite: 7 pași (cu imagini)
Piese de șah vorbite: am făcut câteva piese de șah foarte personale folosind vocea mea. Fiecare piesă se bazează pe forma sunetului pe care l-am făcut în timp ce-i spuneam numele. Nu este un set complet, deoarece cealaltă parte ar trebui făcută în același mod, ci cu vocea adversarului meu
Ceas de șah Arduino simplu: 5 pași
Ceas de șah Arduino simplu: Când m-am gândit să fac un ceas de șah cu Arduino, scopul a fost să construiesc folosind o programare simplă fără clasa de utilizare și să lucrez cu registrul AVR. Baza utilizată a fost Arduino Reference. Cel mai dificil lucru a fost să manipulezi cronometrul folosind doar