İçindekiler:
- Adım 1: Donanım
- 2. Adım: Şemalar
- 3. Adım: Taslak/Kod
- Adım 4: Giriş Gecikmesi Nedir?
- Adım 5: Jamma Yarış Dolapları Ne Olur?
- Adım 6: Biraz Resim Veya Olmadı
Video: Jammarduino DUE - Oyun Salonu Dolapları için DIY PC'den Jamma Arayüzüne: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Bu talimat, Arduino DUE için düşük çözünürlüklü CRT ve jamma konektörü ile PC'nize gerçek bir arcade makinesini arayüzlemek için basit bir kalkanın nasıl oluşturulacağını gösterecektir.
Kalkan ana dökümleri şunlardır:
- video kartından gelen video sinyalini yükseltmek için (gerçek bir Arcade CRT monitör için çok düşük voltaj)
- düşük çözünürlüklü CRT monitörünüzü çok yüksek frekanslı yatay senkronizasyon sinyallerinden korumak için
- arcade kontrol panelindeki düğmeye basıldığında PC'nin kaldırabileceği bir şeye "çevirmek" için
Arcade Racing tekerleklerini ve spinnerleri kontrol etmek için arayüz kullanımını nasıl genişleteceğinizi göstereceğim.
Dikkat: kalkan, video senkronizasyon sinyalini düşük frekanslara ZORLAMAZ: bunun için bazı özel yazılımlara ihtiyacınız var. CRT emudrivers veya Soft15KHz kullanmanızı öneririm.
Adım 1: Donanım
Elinizde bir lehimleme istasyonu ve biraz kalay olduğunu ve bunları nasıl kullanacağınızı bildiğinizi varsayacağım. Video yükseltici 0,65 mm aralıklı bir SMD olduğundan, bu mikrobun lehimlenmesine yardımcı olmak için biraz lehim fluksu satın almanızı öneririm. Mükemmel sonuçlar veren ucuz bir "temizlemeyen" Rosing Hafif Aktivasyonlu (RMA) kalem kullandım.
Arayüz şunlardan oluşur:
- 1x Arduino DUE mikrodenetleyici kartı
- 1x THS7374 video amplifikatörü
- 1x TSSOP14 - DIP14 adaptörü
- 1x ses yükseltici
- 1x jamma klavyesi
- 1x 5x7 cm prototip tahtası, çift taraflı
- 1x 1N4148 diyot
- 7x 1Kohm dirençler
- 1x 820 ohm direnç
- 3x 220 ohm direnç
- 1x şerit hattı, 2,54 mm aralık
- 1x VGA kablosu
- 1x ses kablosu
2. Adım: Şemalar
İşte bütün projenin renkli bir şeması. O kadar ortodoks değil, ama umarım daha kolay takip edilir.
Kablolama göründükleri kadar kolaydır:
- PC VGA konektöründen video amplifikatörüne renkli çizgiler gelir; toprağa 1Kohm'luk bir direnç, akımı video amplifikatör girişine düşürür. Çıkış tarafında bir seri direnç, akımı arcade CRT'ye düşürür.
- senkronizasyon hattı bir şekilde daha "karmaşık": VGA'dan ayrı senkronizasyon, önce kompozit yapılır, ardından Arduino DUE özelliklerine (3.3V mantığı) uymak için bir voltaj bölücü tarafından düşürülür. Voltaj bölücü, 5V senkronizasyon sinyali varsayılarak hesaplanır.
- video amplifikatörü (THS7374) 3,3V veya 5V ile çalıştırılabilir; 5V'da güç vermenin daha geniş bir giriş voltajı/sinyal aralığına izin vermesi ve THS7374'ün 5V'da sıkılmış olsa bile 3.3V ile kontrol edilebilmesi, 5V yoluna gittim.
- video topraklaması, arduino DUE topraklaması, THS7374 topraklaması ve jamma konnektörü topraklaması kısa devre.
- Arduino DUE 5V ve Jamma 5V hatları KISA DEVRE YAPILMAMALIDIR.
- USB kablosundan ses amfisini sıkmayın: akım limitleri nedeniyle bunun için harici bir kaynağa ihtiyacınız var (yani PC ATX PSU). Bunu yapmak USB bağlantı noktanıza ve hatta PC'nize zarar verir.
VGA konektörü: bir uyarı
Yakın zamanda jammarduino DUE ile kullandığım bilgisayarı güncelleme fırsatım oldu. Daha önce iki farklı PC'de denemiş olmama rağmen ikisi de aynı aileden ATI kartları kullanıyordu (ATI 9250 ve 9550). Yeni PC, tek bir DVI analog çıkışlı (VGA yok) bir HD5750 ile donatıldı. Bu beni (pasif) bir DVI - VGA adaptörü kullanmaya zorladı. Eh, biraz uğraştıktan sonra, adaptöre bağlı VGA kablosunun, web'deki çoğu şemada bildirildiği gibi 6'dan 10'a kadar olan pinlere değil, çalışması için yalnızca VGA konektörünün pin 5'ine bağlı toprağa sahip olması gerektiğini fark ettim. Video kartınızdan herhangi bir senkronizasyon sinyali görememeniz durumunda bunu aklınızda bulundurun.
3. Adım: Taslak/Kod
Önce Arduino IDE'yi kurmalısınız; SAM Cortex M3 Core'u da kurmalısınız (varsayılan olarak mevcut değildir). Son olarak, Arduino DUE sürücülerini yükleyin. En güncel bilgiler için resmi "Arduino Due ile Başlarken" eğitimine bakın.
Arduino DUE'nuza yüklemeniz gereken çizim burada ektedir. Arduino IDE'ye "jammarduinoDUE.ino" dosyasını açın ve yükleyin, ardından "programlama" portu üzerinden arduino DUE'ye yükleyin. Çizim başarıyla yüklendikten sonra, USB kablosunu "programlama" bağlantı noktasından çıkarın ve Arduino DUE'yi "Yerel USB" bağlantı noktası üzerinden bağlayın, aksi takdirde kodun giriş kısmı çalışmayacaktır.
Temel olarak, Arduino DUE, senkronizasyon frekansını ölçer ve düşük çözünürlüklü bir CRT için senkronizasyon çok yüksek olduğunda video amplifikatörünü devre dışı bırakır. Arduino DUE, kontrol panelinden gelen girişleri de yönetir ve belirli bir tuşa basıldığında varsayılan MAME tuşlarını gönderir. Ticari arayüzler gibi bir kaydırma işlevi de (P1 BAŞLAT düğmesi basılı tutularak etkinleştirilir) dahildir.
Tabloda varsayılan tuş haritası. Varsayılan anahtar haritasını değiştirebilir veya isteğinize göre doğrudan kroki üzerine düğmeler ekleyebilirsiniz.
Örneğin, emülatörünüze ses kontrol tuşları atamak istiyorsanız, önce emu tuşları menüsünde bu tuşları (ses açma için "+" tuş takımı ve ses kısma için tuş takımı "-" diyelim) tanımlamanız gerekir; ardından ses artırma veya azaltmanın atanmasını istediğiniz düğmelere kaydırılan tuşu ekleyin. Diyelim ki shift tuşuna ve Player 1 düğmesine 3 basarak sesi artırmak istiyorum. Satırı değiştireceğim.
{26, YÜKSEK, 0, 180, 180}, //boşluk - P1 B3
ile
{26, YÜKSEK, 0, 180, 223}, //boşluk - P1 B3 (+)
Bu "223", "+" tuş takımı için ASCII karakter kodudur.
Bir alıştırma olarak "-" (ya da tercih ettiğiniz her şeyi) "ses kısma" işlevine nasıl atayacağınızı anlamanıza izin vereceğim (İpucu: ASCII kodu 222):)
Lütfen MAME'de genel öykünme hacmini değil, yalnızca hizmet modu hacmini atayabileceğinizi unutmayın; bu, öykünme kartının yazılım ses düzeyi denetimine izin vermemesi durumunda ses düzeyinin etkilenmeyeceği anlamına gelir.
Adım 4: Giriş Gecikmesi Nedir?
Kodun ne kadar gecikme yaratabileceğini görmek için bazı testler yaptım; peki, aynı anda 3 düğme göndererek, tam bir döngünün yürütülmesi yaklaşık 4 ms sürer, 33 ms'den çok daha az bir kare 30 FPS'de sürer.
Adım 5: Jamma Yarış Dolapları Ne Olur?
Potansiyometre Tekerleği
Kabininiz bir yarış kabiniyse, direksiyon potansiyometre tabanlıdır (kontrol panelinin arka tarafında 5Kohm'luk bir potansiyometre görebilirsiniz).
Öncelikle Joystick kütüphanesini indirip kurun (bugünkü kütüphanenin sadece 1. versiyonunun arduino DUE ile uyumlu olduğu söyleniyor ama yine de çok iyi bir kütüphane).
Ardından, tekerleği kolayca kullanabilmek için 4. Adımdaki çizime takip eden birkaç satırı ekleyin (çizgilerin nereye yerleştirileceği size bir alıştırma olarak bırakılmıştır…)
#Dahil etmek
int ölüZone = 0;
geçersiz kurulum() {
Joystick.begin();}
boşluk döngüsü () {
int readPot = analogRead(A3);
int tekerlekPos = map(readPot, 0, 1023, -127, 127);
if(wheelPos>deadZone || wheelPos<-deadZone){ Joystick.setXAxis(wheelPos);}
başka {Joystick.setXAxis(0);}
}
Gördüğünüz gibi, gerekirse bir ölü bölge ayarlayabilirsiniz (iyi çalışan bir arcade tekerleğinde onu sıfıra ayarlamak en iyisidir).
Potansiyometreyi Arduino DUE'ye bağlamak basittir: potansiyometrenin yan pinleri +3.3V ve GND'ye gider, silecek pini bir arduino DUE analog portuna gider (referans için resme bakın). Burada analog pin 3'ü (A3) tekerlek potansiyometresinin sileceği girişi olarak tanımladım, ancak ihtiyaçlarınıza en uygun analog pini ayarlayabilirsiniz.
Not: Yarış kabinlerindeki pedalların genellikle bir potansiyometre ile kontrol edildiğini, teknik olarak tekerleklerin ve pedalların farklı bir şekle sahip aynı cihaz olduğunu biliyor musunuz? Bu, buradaki kodun orijinal arcade pedallarını da kontrol etmek için kullanılabileceği anlamına gelir;)
Optik Tekerlek
Direksiyonunuz optik ise, başlangıç taslağında küçük bir değişiklikle yine kolayca kullanılabilir.
Optik Arcade kodlayıcılar (Taito iplikçiler, Atari tekerlek kodlayıcılar vb.) için çok yaygın bir pin çıkışı:
1. OptoA ÇIKIŞI
2. +5V
3. GND
4. OptoB ÇIKIŞI
2. ve 3.'ü Arduino DUE 5V ve GND'ye ve 1. ve 4.'ü istediğiniz herhangi bir dijital pime bağlayın, optik kodlayıcıdan 5V çıkışını 3.3V arduino DUE'ye düşürmek için bir voltaj bölücünün gerekli olduğuna dikkat edin.. OptoA ve/veya OptoB 5V çıkışlarını doğrudan arduino DUE giriş pinlerinize göndermeyin, aksi takdirde bu girişleri ve hatta tüm kartı kızartırsınız. Uyarıldın.
Buradaki örnek çizimde, optik çıkış A ve optik çıkış B olarak dijital pin 2 ve dijital pin 3'ü kullanacağım.
#Dahil etmek
boolean optA_state = YÜKSEK;
int xAxisMov = 2;
geçersiz kurulum() {
pinMode (2, INPUT_PULLUP); //OptA
pinMode (3, INPUT_PULLUP); //OptB
fare.başla();
}
boşluk döngüsü () {
if (optA_state == YÜKSEK && digitalRead(2) == DÜŞÜK){
optA_state=!optA_state;
if(digitalRead(3) == HIGH){ Mouse.move(xAxisMov, 0, 0);} else{Mouse.move(-xAxisMov, 0, 0);} } }//loop end
Bu, düşük çözünürlüklü 1X Sayma optik kodlamasıdır. Arcade uygulamaları için fazlasıyla yeterli, ancak bir kod satırı ekleyerek çözünürlüğü kolayca artırabilirsiniz.
Not: Optik atari tekerleklerinin ve atari çarklarının teknik olarak farklı bir şekle sahip aynı cihaz olduğunu biliyor muydunuz? İztoplarının teknik olarak 2 eksenli bir spinner olduğunu biliyor muydunuz? Bu, buradaki kodun orijinal arcade spinner'larını ve birkaç kolay değişiklikle iz toplarını kontrol etmek için kullanılabileceği anlamına gelir;)
Adım 6: Biraz Resim Veya Olmadı
İşte yaptığım kalkanın bazı resimleri. Bu yüksek seviyeli bir iş değil (bahse girerim, profesyonel değilim), ama jamma Atari Dolabımda %100 sallanıyor!
Önerilen:
LED'li Sergi Salonu: 12 Adım
LED'li Sergi Salonu: Herkese merhaba! Bu sayfada size bina modelleri için portatif ışık çözümü konseptini göstereceğim. Sarf malzemeleri listesi var.Sergi salonu düzeni (tasarım) için:1. Karton (yaklaşık 2x2 m)2. Aydınger kağıdı (0,5
PVC'den Mikrofon Standı için Ipad Tutucu: 4 Adım
PVC'den Mikrofon Standı için Ipad Tutucu: Birçok müzisyen artık iPad'leri şarkı sözü sayfaları/akor tabloları olarak kullanıyor. iKlip gibi ticari sahipler 30 ABD doları ve daha fazlasına mal olabilir. Bunu 5 dolara yaptım. Çadır kampında kullanmak için iPad sahibi olan replayerreb'e ilham vermek istiyorum
Atari Salonu: 3 Adım (Resimlerle)
Arcade: 20 yıl önce Run and Gun @ the Arcade oynadım ve şimdi kendi Arcade'imi kurmaya karar verdim. tasarım
Kaptan Lee De Martian'ın Salonu: 6 Adım
Kaptan Lee De Martian'ın Salonu: Kaptan Lee, ücretsiz videoların en iyilerini sunuyor
Usb'den DMX-RDM Arayüzüne: 4 Adım
Usb'den DMX-RDM'ye Arayüz: Bir aydınlatma teknisyeni olarak bir usb'den dmx'e arayüze ihtiyacım vardı ancak piyasada bulunanlar çok pahalı, bu yüzden kendiminkini yapmaya karar verdim