Talaan ng mga Nilalaman:
- Hakbang 1: Mga Supply / Tool
- Hakbang 2: Mga Skema at Pagpaplano
- Hakbang 3: SQL Database
- Hakbang 4: Hardware
- Hakbang 5: Software
Video: Digital Chess - Subaybayan ang Iyong Laro sa Chess Online: 5 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Naglalaro ako ng maraming chess mula pa noong bata pa ako, at dahil ang web ay mayroong maraming mga website upang maglaro ng chess laban sa mga computer o live na kalaban, hindi ako kailanman nakakita ng isang website na sumusubaybay sa iyong laro sa chess na ikaw ay naglalaro talaga sa totoong buhay. Kaya sa proyektong ito inaasahan kong mapagtanto iyon!
Inaasahan kong:
- Masusubaybayan ang paggalaw ng mga piraso ng chess
- Tingnan ang ilang mga leaderboard tungkol sa mga nakaraang laro.
- Subaybayan ang oras at maglaro nang mabilis tulad ng isang propesyonal na laro.
Ito ay isang napaka-kumplikadong proyekto dahil kung nakumpleto ito ay mangangailangan ng 64 light sensor at 8 chips na basahin. Alin na isang malaking gawain at hindi namin binibilang ang alinman sa iba pang mga sensor.
Binigyan kami ng aking kolehiyo ng isang malaking listahan ng mga bagay na dapat gawin:
- Lumikha ng isang eskematiko para sa aming proyekto
- Lumikha ng isang database para sa pagtatago at pagkuha ng data.
- Magdisenyo ng isang website gamit ang Adobe XD
- Muling likhain ang website na ito gamit ang CSS at HTML
- Basahin ang mga sensor na may sawa
- Ipakita ang data ng sensor sa website gamit ang flask.
Sa itinuturo na ito ay gagabayan kita sa aking paglalakbay, at lahat ng mga problema at sandali ng kaligtasan na napagdaanan ko sa huling dalawang linggo.
Hakbang 1: Mga Supply / Tool
Ang mga supply, materyales at tool ay ang unang hakbang sa isang matagumpay na proyekto!
Mga tool:
- Panghinang
- Soldering Tin
- Mga Plier
- Makina ng pagbabarena
- Tape
Mga Pantustos:
- Raspberry Pi na may micro SD card (4GB dapat sapat)
- Rasberry Pi T-cobbler
- Chess Board na may mga piraso
- 7 segment display (TM 1637)
- 2 Touch sensor (TTP223B)
- RFID Reader na may mga kard (MFRC522)
- MCP3008 (Nakasalalay sa kung gaano kalayo ang nais mong puntahan, para sa bawat MCP maaari mong mabasa ang 8 mga coordinate ng Chess)
- Light Dependent Resistor type 5288 (8 para sa bawat MCP na mayroon ka)
- Mga Header (Lalaki hanggang Lalaki at Babae hanggang Lalaki)
Kung kailangan mong bilhin ang lahat, ang tinatayang presyo ng gastos ay dapat na nasa 125 euro kasama na ang mga gastos sa pagpapadala (Mga supply lamang)!
Mayroong isang file na Excel na naka-attach na may mga link at presyo sa lahat ng kailangan mo!
Hakbang 2: Mga Skema at Pagpaplano
Ang susunod na hakbang sa proyektong ito ay upang lumikha ng isang iskematiko. Ginawa ko ang 2: Isa sa breadboard at isang pulos electronical. Kakailanganin namin ang mga eskematiko na ito upang mapanatiling malinis ang lahat at tiyakin na hindi namin ikonekta ang anumang hindi kinakailangang bagay!
Gumamit ako ng isang programa na tinatawag na "Fritzing" upang likhain ang mga eskematiko na ito kung mayroong interesado.
Pag-coding ng Kulay:
- Pula = supply ng kuryente
- Green = koneksyon
- Asul = lupa
Mga koneksyon sa Raspberry Pi:
- 3V3 => linya ng VC sa breadboard, pinapagana ang lahat
- 5V => VCC ng 7 segment na ipinapakita
-
GND:
- Bumaba sa breadboard
- Lupa ng pagpapakita ng 7 segment
- GPIO4 => Clock Select pin ng MCP3008
- GPIO10 => MOSI pin ng MCP3008
- GPIO9 => MISO pin ng MCP3008
- GPIO11 => CLK pin ng MCP3008
- GPIO7 => SDA pin ng MFRC522
- GPIO19 => DIG pin ng unang Touch sensor
- GPIO26 => DIG pin ng pangalawang Touch sensor
- GPIO20 => CLK pin ng pitong segment na display
- GPIO21 = DIO pin ng sevent segment na display
Ang ilang mga tala sa iskematiko:
- Naglalaman lamang ang iskematikong ito ng 1 MCP, nangangahulugan ito na 8 coordinate lamang ang maaaring mabasa nang buo.
- Gumagamit ako ng mga GPIO pin bilang aking Chip Select. Dahil 2 Chip select pin lamang ang magagamit na may potensyal na 8 MCP's.
- Ang pagpapakita ng 7 segment ay isang iminungkahi ng isang guro, 4 na mga wire lamang ang kinakailangan dahil gumagana ito sa sarili nitong protokol.
- Ang mga resistors sa digital pin ng mga touch sensor ay hindi ganap na kinakailangan, ngunit sinusulong.
Pagpapaliwanag ng mga bahagi:
-
MCP na may light sensor:
-
Ang isang MCP3008 ay isang 8 channel 10 bit ADC:
- babasahin ng isang MCP3008 ang halaga ng analog na ilaw ng mga sensor, ang halagang ito ay nakasalalay sa dami ng ilaw na kasalukuyang nagniningning sa sensor.
- Sa aking python code matatanggap ko ang halagang analog na iyon at i-convert ito sa isang 1 o 0
-
- Gumagamit ng isang tukoy na protocol (SPI) na may naka-install na pakete.
- Hindi mahirap i-code gamit ang isang naka-install na pakete
- Binabasa ang tag at ibinalik ang halaga ng tag
- Maaari ka ring magsulat ng isang halaga sa isang tag, kaya sa halip na ibalik ang hexadecimal na halaga, nagbabalik ito ng isang pangalan halimbawa
- Gumagamit din ng isang naka-install na pakete para sa madaling pag-coding
- Lumikha ng isang variable na may isang halaga ng integer, pagkatapos ay hatiin ito sa 4 na character at ipakita ang mga character na iyon
Mga touch sensor:
Gumagana tulad ng isang pindutan, gumagamit ako ng isang klase para dito sa isang paraan ng callback. Higit pa rito
RFID reader (MFRC 522):
7 Segment (TM1637)
Hakbang 3: SQL Database
Ang pangatlong hakbang patungo sa proyektong ito ay ang paglikha ng isang 3NF na normalisadong database ng SQL!
Kakailanganin namin ito para sa:
- Pagpasok ng data
- Pagkuha ng data at ipinapakita ito sa aming website
- Makita nang eksakto kung gaano karaming mga pagliko ang napunta sa kasalukuyang laro ng chess!
Ipinaliwanag ang mga talahanayan:
-
Mga Laro
- Sinusubaybayan nito kung sino ang nanalo ng isang tiyak na laro at kung kailan nilalaro ang laro
- Ang pangunahing susi dito ay isang GameID
- Ang Petsa ay may pamantayang halaga ng kasalukuyang petsa
- Ang nagwagi at iskor ay idadagdag sa paglaon, matapos ang laro!
-
Mga Manlalaro (Mga Speler sa Dutch)
- Manu-manong ipinasok ang mga ito, ngunit maaari ring maipasok gamit ang RFID card system.
- Sumulat ng isang pangalan sa iyong card, pagkatapos basahin ang card at ipasok ang pangalan sa talahanayan na ito
- Sinusubaybayan din nito ang win / loss record ng bawat manlalaro, upang maipakita sa website
-
Historiek (Kasaysayan)
- Ito ang kasaysayan ng pagliko
- kapag inilipat ang isang piraso ng chess, maa-update ito rito
- Mayroon itong 3 mga banyagang susi, manlalaro, laro at chesspiece
- ang ReadDate (InleesDatum) ay ang petsa kung kailan nabasa ang sensor
- Ang ReadTime ay kapareho ng ReadDate ngunit may timestamp
- Ang locationID (LocatieID) ay ang pangalan para sa coordinate kung saan ito nakaposisyon. halimbawa "a3"
-
Mga piraso ng Chess (Schaakstukken sa dutch)
- Ang bawat piraso ng chess ay may ID, koponan, pangalan at katayuan
- Ang koponan ay alinman sa 1 o 2, itim o puti;
- Ang pangalan ng kailanman piraso ay ibig sabihin ay "Pawn 1"
- Ang katayuan ay nangangahulugang ang piraso ay buhay o patay!
Hakbang 4: Hardware
Ngayon na nakuha na namin ang lahat ng tamang mga piraso sa lugar, maaari nating simulan ang paglikha ng isang bagay!
Hatiin natin ang bahaging ito sa mga sub hakbang sapagkat mas madaling ipaliwanag:
-
Hakbang 1: Nais mong mag-drill ng isang butas sa bawat coordinate ng iyong chessboard tulad ng ipinakita sa unang larawan, mag-drill din ng isang butas kung saan mo nais na ilagay ang mga touch sensor, RFID reader at 7 segment na display.
Huwag kalimutan na mag-drill ng ilang mga butas sa gilid ng board, ito ay para sa mga wire ng iba't ibang mga bahagi sa tuktok ng board. Maraming pagbabarena, alam ko
- Hakbang 2: Subukang i-wire ang isa o dalawang sensor sa Raspberry Pi, suriin kung gumagana ang mga ito. Nais mong ikonekta ang mga ito sa MCP analog reader na ipinaliwanag nang mas maaga sa Hakbang 2 (Ang mga eskematiko).
-
Hakbang 3: Maaaring ito ay nakakalito at napaka-pagkasira ng nerbiyos, dahil ang mga header ng jumper ay hindi masyadong natigil sa lugar, baka gusto mong i-tape ang lahat sa pisara, alinman sa isa-isa o maramihang sabay-sabay. Dapat mong tiyakin na mananatili silang makaalis sa chessboard, kung hindi man ay hindi mo magagawang basahin ang mga sensor nang matagumpay
TIP! Kung ginagawang madali para sa iyo, ang ilang pandikit ay maaaring makatulong sa pagpapanatili ng mga sensor nang higit pa sa lugar habang nai-tape ang mga ito, natuklasan ko ito sa mahirap na paraan
Hakbang 5: Software
Matapos mong magawa ang hardware na maaari mong subukan, subukang sumulat ng ilang code para dito! Kung nais mong tingnan ang aking code, mangyaring magtungo sa aking github.
Back-endFirst kakailanganin namin ng ilang mga pakete upang mai-install, nagpatuloy ako at gumawa ng isang listahan para sa iyo:
-
prasong
Ito ang tatakbo sa iyong python code
-
Flask-socketIO
Upang makipag-usap sa pagitan ng front-end at back-end
-
numpy
Kapaki-pakinabang para sa pagbabasa ng mga light sensor, gumagana sa matrix's
-
netifaces
Upang mai-print ang iyong sariling IP address sa display ng 7 segment
-
Flask-CORS
Pagbabahagi ng pinagmulan ng sangguniang pinagmulan, pinapayagan ang pagbabahagi ng mga pakete sa iba't ibang mga domain
Sa tabi nito, nagsulat ako ng maraming klase at malaya kang gamitin ang mga ito.
Harap-harapan
Magagamit din ang code ng website sa aking pahina ng github!
Para sa front-end gagamit ako ng Chessboard.js. Nagpapasok ito ng isang madaling gamitin na chessboard na may mga madaling ilipat na mga piraso!
Lahat ng nasa board ay napapasadyang kaya magsaya ka! Matapos ma-download ang pinakabagong bersyon, kakailanganin mong i-drag ang mga file sa iyong proyekto at i-link ang mga ito sa pahina kung saan mo nais ipakita ang isang chessboard!
Pagkatapos nito, subukang lumikha ng isang board, hindi masyadong mahirap:
Una, sa iyong html:
Pangalawa, sa iyong javascript file:
board1 = ChessBoard ('board1', 'start');
at doon mo ito, dapat na makakita ka ng isang chessboard ngayon! Huwag mag-atubiling ipasadya ang board sa mga CSS file!
Ngayon, nais naming makita ang ilang mga galaw sa chessboard, hindi masyadong mahirap. Ngunit kailangan naming ipasadya ito upang ang utos ng paglipat ay maipapadala ng back-end. Hindi ko bibigyan ng detalyadong detalye, ngunit nais naming gumawa ng isang bagay tulad nito:
new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (commando);
Nakatanggap kami ng isang listahan mula sa aming back-end programm, at naglalagay ng dash inbet pagitan ng dalawang mga coordinate, pagkatapos ay gamitin ang board.move command upang maisagawa ang paglipat!
Iyon ang paliwanag ko sa kung ano ang kailangan namin ng plugin ng chessboard.js, magtungo sa aking github upang tingnan ang code mismo.
Inirerekumendang:
Gamit ang Iyong Bluetooth Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Computer: 6 Mga Hakbang
Paggamit ng Iyong Bluetooth na Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Kompyuter: Kanina pa ako nagbabasa ng mga itinuturo, at palaging nais kong gawin ang ilan sa mga bagay na sinulat ng mga tao, ngunit nahanap ko ang aking sarili sa mga bagay na ay mahirap gawin dahil ang mga ito ay tunay na mahirap gawin, o ang ika
I-save ang Planet at Iyong Pocket. $$ I-convert ang Iyong Murang P&S Digital Camera sa Rechargable: 4 na Hakbang (na may Mga Larawan)
I-save ang Planet at Iyong Pocket. $$ I-convert ang Iyong Murang P&S Digital Camera sa Rechargable: Mga taon na ang nakakaraan, bumili ako ng Dolphin Jazz 2.0 Megapixel Digital Camera. Mayroon itong magagandang tampok at presyo. Nagkaroon din ito ng gana sa AAA Bateries. Walang isa na lumalakad palayo sa isang hamon, naisip kong gagamitin ko ito upang magamit ang isang rechargable na baterya upang ihinto ang pag-aaksaya ba
Paano Suriin Kung Tumatakbo ang isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: 4 Mga Hakbang
Paano Suriin Kung Tumatakbo ang Isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: Kamakailan-lamang na nakuha ko ang Tawag ng Tanghalan 4 mula sa isang kaibigan (nang libre ay maaari kong idagdag) dahil hindi tatakbo sa kanyang computer. Sa gayon, ang kanyang computer ay medyo bago, at ikinagulat ako nito kung bakit hindi ito tatakbo. Kaya pagkatapos ng ilang oras na paghahanap ng internet, napag-alaman ko
Paano Ayusin ang Hindi Sinusuportahang Mga File ng Data, at I-download ang Iyong Paboritong Mga Video File para sa Iyong PSP Portable: 7 Mga Hakbang
Paano Ayusin ang Hindi Sinusuportahang Mga File ng Data, at I-download ang Iyong Paboritong Mga Video File para sa Iyong PSP Portable: Gumamit ako ng Media Go, at gumawa ng ilan sa mga trick upang makakuha ng isang hindi sinusuportahang mga file ng video upang gumana sa aking PSP. Ito ang lahat ng aking mga hakbang na ginawa ko , nang una kong makuha ang aking hindi sinusuportahang mga file ng video upang gumana sa aking PSP. Gumagana ito ng 100% kasama ang lahat ng aking mga file ng video papunta sa aking PSP Po
Paano Suriin ang Iyong Mga Detalye ng Computer Bago Bumili ng Mga Laro / software .: 6 Mga Hakbang
Paano Suriin ang Iyong Mga Detalye ng Computer Bago Bumili ng Mga Laro / software .: Sinasaklaw ng gabay na ito ang hinihiling ng lahat ng mga laro / software. Ipinapakita sa iyo ng gabay na ito kung paano suriin kung ang iyong computer ay maaaring magpatakbo at mag-install ng isang cd o dvd na inilagay mo sa iyong computer. Maaari mo ring suriin ang http://cyri.systemrequirementslab.com/srtest/ (mula sa gumagamit na Kweeni