İçindekiler:

Kablosuz 4 Kişilik Aile Oyun Kumandası: 3 Adım
Kablosuz 4 Kişilik Aile Oyun Kumandası: 3 Adım

Video: Kablosuz 4 Kişilik Aile Oyun Kumandası: 3 Adım

Video: Kablosuz 4 Kişilik Aile Oyun Kumandası: 3 Adım
Video: Adım at para kazan hîlesi ( Arapların taktiği 😅 ) 2024, Temmuz
Anonim
Kablosuz 4 Kişilik Aile Oyun Kumandası
Kablosuz 4 Kişilik Aile Oyun Kumandası
Kablosuz 4 Kişilik Aile Oyun Kumandası
Kablosuz 4 Kişilik Aile Oyun Kumandası
Kablosuz 4 Kişilik Aile Oyun Kumandası
Kablosuz 4 Kişilik Aile Oyun Kumandası

Bu, 4 kişinin aynı anda oyun oynayabileceği kablosuz bir arcade tarzı denetleyicidir. Kablosuzdur, böylece bilgisayarınızı 5 yaşındakiler tarafından kullanılan bir kontrol cihazına bağlamanız gerekmez. Her zaman düşüyorlar ve kaçınılmaz olarak bir kabloya takılıp düştüklerinde tüm oyuncaklarımı yok etmelerini istemiyorum. Yakın zamanda yeni bir bilgisayar monitörü aldık ve içinde gerçekten yoğun strafor bulunan süper sağlam bir kutuda geldi. Durum komedisinden bir şey gibi, karımla kutuyu tutmak konusunda sürekli tartışıyordum. Bana göre bir şeye dönüştürülmek için yalvarıyor gibiydi, ona göre ise çirkin bir çöptü. Ardından, Instructables birdenbire kartona dayalı bir hız yarışması düzenledi. Böylece bir öğleden sonra tartışma sonuçlandı ve bu proje doğdu.

Projeyi hayata geçirmek için evin etrafında sahip olduğumuz olasılık sonlarını kullandık. Buradaki fikir, zaten etrafta oturduğumuz şeyi havalı bir şeyler yapmak için kullanmaktı - neyse ki, bir arcade dolabı yapmak için yıllar önce satın aldığımız bir dizi arcade düğmesi ve bir ahududu pi vardı. Kesmek için bir testere ve eski güvenilir çakımı kullandık.

Gereçler

1. Karton kutu2. Strafor veya diğer yoğun dolgu maddesi 3. Ali Express veya Amazon'dan Arcade düğmeleri 4. Raspberry Pi 3B+ 5. Başka bir bilgisayar + ekranı. 6. Kartonda delik açmak için bıçak veya benzeri bir şey 7. Maskeleme bandı8. Sprey boya

Adım 1: İnşaat

İnşaat
İnşaat
İnşaat
İnşaat
İnşaat
İnşaat

Çabucak neye benzemesini istediğimizin bir taslağını çizdik, sonra kartonu ve straforu doğru boyutta kesmek için bir bıçak ve tahta testeresi kullandık. Kartonu güzel bir buton/joystick düzeni ile işaretledik ve bir bıçakla dikkatlice delikleri kestik. Bu, çocuklar için temel matematikte harika bir egzersizdi. Karton kesildikten sonra onu boyadık ve ardından tüm düğmeleri yerlerine yerleştirdik. Yaptığımız en ilginç şey, kontrol cihazının üstüne daha fazla sertlik kazandırmak için üç kat karton yapıştırmaktı. Bu, kesmeyi biraz zorlaştırdı, ancak üst kısmı neredeyse ahşap kadar sağlam yapmak için mükemmel çalıştı.

Raspberry Pi 3B+, dört adet usb bağlantı noktasına sahiptir. Dört kişilik bir ailemiz ve 4 set arcade butonumuz var! Bu önceden belirlenmişti.

Adım 2: Programlama

Programlama
Programlama
Programlama
Programlama
Programlama
Programlama
Programlama
Programlama

Bu projenin kodu basit ve buggy. Hepsi burada bulunabilir:

github.com/melvyniandrag/SuperTuxJunkKart4 kontrol cihazı usb üzerinden bir ahududu pi'ye bağlanır. Raspberry pi'de çalışan küçük bir python betiği var. Düğmelerden ve joysticklerden gelen sinyalleri almak için Python giriş kitaplığını kullandım. Program daha sonra sinyali kısa bir ASCII koduna dönüştürür ve wifi üzerinden bir TCP soketi aracılığıyla oyun çalıştıran bir PC'ye gönderir (buna oyun sunucusu diyeceğim). Örneğin, oyuncu 0 joystick'i sola hareket ettirdiğinde, '0XL' karakterleri TCP soketi üzerinden oyun sunucusuna gönderilir. Test için Thinkpad'imde SuperTuxKart'ı çalıştırdım. Thinkpad üzerinde küçük bir sunucu uygulaması çalışır ve TCP soketini dinler. Raspberry pi'den wifi üzerinden gelen kodlar, pyautogui kütüphanesi aracılığıyla klavyede tuşlara basılmasına dönüştürülür. Bu nedenle, karton denetleyicideki oyuncu 0, joystick'i sola hareket ettirdiğinde ve denetleyici 'OXL' yayar, oyunu çalıştıran sunucu, oyuncunun klavyedeki '1' düğmesine bastığını düşünür. Oyun, buradaki seçenekler ekranında gösterildiği gibi bu klavye basışlarını tanıyacak şekilde yapılandırılmalıdır. Bu oyun bir veya iki oyuncu ile iyi çalışır, ancak 4 kişi SuperTuxKart'ı agresif bir şekilde oynadığında sunucu, denetleyiciden bazı verileri kaçırmaya başlar. Bunun bir hata olup olmadığından emin değilim: 1. İstemci (denetleyici) tarafında2. Sunucu (thinkpad) tarafında3. Yerleşik Linux işlevselliği. Belki de Ubuntu dizüstü bilgisayarım çok sayıda eşzamanlı tuşa basmayı tanıyamıyor. Yani oyuncu 0, 1 ve 2'nin hepsi yukarı ve sola yönleniyorsa, bu 2 * 3 = 6 düğmeye aynı anda basıldığı anlamına gelir. Bilgisayarımın (veya herhangi bir bilgisayarın) bununla başa çıkmak için tasarlandığından emin değilim. Genellikle kısayol tuşları 3 veya daha az düğmedir; CTRL + ALT + DEL. Gelecekte, her denetleyici için bir tane olmak üzere 4 tcp soketi başlatmayı ve ardından sunucu tarafında sanal bir oyun pedi oluşturmayı deneyeceğim. Ebeveynlik, çalışma ve karton kutuları kesmek arasında bunu nasıl yapacağınızı görmek için henüz zamanım olmadı.

3. Adım: Gelecek

Bu basit bir Kavram Kanıtıydı. Gelecekte, kodun daha iyi olması gerekiyor. Bağlantıyı bir bluetooth HID cihazı olarak kodlamak istiyorum, ancak Linux'ta bluez5 üzerinde çalışmak için biraz zaman kaybı - bu yüzden bir TCP soketi + Python ile gittim. Ayrıca - kabul edelim - denetleyici görünüyor bok gibi. Daha fazla zamanla, daha dikkatli bir şekilde kesmek için biraz daha fazla enerji harcardım. Sonra daha fazla destek koyardım - kutunun kenarları biraz bükülmeye başlıyor. Ne olduğu ve maliyeti ne olursa olsun, bu şey yeterince iyi görünüyor. Akşamları film seyrederken üzerinde uğraşmaya devam edeceğim.

Önerilen: