Բովանդակություն:

Jammarduino DUE - DIY համակարգչից մինչև Jamma ինտերֆեյս Արկադային պահարանների համար. 6 քայլ
Jammarduino DUE - DIY համակարգչից մինչև Jamma ինտերֆեյս Արկադային պահարանների համար. 6 քայլ

Video: Jammarduino DUE - DIY համակարգչից մինչև Jamma ինտերֆեյս Արկադային պահարանների համար. 6 քայլ

Video: Jammarduino DUE - DIY համակարգչից մինչև Jamma ինտերֆեյս Արկադային պահարանների համար. 6 քայլ
Video: How Use Stable Diffusion, SDXL, ControlNet, LoRAs For FREE Without A GPU On Kaggle Like Google Colab 2024, Նոյեմբեր
Anonim
Jammarduino DUE - DIY համակարգիչ Jamma ինտերֆեյսի համար Arcade Cabinets- ի համար
Jammarduino DUE - DIY համակարգիչ Jamma ինտերֆեյսի համար Arcade Cabinets- ի համար

Այս ուսանելի ծրագիրը ցույց կտա ձեզ, թե ինչպես ստեղծել պարզ վահան Arduino- ի համար `ԱՀ -ի ցածր լուծաչափի CRT և jamma միակցիչով իսկական արկադային մեքենայի միացման համար` ձեր համակարգչին:

Վահանի հիմնական թափոններն են.

- վիդեո քարտից դուրս եկող տեսազանգը ուժեղացնելու համար (չափազանց ցածր լարման իսկական Arcade CRT մոնիտորի համար)

- պաշտպանել ձեր ցածր լուծման CRT մոնիտորը չափազանց բարձր հաճախականության հորիզոնական համաժամացման ազդանշաններից

- «թարգմանել» կոճակը սեղմում է արկադային կառավարման վահանակի վրա այն բանի, ինչ համակարգիչը կարող է կարգավորել

Ես ձեզ ցույց կտամ, թե ինչպես կարելի է ընդլայնել ինտերֆեյսի օգտագործումը Arcade Racing անիվներն ու պտտիչները վերահսկելու համար:

Ուշադրություն դարձրեք. Վահանը ՉԻ ստիպում տեսահամաժամացման ազդանշանը ցածր հաճախականությունների. Դրա համար ձեզ անհրաժեշտ է որոշակի ծրագրակազմ: Ես առաջարկում եմ ձեզ օգտագործել CRT emudrivers կամ Soft15KHz:

Քայլ 1: Սարքավորումներ

Ենթադրեմ, որ դուք ունեք զոդման կայան և ձեռքով մի անագ, և դուք գիտեք, թե ինչպես օգտագործել դրանք: Տեսանյութի ուժեղացուցիչը SMD է ՝ 0.65 մմ բարձրությամբ, ես առաջարկում եմ ձեզ ձեռք բերել զոդման հոսք ՝ այդ միկրոբին կպցնելու համար: Ես օգտագործեցի էժան «ոչ մաքուր» Rosing մեղմ ակտիվացված (RMA) գրիչ ՝ գերազանց արդյունքներով:

Ինտերֆեյսը կազմված է.

- 1x Arduino DUE միկրոկառավարիչի տախտակ

- 1x THS7374 վիդեո ուժեղացուցիչ

- 1x TSSOP14- ից DIP14 ադապտեր

- 1x աուդիո ուժեղացուցիչ

- 1x jamma մատանի

- 1x 5x7 սմ նախատիպ տախտակ, կրկնակի կողմ

- 1x 1N4148 դիոդ

- 7x 1Kohm դիմադրիչներ

- 1x 820 օմ դիմադրություն

- 3x 220 օմ դիմադրություն

- 1x շերտագիծ, 2.54 մմ հեռավորությամբ

- 1x VGA մալուխ

- 1x աուդիո մալուխ

Քայլ 2: Սխեմաներ

Սխեմաներ
Սխեմաներ

Ահա ամբողջ նախագծի գունավոր սխեման: Ոչ այնքան ուղղափառ, բայց ավելի հեշտ է հետևել, իմ հույսերով:

Մալուխները նույնքան հեշտ են, որքան արտաքին տեսք ունեն.

- գունային գծերը գալիս են համակարգչի VGA միակցիչից դեպի վիդեո ուժեղացուցիչ; 1 Կահմ դիմադրողը գետնին իջեցնում է հոսանքը տեսաակտիվացուցիչի մուտքի վրա: Ելքի կողմում մի շարք դիմադրություն իջեցնում է հոսանքը դեպի արկադային CRT:

- համաժամացման գիծն ինչ -որ կերպ ավելի «բարդ» է. VGA- ից առանձին համաժամացումը կազմվում է կոմպոզիտային, սկզբում, այնուհետև իջեցվում է լարման բաժանարարով `հարգելու Arduino DUE- ի բնութագրերը (3.3V տրամաբանություն): Լարման բաժանարարը հաշվարկվում է ՝ ենթադրելով 5 Վ համաժամացման ազդանշան:

- վիդեո ուժեղացուցիչը (THS7374) կարող է սնուցվել 3.3 Վ կամ 5 Վ լարման դեպքում; 5V- ով սնուցումը թույլ է տալիս մուտքագրվող լարման/ազդանշանների ավելի լայն տեսականի, և որ THS7374- ը կարող է վերահսկվել 3.3V- ով, նույնիսկ եթե 5V- ի հյութալի լինի, ես գնացի 5V ճանապարհով:

- վիդեո հիմք, arduino DUE հիմք, THS7374 հիմք և jamma միակցիչ գետնը կարճ միացված են:

- Arduino DUE 5V և Jamma 5V գծերը ՊԵՏՔ ՉԻ ԿԱՐORT ՇՏԱՊՎԱ:

- Մի հանել ձայնային ուժեղացուցիչը USB մալուխից. Դրա համար անհրաժեշտ է արտաքին աղբյուր ՝ ընթացիկ սահմանափակումների պատճառով (այսինքն ՝ PC ATX PSU): Դրանով դուք կվնասեք ձեր USB պորտը կամ նույնիսկ ձեր համակարգիչը:

VGA միակցիչ. Զգուշության խոսք

Վերջերս ես հնարավորություն ունեցա թարմացնել իմ jammarduino DUE- ով օգտագործվող համակարգիչը: Նույնիսկ եթե նախկինում այն փորձարկել էի երկու տարբեր ԱՀ -ով, նրանք երկուսն էլ օգտագործում էին նույն ընտանիքի ATI քարտերը (ATI 9250 և 9550): Նոր համակարգիչը հագեցած էր HD5750- ով ՝ մեկ DVI անալոգային ելքով (ոչ VGA): Սա ստիպեց ինձ օգտագործել (պասիվ) DVI դեպի VGA ադապտեր: Դե, որոշ դժվարություններից հետո ես նկատեցի, որ ադապտորին միացված VGA մալուխը ՊԵՏՔ է աշխատի միայն VGA միակցիչի 5 -րդ կապին միացված հիմքը, այլ ոչ թե 6 -ից 10 -ի կապում, ինչպես նշված է համացանցի շատ սխեմաներում: Հիշեք սա այն դեպքում, երբ ձեր տեսաքարտից չեք կարող տեսնել համաժամացման ազդանշան:

Քայլ 3: Էսքիզ/ծածկագիր

Էսքիզ/ծածկագիր
Էսքիզ/ծածկագիր

Նախ պետք է տեղադրել Arduino IDE; դուք նույնպես պետք է տեղադրեք SAM Cortex M3 Core- ը (լռելյայն ներկա չէ): Վերջին, բայց ոչ պակաս կարևորը, տեղադրեք Arduino DUE վարորդներ: Առավել արդիական տեղեկատվության համար դիմեք «Սկսել Arduino Due- ի հետ» պաշտոնական ձեռնարկին:

Էսքիզը, որն անհրաժեշտ է ձեր Arduino DUE- ում վերբեռնելու համար, կցված է այստեղ: Անջատեք և բեռնեք «jammarduinoDUE.ino» - ն Arduino IDE- ում, այնուհետև վերբեռնեք arduino- ում DUE «ծրագրավորման» պորտի միջոցով: Էսքիզը հաջողությամբ վերբեռնելուց հետո անջատեք USB մալուխը «ծրագրավորման» պորտից և միացրեք Arduino DUE- ը «Մայրենի USB» պորտի միջոցով, հակառակ դեպքում ծածկագրի մուտքային մասը չի աշխատի:

Հիմնականում, Arduino DUE- ն չափում է համաժամացման հաճախականությունը և անջատում է տեսաընդլայնիչը, երբ համաժամացումը չափազանց բարձր է ցածր ռեզոնանսային CRT- ի համար: Arduino DUE- ն նույնպես կարգավորում է կառավարման վահանակից եկող մուտքերը ՝ ուղարկելով կանխադրված MAME ստեղները հատուկ կոճակների սեղմման ժամանակ: Տեղադրված է նաև հերթափոխի գործառույթը (ակտիվացված ՝ սեղմելով P1 START կոճակը սեղմված), ինչպես առևտրային միջերեսները:

Աղյուսակում ստանդարտ ստեղնաշարի քարտեզը: Կարող եք հեշտությամբ փոխել ստեղնաշարի ստեղնաշարի քարտեզը կամ ձեր կամքով ավելացնել կոճակներ ՝ անմիջապես ուրվագծի վրա:

Օրինակ, եթե ցանկանում եք ձեր էմուլյատորին նշանակել ձայնի կառավարման ստեղներ, ապա նախ պետք է այդ ստեղները սահմանեք (ասենք `«+»ձայնի բարձրացման համար և ստեղնաշար»- ձայնի իջեցման համար» ձեր էմու ստեղների ընտրացանկում; ապա ավելացրեք տեղաշարժված բանալին այն կոճակներին, որոնց վրա ցանկանում եք, որ ձայնի բարձրացում կամ նվազում նշանակվի: Ասենք, որ ուզում եմ բարձրացնել ձայնը ՝ սեղմելով shift ստեղնը և Player 1 կոճակը 3. Ես փոփոխելու եմ տողը

{26, HIGH, 0, 180, 180}, // տարածք - P1 B3

դեպի

{26, HIGH, 0, 180, 223}, // տարածք - P1 B3 (+)

Այդ «223» -ը ստեղնաշարի «+» ASCII նիշերի կոդն է:

Ես ձեզ թույլ կտամ պարզել, թե ինչպես կարելի է «-» (կամ այն, ինչ նախընտրում եք) «ձայնը նվազեցնելու» գործառույթին վերագրել որպես վարժություն (ակնարկ. ASCII ծածկագիր 222):)

Խնդրում ենք նկատի ունենալ, որ MAME- ում կարող եք նշանակել միայն ծառայության ռեժիմի ծավալը, այլ ոչ թե էմուլյացիայի ընդհանուր ծավալը. սա նշանակում է, որ եթե ընդօրինակված տախտակը թույլ չի տալիս ծրագրային ապահովման ձայնի վերահսկում, ձայնը չի ազդի:

Քայլ 4. Ի՞նչ կասեք մուտքային հետաձգման մասին:

Ես որոշ թեստեր արեցի ՝ տեսնելու համար, թե որքան հետաձգում կարող է մտցնել կոդը: Դե, ուղարկելով 3 կոճակ, միաժամանակ սեղմեք ամբողջական հանգույցը տևելու է մոտ 4 ms, մինչդեռ 33 ms- ից պակաս շրջանակը տևում է 30 FPS:

Քայլ 5: Ինչ վերաբերում է Jamma Racing կաբինետներին:

Ինչ վերաբերում է Jamma Racing կաբինետներին
Ինչ վերաբերում է Jamma Racing կաբինետներին

Պոտենցիոմետր անիվ

Եթե ձեր կաբինետը մրցարշավային կաբինետ է, շատ հավանական է, որ անիվը հիմնված է պոտենցիոմետրի վրա (կառավարման վահանակի հետևի մասում կարող եք տեսնել 5 Կոմ հզորության պոտենցիոմետր):

Առաջին հերթին, ներբեռնեք և տեղադրեք Joystick գրադարանը (այսօրվա դրությամբ գրադարանի միայն 1 -ին տարբերակը է համատեղելի arduino DUE- ի հետ, բայց այն դեռ շատ լավ գրադարան է):

Այնուհետև, ավելացրեք մի քանի տող, որոնք հաջորդում են 4 -րդ քայլի էսքիզին ՝ անիվը հեշտությամբ բռնելու համար (որտեղ տեղադրել տողերը, որոնք ձեզ մնում են որպես վարժություն …)

#ներառում

int deadZone = 0;

void setup () {

Joystick.begin ();}

դատարկ շրջան () {

int readPot = analogRead (A3);

int wheelPos = քարտեզ (կարդալPot, 0, 1023, -127, 127);

if (wheelPos> deadZone || wheelPos <-deadZone) {Joystick.setXAxis (wheelPos);}

այլ {Joystick.setXAxis (0);}

}

Ինչպես տեսնում եք, անհրաժեշտության դեպքում կարող եք սահմանել փակուղի (լավ աշխատանքային արկադային անիվի դեպքում լավագույնն է այն զրոյի դնել):

Arduino- ի միջոցով պոտենցիոմետրի միացումն ուղղակի է. Պոտենցիոմետրի կողային կապումներն անցնում են +3.3V և GND, մաքրիչի քորոցը arduino DUE անալոգային պորտին (տե՛ս նկարը ՝ հղման համար): Ես այստեղ սահմանեցի անալոգային 3 -րդ կապը (A3) որպես անիվի պոտենցիոմետրի մաքրիչ սարքի մուտք, բայց կարող եք սահմանել անալոգային քորոցը, որն առավելագույնս համապատասխանում է ձեր կարիքներին:

Հ. Գ. Գիտե՞ք, որ մրցասրահներում ոտնակները հաճախ կառավարվում են պոտենցիոմետրով, քանզի տեխնիկապես անիվներն ու ոտնակները նույն սարքն են ՝ այլ ձևով: Սա նշանակում է, որ այստեղի ծածկագիրը կարող է օգտագործվել նաև իսկական արկադային ոտնակներ վերահսկելու համար;)

Օպտիկական անիվ

Եթե ձեր անիվը օպտիկական է, այն նույնպես կարող է հեշտությամբ վարվել ՝ կրկին, սկզբնական ուրվագծի փոքր փոփոխությամբ:

Օպտիկական Արկադային կոդավորիչների (Taito մանողներ, Atari անիվների կոդավորիչներ և այլն) շատ տարածված քողարկումը հետևյալն է.

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

Միացրեք 2. և 3. Arduino- ին DUE 5V և GND, և 1. և 4. ցանկացած թվային քորոցին, որը ցանկանում եք ուշադրություն դարձնել, որ լարման բաժանարարն անհրաժեշտ է օպտիկական կոդավորիչից 5 Վ ելքը իջեցնելու համար 3.3V arduino DUE- ով. Մի ուղարկեք OptoA և/կամ OptoB 5V ելքերն անմիջապես ձեր arduino DUE մուտքի կապումներին, հակառակ դեպքում, ամենայն հավանականությամբ, դրանք կթափեք կամ նույնիսկ ամբողջ տախտակը: Ձեզ զգուշացրել են:

Էսքիզների օրինակում ես կօգտագործեմ թվային կապ 2 և թվային կապ 3 որպես օպտիկական դուրս A և օպտիկական դուրս B:

#ներառում

բուլյան optA_state = HIGH;

int xAxisMov = 2;

void setup () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

Mouse.begin ();

}

դատարկ շրջան () {

եթե (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);}}} // հանգույցի վերջ

Սա ցածր լուծաչափով 1X հաշվիչ օպտիկական կոդավորում է: Դա ավելի քան բավարար է Arcade ծրագրերի համար, բայց կարող եք հեշտությամբ բարձրացնել լուծաչափը ՝ ավելացնելով որոշ տող կոդ:

Հ. Գ. Գիտե՞ք, որ օպտիկական արկադային անիվները և արկադային մանողները տեխնիկապես նույն սարքն են ՝ այլ ձևով: Գիտե՞ք, որ գնդաձևերը տեխնիկապես 2 առանցքի մանող են: Սա նշանակում է, որ այստեղի ծածկագիրը կարող է օգտագործվել իրական արկադային պտույտները վերահսկելու և, մի քանի, հեշտ փոփոխություններով, նաև գնդակներ;)

Քայլ 6: Որոշ լուսանկարներ, կամ դա տեղի չունեցավ:

Որոշ լուսանկարներ, կամ դա տեղի չունեցավ
Որոշ լուսանկարներ, կամ դա տեղի չունեցավ
Որոշ լուսանկարներ, կամ դա տեղի չունեցավ
Որոշ լուսանկարներ, կամ դա տեղի չունեցավ
Որոշ լուսանկարներ, կամ դա տեղի չունեցավ
Որոշ լուսանկարներ, կամ դա տեղի չունեցավ
Որոշ լուսանկարներ, կամ դա տեղի չունեցավ
Որոշ լուսանկարներ, կամ դա տեղի չունեցավ

Ահա իմ պատրաստած վահանի մի քանի նկար: Դա բարձր մակարդակի աշխատանք չէ (գրազ եկեք, ես պրոֆեսիոնալ չեմ), բայց դա 100% -ով ճոճվում է իմ jamma Arcade Cabinet- ում:

Խորհուրդ ենք տալիս: