Tartalomjegyzék:
- 1. lépés: Kellékek/eszközök
- 2. lépés: Sémák és tervezés
- 3. lépés: SQL adatbázis
- 4. lépés: Hardver
- 5. lépés: Szoftver
Videó: Digitális sakk - Kövesse sakkjátékát online: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Fiatal korom óta rengeteget sakkozom, és mivel az interneten rengeteg olyan webhely van, ahol sakkozni lehet számítógépek vagy élő ellenfelek ellen, soha nem találtam olyan weboldalt, amely nyomon követné sakkjátékát. valójában a való életben játszik. Úgyhogy ezzel a projekttel ezt remélem megvalósítani!
Remélem, hogy:
- Legyen képes követni a sakkfigurák mozgását
- Tekintsen meg ranglistákat a korábbi játékokról.
- Kövesse nyomon az időt, és játsszon gyorsan, mint egy profi játék.
Ez egy nagyon összetett projekt, mivel befejezése esetén 64 fényérzékelőre és 8 chipre van szükség az olvasáshoz. Ami már nagy feladat, és nem is számoljuk a többi érzékelőt.
Az egyetem nagy listát adott nekünk a tennivalókról:
- Készítsen vázlatot a projektünkhöz
- Hozzon létre egy adatbázist az adatok tárolására és megszerzésére.
- Weboldal tervezése Adobe XD használatával
- Hozza létre újra ezt a webhelyet CSS és HTML segítségével
- Olvassa le az érzékelőket python segítségével
- Mutassa be az érzékelő adatait a webhelyen lombik segítségével.
Ebben a tanulságos útmutatóban eligazítalak az utamon, és az üdvösség minden nehézségén és pillanatán keresztülmentem az elmúlt pár hétben.
1. lépés: Kellékek/eszközök
A kellékek, anyagok és eszközök az első lépés a sikeres projekthez!
Eszközök:
- Forrasztópáka
- Ón forrasztása
- Fogó
- Fúrógép
- Szalag
Kellékek:
- Raspberry Pi micro SD kártyával (4 GB elég lehet)
- Rasberry Pi T-cobbler
- Sakktábla darabokkal
- 7 szegmenses kijelző (TM 1637)
- 2 érintőérzékelő (TTP223B)
- RFID olvasó kártyákkal (MFRC522)
- MCP3008 (Attól függően, hogy milyen messzire szeretne menni, minden MCP -hez 8 sakk -koordinátát olvashat ki)
- Fényfüggő ellenállás típus 5288 (8 minden MCP -hez)
- Fejlécek (férfi -férfi és nő -férfi)
Ha mindent meg kell vásárolnia, akkor a becsült önköltség 125 euró körül legyen, beleértve a szállítási költségeket (csak kellékek)!
Van egy Excel fájl csatolva, linkekkel és árakkal mindenhez, amire szüksége van!
2. lépés: Sémák és tervezés
A projekt következő lépése egy vázlat létrehozása. Készítettem 2: egyet kenyérsütőn, egyet pedig tisztán elektronikusan. Szükségünk lesz erre a sémára, hogy mindent tisztán tartsunk, és ügyeljünk arra, hogy ne csatlakoztassunk felesleges dolgokat!
A "Fritzing" nevű programmal készítettem ezeket a rajzokat, ha valakit érdekel.
Színkódolás:
- Piros = tápegység
- Zöld = kapcsolat
- Kék = föld
Raspberry Pi csatlakozók:
- 3V3 => VC vonal a kenyértáblán, mindent táplálva
- 5V => 7 szegmenses kijelző VCC
-
GND:
- Földelni a kenyértáblán
- A 7 szegmenses kijelző alapja
- GPIO4 => Óraválasztó tű az MCP3008 -ban
- GPIO10 => Az MCP3008 MOSI csapja
- GPIO9 => Az MCP3008 MISO csapja
- GPIO11 => Az MCP3008 CLK csapja
- GPIO7 => Az MFRC522 SDA csapja
- GPIO19 => Az első érintésérzékelő DIG csapja
- GPIO26 => A második érintésérzékelő DIG csapja
- GPIO20 => A hét szegmenses kijelző CLK csapja
- GPIO21 = A hetedik szegmens kijelzőjének DIO csapja
Pár megjegyzés a rajzokhoz:
- Ez a vázlat csak 1 MCP -t tartalmaz, ami azt jelenti, hogy csak 8 koordináta olvasható le teljesen.
- Chip Select -ként GPIO csapokat fogok használni. Mivel csak 2 Chip kiválasztó csap áll rendelkezésre potenciálisan 8 MCP -vel.
- A 7 szegmenses kijelzőt egy tanár javasolta, mindössze 4 vezeték szükséges, mivel saját protokollján működik.
- Az érintőérzékelők digitális tüskéjén lévő ellenállásokra nincs szükség teljesen, de tanácsos.
Az összetevők magyarázata:
-
MCP fényérzékelőkkel:
-
Az MCP3008 egy 8 csatornás 10 bites ADC:
- az MCP3008 leolvassa a fényérzékelők analóg értékét, ez az érték attól függ, hogy mennyi fény van az érzékelőn.
- A python kódomban megkapom az analóg értéket, és 1 -re vagy 0 -ra konvertálom
-
- Speciális protokollt (SPI) használ telepített csomaggal.
- Telepített csomaggal nem nehéz kódolni
- Olvassa el a címkét, és visszaadja a címke értékét
- A címkékhez is írhat értéket, így a hexadecimális érték visszaadása helyett például egy nevet ad vissza
- Telepített csomagot is használ az egyszerű kódoláshoz
- Hozzon létre egy egész értékű változót, majd ossza fel 4 karakterre, és jelenítse meg ezeket a karaktereket
Érintésérzékelők:
Pont úgy működik, mint egy gomb, ehhez egy osztályt használok visszahívási módszerrel. Erről bővebben később
RFID olvasó (MFRC 522):
7 szegmens (TM1637)
3. lépés: SQL adatbázis
A harmadik lépés a projekt felé egy 3NF normalizált SQL adatbázis létrehozása!
Erre lesz szükségünk:
- Adatok beszúrása
- Adatok lekérése és megjelenítése weboldalunkon
- Pontosan látni, hogy hány fordulat ment a sakk jelenlegi játékában!
A táblázatok magyarázata:
-
Játékok
- Ez nyomon követi, hogy ki nyert bizonyos játékot és mikor játszották
- Az elsődleges kulcs itt a GameID
- A Dátum standard értéke az aktuális dátum
- A győztes és a pontszám később, a játék befejezése után kerül hozzáadásra!
-
Játékosok (Spelers hollandul)
- Ezeket kézzel kell behelyezni, de behelyezhetők az RFID kártyarendszerrel is.
- Írjon egy nevet a kártyájára, majd olvassa el a kártyát, és illessze be a táblázatba
- Ezenkívül nyomon követi az egyes játékosok győzelem / vereség rekordját, amelyet a webhelyen kell megjeleníteni
-
Historiek (történelem)
- Ez a fordulat története
- amikor egy sakkfigurát áthelyeznek, itt frissítik
- 3 idegen kulccsal, játékossal, játékkal és sakkfigurával rendelkezik
- a ReadDate (InleesDatum) az a dátum, amikor az érzékelőt leolvastuk
- A ReadTime ugyanaz, mint a ReadDate, de időbélyeggel
- A LocationID (LocatieID) annak a koordinátának a neve, amelyen elhelyezkedik. például "a3"
-
Sakkfigurák (Schaakstukken hollandul)
- Minden sakkfigurának van azonosítója, csapata, neve és állapota
- A csapat vagy 1 vagy 2, fekete vagy fehér;
- Minden darab neve "Pawn 1" lenne
- A státusz azt jelenti, hogy a darab él vagy halott!
4. lépés: Hardver
Most, hogy a megfelelő darabok a helyükön vannak, elkezdhetünk valamit létrehozni!
Osszuk ezt a részt allépésekre, mert könnyebb lesz elmagyarázni:
-
1. lépés: Ha lyukat szeretne fúrni a sakktábla minden koordinátájába, amint az az első képen látható, fúrjon lyukat is az érintőérzékelők, az RFID -olvasó és a 7 szegmenses kijelző elhelyezésére.
Ne felejtsen el lyukakat fúrni a tábla oldalán, ezek a tábla tetején lévő különböző alkatrészek vezetékeihez tartoznak. Sok fúrás, tudom
- 2. lépés: Próbáljon egy vagy két érzékelőt a Raspberry Pi -hez csatlakoztatni, ellenőrizze, hogy működnek -e. Ezeket az MCP analóg olvasóhoz szeretné csatlakoztatni, amint azt a 2. lépésben (A kapcsolási rajzok) korábban ismertettük.
-
3. lépés: Ez trükkös és nagyon idegőrlő lehet, mivel az áthidaló fejlécek nem nagyon ragadtak a helyükön, érdemes lehet mindegyiket a táblához ragasztani, akár egyenként, akár egyszerre több alkalommal. Gondoskodnia kell arról, hogy megragadjanak a sakktáblán, különben nem tudja sikeresen leolvasni az érzékelőket
TIPP! Ha ez megkönnyíti az Ön dolgát, néhány ragasztó valóban segíthet abban, hogy az érzékelőket jobban a helyükön tartsák, miközben rögzítik őket, ezt a nehéz úton fedeztem fel
5. lépés: Szoftver
Miután elkészítette a tesztelhető hardvert, próbáljunk meg néhány kódot írni hozzá! Ha meg akarja nézni a kódomat, menjen a githubomhoz.
Először néhány csomagot kell telepítenünk, és elkészítettem egy listát az Ön számára:
-
lombik
Ezen fog futni a python kódod
-
Lombik-foglalatIO
Kommunikáció a front-end és a back-end között
-
szar
Hasznos a fényérzékelők olvasásához, mátrixokkal működik
-
netifacusok
Saját IP -cím nyomtatása a 7 szegmenses kijelzőn
-
Lombik-CORS
Keresztirányú jogorvoslat, lehetővé teszi a csomagok megosztását különböző területeken
Ezenkívül írtam pár órát, és szabadon használhatja őket.
Előlap
A weboldal kódja elérhető a github oldalamon is!
A kezelőfelületen a Chessboard.js-t fogom használni. Ez egy könnyen használható sakktáblát illeszt be könnyen mozgatható darabokkal!
A táblán minden testre szabható, így jó szórakozást! Miután letöltötte a legújabb verziót, át kell húznia a fájlokat a projektbe, és össze kell kapcsolnia azokat az oldallal, ahol sakktáblát szeretne megjeleníteni!
Ezt követően próbáljuk meg létrehozni a táblát, nem néz ki túl keményen:
Először is, a html -ben:
Másodszor, a javascript fájlban:
board1 = ChessBoard ('board1', 'start');
és ott van, akkor látnia kell egy sakktáblát! Nyugodtan testreszabhatja a táblát a CSS fájlokban!
Most látni akarunk néhány lépést a sakktáblán, nem túl keményen. De testreszabnunk kell, hogy a mozgatási parancsot a háttérrendszer küldje el. Nem részletezem túl sokat, de valami ilyesmit szeretnénk csinálni:
new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (kommandós);
Kapunk egy listát a háttérprogramunktól, és kötőjelet teszünk a két koordináta közé, majd a board.move paranccsal hajtjuk végre a lépést!
Ez a magyarázatom arra, hogy mire van szükségünk a chessboard.js beépülő modulra, menjen a githubomhoz, és nézze meg saját maga a kódot
Ajánlott:
Raspberry Pi - TMD26721 infravörös digitális közelségérzékelő Java oktatóanyag: 4 lépés
Raspberry Pi-TMD26721 Infravörös digitális közelségérzékelő Java bemutató: A TMD26721 egy infravörös digitális közelségérzékelő, amely teljes közelségérzékelő rendszert és digitális interfész logikát biztosít egyetlen 8 tűs felületre szerelhető modulban. A közelségérzékelés továbbfejlesztett jel-zaj és pontosság. Egy profi
Magic Hercules - Digitális LED -ek illesztőprogramja: 10 lépés
Magic Hercules - Digitális LED -ek illesztőprogramja: Gyors áttekintés: A Magic Hercules modul átalakító a jól ismert és egyszerű SPI és az NZR protokoll között. A modul bemenetei +3,3 V tűréssel rendelkeznek, így biztonságosan csatlakoztathatja a +3,3 V feszültséggel működő mikrovezérlőket. A
Hogyan kell lebontani a digitális féknyerget és hogyan működik a digitális féknyereg: 4 lépés
Hogyan kell lebontani a digitális féknyerget és hogyan működik a digitális féknyereg: Sokan tudják, hogyan kell a féknyerget használni a méréshez. Ez az oktatóanyag megtanítja, hogyan kell lebontani a digitális féknyerget, és elmagyarázza, hogyan működik a digitális féknyereg
Zseb sakk: 4 lépés
Zseb sakk: Ez sakk! A zsebedben. A projekt célja egy kis eszköz létrehozása, amely olyan kis játékokat tud futtatni, mint a kígyó, pac-man, tetris és még sakk
LED sakk készlet - egyszerű verzió: 12 lépés
LED sakk készlet-egyszerű verzió: A Tetranitrate korábban kitűnő útmutatást tett közzé arról, hogyan készítsen egy LED sakkkészletet: https: //www.instructables.com/id/LED-Chess-Set/ t ne zavarjon, ha oly villanónak tűnő képet készít. Csak egyet akartam