Turinys:
- 1 žingsnis: Aparatūra
- 2 žingsnis: schemos
- 3 žingsnis: eskizas/kodas
- 4 žingsnis: O kaip su įvesties vėlavimu?
- 5 žingsnis: Ką apie „Jamma Racing“spinteles?
- 6 žingsnis: kažkokia nuotrauka, arba tai neįvyko
Video: „Jammarduino DUE“- „pasidaryk pats“kompiuterio ir „Jamma“sąsaja arkadinėms spintelėms: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Ši instrukcija parodys, kaip sukurti paprastą „Arduino DUE“skydą, kad su kompiuteriu būtų galima prijungti tikrą arkadinį aparatą su mažos skiriamosios gebos CRT ir „jamma“jungtimi.
Pagrindiniai skydo užpildai yra šie:
- sustiprinti iš vaizdo plokštės sklindantį vaizdo signalą (per maža įtampa tikram „Arcade CRT“monitoriui)
- apsaugoti jūsų mažos skiriamosios gebos CRT monitorių nuo per aukšto dažnio horizontalių sinchronizavimo signalų
- „išversti“paspaudimus pasažo valdymo skydelyje į tai, ką gali valdyti kompiuteris
Aš jums parodysiu, kaip išplėsti sąsajos naudojimą valdant „Arcade Racing“ratus ir suktukus.
Pastaba: skydas NEGALIMA priversti vaizdo sinchronizavimo signalo į žemus dažnius: jums reikia tam tikros programinės įrangos. Siūlau naudoti CRT emudrivers arba „Soft15KHz“.
1 žingsnis: Aparatūra
Manysiu, kad turite litavimo stotį ir skardą ranka ir žinote, kaip juos naudoti. Kadangi vaizdo stiprintuvas yra SMD su 0,65 mm žingsniu, siūlau jums nusipirkti litavimo srauto, kuris padėtų lituoti tą mikrobą. Naudojau pigią „be valymo“„Rosing Mildly Activated“(RMA) rašiklį, kurio rezultatai buvo puikūs.
Sąsaja sudaryta iš:
- 1x „Arduino DUE“mikrovaldiklio plokštė
- 1x THS7374 vaizdo stiprintuvas
- 1x TSSOP14 į DIP14 adapteris
- 1x garso stiprintuvas
- 1x „Jamma“grifas
- 1x 5x7 cm prototipo lenta, dviguba pusė
- 1x 1N4148 diodas
- 7x 1Kohm rezistoriai
- 1x 820 omų rezistorius
- 3x 220 omų rezistorius
- 1x juostos linija, 2,54 mm tarpai
- 1x VGA kabelis
- 1x garso kabelis
2 žingsnis: schemos
Čia yra spalvota viso projekto schema. Tikiuosi, ne toks stačiatikis, bet lengviau sekamas.
Sujungimas yra toks paprastas, kaip atrodo:
- spalvotos linijos ateina iš kompiuterio VGA jungties į vaizdo stiprintuvą; 1Kohm rezistorius į žemę sumažina vaizdo stiprintuvo įvesties srovę. Išėjimo pusėje serijinis pasipriešinimas sumažina srovę iki arkadinio CRT.
- sinchronizavimo linija yra kažkuo sudėtingesnė: atskira sinchronizacija nuo VGA pirmiausia yra sudaryta iš sudėtinių dalių, o po to sumažinama įtampos dalikliu, kad būtų laikomasi „Arduino DUE“specifikacijų (3,3 V logika). Įtampos daliklis apskaičiuojamas darant prielaidą, kad sinchronizavimo signalas yra 5 V.
- vaizdo stiprintuvas (THS7374) gali būti maitinamas 3.3V arba 5V; kadangi maitinimas esant 5 V įtampai leidžia platesnį įvesties įtampų/signalų diapazoną ir kad THS7374 gali būti valdomas 3,3 V įtampa, net jei sultys yra 5 V, aš nuėjau 5 V keliu.
- vaizdo įžeminimas, arduino DUE įžeminimas, THS7374 įžeminimas ir „jamma“jungties įžeminimas yra trumpas jungimas.
- „Arduino DUE 5V“ir „Jamma 5V“linijos neturi būti trumpos.
- NEGALIMA išjungti garso stiprintuvo iš USB kabelio: tam jums reikia išorinio šaltinio dėl srovės apribojimų (t. Y. PC ATX PSU). Taip sugadinsite USB prievadą ar net kompiuterį.
VGA jungtis: atsargiai
Neseniai turėjau galimybę atnaujinti kompiuterį, naudojamą su „jammarduino DUE“. Net jei prieš tai išbandžiau su dviem skirtingais kompiuteriais, jie abu naudojo tos pačios šeimos ATI korteles (ATI 9250 ir 9550). Naujasis kompiuteris buvo aprūpintas HD5750 su viena DVI analogine išvestimi (be VGA). Tai privertė mane naudoti (pasyvų) DVI – VGA adapterį. Na, po tam tikrų sunkumų pastebėjau, kad prie adapterio prijungtame VGA kabelyje TURI veikti tik žemė, prijungta prie VGA jungties 5 kaiščio, o ne kaiščiai nuo 6 iki 10, kaip nurodyta daugumoje schemų internete. Turėkite tai omenyje, jei nematote jokio vaizdo plokštės sinchronizavimo signalo.
3 žingsnis: eskizas/kodas
Pirmiausia turite įdiegti „Arduino IDE“; taip pat turite įdiegti „SAM Cortex M3 Core“(pagal numatytuosius nustatymus nėra). Paskutinis, bet ne mažiau svarbus dalykas - įdiekite „Arduino DUE“tvarkykles. Naujausios informacijos ieškokite oficialioje pamokoje „Darbo su„ Arduino Due “pradžia“.
Čia pridėtas eskizas, kurį turite įkelti į „Arduino DUE“. Išpakuokite ir įkelkite „jammarduinoDUE.ino“į „Arduino IDE“, tada įkelkite į „arduino DUE“per „programavimo“prievadą. Sėkmingai įkėlus eskizą, atjunkite USB kabelį nuo „programavimo“prievado ir prijunkite „Arduino DUE“per „Native USB“prievadą, kitaip kodo įvesties dalis neveiks.
Iš esmės „Arduino DUE“matuoja sinchronizavimo dažnį ir išjungia vaizdo stiprintuvą, kai sinchronizavimas yra per didelis žemos raiškos CRT. „Arduino DUE“taip pat tvarko įvestis, gaunamas iš valdymo pulto, siunčiant numatytuosius MAME klavišus paspaudus tam tikrą mygtuką. Taip pat įtraukta perjungimo funkcija (įjungiama laikant nuspaustą P1 START mygtuką), kaip ir komercinės sąsajos.
Lentelėje numatytasis klavišų žemėlapis. Jūs galite lengvai pakeisti numatytąjį raktų žemėlapį arba pridėti mygtukų tiesiai ant eskizo.
Pavyzdžiui, jei norite priskirti garsumo valdymo klavišus savo emuliatoriui, pirmiausia turėtumėte apibrėžti tuos klavišus (tarkime, klaviatūra „+“, jei norite padidinti garsumą, ir klaviatūra „-“, jei norite sumažinti garsą), pirmiausia „emu“klavišų meniu; tada pridėkite perkeltą klavišą prie mygtukų, kuriems norite priskirti garsumo didinimą arba mažinimą. Tarkime, kad noriu padidinti garsumą paspausdami „Shift“klavišą ir „Player 1“mygtuką 3. Pakeisiu eilutę
{26, AUKŠTAS, 0, 180, 180}, // tarpas - P1 B3
į
{26, AUKŠTAS, 0, 180, 223}, // tarpas - P1 B3 (+)
Šis „223“yra klaviatūros „+“ASCII simbolių kodas.
Leisiu jums išsiaiškinti, kaip pratimui priskirti „-“(ar ką tik norite) „garsumo mažinimo“funkcijai (Patarimas: ASCII kodas 222):)
Atminkite, kad programoje MAME galite priskirti tik aptarnavimo režimo garsumą, o ne bendrą emuliacijos garsumą; tai reiškia, kad jei emuliuota plokštė neleidžia valdyti programinės įrangos garsumo, garsas nebus paveiktas.
4 žingsnis: O kaip su įvesties vėlavimu?
Aš padariau keletą bandymų, norėdamas pamatyti, kiek delsos gali įvesti kodas; Na, siunčiant 3 mygtukus vienu metu paspausti, visa ciklo vykdymas trunka apie 4 ms, kol kas mažiau nei 33 ms kadras trunka 30 kadrų per sekundę.
5 žingsnis: Ką apie „Jamma Racing“spinteles?
Potenciometro ratas
Jei jūsų spintelė yra lenktynių spinta, labai tikėtina, kad ratas yra potenciometro pagrindu (galinėje valdymo skydelio pusėje galite pamatyti 5Kohm potenciometrą).
Pirmiausia atsisiųskite ir įdiekite „Joystick“biblioteką (šiandien sakoma, kad tik 1 bibliotekos versija yra suderinama su arduino DUE, tačiau ji vis tiek yra labai gera biblioteka).
Tada pridėkite keletą eilučių, esančių 4 žingsnyje, eskizui, kad galėtumėte lengvai valdyti ratą (kur dėti eilutes, paliekamas jums kaip pratimas …)
#įtraukti
int deadZone = 0;
void setup () {
Joystick.begin ();}
void loop () {
int readPot = analogRead (A3);
int wheelPos = žemėlapis (skaitytiPot, 0, 1023, -127, 127);
if (wheelPos> deadZone || wheelPos <-deadZone) {Joystick.setXAxis (wheelPos);}
else {Joystick.setXAxis (0);}
}
Kaip matote, prireikus galite nustatyti negyvą zoną (gerai veikiančiame arkadiniame rate geriausia nustatyti nulį).
Potenciometro prijungimas prie „Arduino DUE“yra paprastas: šoniniai potenciometro kaiščiai yra +3, 3 V ir GND, valytuvo kaištis - prie arduino DUE analoginio prievado (žr. Paveikslėlį). Analoginį kaištį 3 (A3) čia apibrėžiau kaip rato potenciometro valytuvo įvestį, tačiau jūs galite nustatyti analoginį kaištį, kuris geriausiai atitinka jūsų poreikius.
PS: ar žinote, kad pedalai lenktynių spintelėse dažnai valdomi potenciometru, nei techniškai ratai ir pedalai yra tas pats prietaisas, turintis kitokią formą? Tai reiškia, kad čia esantis kodas taip pat gali būti naudojamas tikriems arkadiniams pedalams valdyti;)
Optinis ratas
Jei jūsų ratas yra optinis, jį taip pat galima lengvai valdyti, šiek tiek pakeitus pradinį eskizą.
Labai paplitęs optinių arkadinių kodavimo įrenginių („Taito“suktukų, „Atari“ratų kodavimo įrenginių ir pan.) Kištukas yra:
1. „OptoA OUT“
2. +5V
3. GND
4. „OptoB OUT“
Prijunkite 2 ir 3 prie „Arduino DUE 5V“ir „GND“ir 1. ir 4. prie bet kurio jums patinkančio skaitmeninio kaiščio, atkreipkite dėmesį, kad įtampos skirstytuvas yra būtinas norint sumažinti 5 V išėjimą iš optinio kodavimo įrenginio į 3,3 V arduino DUE.. Nesiųskite „OptoA“ir (arba) „OptoB 5V“išėjimų tiesiai į savo „arduino DUE“įvesties kaiščius, kitaip greičiausiai kepsite tuos įėjimus ar net visą plokštę. Tu buvai ispetaS.
Čia esančiame eskizo pavyzdyje aš naudosiu skaitmeninį kaištį 2 ir skaitmeninį kaištį 3 kaip optinį išėjimą A ir optinį išėjimą B.
#įtraukti
loginis optA_state = HIGH;
int xAxisMov = 2;
void setup () {
pinMode (2, INPUT_PULLUP); // OptA
pinMode (3, INPUT_PULLUP); // OptB
Pelė.pradėti ();
}
void loop () {
if (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);}}} // ciklo pabaiga
Tai mažos skiriamosios gebos 1X skaičiavimo optinis kodavimas. „Arcade“programoms to daugiau nei pakanka, tačiau galite lengvai padidinti skiriamąją gebą pridėję kodo eilutę.
PS: ar žinote, kad optiniai arkadiniai ratai ir arkadiniai suktukai techniškai yra tas pats prietaisas, turintis kitokią formą? Ar žinote, kad „trackballs“techniškai yra dviejų ašių suktukas? Tai reiškia, kad čia esantį kodą galima naudoti norint valdyti tikrus arkadinius suktukus ir, nedaug, lengvai modifikuojant, taip pat ir žaidimo kamuolius;)
6 žingsnis: kažkokia nuotrauka, arba tai neįvyko
Štai keletas mano padarytų skydų nuotraukų. Tai nėra aukšto lygio darbas (lažinkitės, aš nesu profesionalas), bet tai yra 100% mano „jamma Arcade“kabinete!
Rekomenduojamas:
Darbo su „I2C“jutiklio sąsaja pradžia ?? - Sąsaja su jūsų MMA8451 naudojant ESP32: 8 žingsniai
Darbo su „I2C“jutiklio sąsaja pradžia ?? - Sąsaja su jūsų MMA8451 naudojant ESP32: Šioje pamokoje sužinosite viską apie tai, kaip paleisti, prijungti ir gauti I2C įrenginį (akselerometrą), dirbantį su valdikliu (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Žmogaus ir kompiuterio sąsaja: Funkcija Gripper (pagaminta Kirigami) riešo judesiu naudojant EMG: 7 žingsniai
Žmogaus ir kompiuterio sąsaja: Funkcija Gripper (pagaminta Kirigami) pagal riešo judesį naudojant EMG: Taigi tai buvo mano pirmasis bandymas naudoti žmogaus ir kompiuterio sąsają. Naudodamas EMG jutiklį užfiksavau savo riešo judesio raumenų aktyvinimo signalus, juos apdorojau per python ir arduino ir paleido origami pagrindu pagautą griebtuvą
Kompiuterio klaviatūros sąsaja su 8051 mikrovaldikliu: 6 žingsniai
Kompiuterio klaviatūros sąsaja su 8051 mikrovaldikliu: Šiame projekte aš jums paaiškinau, kaip galime prijungti savo kompiuterio klaviatūrą prie 8051 mikrovaldiklio
Sukurkite Stepheno Hawkingo kompiuterio sąsają vos už 1000 rublių (15 USD) naudodami „Arduino“: 5 žingsniai
Sukurkite Stepheno Hawkingo kompiuterio sąsają vos už 1000 rublių (15 USD) naudodami „Arduino“: Viskas prasidėjo nuo klausimo „Kaip Stephenas Hawkingas kalba?“, Perskaičius apie jo kompiuterinę sistemą, man pasirodė, kad turėčiau pasiūlyti pigesnį sistemos versiją, nepakenkiant per daug funkcijų. Šis prietaisas
„Yaesu FT-100“kompiuterio sąsaja skaitmeniniams režimams: 3 žingsniai
„Yaesu FT-100 PC Link Interface“skaitmeniniams režimams: Čia aš pateikiu gaires, kaip sukurti „Yaesu FT-100“kompiuterio sąsajos sąsają. Ši sąsaja leidžia jums perduoti ir priimti garso signalus iš garso plokštės, kad galėtumėte valdyti HAM skaitmeninius režimus (FT8, PSK31 ir kt.). Papildomos informacijos galima