Isi kandungan:
- Langkah 1: Bekalan / Alatan
- Langkah 2: Skematik dan Perancangan
- Langkah 3: Pangkalan Data SQL
- Langkah 4: Perkakasan
- Langkah 5: Perisian
Video: Catur Digital - Jejak Permainan Catur Anda Dalam Talian: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Saya telah bermain banyak catur sejak saya masih muda, dan kerana web mempunyai sejumlah besar laman web untuk bermain catur melawan komputer atau lawan langsung, saya tidak pernah menjumpai laman web yang mengesan permainan catur anda bahawa anda sebenarnya bermain dalam kehidupan sebenar. Oleh itu dengan projek ini saya berharap dapat merealisasikannya!
Saya berharap dapat:
- Dapat mengesan pergerakan kepingan catur
- Lihat beberapa papan pendahulu mengenai permainan masa lalu.
- Jejaki masa dan bermain pantas seperti permainan profesional.
Ini adalah projek yang sangat kompleks kerana jika siap, ia memerlukan 64 sensor cahaya dan 8 cip untuk dibaca. Yang sudah menjadi tugas besar dan kita bahkan tidak mengira sensor yang lain.
Kolej saya memberi kami senarai perkara yang perlu dilakukan:
- Buat skema untuk projek kami
- Buat pangkalan data untuk menyimpan dan mendapatkan data.
- Reka laman web menggunakan Adobe XD
- Buat semula laman web ini dengan CSS dan HTML
- Baca sensor dengan python
- Tunjukkan data sensor di laman web menggunakan termos.
Dalam petunjuk ini saya akan membimbing anda dalam perjalanan saya, dan semua masalah dan saat keselamatan yang saya lalui dalam beberapa minggu terakhir ini.
Langkah 1: Bekalan / Alatan
Bekalan, bahan dan alat adalah langkah pertama untuk projek yang berjaya!
Alat:
- Besi pematerian
- Timah Pematerian
- Tang
- Mesin gerudi
- Pita
Bekalan:
- Raspberry Pi dengan kad SD mikro (4GB semestinya cukup)
- Rasberry Pi T-tukang sepatu
- Papan catur dengan kepingan
- Paparan 7 segmen (TM 1637)
- 2 Sensor sentuh (TTP223B)
- Pembaca RFID dengan kad (MFRC522)
- MCP3008 (Bergantung pada sejauh mana anda mahu pergi, untuk setiap MCP anda boleh membaca 8 koordinat Catur)
- Jenis Perintang Bergantung Cahaya 5288 (8 untuk setiap MCP yang anda miliki)
- Tajuk (Lelaki hingga Lelaki dan Perempuan ke Lelaki)
Sekiranya anda perlu membeli semuanya, anggaran harga kos adalah sekitar 125 euro termasuk kos penghantaran (Bekalan sahaja)!
Terdapat fail Excel yang dilampirkan dengan pautan dan harga untuk semua yang anda perlukan!
Langkah 2: Skematik dan Perancangan
Langkah seterusnya dalam projek ini adalah membuat skema. Saya membuat 2: Satu di papan roti dan satu secara elektronik. Kami memerlukan skema ini untuk memastikan semuanya bersih dan memastikan kami tidak menghubungkan perkara yang tidak perlu!
Saya menggunakan program yang disebut "Fritzing" untuk membuat skema ini jika ada yang berminat.
Pengekodan Warna:
- Merah = bekalan kuasa
- Hijau = sambungan
- Biru = tanah
Sambungan Raspberry Pi:
- 3V3 => Garis VC di papan roti, memberi kuasa kepada segalanya
- 5V => VCC paparan segmen 7
-
GND:
- Tanah di atas papan roti
- Tanah paparan segmen 7
- GPIO4 => Jam Pilih pin MCP3008
- GPIO10 => Pin MOSI MCP3008
- GPIO9 => Pin MISO MCP3008
- GPIO11 => CLK pin MCP3008
- GPIO7 => Pin SDA MFRC522
- GPIO19 => DIG pin sensor Sentuh pertama
- GPIO26 => Pin DIG dari sensor Sentuh kedua
- GPIO20 => Pin CLK dari paparan tujuh segmen
- GPIO21 = Pin DIO dari paparan tujuh segmen
Beberapa catatan mengenai skema:
- Skema ini hanya mengandungi 1 MCP, ini bermakna hanya 8 koordinat yang dapat dibaca sepenuhnya.
- Saya akan menggunakan pin GPIO sebagai Chip Select saya. Oleh kerana hanya 2 pin pilih Chip yang tersedia dengan 8 MCP yang berpotensi.
- Paparan 7 segmen adalah yang disarankan oleh guru, hanya 4 wayar yang diperlukan kerana ia berfungsi pada protokolnya sendiri.
- Perintang pada pin digital sensor sentuh tidak diperlukan sepenuhnya, tetapi disarankan.
Menjelaskan komponen:
-
MCP dengan sensor cahaya:
-
MCP3008 adalah ADC 8 bit 10 bit:
- MCP3008 akan membaca nilai analog sensor cahaya, nilai ini bergantung pada jumlah cahaya yang sedang bersinar pada sensor.
- Dalam kod python saya akan menerima nilai analog itu dan menukarnya menjadi 1 atau 0
-
- Menggunakan protokol tertentu (SPI) dengan pakej yang dipasang.
- Tidak sukar untuk dikodkan dengan pakej yang dipasang
- Membaca teg dan mengembalikan nilai teg
- Anda juga boleh menulis nilai ke tag, jadi daripada mengembalikan nilai heksadesimal, ia mengembalikan nama misalnya
- Juga menggunakan pakej yang dipasang untuk pengekodan yang mudah
- Buat pemboleh ubah dengan nilai integer, kemudian pisahkan dalam 4 watak dan tunjukkan watak-watak tersebut
Sensor sentuh:
Berfungsi seperti butang, saya menggunakan kelas untuk ini dengan kaedah panggilan balik. Lebih lanjut mengenai ini kemudian
Pembaca RFID (MFRC 522):
7 Segmen (TM1637)
Langkah 3: Pangkalan Data SQL
Langkah ketiga ke arah projek ini ialah membuat pangkalan data SQL 3NF yang dinormalisasi!
Kami memerlukan ini untuk:
- Memasukkan data
- Mendapatkan data dan menunjukkannya di laman web kami
- Dapat melihat dengan tepat berapa banyak giliran yang telah dilalui dalam permainan catur semasa!
Jadual dijelaskan:
-
Permainan
- Ini mengesan siapa yang memenangi permainan tertentu dan ketika permainan itu dimainkan
- Kunci utama di sini ialah GameID
- Tarikh mempunyai nilai standard tarikh semasa
- Pemenang dan skor akan ditambahkan kemudian, setelah permainan selesai!
-
Pemain (Spelers dalam bahasa Belanda)
- Ini dimasukkan secara manual, tetapi juga boleh dimasukkan menggunakan sistem kad RFID.
- Tuliskan nama ke kad anda, kemudian baca kad tersebut dan masukkan nama ke dalam jadual ini
- Ini juga melacak rekod menang / kalah setiap pemain, untuk dipaparkan di laman web
-
Historiek (Sejarah)
- Inilah sejarah giliran
- apabila catur dipindahkan, ia akan dikemas kini di sini
- Ia mempunyai 3 kunci asing, pemain, permainan dan catur
- ReadDate (InleesDatum) adalah tarikh apabila sensor dibaca
- ReadTime adalah sama dengan ReadDate tetapi dengan cap waktu
- LocationID (LocatieID) adalah nama untuk koordinat tempat ia berada. contohnya "a3"
-
Potongan catur (Schaakstukken dalam Belanda)
- Setiap catur mempunyai ID, pasukan, nama dan status
- Pasukan ini adalah 1 atau 2, hitam atau putih;
- Nama kepingan yang pernah ada ialah "Pawn 1"
- Status bermaksud sekeping itu hidup atau mati!
Langkah 4: Perkakasan
Setelah mendapat semua bahagian yang betul, kita boleh mula membuat sesuatu!
Mari bahagikan bahagian ini kepada beberapa langkah kerana akan lebih mudah untuk dijelaskan:
-
Langkah 1: Anda ingin mengebor lubang ke setiap koordinat papan catur anda seperti yang ditunjukkan pada gambar pertama, juga menggerudi lubang di mana anda ingin meletakkan sensor sentuh, pembaca RFID dan paparan 7 segmen.
Jangan lupa menggerudi beberapa lubang di sisi papan, ini adalah untuk wayar komponen yang berlainan di atas papan. Saya tahu banyak penggerudian
- Langkah 2: Cuba pasangkan satu atau dua sensor ke Raspberry Pi, periksa sama ada ia berfungsi. Anda mahu menghubungkannya ke pembaca analog MCP seperti yang dijelaskan sebelumnya dalam Langkah 2 (Skema).
-
Langkah 3: Ini mungkin sukar dan merosakkan saraf, kerana tajuk pelompat tidak terlalu terpasang di tempatnya, anda mungkin ingin merekam semuanya ke papan, sama ada secara individu atau berganda sekaligus. Anda harus memastikan mereka tetap terpaku di papan catur, jika tidak, anda tidak akan berjaya membaca sensor
PETUA! Sekiranya ia memudahkan anda, sebilangan gam sebenarnya dapat membantu menjaga sensor agar tetap berada di tempat semasa mengetiknya, saya dapati ini dengan cara yang sukar
Langkah 5: Perisian
Setelah membuat perkakasan yang boleh anda uji, mari cuba tulis beberapa kod untuknya! Sekiranya anda ingin melihat kod saya, sila ke github saya.
Back-endMula-mula kita memerlukan beberapa pakej untuk dipasang, saya teruskan dan membuat senarai untuk anda:
-
kelalang
Inilah kod python anda yang akan dijalankan
-
Flask-soketIO
Untuk berkomunikasi antara front-end dan back-end
-
kekenyangan
Berguna untuk membaca sensor cahaya, berfungsi dengan matriks
-
muka jaring
Untuk mencetak alamat IP anda sendiri pada paparan 7 segmen
-
Kelalang-CORS
Perkongsian jalan silang, membolehkan pakej dikongsi di pelbagai domain
Di sebelah itu, saya telah menulis beberapa kelas dan anda bebas menggunakannya.
Bahagian hadapan
Kod laman web juga terdapat di laman github saya!
Untuk bahagian depan saya akan menggunakan Chessboard.js. Ini memasukkan papan catur yang mudah digunakan dengan kepingan yang mudah bergerak!
Semua yang ada di papan boleh disesuaikan jadi bersenang-senang! Setelah memuat turun versi terkini, anda perlu menyeret fail ke dalam projek anda dan memautkannya ke halaman di mana anda mahu menunjukkan papan catur!
Selepas itu, mari kita cuba membuat papan, tidak kelihatan terlalu keras:
Pertama, dalam html anda:
Kedua, dalam fail javascript anda:
board1 = Papan Catur ('board1', 'start');
dan di sana anda memilikinya, anda seharusnya dapat melihat papan catur sekarang! Jangan ragu untuk menyesuaikan papan dalam fail CSS!
Sekarang, kita mahu melihat beberapa pergerakan di papan catur, tidak terlalu keras. Tetapi kita perlu menyesuaikannya sehingga perintah bergerak dihantar oleh bahagian belakang. Saya tidak akan membahas dengan terperinci, tetapi kami mahu melakukan perkara seperti ini:
new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); papan1.move (komando);
Kami menerima senarai dari program akhir kami, dan meletakkan tanda hubung di antara kedua koordinat, kemudian gunakan perintah board.move untuk melaksanakan langkah itu!
Itulah penjelasan saya tentang apa yang kami perlukan dari plugin chessboard.js, pergi ke github saya untuk melihat kod anda sendiri
Disyorkan:
Permainan Arduino Paparan LED Dalam Talian: 7 Langkah (dengan Gambar)
Arduino Games LED Display In-Line: aka Sistem Permainan Paparan Tangga LED. Attiny-85 dilengkapi dengan perkakasan dan perisian untuk memainkan aksi " video " permainan, pada paparan LED sebaris. Ia mempunyai paparan tangga 12 LED multiplexed, dan menyokong hingga 6 input butang dan pilihan
Cara Membuat Headset untuk Permainan Dalam Talian atau Pesanan Segera: 5 Langkah
Cara Membuat Headset untuk Permainan Dalam Talian atau Pesanan Segera: Cara membuat alat dengar untuk permainan dalam talian atau pesanan segera. Ini adalah arahan pertama saya dan saya benar-benar bekerja keras untuk ini jadi jangan nyala-nyala;)
Cara Memeriksa Jika Permainan Akan Berjalan di Komputer Anda Sebelum Anda Membeli Permainan .: 4 Langkah
Cara Memeriksa Jika Permainan Akan Berjalan di Komputer Anda Sebelum Anda Membeli Permainan: Saya baru-baru ini memperoleh Call of Duty 4 dari seorang rakan (secara percuma saya mungkin menambah) kerana tidak akan berjalan di komputernya. Komputernya agak baru, dan membingungkan saya mengapa ia tidak dapat dijalankan. Oleh itu, setelah beberapa jam mencari di internet, saya terjumpa
Muat turun dan Mainkan Permainan Flash dalam atau Luar Talian: 5 Langkah
Muat turun dan Mainkan Permainan Flash dalam atau Luar Talian: Dalam arahan ini saya akan mengajar anda cara memuat turun permainan flash. Ini hebat untuk bermain dalam perjalanan dan barang-barang sekiranya anda tidak mendapat wi-fi
Sandaran Dalam Talian Menggunakan Akaun Gmail Anda: 4 Langkah
Sandaran Dalam Talian Menggunakan Akaun Gmail Anda: http://www.softpedia.com/progDownload/GMail-Drive-shell-extension-Download-15944.htmlPemacu e-mel adalah program kecil untuk sistem operasi Windows yang menjadikan akaun Gmail anda menjadi? Dalam talian sandaran?. Anda boleh menggunakan akaun Gmail anda untuk menyimpan fail yang