Სარჩევი:

Jammarduino DUE - წვრილმანი კომპიუტერი Jamma ინტერფეისისთვის არკადული კაბინეტებისათვის: 6 ნაბიჯი
Jammarduino DUE - წვრილმანი კომპიუტერი Jamma ინტერფეისისთვის არკადული კაბინეტებისათვის: 6 ნაბიჯი

ვიდეო: Jammarduino DUE - წვრილმანი კომპიუტერი Jamma ინტერფეისისთვის არკადული კაბინეტებისათვის: 6 ნაბიჯი

ვიდეო: Jammarduino DUE - წვრილმანი კომპიუტერი Jamma ინტერფეისისთვის არკადული კაბინეტებისათვის: 6 ნაბიჯი
ვიდეო: Open Access Ninja: The Brew of Law 2024, ნოემბერი
Anonim
Jammarduino DUE - წვრილმანი კომპიუტერი Jamma ინტერფეისისთვის არკადული კაბინეტებისათვის
Jammarduino DUE - წვრილმანი კომპიუტერი Jamma ინტერფეისისთვის არკადული კაბინეტებისათვის

ეს ინსტრუქცია გაჩვენებთ, თუ როგორ უნდა შექმნათ მარტივი ფარი Arduino– სთვის, იმის გამო, რომ დააკავშიროთ ნამდვილი არკადული მანქანა დაბალი რეზოლუციის CRT და jamma კონექტორით თქვენს კომპიუტერში.

ფარის ძირითადი ჩამოსხმა არის:

- გააძლიეროს ვიდეო სიგნალი, რომელიც მოდის ვიდეო ბარათიდან (ძალიან დაბალი ძაბვა ნამდვილი Arcade CRT მონიტორისთვის)

- დაიცავით თქვენი დაბალი რეზოლუციის CRT მონიტორი ძალიან მაღალი სიხშირის ჰორიზონტალური სინქრონიზაციის სიგნალებისგან

- "გადათარგმნის" ღილაკი აჭერს არკადულ პანელზე იმას, რასაც კომპიუტერს შეუძლია გაუმკლავდეს

მე გაჩვენებთ თუ როგორ უნდა გააფართოვოთ ინტერფეისის გამოყენება Arcade Racing დისკებისა და სპინერების გასაკონტროლებლად.

შენიშვნა: ფარი არ აიძულებს ვიდეო სინქრონიზაციის სიგნალს დაბალ სიხშირეზე: თქვენ გჭირდებათ კონკრეტული პროგრამული უზრუნველყოფა ამისათვის. მე გირჩევთ გამოიყენოთ CRT emudrivers ან Soft15KHz.

ნაბიჯი 1: აპარატურა

მე ვივარაუდებ, რომ თქვენ გაქვთ შესადუღებელი სადგური და თუნუქით ხელით და თქვენ იცით როგორ გამოიყენოთ ისინი. ვინაიდან ვიდეო გამაძლიერებელი არის SMD 0.65 მმ სიმაღლით, მე გირჩევთ შეიძინოთ რაიმე შედუღების ნაკადი, რომელიც დაგეხმარებათ მიკრობის შედუღებაში. მე გამოვიყენე იაფი "არ გაწმენდა" Rosing მსუბუქად გააქტიურებული კალამი (RMA) შესანიშნავი შედეგებით.

ინტერფეისი შედგება:

- 1x Arduino DUE მიკროკონტროლის დაფა

- 1x THS7374 ვიდეო გამაძლიერებელი

- 1x TSSOP14 to DIP14 ადაპტერი

- 1x აუდიო გამაძლიერებელი

- 1x jamma fingerboard

- 1x 5x7 სმ პროტოტიპის დაფა, ორმაგი მხარე

- 1x 1N4148 დიოდი

- 7x 1Kohm რეზისტორები

- 1x 820 ohm რეზისტორი

- 3x 220 ohm რეზისტორი

- 1x ზოლის ხაზი, ინტერვალი 2.54 მმ

- 1x VGA კაბელი

- 1x აუდიო კაბელი

ნაბიჯი 2: სქემა

სქემატიკა
სქემატიკა

აქ მოცემულია მთელი პროექტის ფერადი სქემა. არც თუ ისე მართლმადიდებლური, მაგრამ უფრო ადვილია მისი მოყოლა, ჩემი იმედით.

სადენები ისეთივე ადვილია, როგორც გარეგნულად:

- ფერადი ხაზები მოდის PC VGA კონექტორიდან ვიდეო გამაძლიერებელთან; მიწაზე 1Kohm რეზისტორი ამცირებს დენს ვიდეო გამაძლიერებლის შეყვანამდე. გამომავალი მხრიდან სერიული წინააღმდეგობა ამცირებს მიმდინარეობას არკადულ CRT– მდე.

- სინქრონიზაციის ხაზი გარკვეულწილად უფრო "კომპლექსურია": VGA– სგან ცალკე სინქრონიზაცია ხდება კომპოზიტური, ჯერ, შემდეგ მცირდება ძაბვის გამყოფი Arduino DUE მახასიათებლების პატივისცემისათვის (3.3V ლოგიკა). ძაბვის გამყოფი გამოითვლება 5V სინქრონიზაციის სიგნალის გათვალისწინებით.

- ვიდეო გამაძლიერებელი (THS7374) შეიძლება იკვებებოდეს 3.3V ან 5V; 5V- ზე გაშვება საშუალებას იძლევა უფრო ფართო დიაპაზონში შეყვანის ძაბვები/სიგნალები და ის, რომ THS7374 შეიძლება კონტროლდებოდეს 3.3V- ით, თუნდაც 5V- ზე წვდომის შემთხვევაში, მე 5V გზით მივდიოდი.

- ვიდეო მიწა, arduino DUE გრუნტი, THS7374 გრუნტი და ჯამა კონექტორის გრუნტი მოკლედ არის ჩართული.

- Arduino DUE 5V და Jamma 5V ხაზები არ უნდა იყოს მოკლე შემოსაზღვრული.

- არ გამოუშვათ აუდიო გამაძლიერებელი USB კაბელიდან: თქვენ გჭირდებათ გარე წყარო ამისთვის, არსებული ლიმიტების გამო (ანუ PC ATX PSU). ამით თქვენ დააზიანებთ თქვენს USB პორტს ან თუნდაც თქვენს კომპიუტერს.

VGA კონექტორი: სიფრთხილის სიტყვა

მე ცოტა ხნის წინ მქონდა შესაძლებლობა განვაახლო კომპიუტერი, რომელიც გამოიყენება ჩემი jammarduino DUE– ით. მაშინაც კი, თუ ადრე ვცდილობდი მას ორი განსხვავებული კომპიუტერით, ორივე იყენებდა ერთი და იმავე ოჯახის ATI ბარათებს (ATI 9250 და 9550). ახალი კომპიუტერი აღჭურვილი იყო HD5750– ით ერთი DVI ანალოგური გამომავალით (არა VGA). ამან მაიძულა გამოვიყენო (პასიური) DVI to 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 ღილაკის დაჭერით), კომერციული ინტერფეისების მსგავსად.

ცხრილში ნაგულისხმევი გასაღების რუკა. თქვენ შეგიძლიათ შეცვალოთ ნაგულისხმევი გასაღების რუკა ან დაამატოთ ღილაკები თქვენი სურვილისამებრ ესკიზზე მარტივად.

მაგალითად, თუ გსურთ ემულატორისთვის მიანიჭოთ მოცულობის კონტროლის ღილაკები, თქვენ უნდა განსაზღვროთ ეს კლავიშები (ვთქვათ კლავიატურა "+" მოცულობის გაზრდისთვის და კლავიატურა "-" მოცულობის შემცირებისთვის) თქვენს emu კლავიშთა მენიუში, პირველ რიგში; შემდეგ დაამატეთ გადატანილი ღილაკი იმ ღილაკებს, რომლებისთვისაც გსურთ მოცულობის გაზრდა ან შემცირება. ვთქვათ, მინდა მოცულობის გაზრდა 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 = რუკა (წაიკითხეთ ქოთანი, 0, 1023, -127, 127);

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

სხვა {Joystick.setXAxis (0);}

}

როგორც ხედავთ, საჭიროების შემთხვევაში შეგიძლიათ დააყენოთ ზონა (კარგ სამუშაო არკადულ ბორბალზე უმჯობესია მისი ნულამდე დაყენება).

