جدول المحتويات:
- الخطوة 1: الأجهزة
- الخطوة 2: المخططات
- الخطوة 3: رسم / كود
- الخطوة 4: ماذا عن تأخر الإدخال؟
- الخطوة 5: ماذا عن خزانات Jamma Racing؟
- الخطوة 6: بعض الصور ، أو لم يحدث
فيديو: Jammarduino DUE - DIY PC to Jamma Interface for Arcade Cabinets: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
سيوضح لك هذا التوجيه كيفية إنشاء درع بسيط لـ Arduino DUE لربط آلة أركيد أصلية مع موصل CRT و jamma منخفض الدقة بجهاز الكمبيوتر الخاص بك.
الركائز الرئيسية للدرع هي:
- لتضخيم إشارة الفيديو المنبعثة من بطاقة الفيديو (الجهد المنخفض جدًا لشاشة Arcade CRT الأصلية)
- لحماية شاشة CRT منخفضة الدقة من إشارات المزامنة الأفقية عالية التردد
- لترجمة الضغط على الزر الموجود على لوحة التحكم في Arcade إلى شيء يمكن لجهاز الكمبيوتر التعامل معه
سأوضح لك كيفية توسيع استخدام الواجهة للتحكم في عجلات وألعاب Arcade Racing.
ملاحظة: لا يجبر الدرع إشارة مزامنة الفيديو على ترددات منخفضة: أنت في حاجة إلى بعض البرامج المحددة لذلك. أقترح عليك استخدام أنظمة تشغيل CRT أو Soft15KHz.
الخطوة 1: الأجهزة
سأفترض أن لديك محطة لحام وبعض القصدير باليد وأنت تعرف كيفية استخدامها. نظرًا لأن مضخم الفيديو عبارة عن SMD بمسافة 0.65 مم ، أقترح عليك شراء بعض تدفق اللحام للمساعدة في لحام هذا الميكروب. لقد استخدمت قلم Rosing Mildly Activated (RMA) الرخيص "غير النظيف" بنتائج ممتازة.
تتكون الواجهة من:
- 1x Arduino DUE لوحة متحكم
- 1x THS7374 مضخم فيديو
- محول 1x TSSOP14 إلى DIP14
- مكبر صوت 1x
- 1x جمعة الأصابع
- لوحة نموذجية 1x 5x7 سم ، مزدوجة الجانب
- 1x 1N4148 ديود
- مقاومات 7x 1Kohm
- 1x 820 أوم المقاوم
- 3x 220 أوم المقاوم
- خط الشريط 1x ، تباعد 2.54 مم
- 1x كابل VGA
- 1x كابل صوت
الخطوة 2: المخططات
هنا مخطط ملون لمشروع كامل. ليس من الأرثوذكسية ، ولكن من السهل اتباعها ، على ما آمل.
الأسلاك سهلة كما تبدو:
- تأتي خطوط الألوان من موصل VGA للكمبيوتر الشخصي إلى مضخم الفيديو ؛ يخفض المقاوم 1Kohm إلى الأرض التيار إلى إدخال مضخم الفيديو. على جانب الإخراج ، تقلل المقاومة المتسلسلة التيار إلى CRT الممرات.
- يعتبر خط المزامنة أكثر "تعقيدًا" إلى حد ما: يتم إجراء المزامنة المنفصلة عن VGA مركّبة ، أولاً ، ثم يتم تخفيضها بواسطة مقسم الجهد لاحترام مواصفات Arduino DUE (منطق 3.3V). يتم حساب مقسم الجهد على افتراض وجود إشارة مزامنة 5 فولت.
- يمكن تشغيل مضخم الفيديو (THS7374) بجهد 3.3 فولت أو 5 فولت ؛ نظرًا لأن الطاقة عند 5 فولت تتيح نطاقًا أوسع من الفولتية / الإشارات ، ولأن THS7374 يمكن التحكم فيها بمقدار 3.3 فولت حتى لو تم عصرها عند 5 فولت ، فقد ذهبت إلى طريق 5 فولت.
- أرض الفيديو ، أرض اردوينو DUE ، أرضي THS7374 وأرضي موصل jamma قصيرة الدائرة.
- يجب ألا تكون خطوط Arduino DUE 5V و Jamma 5V قصيرة الدائرة.
- لا تقم بشحن مضخم الصوت من كبل USB: فأنت بحاجة إلى مصدر خارجي لذلك بسبب القيود الحالية (مثل PC ATX PSU). سيؤدي القيام بذلك إلى إتلاف منفذ USB أو حتى جهاز الكمبيوتر الخاص بك.
موصل VGA: كلمة تحذير
لقد أتيحت لي الفرصة مؤخرًا لتحديث جهاز الكمبيوتر المستخدم مع jammarduino DUE. حتى لو كنت قد اختبرته مع جهازي كمبيوتر مختلفين من قبل ، فقد استخدم كلاهما بطاقات ATI من نفس العائلة (ATI 9250 و 9550). تم تجهيز الكمبيوتر الجديد بجهاز HD5750 بإخراج تناظري DVI واحد (بدون VGA). أجبرني هذا على استخدام محول DVI (سلبي) إلى VGA. حسنًا ، بعد بعض المعاناة ، لاحظت أن كبل VGA المتصل بالمحول يجب أن يكون موصولًا بالأرض فقط إلى الطرف 5 من موصل VGA للعمل ، وليس دبابيس من 6 إلى 10 كما هو مذكور في معظم المخططات على الويب. ضع ذلك في الاعتبار في حالة عدم تمكنك من رؤية أي إشارة مزامنة خارج بطاقة الفيديو الخاصة بك.
الخطوة 3: رسم / كود
يجب عليك تثبيت Arduino IDE أولاً ؛ يجب عليك تثبيت SAM Cortex M3 Core أيضًا (غير موجود افتراضيًا). أخيرًا وليس آخرًا ، قم بتثبيت برامج تشغيل Arduino DUE. راجع البرنامج التعليمي الرسمي "Getting Started with Arduino Due" للحصول على أحدث المعلومات.
الرسم التخطيطي الذي تحتاج إلى تحميله على Arduino DUE مرفق هنا. قم بفك ضغط وتحميل "jammarduinoDUE.ino" لك Arduino IDE ، ثم تحميله إلى arduino DUE عبر منفذ "البرمجة". بعد أن يتم تحميل المخطط بنجاح ، افصل كابل USB من منفذ "البرمجة" وقم بتوصيل Arduino DUE عبر منفذ "Native USB" ، وإلا فلن يعمل جزء الإدخال من الكود.
بشكل أساسي ، يقيس Arduino DUE تردد المزامنة ويعطل مضخم الفيديو عندما تكون المزامنة عالية جدًا بالنسبة إلى CRT منخفض الدقة. يعالج Arduino DUE المدخلات القادمة من لوحة التحكم أيضًا ، ويرسل مفاتيح MAME الافتراضية عند الضغط على زر معين. يتم أيضًا تضمين وظيفة النقل (يتم تنشيطها عن طريق الضغط على زر P1 START) ، مثل الواجهات التجارية.
في الجدول الافتراضي خريطة المفاتيح. يمكنك تغيير خريطة المفاتيح الافتراضية أو إضافة أزرار حسب رغبتك مباشرة على الرسم التخطيطي بسهولة.
على سبيل المثال ، إذا كنت تريد تعيين مفاتيح التحكم في مستوى الصوت لمحاكيك ، فيجب عليك تحديد هذه المفاتيح (دعنا نقول لوحة المفاتيح "+" لرفع مستوى الصوت ولوحة المفاتيح "-" لخفض مستوى الصوت) في قائمة مفاتيح emu ، أولاً ؛ ثم أضف المفتاح الذي تم نقله إلى الأزرار التي تريد زيادة مستوى الصوت أو تقليله. لنفترض أنني أريد زيادة مستوى الصوت بالضغط على مفتاح shift وزر اللاعب 1 3. سأقوم بتعديل الخط
{26 ، عالية ، 0 ، 180 ، 180} ، // مسافة - P1 B3
إلى
{26 ، مرتفع ، 0 ، 180 ، 223} ، // مسافة - P1 B3 (+)
هذا "223" هو رمز حرف ASCII للوحة المفاتيح "+".
سأدعك تكتشف كيفية تعيين "-" (أو ما تفضله) لوظيفة "خفض مستوى الصوت" كتدريب (تلميح: رمز ASCII 222):)
يرجى أن تضع في اعتبارك أنه في MAME يمكنك فقط تعيين حجم وضع الخدمة ، وليس حجم المحاكاة العام ؛ هذا يعني أنه إذا كانت اللوحة التي تمت مضاهاتها لا تسمح بالتحكم في حجم البرنامج ، فلن يتأثر مستوى الصوت.
الخطوة 4: ماذا عن تأخر الإدخال؟
لقد أجريت بعض الاختبارات لمعرفة مدى التأخر الذي يمكن أن تقدمه الشفرة ؛ حسنًا ، عن طريق إرسال 3 أزرار ، اضغط في نفس الوقت ، تستغرق الحلقة الكاملة حوالي 4 مللي ثانية ليتم تنفيذها ، حتى أقل من 33 مللي ثانية ، يستمر الإطار عند 30 إطارًا في الثانية.
الخطوة 5: ماذا عن خزانات Jamma Racing؟
عجلة الجهد
إذا كانت الخزانة الخاصة بك عبارة عن خزانة سباق ، فمن المحتمل جدًا أن تكون العجلة قائمة على مقياس الجهد (يمكنك رؤية مقياس جهد 5 كيلو أوم في الجانب الخلفي من لوحة التحكم).
أول شيء أولاً ، قم بتنزيل وتثبيت مكتبة Joystick (في تاريخ اليوم ، يُقال إن الإصدار 1 فقط من المكتبة متوافق مع arduino DUE ، لكنها لا تزال مكتبة جيدة جدًا).
بعد ذلك ، أضف الأسطر القليلة التي تلي الرسم التخطيطي في الخطوة 4 للتعامل مع العجلة بسهولة (حيث تُترك لك الخطوط كتدريب …)
#يشمل
int deadZone = 0 ؛
الإعداد باطل() {
Joystick.begin () ؛}
حلقة فارغة() {
int readPot = analogRead (A3) ؛
int wheelPos = map (readPot، 0، 1023، -127، 127) ؛
إذا (wheelPos> deadZone || wheelPos <-deadZone) {Joystick.setXAxis (wheelPos)؛}
آخر {Joystick.setXAxis (0)؛}
}
كما ترى ، يمكنك تعيين منطقة ميتة إذا لزم الأمر (في عجلة أركيد تعمل بشكل جيد ، من الأفضل ضبطها على الصفر).
يعد توصيل مقياس الجهد إلى Arduino DUE أمرًا سهلاً: تنتقل المسامير الجانبية لمقياس الجهد إلى + 3.3 فولت و GND ، ودبوس الماسحة إلى منفذ اردوينو DUE التناظري (انظر الصورة للرجوع إليها). لقد حددت هنا الدبوس التمثيلي 3 (A3) كمدخل لمساحة مقياس جهد العجلة ، ولكن يمكنك ضبط الدبوس التمثيلي الذي يناسب احتياجاتك.
ملاحظة: هل تعلم أن الدواسات في خزانات السباق يتم التحكم فيها غالبًا بواسطة مقياس جهد ، من الناحية الفنية ، فإن العجلات والدواسات هي نفس الجهاز بشكل مختلف؟ هذا يعني أنه يمكن استخدام الكود هنا للتحكم في دواسات الممرات الأصلية أيضًا ؛)
عجلة بصرية
إذا كانت العجلة الخاصة بك بصرية ، فيمكن التعامل معها بسهولة أيضًا ، مرة أخرى ، مع تعديل بسيط على مخطط البداية.
إن pinout الشائع جدًا لمشفرات Arcade الضوئية (Taito spinners ، ومشفرات عجلات Atari وما إلى ذلك) هو:
1. البصريات خارج
2. + 5 فولت
3. GND
4. OptoB OUT
قم بتوصيل 2. و 3. بـ Arduino DUE 5V و GND ، و 1. و 4. إلى أي دبوس رقمي تريده مع الانتباه إلى أن مقسم الجهد ضروري لخفض خرج 5 فولت من المشفر البصري إلى 3.3 فولت يمكن لاردوينو DUE التعامل. لا ترسل مخرجات OptoA و / أو OptoB 5V مباشرة إلى دبابيس إدخال اردوينو DUE أو من المحتمل أن تقلى تلك المدخلات أو حتى اللوحة بأكملها. لقد تم تحذيرك.
في مثال الرسم هنا ، سأستخدم الدبوس الرقمي 2 والدبوس الرقمي 3 كمخرج ضوئي A ومخرج بصري B.
#يشمل
منطقية optA_state = عالية ؛
int xAxisMov = 2 ؛
الإعداد باطل() {
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)؛} آخر {Mouse.move (-xAxisMov، 0، 0)؛}}} // حلقة النهاية
هذا هو ترميز ضوئي منخفض الدقة 1X العد. إنه أكثر من كافٍ لتطبيقات Arcade ، ولكن يمكنك رفع الدقة بسهولة عن طريق إضافة بعض أسطر التعليمات البرمجية.
ملاحظة: هل تعلم أن عجلات الأركيد الضوئية وألعاب الأركيد هي تقنيًا نفس الجهاز بشكل مختلف؟ هل تعلم أن كرات المسار هي من الناحية الفنية دوارة ذات محورين؟ هذا يعني أنه يمكن استخدام الكود هنا للتحكم في مغازل الممرات الحقيقي ، ومع القليل من التعديلات السهلة على كرات المسار أيضًا ؛)
الخطوة 6: بعض الصور ، أو لم يحدث
إليكم بعض الصور للدرع الذي صنعته. إنه ليس عملاً رفيع المستوى (أراهن عليه ، أنا لست محترفًا) ، لكنه يتأرجح بنسبة 100٪ في خزانة Jamma Arcade!
موصى به:
شاشة 5V LCD مع Arduino due 3.3V I2C: 5 خطوات
شاشة 5V LCD مع Arduino Due 3.3V I2C: يهدف هذا المنشور إلى شرح طريقة أسهل لاستخدام Arduino Due (أو لوحة 3.3 فولت أخرى) مع شاشة LCD 16x2 الشائعة مع وحدة محول I2C. المشكلة الأولية هي أن شاشة LCD تحتاج 5V لإضاءةها الخلفية للعمل بشكل صحيح ، لكن SCL و SDA ص
Yaesu FT-100 PC Link Interface للأوضاع الرقمية: 3 خطوات
Yaesu FT-100 PC Link Interface للأوضاع الرقمية: أقدم هنا الإرشادات لإنشاء واجهة ارتباط للكمبيوتر الشخصي لـ Yaesu FT-100. تتيح لك هذه الواجهة إرسال واستقبال الإشارات الصوتية من بطاقة الصوت من أجل تشغيل أوضاع HAM الرقمية (FT8 ، PSK31 وما إلى ذلك). تتوفر معلومات إضافية
3 مراحل مولد موجة جيبية على أساس Arduino Due: 5 خطوات
3 المرحلة Sine Wave Generator استنادًا إلى Arduino Due: الغرض من هذه المشاركة هو مساعدة شخص يحاول الاستفادة من أداء Due الأكبر + نقص المرجع + ورقة البيانات غير المفيدة.هذا المشروع قادر على إنشاء ما يصل إلى 3 مراحل موجة جيبية @ 256 عينات / دورة بتردد منخفض (& lt ؛ 1 كيلو هرتز) و 16 ثانية
Visuino Pro Macchina Interface OBDII ابدأ وميض LED: 3 خطوات
Visuino Pro Macchina Interface OBDII ابدأ وميض LED: فيلم pokazuje najprostszy z programów którym rozpocząłem testowanie interfejsu MACCHINA M2 OBDII Translate: فيديو يعرض أبسط مثال من اختبار واجهة MACCHINA M2 OBDII
إضافة 24LC256 EEPROM إلى Arduino Due: 3 خطوات
إضافة 24LC256 EEPROM إلى Arduino Due: يفتقر اردوينو المستحق إلى eeprom. يضيف هذا التوجيه واحدًا ويسمح لك بتخزين القيم في ذاكرة غير متطايرة من شأنها أن تنجو من تحديث برنامج Arduino الثابت