Turinys:
- 1 žingsnis: reikmenys/įrankiai
- 2 žingsnis: schemos ir planavimas
- 3 žingsnis: SQL duomenų bazė
- 4 žingsnis: aparatinė įranga
- 5 žingsnis: programinė įranga
Video: Skaitmeniniai šachmatai - stebėkite savo šachmatų žaidimą internete: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Nuo pat jaunystės žaidžiau daug šachmatų, ir kadangi žiniatinklyje yra daugybė svetainių, kuriose galima žaisti šachmatais prieš kompiuterius ar gyvus priešininkus, niekada neradau svetainės, kurioje būtų sekama jūsų šachmatų partija žaidžia realiame gyvenime. Taigi su šiuo projektu tikiuosi tai suvokti!
Aš tikiuosi:
- Gebėti sekti šachmatų figūrų judėjimą
- Peržiūrėkite pirmaujančiųjų sąrašus apie ankstesnius žaidimus.
- Stebėkite laiką ir žaiskite greitai kaip profesionalus žaidimas.
Tai labai sudėtingas projektas, nes jei jis bus baigtas, reikės 64 šviesos jutiklių ir 8 lustų. Tai jau yra didelė užduotis ir mes net neskaičiuojame jokių kitų jutiklių.
Mano kolegija mums pateikė didelį sąrašą dalykų, kuriuos reikia padaryti:
- Sukurkite mūsų projekto schemą
- Sukurkite duomenų bazę duomenims saugoti ir gauti.
- Sukurkite svetainę naudodami „Adobe XD“
- Sukurkite šią svetainę naudodami CSS ir HTML
- Skaitykite jutiklius naudodami python
- Rodykite jutiklio duomenis svetainėje naudodami kolbą.
Šioje pamokoje aš jums padėsiu savo kelionėje ir visas bėdas bei išgelbėjimo akimirkas, kurias išgyvenau per pastarąsias porą savaičių.
1 žingsnis: reikmenys/įrankiai
Prekės, medžiagos ir įrankiai yra pirmasis žingsnis į sėkmingą projektą!
Įrankiai:
- Lituoklis
- Litavimo skarda
- Replės
- Gręžimo mašina
- Juosta
Priedai:
- „Raspberry Pi“su „micro SD“kortele (turėtų pakakti 4 GB)
- „Rasberry Pi T-cobbler“
- Šachmatų lenta su gabalėliais
- 7 segmentų ekranas (TM 1637)
- 2 jutikliniai jutikliai (TTP223B)
- RFID skaitytuvas su kortelėmis (MFRC522)
- MCP3008 (priklausomai nuo to, kiek norite nueiti, kiekvienam MCP galite perskaityti 8 šachmatų koordinates)
- Priklausomas nuo šviesos rezistorius 5288 (8 kiekvienam MCP)
- Antraštės (vyrai - vyrai ir moterys - vyrai)
Jei jums reikia nusipirkti viską, numatoma savikaina turėtų būti apie 125 eurus, įskaitant siuntimo išlaidas (tik reikmenys)!
Yra „Excel“failas su nuorodomis ir kainomis prie visko, ko jums reikia!
2 žingsnis: schemos ir planavimas
Kitas šio projekto žingsnis yra sukurti schemą. Aš padariau 2: vieną ant duonos lentos ir vieną visiškai elektroninį. Mums reikės šios schemos, kad viskas būtų švari ir kad neprijungtume nereikalingų dalykų!
Aš sukūriau šias schemas, jei kam nors įdomu, naudoju programą „Fritzing“.
Spalvų kodavimas:
- Raudona = maitinimo šaltinis
- Žalia = jungtis
- Mėlyna = žemė
„Raspberry Pi“jungtys:
- 3V3 => VC linija ant duonos lentos, maitinanti viską
- 5V => 7 segmentų ekrano VCC
-
GND:
- Žemė ant duonos lentos
- 7 segmentų ekrano pagrindas
- GPIO4 => Laikrodis Pasirinkite MCP3008 kaištį
- GPIO10 => MCP3008 MOSI kaištis
- GPIO9 => MCP3008 MISO kaištis
- GPIO11 => MCP3008 CLK kaištis
- GPIO7 => MFRC522 SDA kaištis
- GPIO19 => Pirmojo jutiklinio jutiklio DIG kaištis
- GPIO26 => Antrojo jutiklinio jutiklio DIG kaištis
- GPIO20 => Septynių segmentų ekrano CLK kaištis
- GPIO21 = septintojo segmento ekrano DIO kaištis
Keletas pastabų apie schemą:
- Šioje schemoje yra tik 1 MCP, tai reiškia, kad iki galo bus galima nuskaityti tik 8 koordinates.
- Aš naudoju GPIO kaiščius kaip „Chip Select“. Kadangi yra tik 2 lustų pasirinkimo kaiščiai su galimai 8 MCP.
- 7 segmentų ekraną siūlo mokytojas, reikia tik 4 laidų, nes jis veikia pagal savo protokolą.
- Jutiklinių jutiklių skaitmeninio kaiščio rezistoriai nėra visiškai reikalingi, tačiau patariama.
Komponentų paaiškinimas:
-
MCP su šviesos jutikliais:
-
MCP3008 yra 8 kanalų 10 bitų ADC:
- MCP3008 nuskaitys šviesos jutiklių analoginę vertę, ši vertė priklauso nuo jutiklio šviečiančios šviesos kiekio.
- Į savo „Python“kodą aš gausiu tą analoginę vertę ir konvertuosiu ją į 1 arba 0
-
- Naudojamas specialus protokolas (SPI) su įdiegtu paketu.
- Nesunku koduoti naudojant įdiegtą paketą
- Skaito žymą ir grąžina žymos vertę
- Taip pat galite įrašyti žymę į vertę, todėl vietoj to, kad grąžintų šešioliktainę reikšmę, ji grąžina, pavyzdžiui, pavadinimą
- Taip pat naudojamas įdiegtas paketas, skirtas lengvai koduoti
- Sukurkite kintamąjį su sveiko skaičiaus reikšme, tada padalinkite jį į 4 simbolius ir parodykite tuos simbolius
Lietimo jutikliai:
Veikia kaip mygtukas, tam naudoju klasę su atgalinio ryšio metodu. Daugiau apie tai vėliau
RFID skaitytuvas (MFRC 522):
7 segmentas (TM1637)
3 žingsnis: SQL duomenų bazė
Trečias žingsnis šio projekto link yra 3NF normalizuotos SQL duomenų bazės sukūrimas!
Mums to prireiks:
- Duomenų įterpimas
- Gauti duomenis ir juos parodyti mūsų svetainėje
- Galėdami tiksliai pamatyti, kiek posūkių įvyko dabartiniame šachmatų žaidime!
Lentelėse paaiškinta:
-
Žaidimai
- Tai seka, kas laimėjo tam tikrą žaidimą ir kada žaidimas buvo žaidžiamas
- Pagrindinis raktas čia yra „GameID“
- Data turi standartinę dabartinės datos vertę
- Nugalėtojas ir rezultatas bus pridėti vėliau, pasibaigus žaidimui!
-
Žaidėjai (olandų kalba)
- Jie įterpiami rankiniu būdu, bet taip pat gali būti įterpiami naudojant RFID kortelių sistemą.
- Įrašykite savo kortelės pavadinimą, tada perskaitykite kortelę ir įveskite pavadinimą į šią lentelę
- Jis taip pat seka kiekvieno žaidėjo laimėjimų / pralaimėjimų rekordą, kuris bus rodomas svetainėje
-
Istorija (istorija)
- Tai posūkio istorija
- perkėlus šachmatų figūrą, ji bus atnaujinta čia
- Jame yra 3 užsienio raktai, žaidėjas, žaidimas ir šachmatas
- „ReadDate“(InleesDatum) yra data, kai jutiklis buvo nuskaitytas
- „ReadTime“yra tas pats kaip „ReadDate“, bet su laiko žyma
- LocationID (LocatieID) yra koordinatės, kurioje ji yra, pavadinimas. pvz "a3"
-
Šachmatų figūros („Schaakstukken“olandų kalba)
- Kiekviena šachmatų figūra turi ID, komandą, vardą ir statusą
- Komanda yra 1 arba 2, juoda arba balta;
- Visų kūrinių pavadinimas būtų „Pėstininkas 1“
- Būsena reiškia, kad kūrinys yra gyvas arba negyvas!
4 žingsnis: aparatinė įranga
Dabar, kai turime visus reikiamus kūrinius, galime pradėti kažką kurti!
Padalinkime šią dalį į papildomus veiksmus, nes bus lengviau paaiškinti:
-
1 žingsnis: norite išgręžti skylę į kiekvieną šachmatų lentos koordinatę, kaip parodyta pirmame paveikslėlyje, taip pat išgręžkite skylę, kurioje norite įdėti jutiklinius jutiklius, RFID skaitytuvą ir 7 segmentų ekraną.
Nepamirškite išgręžti skylių plokštės šone, jos skirtos įvairių komponentų laidams ant plokštės viršaus. Daug gręžimo, aš žinau
- 2 veiksmas: pabandykite prijungti vieną ar du jutiklius prie „Raspberry Pi“, patikrinkite, ar jie veikia. Norite juos prijungti prie MCP analoginio skaitytuvo, kaip paaiškinta anksčiau 2 veiksme (Schemos).
-
3 žingsnis: Tai gali būti sudėtinga ir labai sugadinti nervus, nes trumpiklių antraštės nėra labai įstrigusios, galbūt norėsite juos visus užklijuoti lenta atskirai arba kelis iš karto. Turite įsitikinti, kad jie lieka įstrigę šachmatų lentoje, kitaip negalėsite sėkmingai perskaityti jutiklių
PATARIMAS! Jei jums tai palengvins, kai kurie klijai iš tikrųjų gali padėti išlaikyti jutiklius, kol juos klijuojate, aš tai atradau sunkiu būdu
5 žingsnis: programinė įranga
Sukūrę aparatūrą, kurią galėsite išbandyti, pabandykime parašyti tam tikrą kodą! Jei norite pažvelgti į mano kodą, eikite į mano „github“.
Pirmiausia mums reikės kelių paketų, kuriuos reikia įdiegti, ir aš padariau jums sąrašą:
- kolba
Tai bus jūsų python kodas
-
Kolbos lizdasIO
Bendravimas tarp priekinio ir galinio
-
kvailas
Naudinga skaityti šviesos jutiklius, veikia su matricomis
-
tinklai
Norėdami išspausdinti savo IP adresą 7 segmentų ekrane
-
Kolba-CORS
Kryžminis kilmės kreipimosi bendrinimas leidžia paketus bendrinti skirtinguose domenuose
Be to, aš parašiau keletą kursų ir jūs galite laisvai jais naudotis.
Priekinis galas
Svetainės kodas taip pat yra mano „github“puslapyje!
Priekinėje pusėje naudosiu „Chessboard.js“. Tai įdeda lengvai naudojamą šachmatų lentą su lengvai perkeliamomis figūromis!
Viskas lentoje yra pritaikoma, todėl smagiai! Atsisiuntę naujausią versiją, turėsite vilkti failus į savo projektą ir susieti juos su puslapiu, kuriame norite rodyti šachmatų lentą!
Po to pabandykime sukurti lentą, neatrodo per daug:
Pirma, savo html:
Antra, „JavaScript“faile:
board1 = ChessBoard ('board1', 'start');
ir jūs turite tai, dabar turėtumėte matyti šachmatų lentą! Nesivaržykite pritaikyti lentos CSS failuose!
Dabar norime pamatyti keletą šachmatų lentos judesių, ne per sunkių. Bet mes turime jį pritaikyti, kad perkėlimo komanda būtų siunčiama iš galinės pusės. Per daug nesileisiu į detales, bet norime padaryti kažką panašaus:
new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (komandinis);
Mes gauname sąrašą iš savo užpakalinės programos ir įdedame brūkšnį tarp dviejų koordinačių, tada naudokite komandą board.move, kad įvykdytumėte perkėlimą!
Tai yra mano paaiškinimas, ko mums reikia „chessboard.js“papildinio, eikite į mano „Github“ir pažiūrėkite kodą patys
Rekomenduojamas:
Programuokite savo 2048 žaidimą „W/Java“: 8 žingsniai
Programuokite savo 2048 žaidimą „W/Java“: Aš myliu žaidimą 2048. Taigi aš nusprendžiau užprogramuoti savo versiją. Jis labai panašus į tikrąjį žaidimą, tačiau pats jį programuodamas suteikia man laisvę keisti ką tik noriu, kai tik noriu. Jei noriu 5x5 žaidimo, o ne įprasto 4x4, tai
Sukurkite savo 1D teniso žaidimą: 5 žingsniai (su nuotraukomis)
Sukurkite savo 1D teniso žaidimą: Šiame projekte aš jums parodysiu, kaip sujungiau MDF plokštę su garso signalo mygtukais, šviesos diodais ir „Arduino Nano“, kad galėčiau sukurti 1D teniso žaidimą, kurį tikrai smagu žaisti. Pakeliui parodysiu, kaip sukurti elektronikos grandinę ir kaip skiriasi
Žaisk Simono žaidimą ant savo marškinėlių: 5 žingsniai
Žaisk Simono žaidimą ant savo marškinėlių: Ar visada norėjai žaisti Simono žaidimą ant savo marškinių? Aš taip pat! Šioje pamokoje aš jums parodysiu, kaip sukurti „Simon“žaidimo versiją, kurią galite žaisti paliesdami marškinius, naudodami „Makey Makey“
Parašykite savo „Tic Tac Toe“žaidimą „Java“: 6 žingsniai
Parašykite savo „Tic Tac Toe“žaidimą „Java“: esu tikras, kad visi žinote apie klasikinį „Tic Tic Toe“žaidimą. Nuo pradinių klasių „Tic Tac Toe“buvo populiarus žaidimas, kurį žaisdavau su draugais. Mane visada žavėjo žaidimo paprastumas. Pirmame kurse mano
Sukurkite savo naršymo internete įrankių juostą: 5 žingsniai
Sukurkite savo naršymo internete įrankių juostą: prieš atlikdami visus toliau nurodytus veiksmus, kaip sukurti savo įrankių juostą, pabandykite pirmiausia parodyti, kaip įrankių juosta veikia, galite apsilankyti šioje svetainėje ir atsisiųsti įrankių juostą. Http:// cosmicconsciousness. ourtoolbar.com/Nėra jokių reklaminių programų, virusų