Arduino DUE– სთვის პოტენომეტრის გაყვანილობა მარტივია: პოტენომეტრის გვერდითი ბუდეები მიდის +3.3V და GND– ზე, გამწმენდის ბუდე arduino DUE ანალოგიურ პორტზე (იხილეთ სურათი ცნობისთვის). მე აქ განვსაზღვრე ანალოგური პინი 3 (A3), როგორც ბორბლის პოტენომეტრის გამწმენდის შეყვანა, მაგრამ თქვენ შეგიძლიათ დააყენოთ ანალოგური პინი, რომელიც საუკეთესოდ მოერგება თქვენს მოთხოვნებს.

PS: იცით თუ არა, რომ სარბოლო კაბინეტში პედლებს ხშირად აკონტროლებენ პოტენომეტრი, ვიდრე ტექნიკურად ბორბლები და პედლები ერთი და იგივე მოწყობილობაა განსხვავებული ფორმის? ეს ნიშნავს, რომ აქ კოდი შეიძლება გამოყენებულ იქნას ნამდვილი არკადული პედლების გასაკონტროლებლად;)

ოპტიკური ბორბალი

თუ თქვენი ბორბალი ოპტიკურია, ის ასევე ადვილად შეიძლება გატარდეს, ისევ და ისევ ესკიზის უმნიშვნელო მოდიფიკაციით.

ძალიან გავრცელებული პინოტივი ოპტიკური არკადული კოდირებისათვის (ტაიტოს სპინერები, ატარის ბორბლების კოდირები და ასე შემდეგ) არის:

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

დაუკავშირეთ 2. და 3. Arduino- ს DUE 5V და GND, და 1. და 4. ნებისმიერ ციფრულ პინთან, რომლის მიხედვითაც გსურთ ყურადღება მიაქციოთ, რომ ძაბვის გამყოფი აუცილებელია ოპტიკური შიფრატორიდან 5V გამომავალი 3.3V arduino DUE– ს დასამცირებლად. რა არ გააგზავნოთ OptoA და/ან OptoB 5V გამომავალი პირდაპირ თქვენს arduino DUE შესასვლელ ქინძისთავებში, ან, სავარაუდოდ, შეწვით ამ შეყვანას ან თუნდაც მთელ დაფას. Შენ გაგაფრთხილეს.

მაგალითის ესკიზში მე გამოვიყენებ ციფრულ პინ 2 -ს და ციფრულ პინ 3 -ს, როგორც ოპტიკურ A- ს და ოპტიკურ B- ს.

#ჩართეთ

ლოგიკური optA_state = მაღალი;

int xAxisMov = 2;

void setup () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

თაგვი. დაწყება ();

}

ბათილი მარყუჟი () {

if (optA_state == HIGH && digitalRead (2) == LOW) {

optA_state =! optA_state;

if (digitalRead (3) == HIGH) {Mouse.move (xAxisMov, 0, 0);} სხვა {Mouse.move (-xAxisMov, 0, 0);}}} // მარყუჟის დასასრული

ეს არის დაბალი რეზოლუციის 1X დათვლის ოპტიკური კოდირება. ეს საკმარისზე მეტია Arcade პროგრამებისთვის, მაგრამ თქვენ შეგიძლიათ მარტივად გაზარდოთ რეზოლუცია კოდის რამდენიმე ხაზის დამატებით.

PS: იცით, რომ ოპტიკური არკადული ბორბლები და არკადული სპინერები ტექნიკურად ერთი და იგივე მოწყობილობაა განსხვავებული ფორმით? იცით თუ არა, რომ ბურთი ბურთები ტექნიკურად 2 ღერძიანი სპინერია? ეს ნიშნავს, რომ აქ კოდი შეიძლება გამოყენებულ იქნას ნამდვილი არკადული მბრუნავების გასაკონტროლებლად და, მცირეოდენი, მარტივი მოდიფიკაციითაც;)

ნაბიჯი 6: რამდენიმე სურათი, ან ეს არ მოხდა

რაღაც სურათი, ან არ მოხდა!
რაღაც სურათი, ან არ მოხდა!
რაღაც სურათი, ან არ მოხდა!
რაღაც სურათი, ან არ მოხდა!
რაღაც სურათი, ან არ მოხდა!
რაღაც სურათი, ან არ მოხდა!
რაღაც სურათი, ან არ მოხდა!
რაღაც სურათი, ან არ მოხდა!

აქ არის რამოდენიმე სურათი ჩემი გაკეთებული ფარისა. ეს არ არის მაღალი დონის ნამუშევარი (დადგით, მე არ ვარ პროფესიონალი), მაგრამ ის 100% ირევა ჩემს jamma Arcade კაბინეტში!

გირჩევთ: