İçindekiler:

Satranç Robotu Raspberry Pi Lynxmotion AL5D Kolu: 6 Adım
Satranç Robotu Raspberry Pi Lynxmotion AL5D Kolu: 6 Adım

Video: Satranç Robotu Raspberry Pi Lynxmotion AL5D Kolu: 6 Adım

Video: Satranç Robotu Raspberry Pi Lynxmotion AL5D Kolu: 6 Adım
Video: 【Customer Sharing】Do you want to play a game of chess with Dofbot? 2024, Kasım
Anonim
Image
Image

Bu satranç robotunu yapın ve herkesi yendiğini görün!

Kolun nasıl oluşturulacağına ilişkin talimatları takip edebiliyorsanız ve en azından temel düzeyde bilgisayar programlama ve Linux bilgisine sahipseniz, inşa etmek oldukça kolaydır.

Beyaz oynayan insan bir hamle yapar. Bu, görsel tanıma sistemi tarafından algılanır. Robot daha sonra düşünür ve hareketini yapar. Ve bunun gibi …

Belki de bu robottaki en yeni şey, hareket tanıma kodudur. Bu görüntü kodu, diğer birçok şekilde oluşturulmuş satranç robotları için de kullanılabilir (örneğin, LEGO yapılı satranç robotum gibi).

İnsanın hareketi bir görüş sistemi tarafından tanındığından, özel bir satranç tahtası donanımına (kamış anahtarları veya her neyse) ihtiyaç duyulmaz.

Kodum kişisel kullanım için kullanılabilir.

Adım 1: Gereksinimler

Donanım Yapısı
Donanım Yapısı

Tüm kod, diğer şeylerin yanı sıra bir Raspberry Pi üzerinde çalışacak olan Python'da yazılmıştır.

Raspberry Pi, Raspberry Pi Vakfı tarafından geliştirilen küçük, ucuz (yaklaşık 40 $) tek kartlı bir bilgisayardır. Orijinal model, beklenenden çok daha popüler hale geldi ve robotik gibi kullanımlar için satıldı.

Robotum bir Raspberry Pi kullanıyor ve robot kolu bir kitten yapılmıştır: Lynxmotion AL5D. Kit, bir servo kontrol kartı ile birlikte gelir. (Az önce verdiğim bağlantı RobotShop'un ABD sitesine; site sayfalarının sağ üst köşesindeki ülkeniz için olan bayraklardan birine tıklayın, örneğin İngiltere).

Ayrıca bir masaya, kameraya, aydınlatmaya, klavyeye, ekrana ve işaretleme aygıtına (örneğin fare) ihtiyacınız olacak. Ve tabii ki, satranç taşları ve bir tahta. Tüm bunları sonraki adımlarda daha ayrıntılı olarak açıklayacağım.

2. Adım: Donanım Yapısı

Donanım Yapısı
Donanım Yapısı

Daha önce belirttiğim gibi, vizyon kodunun kalbi çeşitli yapılarla çalışacak.

Bu yapı, AL5D Lynxmotion'dan bir robotik kol kiti kullanır. Kitle birlikte, koldaki motorları kontrol etmek için kullanılan bir SSC-32U servo kontrol kartı bulunur.

AL5D'yi seçtim çünkü kolun tekrar tekrar doğru hareketler yapabilmesi ve kaymaması gerekiyor. Kavrayıcı parçaların arasına girebilmeli ve kol tahtanın uzak tarafına ulaşabilmelidir. Yine de aşağıda detaylandırıldığı gibi bazı değişiklikler yapmam gerekiyordu.

Kullandığım Raspberry Pi, bir Raspberry Pi 3 Model B+. Bu, bir USB bağlantısı aracılığıyla SSC-32U kartıyla konuşur.

EDIT: Raspberry Pi 4 artık hazır. İhtiyacınız olacak:

  • 15W USB-C güç kaynağı - resmi Raspberry Pi USB-C Güç Kaynağını öneririz
  • İşletim sistemini yükleyen yazılım olan NOOBS yüklü bir microSD kart (Raspberry Pi'nizle birlikte önceden yüklenmiş bir SD kart satın alın veya kendiniz bir kart yüklemek için NOOBS'u indirin)
  • Bir klavye ve fare (ileriye bakın)
  • Raspberry Pi 4'ün mikro HDMI bağlantı noktası aracılığıyla bir ekrana bağlanmak için bir kablo

Robot koluna daha fazla erişmem gerekiyordu, bu yüzden RobotShop'tan satın alınabilecek ek Lynxmotion parçalarını kullanarak üzerinde bazı küçük değişiklikler yaptım:

1. 4,5 inçlik boruyu 6 inçlik bir tüple değiştirdi - Lynxmotion parça AT-04, ürün kodu RB-Lyn-115.

2. Ek bir yay seti kullanmayı denedim, ancak aşağıdaki 3. maddeyi uyguladığımda bir çifte geri döndüm

3. Yüksekliği 1 inçlik ara parçası kullanarak artırın - Lynxmotion parça HUB-16, ürün kodu RB-Lyn-336.

4. Sahip olduğum bazı yedek LEGO parçalarının taktığı yedek tutucu pedleri ve elastik bantları (!) kullanarak tutucu erişimini genişlettim Bu, parçaları kaldırırken esneklik sağladığı için çok işe yarıyor.

Bu değişiklikler sağdaki yukarıdaki resimde görülebilir.

Satranç tahtasının üzerine monte edilmiş bir kamera var. Bu, insanın hareketini belirlemek için kullanılır.

Adım 3: Robotu Hareket Eden Yazılım

Tüm kod Python 2'de yazılmıştır. Satranç taşlarının hareket ettirilebilmesi için çeşitli motorların doğru şekilde hareket ettirilmesi için ters kinematik koduna ihtiyaç vardır. Lynxmotion'dan motorları iki boyutta hareket ettirmeyi destekleyen kütüphane kodunu kullanıyorum ve buna kendi kodumla 3 boyut, tutucu açısı ve tutucu çene hareketi ekledim.

Böylece, parçaları hareket ettirecek, parça alacak, kale yapacak, geçerken destekleyecek ve benzeri kodlarımız var.

Satranç motoru Stockish - her insanı yenebilir! "Stockfish dünyanın en güçlü satranç motorlarından biridir. Aynı zamanda en iyi insan satranç ustalarından çok daha güçlüdür."

Satranç motorunu çalıştıran, bir hamlenin geçerli olduğunu doğrulayan kod ChessBoard.py'dir.

Bununla arayüz oluşturmak için https://chess.fortherapy.co.uk adresinden bazı kodlar kullanıyorum. Kodum (yukarıda) bununla arayüz oluşturur!

Adım 4: İnsanın Hareketini Tanıyan Yazılım

Bunu Chess Robot Lego yapımım için Instructable'da ayrıntılı olarak açıkladım - bu yüzden burada tekrarlamama gerek yok!

"Siyah" parçalarım orijinal olarak kahverengiydi, ancak onları mat siyaha ("kara tahta boyası" ile) boyadım, bu da algoritmanın daha değişken aydınlatma koşullarında daha iyi çalışmasını sağlıyor.

Adım 5: Kamera, Işıklar, Klavye, Tablo, Ekran

Kamera, Işıklar, Klavye, Tablo, Ekran
Kamera, Işıklar, Klavye, Tablo, Ekran
Kamera, Işıklar, Klavye, Tablo, Ekran
Kamera, Işıklar, Klavye, Tablo, Ekran

Bunlar Chess Robot Lego yapımımdakilerle aynı, bu yüzden onları burada tekrarlamama gerek yok.

Bunun dışında, bu sefer farklı ve önemli ölçüde daha iyi bir hoparlör kullandım, RPi'ye USB ile bağladığım bir Lenrui Bluetooth hoparlör.

amazon.com, amazon.co.uk ve diğer satış noktalarından temin edilebilir.

Ayrıca şimdi farklı bir kamera kullanıyorum - önceki kameranın güvenilir şekilde çalışmasını sağlayamadığım için bir HP Webcam HD 2300.

Satranç tahtasının rengi, taşların renginden çok uzaksa, algoritmalar en iyi sonucu verir! Robotumda, parçalar kirli beyaz ve kahverengidir ve satranç tahtası karttan el yapımıdır ve "siyah" ve "beyaz" kareler arasında çok az fark olan açık yeşildir.

Algoritmalar, kameranın karta belirli bir yönüne ihtiyaç duyar. Bir sorununuz varsa lütfen aşağıya yorum yapın. Kolun erişimi sınırlıdır ve bu nedenle kare boyutu 3,5 cm olmalıdır.

Adım 6: Yazılımı Edinme

1. Stok balığı

Raspbian'ı RPi'nizde çalıştırırsanız Stockish 7 motorunu kullanabilirsiniz - ücretsizdir. Sadece koş:

sudo apt-get install stockfish

2. ChessBoard.py Bunu buradan alın.

3. https://chess.fortherapy.co.uk/home/a-wooden-chess'e dayalı kod… Kodumla birlikte gelir.

4. Python 2D Ters Kinematik kitaplığı -

5. Yukarıdaki tüm kodları çağıran ve robotun hamle yapmasını sağlayan kodum ve görüntü kodum. Bunu, önce YouTube kanalıma abone olarak, ardından bu Eğitilebilir Tablonun üst kısmındaki "Favori" düğmesine tıklayarak ve ardından bu Eğitilebilir Tabloya bir yorum göndererek benden alın.

Önerilen: