Përmbajtje:
- Hapi 1: Furnizime/Mjete
- Hapi 2: Skemat dhe Planifikimi
- Hapi 3: Baza e të dhënave SQL
- Hapi 4: Pajisje kompjuterike
- Hapi 5: Softuer
Video: Shahu dixhital - Ndiqni lojën tuaj të shahut Online: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
Unë kam luajtur shumë shah që kur isha i ri, dhe meqenëse uebi ka një sasi të madhe faqesh në internet për të luajtur shah kundër kompjuterëve ose kundërshtarëve të drejtpërdrejtë, kurrë nuk kam gjetur një faqe në internet që ndjek lojën tuaj të shahut që jeni në fakt duke luajtur në jetën reale. Kështu që me këtë projekt shpresoj ta kuptoj!
Unë shpresoj që:
- Të jetë në gjendje të ndjekë lëvizjen e pjesëve të shahut
- Shikoni disa tabela drejtuese për lojërat e kaluara.
- Ndiqni kohën dhe luani shpejt si një lojë profesionale.
Ashtë një projekt shumë kompleks pasi që nëse përfundon do të kërkojë 64 sensorë drite dhe 8 patate të skuqura për të lexuar. E cila tashmë është një detyrë e madhe dhe ne as nuk po llogarisim asnjë nga sensorët e tjerë.
Kolegji im na dha një listë të madhe të gjërave për të bërë:
- Krijoni një skemë për projektin tonë
- Krijoni një bazë të dhënash për ruajtjen dhe marrjen e të dhënave.
- Krijoni një faqe në internet duke përdorur Adobe XD
- Krijoni këtë faqe në internet me CSS dhe HTML
- Lexoni sensorët me python
- Trego të dhënat e sensorit në faqen e internetit duke përdorur balonë.
Në këtë udhëzues do t'ju udhëheq në udhëtimin tim, dhe të gjitha telashet dhe momentet e shpëtimit që kam kaluar këto dy javët e fundit.
Hapi 1: Furnizime/Mjete
Furnizimet, materialet dhe mjetet janë hapi i parë drejt një projekti të suksesshëm!
Mjetet:
- Makine per ngjitjen e metalit
- Kallaji i saldimit
- Pincë
- Makinë shpuese
- Kasetë
Furnizimet:
- Raspberry Pi me kartë micro SD (4 GB duhet të jetë e mjaftueshme)
- Këpucar Rasberry Pi T
- Bordi i shahut me copa
- Ekran me 7 segmente (TM 1637)
- 2 sensorë me prekje (TTP223B)
- Lexues RFID me karta (MFRC522)
- MCP3008 (Në varësi të asaj se sa larg doni të shkoni, për çdo MCP mund të lexoni 8 koordinata shahu)
- Rezistencë e varur nga drita e tipit 5288 (8 për çdo MCP që keni)
- Tituj (Mashkull në Mashkull dhe Femër në Mashkull)
Nëse keni nevojë të blini gjithçka, çmimi i vlerësuar i kostos duhet të jetë rreth 125 euro përfshirë kostot e transportit (vetëm Furnizimet)!
Ka një skedar Excel të bashkangjitur me lidhje dhe çmime për gjithçka që ju nevojitet!
Hapi 2: Skemat dhe Planifikimi
Hapi tjetër në këtë projekt është krijimi i një skeme. Bëra 2: Një në dërrasën e bukës dhe një thjesht elektronike. Ne do të kemi nevojë për këto skema për të mbajtur gjithçka të pastër dhe për t'u siguruar që të mos lidhim gjëra të panevojshme!
Kam përdorur një program të quajtur "Fritzing" për të krijuar këto skema nëse dikush është i interesuar.
Kodimi i ngjyrave:
- E kuqe = furnizimi me energji
- E gjelbër = lidhje
- Blu = tokë
Lidhjet e Raspberry Pi:
- 3V3 => Linja VC në dërrasën e bukës, duke fuqizuar gjithçka
- 5V => VCC e ekranit me 7 segmente
-
GND:
- Tokë në dërrasën e bukës
- Terreni i ekranit me 7 segmente
- GPIO4 => Ora Zgjidhni pinin e MCP3008
- GPIO10 => kunja MOSI e MCP3008
- GPIO9 => kunja MISO e MCP3008
- GPIO11 => kunja CLK e MCP3008
- GPIO7 => PIN SDA i MFRC522
- GPIO19 => PIN DIG i sensorit të parë të Prekjes
- GPIO26 => PIN DIG i sensorit të dytë të Prekjes
- GPIO20 => Pin CLK e ekranit me shtatë segmente
- GPIO21 = pin DIO i ekranit të segmentit të shtatë
Një çift shënime për skemat:
- Kjo skemë përmban vetëm 1 MCP, kjo do të thotë që vetëm 8 koordinata do të jenë në gjendje të lexohen plotësisht.
- Unë do të përdor kunjat GPIO si Chip Select tim. Meqenëse vetëm 2 kunja të zgjedhura me Çip janë në dispozicion me potencialisht 8 MCP.
- Ekrani me 7 segmente është ai i sugjeruar nga një mësues, nevojiten vetëm 4 tela pasi punon në protokollin e tij.
- Rezistentët në kunjin dixhital të sensorëve të prekjes nuk janë plotësisht të nevojshëm, por këshillohen.
Shpjegimi i përbërësve:
-
MCP me sensorë të dritës:
-
Një MCP3008 është një ADC me 8 kanale 10 bit:
- një MCP3008 do të lexojë vlerën analoge të sensorëve të dritës, kjo vlerë varet nga sasia e dritës që ndriçon aktualisht në sensor.
- Në kodin tim python do të marr atë vlerë analoge dhe do ta konvertoj në 1 ose 0
-
- Përdor një protokoll specifik (SPI) me një paketë të instaluar.
- Nuk është e vështirë të kodosh me një paketë të instaluar
- Lexon etiketën dhe kthen vlerën e etiketës
- Ju gjithashtu mund të shkruani një vlerë në një etiketë, kështu që në vend që të kthejë vlerën heksadecimale, ajo kthen një emër për shembull
- Gjithashtu përdor një paketë të instaluar për kodim të lehtë
- Krijoni një ndryshore me një vlerë të plotë, pastaj ndani atë në 4 karaktere dhe tregoni ato karaktere
Sensorë prekës:
Punon ashtu si një buton, unë përdor një klasë për këtë me një metodë të thirrjes. Më shumë për këtë më vonë
Lexuesi RFID (MFRC 522):
7 Segmenti (TM1637)
Hapi 3: Baza e të dhënave SQL
Hapi i tretë drejt këtij projekti është krijimi i një baze të dhënash të normalizuar SQL 3NF!
Ne do të kemi nevojë për këtë për:
- Futja e të dhënave
- Marrja e të dhënave dhe shfaqja e tyre në faqen tonë të internetit
- Duke qenë në gjendje të shihni saktësisht sa kthesa kanë kaluar në lojën aktuale të shahut!
Tabelat shpjeguan:
- Lojëra
- Kjo gjurmon kush fitoi një lojë të caktuar dhe kur u luajt loja
- Çelësi kryesor këtu është një GameID
- Data ka një vlerë standarde të datës aktuale
- Fituesi dhe rezultati do të shtohen më vonë, pasi të ketë përfunduar loja!
-
Lojtarët (shqiptarë në holandisht)
- Këto futen me dorë, por gjithashtu mund të futen duke përdorur sistemin e kartës RFID.
- Shkruani një emër në kartën tuaj, pastaj lexoni kartën dhe futeni emrin në këtë tabelë
- Ai gjithashtu gjurmon rekordin fitore / humbje të secilit lojtar, që do të shfaqet në faqen e internetit
-
Historiek (Historia)
- Kjo është historia e kthesës
- kur një pjesë shahu zhvendoset, ajo do të azhurnohet këtu
- Ka 3 çelësa të huaj, lojtar, lojë dhe shah
- Data e leximit (InleesDatum) është data kur sensori u lexua
- ReadTime është e njëjtë me ReadDate por me një afat kohor
- LocationID (LocatieID) është emri për koordinatën ku është pozicionuar. për shembull "a3"
-
Copa shahu (Schaakstukken në holandisht)
- Çdo copë shahu ka një ID, ekip, emër dhe një status
- Ekipi është ose 1 ose 2, i zi ose i bardhë;
- Emri i ndonjë pjese do të ishte dmth "Pawn 1"
- Statusi do të thotë se pjesa është e gjallë ose e vdekur!
Hapi 4: Pajisje kompjuterike
Tani që kemi marrë të gjitha pjesët e duhura, mund të fillojmë të krijojmë diçka!
Le ta ndajmë këtë pjesë në nën -hapa pasi do të jetë më e lehtë për tu shpjeguar:
-
Hapi 1: Ju dëshironi të shponi një vrimë në çdo koordinatë të tabelës suaj të shahut siç tregohet në foton e parë, gjithashtu shponi një vrimë ku dëshironi të vendosni sensorët e prekjes, lexuesin RFID dhe ekranin e 7 segmenteve.
Mos harroni të shponi disa vrima në anën e bordit, këto janë për telat e përbërësve të ndryshëm në majë të tabelës. Shumë shpime, e di
- Hapi 2: Mundohuni të lidhni një ose dy sensorë në Raspberry Pi, kontrolloni nëse funksionojnë. Ju dëshironi t'i lidhni ato me lexuesin analog MCP siç u shpjegua më herët në Hapin 2 (Skemat).
-
Hapi 3: Kjo mund të jetë e ndërlikuar dhe shumë nervoze, pasi titujt e kërcyesit nuk janë ngulur shumë në vend, ju mund të dëshironi t'i lidhni të gjitha në tabelë, individualisht ose të shumëfishta në të njëjtën kohë. Ju duhet të siguroheni që ata të qëndrojnë të mbërthyer në tabelën e shahut, përndryshe nuk do të jeni në gjendje t'i lexoni me sukses sensorët
KIPSHILL! Nëse e bën më të lehtë për ju, disa zam në të vërtetë mund të ndihmojnë në mbajtjen e sensorëve më shumë në vend gjatë fiksimit të tyre, e zbulova këtë në rrugën e vështirë
Hapi 5: Softuer
Pasi të keni bërë pajisje që mund të provoni, le të provojmë të shkruani një kod për të! Nëse doni të hidhni një sy kodit tim, ju lutemi shkoni te github im.
Së pari ne do të kemi nevojë për disa pako për t'u instaluar, unë shkova përpara dhe bëra një listë për ju:
-
balonë
Kjo është ajo në të cilën do të funksionojë kodi juaj python
-
Flask-foleIO
Për të komunikuar midis front-end dhe back-end
-
i mpirë
E dobishme për leximin e sensorëve të dritës, punon me matrica
-
netifaces
Për të printuar adresën tuaj IP në ekranin e 7 segmenteve
-
Flask-CORS
Ndarja e rekursit të origjinës, lejon që paketat të ndahen në fusha të ndryshme
Pranë kësaj, unë kam shkruar disa klasa dhe ju jeni të lirë t'i përdorni ato.
Front-end
Kodi i faqes në internet është gjithashtu i disponueshëm në faqen time github!
Për pjesën e përparme do të përdor Chessboard.js. Kjo fut një tabelë shahu të lehtë për t’u përdorur me pjesë të lehta për t’u lëvizur!
Çdo gjë në tabelë është e personalizueshme kështu që argëtohuni! Pasi të keni shkarkuar versionin e fundit, do t'ju duhet t'i tërhiqni skedarët në projektin tuaj dhe t'i lidhni ato me faqen ku dëshironi të shfaqni një tabelë shahu!
Pas kësaj, le të përpiqemi të krijojmë një tabelë, nuk duket shumë e vështirë:
Së pari, në html tuaj:
Së dyti, në skedarin tuaj javascript:
bordi1 = Bordi i shahut ('bordi1', 'fillimi');
dhe ja ku e keni, duhet të jeni në gjendje të shihni një tabelë shahu tani! Mos ngurroni të personalizoni tabelën në skedarët CSS!
Tani, ne duam të shohim disa lëvizje në tabelën e shahut, jo shumë të vështira. Por ne duhet ta rregullojmë atë në mënyrë që komanda move të dërgohet nga back-end. Unë nuk do të hyj në shumë detaje, por ne duam të bëjmë diçka si kjo:
new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); bordi1. lëviz (komando);
Ne marrim një listë nga programi ynë back-end dhe vendosim një vijë midis dy koordinatave, pastaj përdorim komandën board.move për të ekzekutuar lëvizjen!
Ky është shpjegimi im për atë që na nevojitet për shtojcën e shahut. Js, shkoni te github -i im për të parë vetë kodin
Recommended:
Programoni lojën tuaj 2048 Lojë W/Java !: 8 hapa
Programoni lojën tuaj 2048 me W/Java !: Më pëlqen loja 2048. Dhe kështu vendosa të programoj versionin tim. Veryshtë shumë e ngjashme me lojën aktuale, por programimi i saj vetë më jep lirinë të ndryshoj çfarë të dua sa herë që dua. Nëse dua një lojë 5x5 në vend të 4x4 tipike, një s
Bëni lojën tuaj 1D Pong: 5 hapa (me fotografi)
Bëni Lojën tuaj 1D Pong Lojë: Për këtë projekt do t'ju tregoj se si kombinova një tabelë MDF me butona zile, LED dhe një Arduino Nano në mënyrë që të krijoja një lojë 1D Pong që është vërtet argëtuese për tu luajtur. Gjatë rrugës unë do t'ju tregoj se si të krijoni qarkun elektronik dhe sa ndryshon
Luani lojën Simon në këmishën tuaj: 5 hapa
Luani lojën Simon në këmishën tuaj: A keni dashur gjithmonë të luani lojën Simon në këmishën tuaj? Edhe unë! Në këtë udhëzues, unë do t'ju tregoj se si të bëni një version të lojës Simon që mund të luani duke prekur këmishën tuaj, duke përdorur një Makey Makey
Krijoni lojën tuaj të parë garuese: 10 hapa
Krijoni lojën tuaj të parë të garave: Nëse keni bërë disa kodime Python dhe dëshironi të shkruani një lojë që mund të keni në Pygame Zero. Në këtë tutorial ne do të shkruajmë një lojë të thjeshtë garash
Shkruani lojën tuaj Tic Tac Toe në Java: 6 hapa
Shkruani lojën tuaj Tic Tac Toe në Java: Unë jam i sigurt që të gjithë ju e dini për lojën klasike të Tic Tic Toe. Që në vitet e shkollës fillore, Tic Tac Toe ishte një lojë popullore që e luaja me miqtë e mi. Unë kam qenë gjithmonë i hipnotizuar me thjeshtësinë e lojës. Në vitin tim të parë,