Mündəricat:
- Addım 1: Avadanlıq
- Addım 2: sxemlər
- Addım 3: Eskiz/Kod
- Addım 4: Giriş Gecikməsi haqqında nə demək olar?
- Addım 5: Jamma Yarış Şkafları haqqında nə demək olar?
- Addım 6: Bəzi Şəkillər, yoxsa Olmadı
Video: Jammarduino DUE - Arcade Şkaflar üçün Jamma Arayüzünə DIY PC: 6 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Bu təlimat, Arduino DUE üçün aşağı qətnamə CRT və cəmma bağlayıcısı olan orijinal bir arcade maşınını kompüterinizə bağlamaq üçün sadə bir qalxanın necə yaradılacağını sizə göstərəcək.
Qalxanın əsas tökmə yerləri bunlardır:
- video kartdan gələn video siqnalını gücləndirmək üçün (orijinal Arcade CRT monitoru üçün çox aşağı gərginlikdə)
- aşağı qətnaməli CRT monitorunuzu çox yüksək tezlikli üfüqi sinxronizasiya siqnallarından qorumaq üçün
- Arcade idarəetmə panelindəki düymələri kompüterin idarə edə biləcəyi bir şeyə "tərcümə etmək"
Arcade Racing təkərlərini və fırlananları idarə etmək üçün interfeys istifadəsini necə genişləndirəcəyinizi sizə göstərəcəyəm.
Diqqət: qalxan video sinxronizasiya siqnalını aşağı tezliklərə məcbur etmir: bunun üçün xüsusi bir proqrama ehtiyacınız var. CRT emudrivers və ya Soft15KHz istifadə etməyi təklif edirəm.
Addım 1: Avadanlıq
Əlinizdə bir lehimləmə stansiyası və bir az qalay olduğunu və onlardan necə istifadə edəcəyinizi biləcəyinizi güman edəcəyəm. Video gücləndiricinin 0,65 mm aralığa malik bir SMD olduğuna görə, bu mikrobun lehimlənməsi üçün bir az lehim axını almağı təklif edirəm. Ucuz "təmizlənməyən" Rosing Mildly Activated (RMA) əla qələm istifadə etdim.
İnterfeys aşağıdakılardan ibarətdir:
- 1x Arduino DUE mikrokontroller lövhəsi
- 1x THS7374 video gücləndirici
- 1x TSSOP14 - DIP14 adapteri
- 1x audio gücləndirici
- 1x jamma barmaq lövhəsi
- 1x 5x7 sm ölçülü prototip lövhəsi, iki tərəfli
- 1x 1N4148 diod
- 7x 1Kohm rezistorlar
- 1x820 ohm müqavimət
- 3x 220 ohm müqavimət
- 1x zolaq xətti, 2,54 mm aralıq
- 1 x VGA kabeli
- 1x audio kabel
Addım 2: sxemlər
Bütün layihənin rəngli bir sxemidir. Ortodoks deyil, amma izləmək daha asandır.
Bağlantılar göründüyü qədər asandır:
- rəng xətləri PC VGA bağlayıcısından video gücləndiriciyə gəlir; yerə 1Kohm rezistor, video gücləndirici girişinə olan cərəyanı azaldır. Çıxış tərəfində bir sıra müqavimət, CRT arcade cərəyanını azaldır.
- sinxronizasiya xətti birtəhər daha "mürəkkəbdir": VGA -dan ayrı sinxronizasiya əvvəlcə kompozit şəkildə aparılır, sonra Arduino DUE xüsusiyyətlərinə (3.3V məntiqi) hörmət etmək üçün gərginlik bölücü tərəfindən endirilir. Gərginlik bölücü 5V sinxronizasiya siqnalı ilə hesablanır.
- video gücləndirici (THS7374) 3.3V və ya 5V gücündə ola bilər; 5V gücündə olmaq daha geniş bir giriş gərginliyi/siqnalına imkan verir və THS7374 -ün 5V -də şirəsi olsa belə 3.3V ilə idarə oluna biləcəyini nəzərə alaraq 5V yolu ilə getdim.
- video torpaq, arduino DUE torpaq, THS7374 topraklama və jamma bağlayıcı şasisi qısa dövrəyə girir.
- Arduino DUE 5V və Jamma 5V xətləri QISA DEVRE OLMAMALIDIR.
- USB kabelindən səs gücləndiricisini SÜRMƏYİN: cari məhdudiyyətlərə görə xarici mənbəyə ehtiyacınız var (yəni PC ATX PSU). Bunu etməklə USB portunuza və ya hətta kompüterinizə zərər verəcəksiniz.
VGA bağlayıcısı: xəbərdarlıq sözü
Bu yaxınlarda jammarduino DUE ilə birlikdə istifadə etdiyim PC -ni yeniləmək imkanım oldu. Daha əvvəl iki fərqli PC ilə sınamış olsam belə, hər ikisi eyni ailənin ATI kartlarından istifadə edirdi (ATI 9250 və 9550). Yeni kompüter, tək DVI analoq çıxışı olan HD5750 ilə təchiz olunmuşdu (VGA yoxdur). Bu, məni (passiv) DVI -dən VGA adapterinə istifadə etməyə məcbur etdi. Yaxşı, bir az əziyyət çəkdikdən sonra, adapterə qoşulan VGA kabelinin işləməsi üçün VGA konnektorunun 5 -ci pininə bağlı olması lazım olduğunu, İnternetdəki əksər sxemlərdə bildirildiyi kimi 6 -dan 10 -a qədər sancaqlar olmamalıdır. Video kartınızdan heç bir sinxronizasiya siqnalı görmədiyiniz halda bunu unutmayın.
Addım 3: Eskiz/Kod
Əvvəlcə Arduino IDE qurmalısınız; SAM Cortex M3 Core qurmalısınız (standart olaraq mövcud deyil). Son olaraq Arduino DUE sürücülərini quraşdırın. Ən müasir məlumatlar üçün rəsmi "Arduino Due ilə işə başlama" dərsliyinə baxın.
Arduino DUE -a yükləməli olduğunuz eskiz burada əlavə olunur. "JammarduinoDUE.ino" nu Arduino IDE -dən açın və yükləyin, sonra "proqramlaşdırma" portu vasitəsilə arduino DUE -a yükləyin. Eskiz uğurla yükləndikdən sonra, USB kabelini "proqramlaşdırma" portundan ayırın və Arduino DUE -ni "Yerli USB" portu ilə bağlayın, əks halda kodun giriş hissəsi işləməyəcək.
Əsasən, Arduino DUE, sinxronizasiya tezliyini ölçür və sinxronizasiya aşağı CRT üçün çox yüksək olduqda video gücləndiricini deaktiv edir. Arduino DUE, idarəetmə panelindən gələn girişləri də idarə edir, xüsusi düymələrə basaraq standart MAME düymələrini göndərir. Ticarət interfeysləri kimi bir sürüşmə funksiyası (P1 START düyməsini basılı tutaraq aktivləşdirilir) də daxildir.
Cədvəldə standart düymələr xəritəsi var. Varsayılan açar xəritəni dəyişdirə və ya birbaşa eskizdə istəyinizə görə düymələr əlavə edə bilərsiniz.
Məsələn, emulyatorunuz üçün səs idarəetmə düymələrini təyin etmək istəyirsinizsə, əvvəlcə emu düymələri menyunuzda bu düymələri təyin etməlisiniz (səs səviyyəsini artırmaq üçün "+" və klaviatura düyməsini "-" deyək); sonra səsin artırılmasını və ya azalmasını təyin etmək istədiyiniz düymələrə sürüşdürülmüş düyməni əlavə edin. Tutaq ki, shift düyməsini və Oyunçu 1 düyməsini 3 basaraq səsi artırmaq istəyirəm. Mən xətti dəyişdirəcəyəm
{26, YÜKSEK, 0, 180, 180}, // boşluq - P1 B3
-ə
{26, YÜKSEK, 0, 180, 223}, // boşluq - P1 B3 (+)
Bu "223", klaviatura "+" üçün ASCII simvol kodudur.
Bir məşq olaraq "həcmi azalt" funksiyasına "-" (və ya istədiyiniz hər şeyi) necə təyin edəcəyinizi anlamağa icazə verəcəyəm (İpucu: ASCII kodu 222):)
Unutmayın ki, MAME -də ümumi emulyasiya həcmini deyil, yalnız xidmət rejimi həcmini təyin edə bilərsiniz; bu, emulyasiya edilmiş lövhənin proqramın səs səviyyəsinə nəzarət etməsinə icazə vermədiyi təqdirdə səsin təsirsiz qalacağı deməkdir.
Addım 4: Giriş Gecikməsi haqqında nə demək olar?
Kodun nə qədər gecikdirə biləcəyini görmək üçün bəzi testlər etdim; Yaxşı, eyni anda 3 düyməyə basaraq tam bir döngənin yerinə yetirilməsi təxminən 4 ms çəkir, indiyə qədər 33 ms -dən az bir çərçivə 30 FPS -də davam edir.
Addım 5: Jamma Yarış Şkafları haqqında nə demək olar?
Potansiyometr təkəri
Kabinetiniz yarış kabinetidirsə, çox güman ki, təkər potansiyometr əsaslıdır (idarəetmə panelinin arxa tərəfində 5Kohm potansiyometrini görə bilərsiniz).
Birincisi, Joystick kitabxanasını yükləyin və quraşdırın (bu gün kitabxananın yalnız 1 -ci versiyasının arduino DUE ilə uyğun olduğu söylənir, amma yenə də çox yaxşı bir kitabxanadır).
Sonra, çarxı asanlıqla idarə etmək üçün 4 -cü addımdakı eskizə aşağıdakı bir neçə sətir əlavə edin (xətlərin harada yerləşdiriləcəyi sizə məşq olaraq qalır …)
#daxil edin
int deadZone = 0;
boş quraşdırma () {
Joystick.begin ();}
boşluq döngəsi () {
int readPot = analogRead (A3);
int wheelPos = xəritə (readPot, 0, 1023, -127, 127);
if (wheelPos> deadZone || wheelPos <-deadZone) {Joystick.setXAxis (wheelPos);}
başqa {Joystick.setXAxis (0);}
}
Gördüyünüz kimi, zəruri hallarda bir ölü zonası qura bilərsiniz (yaxşı işləyən bir arcade təkərində sıfıra qoymaq ən yaxşısıdır).
Arduino DUE -a potansiyometr bağlamaq çox sadədir: potansiyometrin yan sancaqları +3.3V və GND -yə, silecek pimi arduino DUE analog portuna gedir (istinad üçün şəkilə baxın). Burada 3 -cü analog pinini (A3) təkər potensiometrini silmək üçün giriş olaraq təyin etdim, ancaq ehtiyaclarınıza ən uyğun olan analog pin təyin edə bilərsiniz.
PS: yarış kabinetlərindəki pedalların tez -tez potensiometr tərəfindən idarə olunduğunu bilirsiniz, texniki cəhətdən təkərlər və pedallar fərqli bir forma ilə eyni cihazdır? Bu o deməkdir ki, buradakı kod orijinal arcade pedallarını idarə etmək üçün də istifadə edilə bilər;)
Optik Təkər
Təkəriniz optikdirsə, başlanğıc eskizində sadə bir dəyişikliklə də asanlıqla idarə oluna bilər.
Optik Arcade kodlayıcıları üçün çox yaygın bir pinout (Taito əyiriciləri, Atari təkərləri kodlayıcıları və s.):
1. OptoA OUT
2. +5V
3. GND
4. OptoB OUT
2. və 3. Arduino DUE 5V və GND və 1. və 4. hər hansı bir rəqəmsal pinə qoşun, 5V çıxışını optik kodlayıcıdan 3.3V arduino DUE -nin idarə edə biləcəyi bir gərginlik bölücüsünə ehtiyac olduğunu unutmayın.. OptoA və/və ya OptoB 5V çıxışlarını birbaşa arduino DUE giriş pinlərinizə göndərməyin, əks halda bu girişləri və ya hətta bütün lövhəni qızardacaqsınız. Sənə xəbərdarlıq edildi.
Buradakı nümunə eskizində rəqəmsal pin 2 və rəqəmsal pin 3 -dən optik A və optik B kimi istifadə edəcəyəm.
#daxil edin
boolean optA_state = HIGH;
int xAxisMov = 2;
boş quraşdırma () {
pinMode (2, INPUT_PULLUP); // OptA
pinMode (3, INPUT_PULLUP); // OptB
Mouse.begin ();
}
boşluq döngəsi () {
əgər (optA_state == HIGH && digitalRead (2) == LOW) {
optA_state =! optA_state;
if (digitalRead (3) == HIGH) {Mouse.move (xAxisMov, 0, 0);} else {Mouse.move (-xAxisMov, 0, 0);}}} // loop sonu
Bu aşağı qətnaməli 1X Sayma optik kodlaşdırmasıdır. Arcade tətbiqləri üçün kifayət qədər çoxdur, ancaq bir kod xətti əlavə edərək qətnaməni asanlıqla artıra bilərsiniz.
PS: optik arcade təkərlər və arcade əyiricilərin texniki olaraq fərqli bir forma ilə eyni cihaz olduğunu bilirsinizmi? Trackballların texniki olaraq 2 oxlu bir fırlanan olduğunu bilirsinizmi? Bu o deməkdir ki, buradakı kod orijinal arcade əyiricilərini idarə etmək üçün istifadə edilə bilər və çox az sayda asan top dəyişikliyi ilə;)
Addım 6: Bəzi Şəkillər, yoxsa Olmadı
İşdə hazırladığım qalxanın bəzi şəkilləri. Bu yüksək səviyyəli bir iş deyil (bahis et, mən peşəkar deyiləm), amma mənim Jamma Arcade Kabinetində 100% sallanır!
Tövsiyə:
Wi-Fi yönlendiriciniz üçün saatlarla işləmək üçün UPS-ni Steam Punk: 4 addım (şəkillərlə)
Wi-Fi yönlendiriciniz üçün saatlarla işləmək üçün UPS-ni Steam Punk: UPS-in 12V DC batareya gücünü 220V AC gücünə çevirməsi ilə bağlı əsaslı olaraq razı olmayan bir şey var ki, routerinizi və fiber ONT-ni işlədən transformatorlar onu yenidən 12V DC! Siz də [adətən
Robotdan qaçınmaq üçün əngəl yaratmaq üçün necə: 6 addım
Robotdan Engel Oynayan Necə Yapılır: Maneədən Kaçan Robot, bir arduino tərəfindən idarə olunan sadə bir robotdur və nə edirsə, ətrafda dolaşır və maneələrin qarşısını alır. HC-SR04 ultrasəs sensoru ilə maneələri aşkar edir, başqa sözlə robot yaxınlıqdakı obyekti hiss edərsə
Tamildə Multimetrdən necə istifadə olunur - Başlayanlar üçün Təlimat - Yeni başlayanlar üçün multimetr: 8 addım
Tamildə Multimetrdən necə istifadə olunur | Başlayanlar üçün Təlimat | Yeni başlayanlar üçün multimetr: Salam Dostlar, bu dərslikdə multimetrenin hər cür elektron dövriyyədə 7 fərqli addımda necə istifadə olunacağını izah etdim, 1) problemlərin aradan qaldırılması üçün cihazın davamlılığı testi 2) DC cərəyanının ölçülməsi 3) Diod və LED -in sınanması 4) Ölçmə Resi
Fasulye Çantası üçün Beysbol Oyunu üçün Elektron Qiymətləndirmə: 8 Addım (Şəkillərlə)
Bir Fasulye Çantası Beysbol Oyunu Atmaq üçün Elektron Qiymətləndirmə: Bu Təlimatlar, Bean Bag Toss beysbol temalı oyunu üçün avtomatik olaraq elektron hesab saxlamağı izah edəcək. Taxta oyunun detallı bir quruluşunu göstərməyəcəyəm, bu planları Ana White veb saytında tapa bilərsiniz: https: // www
Usb-dən DMX-RDM Arayüzünə: 4 addım
Usb-dan DMX-RDM İnterfeysinə: İşıqlandırma mütəxəssisi olmaq üçün dmx interfeysi üçün usb-ə ehtiyacım var idi, lakin satılanlar çox bahadır, buna görə özümü qurmağa qərar verdim