İçindekiler:

Sim Yarış Düğme Kutusu: 8 Adım
Sim Yarış Düğme Kutusu: 8 Adım

Video: Sim Yarış Düğme Kutusu: 8 Adım

Video: Sim Yarış Düğme Kutusu: 8 Adım
Video: HAYALİMDEKİ EKİPMANLAR - Sim Racing Kutu Açılışı 2024, Temmuz
Anonim
Sim Yarış Düğme Kutusu
Sim Yarış Düğme Kutusu

Hoş geldiniz sim yarış bağımlıları!

Tüm araba kontrollerinizi eşlemek için tuş bağlarınız mı bitiyor? Muhtemelen bir düğme kutusuna ihtiyacınız var! Bu Eğitilebilir Tabloda sıfırdan bir tane oluşturacağız. Düğme kutusu 32(!) kullanılabilir düğme durumuna sahip olacaktır. Bu düğme kutusunu kullanmak için ek yazılım gerekmez. Arduino'nuza yüklemek için bir düğme matrisi kurmayı ve kod yazmayı (veya kopyalamayı) öğreneceksiniz.

Düğme kutusunun aynı anda basılan çok sayıda düğmeyi desteklemediğini bilmek önemlidir.

Başlayalım!

Adım 1: Hazırlık

hazırlık
hazırlık

Düğme kutusunu oluşturmak için bazı araçlara, düğmelere ve daha fazla öğeye ihtiyacınız olacak. İsteğinize göre düğme kutusunu oluşturmaktan çekinmeyin.

Elektronik:

  • Düğmeler
  • geçiş yapar
  • Döner kodlayıcılar
  • Arduino Pro Mikro
  • Mini USB'den USB'ye kablo
  • teller

Aletler:

  • Delmek
  • Lehim
  • Kaliper
  • Tornavidalar
  • Kesici
  • İngiliz anahtarı

Yazılım:

  • Arduino IDE'si
  • Photoshop/Paint (isteğe bağlı; elle çizilebilir)

Başka:

  • Muhafaza (bir kutu; satın alınabilir veya özel 3D yazdırılabilir)
  • Karbon vinil kaplama (isteğe bağlı)
  • Döner kodlayıcı düğmeleri
  • Kapakları değiştir (isteğe bağlı)
  • Etiket yazıcısı (isteğe bağlı)
  • Lastik rondela

Tüm (veya başlamak için yeterli) öğelere sahip olduğunuzda, düğme kutusunun düzenini tasarlamaya başlayabiliriz.

Adım 2: Kutu Düzenini Tasarlayın

Bu adım için gerekli araçlar:

Photoshop/Paint (isteğe bağlı; elle çizilebilir)

Bir düğme kutusunun tasarımı herkes için farklı olabilir. Ancak, bu Eğitilebilir Tablo için aşağıdakilerden oluşan bir düzen kullanacağız:

  • 4x üç yollu geçiş anahtarı
  • 2x tek yönlü geçiş anahtarı
  • 10x basit basmalı düğmeler
  • Basit düğmeli 4x döner kodlayıcı

Üç yollu geçiş anahtarları:

Birçok türde geçiş anahtarı vardır. Bazıları anlıktır ve bazıları geri dönene kadar yerinde kalır. Hangi türü kullanacağınız size kalmış, ancak bu düğme kutusu aynı anda birden fazla düğmeyi etkinleştiremeyeceğinden anlık anahtarları kullanmanızı öneririm. Geçiş anahtarları üç yollu (açma/kapama/açma) olduğu için sekiz (4x2) butonumuz mevcuttur.

Tek yönlü geçiş anahtarları:

Bunlar basit düğmeler (kapalı/açık) olarak düşünülebilir. Bunlar ayrıca anlık veya geçiş olabilir. Yine, hangisini seçeceğiniz kişisel tercihinize kalmış. Bunlar bize iki (2) kullanılabilir düğme verir.

Basit basma düğmeleri:

Bunun gibi düğmeler, basitçe basılarak (kapalı/açık) kullanılabilir. Bunlar bize on (10) düğme verecek.

Basit basma düğmeli döner kodlayıcılar:

Çoğu (hepsi değilse de) döner kodlayıcı, her iki yöne de sonsuza kadar döndürülebilir. Onları bir yöne her döndürdüğünüzde, bir düğmeye basmak olarak kullanılır. Bu döner kodlayıcılara ayrıca başka bir düğme vererek basılabilir. Döner kodlayıcılar on iki (12 = 4x3; sola döndürme/sağa döndürme/basma) düğmesi verir.

32 düğme:

Hepsinin bir arada olması bize 32 (8+2+10+12) tuşa basma hakkı veriyor!

Düzenden memnun musunuz? İnşaata başlama zamanı!

Adım 3: Ölçün ve Delin

Ölç ve Del
Ölç ve Del
Ölç ve Del
Ölç ve Del

Bu adım için gerekli araçlar:

  • Kaliper
  • Delmek
  • Elektronik (düğmeler, anahtarlar, vb.)

Düğme kutunuza eklemek istediğiniz tüm düğmeleri ölçün. Elektroniklerinizin boyutlarını bulmakta sorun yaşıyorsanız, çaplarını almak için (dijital) bir kumpas kullanın.

Elektronik aksamın merkez noktalarını kasanızın ön yüzünde işaretleyin ve doğru boyutlarda delikler açın. Muhafazayı biraz daha estetik hale getirmek mi istiyorsunuz? Düğmeleri takarak bekleyin!

Delikleri açmayı bitirdiğinizde, gerçek bir düğme kutusu gibi görünmesini sağlayabiliriz!

Adım 4: Düğmeleri, Döndürmeleri ve Geçişleri Sığdırın

Düğmeleri, Döndürmeleri ve Geçişleri Sığdır
Düğmeleri, Döndürmeleri ve Geçişleri Sığdır
Düğmeleri, Döndürmeleri ve Geçişleri Sığdır
Düğmeleri, Döndürmeleri ve Geçişleri Sığdır

Bu adım için gerekli araçlar:

  • Elektronik (düğmeler, anahtarlar, vb.)
  • İngiliz anahtarı
  • Karbon vinil kaplama (isteğe bağlı)
  • Kesici (isteğe bağlı)

Tüm elektronik cihazlarınız yerine vidalamak için bir somunla gelmelidir. değilse; bunları ölçün ve doğru boyutta somunu satın alın.

Düğme kutunuzun görünümünü iyileştirmek istiyorsanız (kişisel görüş) bir karbon fiber vinil kaplama kullanabilirsiniz. Delikleri açtığınız kasanızın yüzünün boyutuna (ve biraz daha büyük) kesin. Vinili uygulayın ve köşelerden arkaya doğru sarın. Bu, muhafaza kapatıldığında sargının yerinde kalmasını sağlayacaktır. Artık delikleri tıkayan fazla vinil bir kesici kullanılarak çıkarılabilir.

Sargıyı taktıktan (veya takmadan) düğme kutunuzun önünü oluşturmak için elektronik aksamlara sığdırabilirsiniz. Artık gerçekten de öyle görünen bir şeye sahip olmalısınız! Ne yazık ki, henüz çalışmıyor…

Adım 5: Kablolama Düzenini Tasarlayın

Kablolama Düzenini Tasarlayın
Kablolama Düzenini Tasarlayın

Bu adım için gerekli araçlar:

Photoshop/Paint (isteğe bağlı; elle çizilebilir)

Bir matris oluşturma:

Bir matris kullanmak bize zaman kazandıracak ve çok fazla gereksiz kablolama ve lehimleme yapacaktır. Kendim çok ayrıntıya girmeyeceğim, ancak matris kavramına aşina değilseniz bu makaleye bir göz atmanızı önereceğim.

Kendi matrisinizi tasarlayın veya bu Eğitilebilir Tablodaki düzeni kullanın. Matriste beş grup kullanacağız. Gruplar, Arduino'daki aşağıdaki pin çıkışlarına bağlanır:

  • 15: dört döner kodlayıcı
  • A0: beş basma düğmesi
  • A1: iki üç yollu geçiş ve bir basma düğmesi
  • A2: iki üç yollu geçiş ve bir basma düğmesi
  • A3: beş basma düğmesi

Adım 6: Lehimleme

Lehimleme
Lehimleme
Lehimleme
Lehimleme

Bu adım için gerekli araçlar:

  • Havya
  • Lehim
  • Elektronik (muhafazanıza monte edilmiş)
  • Arduino Pro Mikro
  • teller

İsteğe bağlı:

Lehimleme konusunda endişeleriniz varsa önce bir sonraki adımdaki kodu yükleyin. Bu, bağlantılarınızı kontrol etmenizi sağlayacaktır

Önceki adımda tasarlanan matrisi asıl düğme kutusuna uygulamak istiyoruz. Bunun için biraz zaman ayırın, özellikle de ilk kez lehimleme yapıyorsanız.

Bazı ipuçları:

  • Aynı anda bir grup yapın
  • Ara sıra test etmek için Arduino'yu bilgisayarınıza bağlayın
  • Plastik düğmeleri çok fazla ısıtmayın, çünkü bunlar eriyip bağlantıları koparabilir.
  • Çok fazla lehim kullanmayın, daha azı daha iyidir
  • Her grup/toprak için farklı renk kabloları kullanın

Adım 7: Kodu Yazma

Bu adım için gerekli araçlar:

  • Arduino IDE'si
  • Oyun çubuğu kitaplığı
  • Keypad.h (Arduino IDE > Sketch > Kitaplığı Dahil Et > Kitaplıkları Yönet… > Tuş Takımını Ara ve Mark Stanley ve Alexander Brevig tarafından oluşturulanı kurun)

#include #include

#define ENABLE_PULLUPS

#define NUMROTARIES 4 #define NUMBUTTONS 24 #define NUMROWS 5 #define NUMCOLS 5

bayt düğmeleri[NUMROWS][NUMCOLS] = {

{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };

struct rotariesdef {

bayt pin1; bayt pin2; int ccwchar; int cwchar; uçucu imzasız karakter durumu; };

rotariesdef rotaları[NUMROTARIES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

#define DIR_CCW 0x10

#define DIR_CW 0x20 #define R_START 0x0

#ifdef YARIM_ADIM

#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const unsigned char ttable[6][4] = { // R_START (00), REG_} R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, R_START_M, RIN_CW_BEG DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW}, }; #else #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6

const unsigned char ttable[7][4] = {

// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW}, // R_CW_BEGIN {R_CW_NEXT, R_CW_BEGIN, R_START, R_START}, // R_CW_NEXT {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START}, // R_CCW_BEGIN, RWXT, RW_CC_START, RWXT, RW_CC_}, RW_CC_CC_} R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START}, }; #endif

byte rowPins[SAYI] = {21, 20, 19, 18, 15};

bayt colPins[NUMCOLS] = {14, 16, 10, 9, 8};

Tuş takımı buttbx = Tuş takımı(makeKeymap(düğmeler), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, yanlış, yanlış, yanlış, yanlış, yanlış, yanlış, yanlış, yanlış, yanlış, yanlış, yanlış);

geçersiz kurulum() {

Joystick.begin(); rotary_init();}

boşluk döngüsü () {

CheckAllEncoders();

CheckAllButtons();

}

void CheckAllButtons(void) {

if (buttbx.getKeys()) { for (int i=0; i

void rotary_init() {

for (int i=0;i

unsigned char rotary_process(int _i) {

unsigned char pinstate = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(dönerler[_i].pin1); dönerler[_i].durum = ttable[dönerler[_i].durum & 0xf][pindurum]; dönüş (dönerler[_i].durum & 0x30); }

void CheckAllEncoders(void) { for (int i=0; i < NUMROTARIES;i++) {

imzasız karakter sonucu = rotary_process(i); if (sonuç == DIR_CCW) { Joystick.setButton(dönerler.ccwchar, 1); gecikme(50); Joystick.setButton(dönerler.ccwchar, 0); }; if (sonuç == DIR_CW) { Joystick.setButton(dönerler.cwchar, 1); gecikme(50); Joystick.setButton(dönerler.cwchar, 0); }; } }

  1. USB kablosunu takarak Arduino Pro Micro'nuzu bilgisayarınıza bağlayın
  2. Kodu yüklemek için Araçlar > Pano:… > Arduino/Genuino Micro'ya giderek Arduino tipini seçin.
  3. Doğru USB bağlantı noktasını seçmek için Araçlar > Bağlantı Noktası: > COM x (Arduino/Genuino Micro) seçeneğine gidin.
  4. Sol üst köşedeki ✓ simgesine tıklayarak çizimi doğrulayın (Dosya altında)
  5. Arduino'ya yüklemek için yanındaki → tuşuna basın

8. Adım: Donanımınıza Ekleyin

Donanımınıza Ekleyin
Donanımınıza Ekleyin

Tebrikler! Şimdiye kadar geldin. Şimdi yarışma zamanı!

Önerilen: