Herkese selamlar arkadaşlar, bu projede simülatörümüzün ikinci parçasını ve belki de en önemli parçasını yapacağız. Herkesin evinde kolaylıkla yapabileceği bir direksiyon setini Arduino kullanarak simülatörümüze ekleyeceğiz. Daha önce yarış oyunları için hazırladığımız göstergenin yapımına buraya tıklayarak ulaşabilirsiniz. Projenin yapımına geçelim!
Donanım
Projeyi en temel haliyle donanım ve yazılım olarak ikiye ayırabiliriz. Hazırlayacağımız direksiyon setinin konumunu tespit etmeye ve ardından bilgisayara aktarmaya ihtiyacımız var.
Proje Malzemeleri (Elektronik):
Direksiyon hareketinin tespitinde potansiyometre kullanacağız, yani tüm ekipmanı potansiyometre üzerine inşaa edeceğiz. Bilmeyenler için potansiyometre ayar koluna bağlı olarak direnci değişen bir devre elemanıdır. Direksiyonun konumunu da değişen dirence göre anlayacağız. Fakat standart potansiyometreler 270° dönüş açısına sahiptirler. Dolayısıyla 900° dönüşlü bir direksiyon için farklı bir çözüme ihtiyacımız var. İstediğim dönüş açısını sağlamak için bir dişli sisteminden faydalanacağım. İki dişliden oluşan bu sistemde dişli oranı 15:54. Dişliler de dahil olmak üzere projede kullanılan tüm parçaların tasarım dosyalarına aşağıdaki buton üzerinden ulaşabilirsiniz.
Projedeki bir diğer malzeme Arduino Leonardo kartı. Eğer Arduino ile ilk defa karşılaşıyorsanız sizi şu videoya alalım. Arduino sayesinde potansiyometreden aldığımız veriyi USB üzerinden bilgisayara aktaracağız. Ayrıca kart üzerindeki girişlere farklı modüller bağlayarak sisteminizi geliştirmeniz de mümkün. Ancak bu video için yalnızca potansiyometre kullanacağız. Potansiyometre ve Arduino Leonardo arasındaki bağlantıyı aşağıdaki şemada görebilirsiniz.

Neden Arduino Leonardo?
Arduino ile uğraşan arkadaşlar bu projede neden “Leonardo” modelini kullandığımızı veya projenin UNO modeli ile yapılıp yapılamayacağını merak etmiş olabilir. Arduino Leonardo kartının üzerindeki mikrodenetleyici yani Atmega32u4, Arduino Uno üzerindeki Atmega328 mikrodenetleyicisinin aksine USB-seri çeviri görevini yerine getirecek bir entegreye ihtiyaç duymaz. Dolayısıyla mikrodenetleyici ve USB doğrudan haberleşir. Bu özelliği sayesinde Atmega32u4 tabanlı kartları bilgisayara doğrudan bir cihaz(klavye, mouse) olarak tanıtabiliyoruz. Bu projede Atmega32u4 tabanlı bir kart olan Arduino Leonardo’yu kullanacağız, ancak aynı mikrodenetleyiciyle çalışan Arduino Micro’yu da bu projenin yapımında kullanabilirsiniz.
Yazılım – MMJoy
Projenin yazılım kısmı en az elektronik kısmı kadar basit. Hazırladığımız donanımı oyun koluna dönüştürmek için MMJoy isminde yine bu hobi ile uğraşanların yazmış olduğu bir programı kullanacağız. Yani bu projeyi yapmak için bir kodlama bilgisine veya teknik bilgiye ihtiyacınız yok.
İşe MMJoy’u indirerek başlayalım. Aşağıdaki link üzerinden projeyi indirelim ve dosyaları sıkıştırılmış formattan çıkaralım.
https://github.com/MMjoy/mmjoy_en

Kullanacağımız program yüklediğimiz dosyanın içerisindeki “firmware and software release” klasöründeki .zip dosyasında yer alıyor.

“MMJoy2” klasörü projemizle alakalı tüm işi yürüteceğimiz ortam olacak. Bu klasörün içerisinde donanıma yükleyeceğimiz firmware dosyasından projeyi yaparken işimize yarayacak görsellere kadar çok sayıda içerik bulunuyor. Tüm ayarları ve kod yükleme işini ise yine bu klasörün içindeki “MMJoySetup” arayüzü üzerinden yapacağız.

Firmware Yüklemesi
Bu arayüz üzerinde yapacağımız ilk iş Arduino Leonardo kartını oyun koluna dönüştürecek olan yazılımı karta yüklemek olacak. Açılan arayüzdeki “Firmware” sekmesine geliyoruz. Burada çok sayıda buton ve textbox bulunuyor. Aşağıdaki görselde kırmızı ile işaretlenmiş alanda yükleme öncesi ayarları yapacağız.

“Firmware file” kısmında karta yükleyeceğimiz yazılımı seçeceğiz. Bu yazılım “MMJoy2” klasörü içindeki “Firmware” klasöründe yer alıyor. Klasöre giriş yaptığınızda .hex uzantılı 3 farklı dosya ile karşılacaksınız. Buradaki dosya seçimini kullandığımız donanıma göre yapmamız gerekiyor. Arduino Leonardo kartının üzerindeki mikrodenetleyici Atmega32u4 olduğundan önceki başlıkta bahsetmiştim. Bu yüzden “ATMEGA32U4” için hazırlanmış firmware dosyasını seçiyoruz.

