ALPRO Arduino Temelli Uzaktan Kontrollü Gamepad Tasarımı #1

Merhaba arkadaşlar, bu yazımızda tasarımına sıfırdan başlayacağımız bir hobi Gamepad tasarımı yapacağız ve bunu da açık kaynak bir şekilde yusuffyk.com üzerinden yayınlayacağız. İlerleyen zamanlarda da tasarımını yapacağımız araçları bu Gamepad üzerinden kontrol edeceğiz. Zaman içinde güncellemeler de yaparak en uygun tasarıma ulaştıracağız. Bu yazıya da öncelikle gereksinimleri belirleyerek başlayacağız.

İlk prototipi hızlı çıkarmak adına öncelikle hobi modülleri kullanarak ilerleyeceğiz. İşlemci olarak Arduino Nano kullanmayı planlıyoruz. Ekran olarak da düşük enerji tüketimi ve I2C ile az sayıda pin kullanımı sebebi ile SSD1306 Oled LCD kullanmayı planlıyoruz. X ve Y ekseninde hareketleri yapabilmek için 2 adet joystick kullanmayı planlıyoruz. Farklı kombinasyonlarda kullanmak üzere 10 adet buton kullanmanın uygun olacağını değerlendirdik. Uzak kontrol için NRF24L01 modül kullanmayı planlıyoruz. Yalnız bu modüllerin dahili güç amplifikatörü bulunduran ve harici SMA Anten çıkışı olan versiyonu PA+LNA özellikli olan modülünü seçeceğiz. Gamepad’in ivme ölçere sahip olması ve yön kontrolünü de yapabilmek için MPU6050 ivme sensörünü kullanmayı planlıyoruz. Tüm bunları çalıştıracak yapının gücünü 2 adet 18650 3.7V Li-On pil ile sağlayacağız. Tabi dahili şarj aleti ve 3.7V Boost devresi de eklemek gerektiği için MH-CD42 modülünü kullanmayı planlıyoruz. Devreyi şarj edebilmek için Mini USB eklemeyi planlıyoruz. Ayrıca ihtiyaç halinde bilgi vermek adına bir de kullanıcı LED indikatörü kullanmayı planlıyoruz.

İsterleri ve bu isterleri karşılamak için kullanılacak modelleri belirledikten sonra çizim aşamasına geçebiliriz.

Gereksinimler;
– Arduino Nano
– SSD1306 OLED LCD
– 2 Adet Joystick
– 10 Adet Buton
– NRF24L01 PA+LNA
– MPU6050
– 2 Adet 3.7V Li-On Pil
– MH-CD42 Şarj ve Deşarj Modülü
– 1 Adet User LED

Açık kaynak kodlu bir proje olmasını istediğimiz için tüm aşamalarda bu projeye uygun çizim programları ve derleyicileri kullanacağız. Bu kapsamda KiCAD kullanarak şematiği oluşturmaya başlıyoruz.

Arduino Nano’da 14 Adet Digital IO, 6 Adet Analog IO pinleri bulunduğu için ve bu pinler şu an eklediğimiz modüller için yeterli olmadığından dolayı alternatif bağlantı metotları kullanmak zorunda kalacağız. Bir sonraki versiyonda eğer Gamepad’e ekstra özellik eklemek istersek farklı bir işlemciye geçmek gerekebilecek. Bu durumu da bir sonraki versiyonda ele alacağız.

KiCAD’de yaptığımız şematik tasarımı aşağıdaki gibidir;

Bu şematiği oluştururken Arduino Nano’da yeterli sayıda pin bulunmadığı için buton okuma kısmı için Analog Pin ile bir ölçüm metodu kullanıyoruz.


Görselden de anlaşılacağı üzere kullanılan yapı aslında bir gerilim bölücü olarak çalışıyor. Butonlara basıldığı anda akımın direnç olmayan en kısa yolu tercih etmesini kullanarak gerilim okuyacağız. Yani bu yapıda her buton için hattan bir direnç çıkarılmış olacak. İşlemcinin analog ucuna bağlı olacak bu yapı ile her buton için farklı bir analog değer elde edilmiş olacak. Bu analog değeri karşılaştırarak hangi butona basıldığı tespit edilecek. Bu yöntem ile 4 farklı butonu tek bir pinden okuyabileceğiz.

PCB Tasarımında öncelikle yerleşimi yaparak ardından çizime geçiyoruz.

PCB tasarımın ardından PCB’nin fabrikasyon üretimi için pcbway’i kullanıyoruz. 
PCB üretimi için sizde bu linki kullanarak PCBWAY üzerinden üretim yaptırabilirsiniz. Yaklaşık 10 gün üretim süresinin ardından fabrikasyon PCB’lerimizi teslim alıyoruz.


Bir sonraki yazımızda dizgi işlemlerimizi tamamlayıp ilk testlere başlayacağız.

Bir sonraki yazımızda görüşmek üzere.

Herhangi bir sorununuzda yorum bölümünden sorabilirsiniz.