İçindekiler:
- Adım 1: Gereksinimler
- 2. Adım: Donanım Yapısı
- Adım 3: Robotu Hareket Eden Yazılım
- Adım 4: İnsanın Hareketini Tanıyan Yazılım
- Adım 5: Kamera, Işıklar, Klavye, Tablo, Ekran
- Adım 6: Yazılımı Edinme
Video: Satranç Robotu Raspberry Pi Lynxmotion AL5D Kolu: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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
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ı
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
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:
Arduino Satranç Saati: 6 Adım
Arduino Chessclock: İyi bir Arduino satranç saati ile ilgili talimatlar bulamadım, bunun yerine burada anlatacağım olan kendiminkini kurdum
LEGO ve Raspberry Pi ile Yapılmış Satranç Robotu: 6 Adım
LEGO ve Raspberry Pi ile Yapılmış Satranç Robotu: Bu satranç robotuyla arkadaşlarınızı şaşırtın! Daha önce LEGO robotları yaptıysanız ve en azından temel bilgisayar programlama ve Linux bilgisine sahipseniz, yapımı çok zor değil. Robot kendi hareketlerini yapar ve görsel tanıma kullanır
Sözlü Satranç Taşları: 7 Adım (Resimli)
Sözlü Satranç Taşları: Sesimi kullanarak çok kişisel bazı satranç taşları yaptım. Her parça adını söylerken çıkardığım sesin şekline dayanıyor. Tam bir set değil, çünkü diğer taraf da aynı şekilde yapılmalı, rakibimin sesiyle.
Basit Arduino Satranç Saati: 5 Adım
Basit Arduino Satranç Saati: Arduino ile bir Satranç Saati yapmayı düşündüğümde, amaç, sınıf kullanmadan basit programlama kullanarak inşa etmek ve AVR kaydı ile çalışmaktı. Kullanılan taban Arduino Referansıydı. En zor şey, zamanlayıcıyı sadece kullanarak manipüle etmekti
Dijital Satranç - Satranç Oyununuzu Çevrimiçi Takip Edin: 5 Adım
Dijital Satranç - Satranç Oyununuzu Çevrimiçi Takip Edin: Gençliğimden beri çok fazla satranç oynuyorum ve web'de bilgisayarlara veya canlı rakiplere karşı satranç oynamak için çok sayıda web sitesi bulunduğundan, bir kez bile bir web sitesi bulamadım. gerçekte oynadığınız satranç oyununuzu takip eden