Firmware dosyasını ekledikten sonra “Chip” kısmında “atmega32u4”; “Bootloader type” kısmında ise “Arduino”yu seçiyorum. “Port” seçiminde ise yanındaki “COM ports list” butonuna tıkladığınızda farklı portlar görebilirsiniz. Ancak port seçimini hemen yapmıyoruz.

Firmware yüklemesi yapmak için Arduino Leonardo’yu “bootloader” modunda yani “önyükleyici” modunda çalıştıracağız. Kart yaklaşık 8 saniye boyunca bootloader modundayken yüklemeyi tamamlamamız gerekiyor. Arduino normal konumunda ve bootloader konumunda farklı portlara bağlı olarak çalışır. Dolayısıyla yükleme işleminden önce kartın bootloader modundayken hangi porta bağlı olduğunu tespit etmemiz gerekiyor. “Port(arduino)” kısmını da buna göre dolduracağız.
Yine arayüz üzerindeki “Device management” butonuna tıklayarak “Aygıt Yönetici”sini açıyoruz. Açılan pencerede “Bağlantı Noktaları”na tıklayarak Arduino’nun bağlı olduğu portu görebilirsiniz.

Aygıt yöneticisini açtıktan sonra Arduino Leonardo üzerindeki butona ard arda iki kere basarak kartı bootloader moduna alıyoruz. Bu işlemden sonra aygıt yöneticisi de kendini güncelleyecektir. Tekrardan “Bağlantı noktaları”na tıklayarak Arduino Leonardo’nun bootloader modundayken bağlı olduğu portu görebilirsiniz.

Bootloader durumundaki portu bildiğimize göre tekrar arayüze gelerek “Port” kutusuna port ismini girebiliriz. Benim bilgisayarımda “COM6” olduğu için bu şekilde devam ediyorum. Port kısmını da doldurduktan sonra kartı tekrar bootloader moduna alarak firmware yüklemesini yapmamız gerekiyor. Kart üzerindeki butona tekrar çift tıklıyoruz ve “Upload firmware” butonuna tıklıyoruz. Kartın bootloader modunda kalma süresinin yaklaşık 8 saniye olduğunu hatırlatmak isterim.

Aşağıdaki gibi bir yükleme ekranı ile karşılaşıyorsanız firmware yükleme işlemi başarıyla tamamlanmış demektir.

Şimdi karta bağlı olan potansiyometrenin ayarlarını yapalım.
Diğer Ayarlar
MMJoy çok sayıda donanımla çalışmanıza ve ayar yapmanıza olanak sağlayan bir program. Ancak bu projede tek bir potansiyometre bulunduğu için yalnızca bu potansiyometrenin ayarını yapacağız.
Firmware güncellemesinden sonra arayüzün sol üst kısmındaki cihaz listesinde bir farklılık göreceksiniz. Bilgisayarınız bundan sonra Arduino Leonardo’yu joystick olarak algılayacaktır. “Device list” kısmından kendi donanımımızı seçiyoruz. Sağ taraftaki bölümden donanımınızın ismini değiştirebilirsiniz.

Listede kendi donanımızı seçtikten sonra arayüzdeki “Joysticks axes” sekmesine geliyoruz. Aşağıdaki görselde işaretlenmiş alanlarda bazı ayarlar girmemiz gerekiyor.

Potansiyometreyi A0 pinine bağlamıştık. Kart üzerindeki A0 pini mikrodenetleyici üzerindeki “PF7” pinine bağlı olduğundan “MCU Port” kısmında “F7″yi seçiyorum. Karttaki pin numaralarının mikrodenetleyici üzerindeki karşılığını aşağıdaki görselde görebilirsiniz. Farklı donanımları karta bağlarken aşağıdaki görselden faydalanabilirsiniz.

“Source” kısmını “IntSensor” ve ekseni “X” olarak seçiyorum. “Precision” ayarında “10” sayısını seçmemizin sebebi Arduino Leonardo’nun 10bitlik bir analog-dijital çeviriciye sahip olması. Burası biraz daha teknik bir detay gibi gelebilir, ancak ayar yaparken burayı “10” yapmanız yeterli. Tğm ayarları yukarıdaki görselde paylaştığım gibi tamamlıyorum ve “Save sets to device” diyerek ayarları karta yüklüyorum.

Yükleme işleminden sonra donanımımız direksiyon olarak kullanılmaya hazır. Tüm parçaları montajlayalım ve test edelim!
Montaj
Montaj aşamasında kullandığım parçaların listesini aşağıda bulabilirsiniz. Bu parçalardan bağımsız olarak farklı bir çözüm de tercih edebilirsiniz.
- 2 Adet 150×300 mm 4 mm Kalınlıkta Pleksiglas
- 2 Adet Yataklı Rulman
- 4 Adet 11 cm M8 Gijon
- 1 Adet 15 cm M8 Gijon
- 9 Adet M8 Fiberli Somun
- 22 Adet M8 Somun
- 19 Adet M8 Pul
- 4 Adet M5x16 mm Imbus Civata
- 4 Adet M5 Fiberli Somun
- 8 Adet M3x6 mm Civata
- 4 Adet 10 mm Dişi-Dişi Aralayıcı
- 2 Adet M4x20 mm Imbus Civata
- 2 Adet M4 Somun
- Direksiyon
- 3D Parçalar: https://bit.ly/2Tsj9gd
3D Parçalar Ön Sipariş: https://bit.ly/35GPtBA



Montaj aşamasından sonra direksiyon kullanıma hazır! Artık oyunlardan aldığımız keyfi katlayabiliriz.