Taula de continguts:
- Pas 1: subministraments / eines
- Pas 2: esquemes i planificació
- Pas 3: base de dades SQL
- Pas 4: maquinari
- Pas 5: programari
Vídeo: Escacs digitals: feu un seguiment del vostre joc d'escacs en línia: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
He estat jugant a molts escacs des que era jove, i com que la web té una gran quantitat de llocs web per jugar a escacs contra ordinadors o oponents en directe, mai no he trobat una pàgina web que faci un seguiment del vostre joc d'escacs. en realitat jugant a la vida real. Així doncs, amb aquest projecte espero adonar-me’n!
Espero:
- Ser capaç de rastrejar el moviment de les peces d'escacs
- Vegeu algunes taules de classificació sobre jocs passats.
- Fes un seguiment del temps i juga ràpid com un joc professional.
És un projecte molt complex, ja que si es completés es necessitarien 64 sensors de llum i 8 xips per llegir. La qual cosa ja és una tasca important i ni tan sols comptem amb cap dels altres sensors.
La meva universitat ens va donar una gran llista de coses a fer:
- Crea un esquema per al nostre projecte
- Creeu una base de dades per emmagatzemar i obtenir dades.
- Dissenyeu un lloc web mitjançant Adobe XD
- Recreeu aquest lloc web amb CSS i HTML
- Llegiu els sensors amb python
- Mostra les dades del sensor al lloc web mitjançant un matràs.
En aquest instructiu, us guiaré en el meu viatge i en tots els problemes i moments de salvació que he viscut en aquestes darreres setmanes.
Pas 1: subministraments / eines
Subministraments, materials i eines són el primer pas per a un projecte amb èxit.
Eines:
- Soldador
- Estany de soldadura
- Alicates
- Màquina de perforació
- Cinta
Subministraments:
- Raspberry Pi amb targeta micro SD (n'hi ha prou amb 4 GB)
- Sabater T Rasberry Pi
- Tauler d'escacs amb peces
- Pantalla de 7 segments (TM 1637)
- 2 sensors tàctils (TTP223B)
- Lector RFID amb targetes (MFRC522)
- MCP3008 (Depenent de fins on vulgueu arribar, per cada MCP podeu llegir 8 coordenades d'escacs)
- Resistència depenent de la llum tipus 5288 (8 per cada MCP que tingueu)
- Capçaleres (masculí a masculí i femení a masculí)
Si necessiteu comprar-ho tot, el preu estimat ha de ser d’uns 125 euros, incloses les despeses d’enviament (només subministraments).
Hi ha adjunt un fitxer Excel amb enllaços i preus a tot el que necessiteu.
Pas 2: esquemes i planificació
El següent pas d’aquest projecte és crear un esquema. En vaig fer 2: un sobre taulers de suport i un altre purament electrònic. Necessitarem aquests esquemes per mantenir-ho tot net i assegurar-nos que no connectem cap cosa innecessària.
He utilitzat un programa anomenat "Fritzing" per crear aquests esquemes si algú està interessat.
Codificació de colors:
- Vermell = font d'alimentació
- Verd = connexió
- Blau = terra
Connexions de Raspberry Pi:
- 3V3 => Línia VC a la taula de treball, alimentant-ho tot
- 5V => VCC de visualització de 7 segments
-
GND:
- Mòlta a la pissarra
- Terra de la pantalla de 7 segments
- GPIO4 => Selecciona el rellotge del pin del MCP3008
- GPIO10 => Pin MOSI de l'MCP3008
- GPIO9 => Pin MISO de l'MCP3008
- GPIO11 => PIN CLK de l'MCP3008
- GPIO7 => Pin SDA del MFRC522
- GPIO19 => Pin DIG del primer sensor tàctil
- GPIO26 => Pin DIG del segon sensor tàctil
- GPIO20 => PIN CLK de la pantalla de set segments
- GPIO21 = Pin DIO de la pantalla de set segments
Un parell de notes sobre els esquemes:
- Aquest esquema només conté 1 MCP, això significa que només es podran llegir completament 8 coordenades.
- Utilitzaré pins GPIO com a xip Select. Com que només hi ha disponibles 2 pins de selecció de xip amb potencialment 8 MCP.
- La visualització de 7 segments és la suggerida per un professor, només calen 4 cables ja que funciona amb el seu propi protocol.
- Les resistències del pin digital dels sensors tàctils no són completament necessàries, sinó que s’aconsellen.
Explicació dels components:
-
MCP amb sensors de llum:
-
Un MCP3008 és un ADC de 10 canals de 8 canals:
- un MCP3008 llegirà el valor analògic dels sensors de llum, aquest valor depèn de la quantitat de llum que brilla actualment al sensor.
- Al meu codi Python rebré aquest valor analògic i el convertiré en 1 o 0
-
- Utilitza un protocol específic (SPI) amb un paquet instal·lat.
- No és difícil de codificar amb un paquet instal·lat
- Llegeix l'etiqueta i retorna el valor de l'etiqueta
- També podeu escriure un valor en una etiqueta, de manera que, en lloc de retornar el valor hexadecimal, torna un nom per exemple
- També utilitza un paquet instal·lat per facilitar la codificació
- Creeu una variable amb un valor enter i, a continuació, dividiu-la en 4 caràcters i mostreu-los
Sensors tàctils:
Funciona com un botó, faig servir una classe per a això amb un mètode de devolució de trucada. Més informació sobre això més endavant
Lector RFID (MFRC 522):
Segment de 7 (TM1637)
Pas 3: base de dades SQL
El tercer pas cap a aquest projecte és crear una base de dades SQL normalitzada 3NF.
Ho necessitarem per a:
- Inserció de dades
- Obtenir dades i mostrar-les al nostre lloc web
- Poder veure exactament quantes voltes han passat en el joc actual d'escacs.
Taules explicades:
-
Jocs
- Es tracta de qui va guanyar un determinat joc i quan es va jugar el joc
- La clau principal aquí és un GameID
- La data té un valor estàndard de la data actual
- El guanyador i la puntuació s'afegiran més endavant, un cop acabat el joc.
-
Jugadors (Spelers en holandès)
- S’insereixen manualment, però també es poden inserir mitjançant el sistema de targetes RFID.
- Escriviu un nom a la vostra targeta i, a continuació, llegiu-la i inseriu-lo en aquesta taula
- També fa un seguiment del registre de guanys / pèrdues de cada jugador, que es mostrarà al lloc web
-
Historiek (història)
- Aquesta és la història del torn
- quan es mogui una peça d'escacs, s'actualitzarà aquí
- Té 3 tecles estrangeres, jugador, joc i peça d'escacs
- ReadDate (InleesDatum) és la data en què es va llegir el sensor
- ReadTime és el mateix que ReadDate però amb una marca de temps
- LocationID (LocatieID) és el nom de la coordenada on es troba. per exemple "a3"
-
Peces d'escacs (Schaakstukken en holandès)
- Cada peça d'escacs té una identificació, un equip, un nom i un estat
- L'equip és 1 o 2, negre o blanc;
- El nom de la peça mai seria, és a dir, "Peó 1"
- L’estat significa que la peça és viva o morta.
Pas 4: maquinari
Ara que tenim totes les peces correctes al seu lloc, podem començar a crear alguna cosa.
Dividim aquesta part en sub passos, ja que serà més fàcil d'explicar:
-
Pas 1: voleu perforar un forat a totes les coordenades del tauler d'escacs tal com es mostra a la primera imatge, practicar un forat on vulgueu col·locar els sensors tàctils, el lector RFID i la pantalla de 7 segments.
No oblideu practicar alguns forats al costat del tauler, ja que són per als cables dels diferents components que hi ha a la part superior del tauler. Moltes perforacions, ho sé
- Pas 2: proveu de connectar un o dos sensors al Raspberry Pi, comproveu si funcionen. Els voleu connectar al lector analògic MCP tal com s'ha explicat anteriorment al pas 2 (Els esquemes).
-
Pas 3: pot ser complicat i molt nerviós, ja que les capçaleres del pont no estan molt enganxades al lloc, és possible que vulgueu gravar-les totes al tauler, individualment o múltiples alhora. Heu d’assegurar-vos que quedin enganxats al tauler d’escacs, en cas contrari no podreu llegir els sensors amb èxit
CONSELL! Si us ho fa més fàcil, és possible que una mica de cola ajudi a mantenir els sensors més al seu lloc mentre els gravem, ho vaig descobrir de la manera més difícil
Pas 5: programari
Un cop hàgiu creat el maquinari que podeu provar, provem d'escriure-hi un codi. Si voleu fer una ullada al meu codi, dirigiu-vos al meu github.
Back-end: Primer necessitarem un parell de paquets per instal·lar, vaig continuar i vaig fer una llista per a vosaltres:
-
matràs
És en això que s'executarà el vostre codi Python
-
Flask-socketIO
Per comunicar-se entre front-end i back-end
-
numpy
Útil per llegir els sensors de llum, funciona amb els de matriu
-
netifaces
Per imprimir la vostra pròpia adreça IP a la pantalla de 7 segments
-
Flask-CORS
El recurs compartit de recursos, permet compartir paquets entre diferents dominis
Al costat d’això, he escrit un parell de classes i podeu utilitzar-les lliurement.
Front-end
El codi del lloc web també està disponible a la meva pàgina de github.
Per a la interfície, utilitzaré Chessboard.js. Això insereix un tauler d'escacs fàcil d'utilitzar amb peces fàcils de moure.
Tot el que hi ha al tauler es pot personalitzar, així que diverteix-te! Després d'haver descarregat la versió més recent, haureu d'arrossegar els fitxers al vostre projecte i enllaçar-los a la pàgina on vulgueu mostrar un tauler d'escacs.
Després d'això, intentem crear un tauler, no sembla massa dur:
En primer lloc, al vostre html:
En segon lloc, al fitxer javascript:
board1 = ChessBoard ('board1', 'start');
i ja ho teniu, ara podríeu veure un tauler d'escacs. No dubteu a personalitzar el tauler als fitxers CSS.
Ara volem veure alguns moviments al tauler d’escacs, no massa difícils. Però hem de personalitzar-lo perquè l'ordre move s'enviï pel back-end. No entraré en massa detalls, però volem fer alguna cosa així:
new_lijst = [Data.data [0], Data.data [1]; comando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (comando);
Rebem una llista del nostre programa back-end i posem un guió entre les dues coordenades i, a continuació, utilitzeu l’ordre board.move per executar el moviment.
Aquesta és la meva explicació del que necessitem del connector chessboard.js, dirigeix-te al meu github per mirar tu mateix el codi
Recomanat:
Steam Punk del vostre SAI per obtenir hores de funcionament del vostre router Wi-Fi: 4 passos (amb imatges)
Steam Punk del vostre SAI per obtenir hores de funcionament del vostre router Wi-Fi: hi ha alguna cosa fonamentalment desagradable que el vostre SAI converti la potència de la bateria de 12V CC en 220V CA perquè els transformadors que funcionen amb el vostre enrutador i la fibra ONT puguin convertir-lo de nou en 12 V CC! També esteu contra els [normalment
Feu el vostre propi sistema de seguiment de seguretat de SMS per GPS: 5 passos (amb imatges)
Feu el vostre propi sistema de seguiment de seguretat per SMS de GPS: en aquest projecte us mostraré com combinar un mòdul SIM5320 3G amb un Arduino i un transductor piezoelèctric com a sensor de xoc per crear un sistema de seguiment de seguretat que us enviarà la ubicació del vostre vehicle preciós per SMS quan
Kits de cotxes de seguiment de robots intel·ligents de bricolatge Seguiment fotosensible del cotxe: 7 passos
Kits de cotxes de seguiment de robots intel·ligents de bricolatge Seguiment del cotxe fotosensible: dissenyat per SINONING ROBOT Podeu comprar amb el robot de seguiment El xip LM393 compara els dos fotoresistors, quan hi ha un LED de fotoresistència lateral en BLANC, el costat del motor s'aturarà immediatament, l'altre costat del motor girar, de manera que
Feu un mini teclat sense fils des del comandament del vostre televisor: 10 passos (amb imatges)
Feu un mini teclat sense fils des del comandament del vostre televisor: alguna vegada heu pensat a crear un teclat sense fils piratejant el comandament del vostre televisor. Així que en aquest instructiu us explico com podeu construir un mini teclat sense fils barat. Aquest projecte utilitza la comunicació IR (infrarojos) per crear una connexió sense fils personalitzada
Afegir una línia directa al vostre equip de música del cotxe per a un reproductor d’iPod / mp3: 5 passos
Afegir una connexió directa al vostre equip estèreo del cotxe per a un reproductor d’iPod / mp3: aquest instructiu us mostrarà com afegir una entrada auxiliar, com un endoll per a auriculars, al vostre cotxe perquè pugueu escoltar un reproductor d’iPod / mp3 / GPS o qualsevol cosa que tingui una línia de sortida a través dels equips estèreo dels vostres cotxes. Mentre ho afegiré al meu Chevy Subu del 99