İçindekiler:
- Adım 1: Sarf Malzemeleri/Araçlar
- Adım 2: Şemalar ve Planlama
- 3. Adım: SQL Veritabanı
- 4. Adım: Donanım
- Adım 5: Yazılım
Video: Dijital Satranç - Satranç Oyununuzu Çevrimiçi Takip Edin: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Gençliğimden beri çok fazla satranç oynuyorum ve web'de bilgisayarlara veya canlı rakiplere karşı satranç oynayabileceğiniz çok sayıda web sitesi bulunduğundan, bir zamanlar satranç oyununuzu izleyen bir web sitesi bulamadım. aslında gerçek hayatta oynuyor. Yani bu proje ile bunu gerçekleştirmeyi umuyorum!
şunu umuyorum:
- Satranç taşlarının hareketlerini takip edebilme
- Geçmiş oyunlarla ilgili bazı skor tablolarına bakın.
- Zamanı takip edin ve profesyonel bir oyun gibi hızlı oynayın.
Bu çok karmaşık bir proje çünkü tamamlanması halinde 64 ışık sensörü ve 8 çipin okunması gerekecek. Bu zaten büyük bir görev ve diğer sensörleri saymıyoruz bile.
Üniversitem bize yapılacakların büyük bir listesini verdi:
- Projemiz için bir şema oluşturun
- Verilerin depolanması ve alınması için bir veritabanı oluşturun.
- Adobe XD kullanarak bir web sitesi tasarlayın
- Bu web sitesini CSS ve HTML ile yeniden oluşturun
- Sensörleri python ile okuyun
- Şişeyi kullanarak sensör verilerini web sitesinde gösterin.
Bu eğitici yazıda, yolculuğumda ve bu son birkaç hafta içinde yaşadığım tüm sıkıntılar ve kurtuluş anlarında size rehberlik edeceğim.
Adım 1: Sarf Malzemeleri/Araçlar
Sarf malzemeleri, malzemeler ve araçlar, başarılı bir projenin ilk adımıdır!
Aletler:
- Havya
- Lehimleme Kalay
- pense
- Sondaj makinesi
- Kaset
Gereçler:
- Mikro SD kartlı Raspberry Pi (4GB yeterli olacaktır)
- Rasberry Pi T-ayakkabıcı
- Satranç tahtası parçaları ile
- 7 segmentli ekran (TM 1637)
- 2 Dokunma sensörü (TTP223B)
- Kartlı RFID Okuyucu (MFRC522)
- MCP3008 (Ne kadar ileri gitmek istediğinize bağlı olarak, her MCP için 8 Satranç koordinatını okuyabilirsiniz)
- Hafif Bağımlı Direnç tipi 5288 (sahip olduğunuz her MCP için 8)
- Başlıklar (Erkek-Erkek ve Kadın-Erkek)
Her şeyi satın almanız gerekiyorsa, nakliye masrafları dahil tahmini maliyet fiyatı yaklaşık 125 Euro olmalıdır (yalnızca Malzemeler)!
İhtiyacınız olan her şeye bağlantılar ve fiyatlar eklenmiş bir Excel dosyası var!
Adım 2: Şemalar ve Planlama
Bu projedeki bir sonraki adım bir şematik oluşturmaktır. 2 tane yaptım: Biri breadboard üzerinde, diğeri tamamen elektronik. Her şeyi temiz tutmak ve gereksiz şeyleri bağlamadığımızdan emin olmak için bu şemaya ihtiyacımız olacak!
İlgilenen varsa bu şemaları oluşturmak için "Fritzing" adlı bir program kullandım.
Renk kodlaması:
- Kırmızı = güç kaynağı
- Yeşil = bağlantı
- mavi = toprak
Raspberry Pi bağlantıları:
- 3V3 => Breadboard üzerinde her şeye güç sağlayan VC hattı
- 5V => 7 segmentli ekranın VCC'si
-
GND:
- Breadboard üzerinde zemin
- 7 segmentli ekranın zemini
- GPIO4 => MCP3008'in Saat Seçim pini
- GPIO10 => MCP3008'in MOSI pini
- GPIO9 => MCP3008'in MISO pini
- GPIO11 => MCP3008'in CLK pini
- GPIO7 => MFRC522'nin SDA pini
- GPIO19 => İlk Touch sensörünün DIG pini
- GPIO26 => İkinci Touch sensörünün DIG pini
- GPIO20 => Yedi segmentli ekranın CLK pini
- GPIO21 = Yedi segmentli ekranın DIO pini
Şemalar hakkında birkaç not:
- Bu şema sadece 1 MCP içerir, bu sadece 8 koordinatın tam olarak okunabileceği anlamına gelir.
- Chip Select'im olarak GPIO pinlerini kullanacağım. Potansiyel olarak 8 MCP ile sadece 2 Chip seçim pimi mevcut olduğundan.
- 7 segmentli ekran bir öğretmen tarafından önerilmiştir, kendi protokolünde çalıştığı için sadece 4 kabloya ihtiyaç vardır.
- Dokunmatik sensörlerin dijital pimindeki dirençlere tam olarak ihtiyaç yoktur, ancak tavsiye edilir.
Bileşenleri açıklamak:
-
Işık sensörlü MCP:
-
Bir MCP3008, 8 kanallı 10 bitlik bir ADC'dir:
- bir MCP3008, ışık sensörlerinin analog değerini okuyacaktır, bu değer sensörde o anda parlayan ışık miktarına bağlıdır.
- Python kodumda bu analog değeri alacağım ve onu 1 veya 0'a dönüştüreceğim
-
- Yüklü bir paketle belirli bir protokol (SPI) kullanır.
- Kurulu bir paketle kodlamak zor değil
- Etiketi okur ve etiketin değerini döndürür
- Ayrıca bir etikete bir değer yazabilirsiniz, böylece onaltılık değeri döndürmek yerine örneğin bir ad döndürür.
- Ayrıca kolay kodlama için kurulu bir paket kullanır
- Tamsayı değerine sahip bir değişken oluşturun, ardından 4 karaktere bölün ve bu karakterleri gösterin
Dokunmatik sensörler:
Tıpkı bir düğme gibi çalışır, bunun için geri çağırma yöntemiyle bir sınıf kullanıyorum. Bu konuda daha sonra
RFID okuyucu (MFRC 522):
7 Segment (TM1637)
3. Adım: SQL Veritabanı
Bu projeye doğru üçüncü adım, 3NF normalleştirilmiş bir SQL veritabanı oluşturmaktır!
Buna ihtiyacımız olacak:
- Veri ekleme
- Veri alma ve web sitemizde gösterme
- Mevcut satranç oyununda tam olarak kaç tur geçtiğini görebilmek!
Açıklanan tablolar:
-
Oyunlar
- Bu, belirli bir oyunu kimin kazandığını ve oyunun ne zaman oynandığını izler.
- Buradaki birincil anahtar bir GameID'dir
- Tarih, geçerli tarihin standart bir değerine sahiptir
- Kazanan ve skor, oyun bittikten sonra eklenecektir!
-
Oyuncular (Hollandaca Speler)
- Bunlar manuel olarak takılır, ancak RFID kart sistemi kullanılarak da yerleştirilebilir.
- Kartınıza bir isim yazın, ardından kartı okuyun ve ismi bu tabloya girin
- Ayrıca, web sitesinde görüntülenecek her oyuncunun kazanma / kaybetme kaydını da izler.
-
Tarih (Tarih)
- Bu dönüş tarihi
- bir satranç taşı taşındığında burada güncellenecektir
- 3 adet yabancı anahtar, oyuncu, oyun ve satranç taşına sahiptir.
- ReadDate (InleesDatum), sensörün okunduğu tarihtir
- ReadTime, ReadDate ile aynıdır ancak bir zaman damgası vardır
- LocationID(LocatieID), konumlandığı koordinatın adıdır. örneğin "a3"
-
Satranç Taşları (Hollandaca Schaakstukken)
- Her satranç taşının bir kimliği, takımı, adı ve durumu vardır.
- Takım 1 veya 2, siyah veya beyaz;
- Hiç taşın adı "Piyon 1" olacaktır.
- Durum, parçanın canlı veya ölü olduğu anlamına gelir!
4. Adım: Donanım
Artık tüm doğru parçaları yerleştirdiğimize göre, bir şeyler yaratmaya başlayabiliriz!
Açıklaması daha kolay olacağı için bu kısmı alt adımlara ayıralım:
-
Adım 1: İlk resimde gösterildiği gibi satranç tahtanızın her koordinatına bir delik açmak istiyorsunuz, ayrıca dokunmatik sensörler, RFID okuyucu ve 7 segmentli göstergeyi yerleştirmek istediğiniz yere bir delik açın.
Tahtanın yan taraflarına delikler açmayı unutmayın, bunlar panonun üzerindeki farklı bileşenlerin kabloları içindir. Bir sürü sondaj biliyorum
- Adım 2: Raspberry Pi'ye bir veya iki sensör bağlamayı deneyin, çalışıp çalışmadıklarını kontrol edin. Bunları daha önce Adım 2'de (Şematikler) açıklandığı gibi MCP analog okuyucusuna bağlamak istiyorsunuz.
-
3. Adım: Bu, atlama teli başlıkları yerine çok fazla takılmadığından, bu zor ve çok sinir bozucu olabilir, hepsini tek tek veya bir kerede birden fazla olmak üzere panoya bantlamak isteyebilirsiniz. Satranç tahtasında takılı kaldıklarından emin olmalısınız, aksi takdirde sensörleri başarılı bir şekilde okuyamazsınız.
İPUCU! Sizin için kolaylaştıracaksa, bir miktar yapıştırıcı sensörleri bantlarken daha fazla yerinde tutmaya yardımcı olabilir, bunu zor yoldan keşfettim
Adım 5: Yazılım
Test edebileceğiniz bir donanım yaptıktan sonra, bunun için bir kod yazmayı deneyelim! Koduma bir göz atmak isterseniz, lütfen github adresime gidin.
Back-endÖnce birkaç paketin yüklenmesi gerekecek, ben devam ettim ve sizin için bir liste yaptım:
-
şişe
Python kodunuz bu üzerinde çalışacak
-
Şişe-soketIO
Ön uç ve arka uç arasında iletişim kurmak için
-
dizi
Işık sensörlerini okumak için kullanışlıdır, matris ile çalışır
-
ağlar
7 segmentli ekranda kendi IP adresinizi yazdırmak için
-
Şişe-CORS
Çapraz kaynak rücu paylaşımı, paketlerin farklı etki alanları arasında paylaşılmasına izin verir
Bunun yanında birkaç ders yazdım ve bunları kullanmakta özgürsünüz.
Başlangıç aşaması
Web sitesi kodu da github sayfamda mevcut!
Ön uç için Chessboard.js kullanacağım. Bu, taşınması kolay taşlarla kullanımı kolay bir satranç tahtası ekler!
Tahtadaki her şey özelleştirilebilir, bu yüzden iyi eğlenceler! En son sürümü indirdikten sonra, dosyaları projenize sürüklemeniz ve onları bir satranç tahtası göstermek istediğiniz sayfaya bağlamanız gerekecek!
Ondan sonra bir tahta oluşturmaya çalışalım, çok zor görünmüyor:
İlk olarak, html'nizde:
İkincisi, javascript dosyanızda:
tahta1 = Satranç Tahtası('tahta1', 'başlangıç');
ve işte karşınızda, şimdi bir satranç tahtası görebilmelisiniz! Tahtayı CSS dosyalarında özelleştirmekten çekinmeyin!
Şimdi, satranç tahtasında çok zor olmayan bazı hamleler görmek istiyoruz. Ancak, taşıma komutunun arka uç tarafından gönderilmesi için onu özelleştirmemiz gerekiyor. Çok fazla ayrıntıya girmeyeceğim ama şöyle bir şey yapmak istiyoruz:
new_lijst = [Data.data[0], Data.data[1];komando = new_lijst[0].concat('-', new_lijst[1]); board1.move(komando);
Arka uç programımızdan bir liste alıyoruz ve iki koordinat arasına bir tire koyuyoruz, ardından hareketi yürütmek için board.move komutunu kullanıyoruz!
Chessboard.js eklentisi için neye ihtiyacımız olduğuna dair açıklamam bu, kodu kendiniz incelemek için github adresime gidin
Önerilen:
5'i 1 Arada Arduino Robotu - Beni Takip Et - Satır Takip - sumo - Çizim - Engelden Kaçınma: 6 Adım
5'i 1 Arada Arduino Robotu | Beni Takip Et | Satır Takip | sumo | Çizim | Engelden Kaçınma: Bu robot kontrol panosu, bir ATmega328P mikro denetleyici ve bir L293D motor sürücüsü içerir. Elbette bir Arduino Uno kartından farkı yok ama motoru sürmek için başka bir kalkana ihtiyaç duymadığı için daha kullanışlı! Zıplamaktan muaftır
ESP8266 ile COVID-19 Salgınını Takip Edin: 11 Adım (Resimlerle)
ESP8266 ile COVID-19 Salgınını Takip Edin: Bu küçük gadget, koronavirüs salgını ve ülkenizdeki durum hakkında güncel bilgiler almanıza yardımcı olacaktır. Bu, koronavirüs (COVID-19) tarafından vakaların, ölümlerin ve iyileşen kişilerin gerçek zamanlı verilerini gösteren IoT tabanlı bir projedir
Küçük Mağazalar İçin Takip ve Takip: 9 Adım (Resimli)
Küçük Dükkanlar için Takip ve Takip: Kısa mesafeli teslimatlar için e-bisiklet veya e-scooter üzerine monte edilmesi gereken küçük dükkanlar için yapılmış bir sistemdir, örneğin hamur işleri teslim etmek isteyen bir fırın. Track and Trace ne anlama geliyor?Track and Trace ca tarafından kullanılan bir sistemdir
Grafana ve Raspberry Pi Kullanarak Hava Kalitesini Takip Edin: 7 Adım
Grafana ve Raspberry Pi Kullanarak Hava Kalitesini Takip Edin: Küçük bir IOT projesi arıyordum ve bir arkadaşım bu eğiticiye göz atmamı önerdi:https://dzone.com/articles/raspberry-pi-iot-sensor… İzleme için bir Raspberry Pi kurarken takip edilecek öğreticiyi izlemenizi öneririz.
Büyük Paradan Tasarruf Edin! Çevrimiçi Satın Alın!: 6 Adım
Büyük Paradan Tasarruf Edin! Çevrimiçi Satın Alın!: Yetersiz araştırmalara, o lüks mağazalara yapılan gezilere veya sinir bozucu dürtüsel satın almalara harcanan paraya inanamayacaksınız. Büyük indirimler sadece birkaç tık ötede. Ne yazık ki bu web siteleri tam olarak size atlamıyor, sizin için çok şanslıyım