بدأ هذا المشروع عندما قررت تحديث عجلة القيادة الخاصة بي بحيث يتناسب مع متطلبات قيادة SIM الشخصية ، وهو أمر يمثل تجربة القيادة مع الواقعية وعدم وجود الرتوش .
ولكن ، بعد قولي هذا ، يجب أن تعمل مع أي قاعدة ووحدة توصيل متوافقة ، لأنها تحاكي عجلة القيادة F1.
لقد وضعت أهدافي عالية وقدمت قائمة بالأشياء التي أردت أن تعرضها عجلة القيادة.
يجب أن تضم عجلة Steerig جميع الأزرار المتوفرة على وحدة تحكم PlayStation DualShock 4
أردت تضمين عرض للإعدادات المتعلقة بعجلة القيادة (وربما التحديثات المستقبلية)
ترميزات دوارة للوصول السريع إلى وظائف القيادة اللازمة (توازن الفرامل ، ABS والتحكم في الجر)
أردت أيضًا تضمين زر عمل مشترك مخصص (CAB) من شأنه أن يمكّنني من زيادة أو انخفاض - بنقرة واحدة - أي من الوظائف المذكورة أعلاه كمية x من المرات.
نظرًا لأنه ليس لدي وصول فوري إلى طابعة ثلاثية الأبعاد أو آلة CNC ، فقد قررت الذهاب مع واحدة من تصميمات 3DRAP.it. بمساعدة أنطونيو ، قمنا بتصميم نسخة جديدة من العجلة الحالية التي لديهم على المخزون ، وتطابق تصميمي أدناه.
شاهد عرض فيديو سريع للعجلة أثناء العمل.
تمت طباعة الملصقات باستخدام حبر قياسي على ورقة ملصق A4 ، ثم مغطاة بشريط تعبئة شفاف.
قم بتنزيل ورقة الملصقات هنا (PDF).
أهم شيء يجب تذكره مع الأجهزة هو أن قاعدة Thrustmaster تعمل على تشغيل عجلة القيادة الخاصة بك مع ~ 3،5v. يجب أن يكون كل ما تستخدمه قادرًا على التشغيل على هذا الجهد.
منذ البداية ، كانت الفكرة هي بناء هذا حول لوحة Arduino Nano . لقد كانت تجربة سابقة مع هذا النظام الأساسي وحقيقة أنني وجدت بعض نقاط البداية على الإنترنت جعل هذا القرار سهلاً.
المقبل كان الشاشة. أردت فقط الشاشة كوسيلة بالنسبة لي لعرض الإعدادات وتحريرها على عجلة القيادة ، وليس للاتصال أو عرض القياس عن بعد. لذلك ، فإن شاشة LCD خلفية بسيطة 16 × 2 تكفي. للحفاظ على محدودة GPIO ، أضفت أيضًا حقيبة الظهر I 2 C.
كانت عمليات التشفير الدوارة بعض الشيء لأن Arduono Nano لا يدعم العديد من GPIO. في نهاية اليوم ، ذهبت مع ثلاثة لوحات Duppanet I 2 C Rotary Encoder Mini v2.1. إنهم يعملون بشكل رائع ، ولا يفوتكون أبدًا الضربة ولا يتطلبون سوى 3 GPIO.
أخيرًا ، بالنسبة للمفاتيح الدوارة ، استخدمت مفتاحان دوارين مينيين مكون من 8 اتجاهات ، كل واحد يقود GPIO التناظري واحد ، مما يقلل من GPIO المطلوب أكثر. الفكرة بسيطة للغاية ، ويمكنك معرفة المزيد هنا.
كنت بحاجة إلى 22 زرًا لأداء جميع الفونسيتون التي خططت لها. لقد حصلت عليهم من بائعي متعددين عبر الإنترنت دون أي شخص معين يذكره. معظم الأزرار هي مفاتيح مؤقتة بسيطة (ON)-باستثناء التبديل (ON) -OFF- (ON). بالنسبة لمحولات Paddle 3Drap.it يوفر خلل microswitches الثقيلة التي تتناسب مع العلبة.
؟ إليك القائمة الكاملة للأجهزة التي استخدمتها.
هذا هو المكان الذي تلقيت فيه الكثير من المساعدة من المجتمع (الرجاء رؤية الاعتمادات أدناه). لقد أجريت بحثي ووجدت أن الكثير من الناس كانوا يقومون بأشياء مماثلة ، لكن لا شيء بالطريقة التي أردت أن تعمل بها عجلة القيادة الخاصة بي. لذلك ، اتصلت ببعضهم ، وحصلت على بعض الأفكار وبدأت في بناء نسختي الخاصة.
كانت نقطة البداية الخاصة بي هي هذا المنشور بواسطة Taras ، حيث حصلت على أدلة اتصال الأجهزة والبرامج الأساسية إلى T300. كان هذا أيضًا أول منشور قرأته قادني في هذه الرحلة. لقد كان تاراس مساعدة هائلة لأنه كان يستجيب لجميع أسئلتي الفنية.
بعد ذلك ، وجدت عكسيًا Bits Morksmaster F1 Howsmaster F1 في مشروع من قبل Bram Harmsen ، والذي يتضمن أزرار L3 & R3 ، والتي بدورها غير متوفرة بشكل عام على أي عجلة قيادة أخرى. بعد كل المعلومات المطلوبة لتكرار جميع الإجراءات ، بدأت في وضعها جميعًا معًا.
لن أخوض في الكثير من التفاصيل على هذا الرمز هنا ، لكنك نرحب بك في مشاهدته في الريبو. لقد أضفت أكبر عدد ممكن من التعليقات.
؟ عرض ملفات رسم Arduino
تتصرف العجلة إلى حد كبير مثل أي عجلة أخرى في السوق. إنه يحاكي جميع أزرار وحدة تحكم PlayStation DualShock 4. الاختلافات الرئيسية هي مصفوفة الأزرار وقائمة العرض وأجهزة الترميز الدوار والمفاتيح الدوارة (وظائف الكابينة).
باسم حفظ GPIO على Nano ، قمت بإنشاء مصفوفة زر 5x5 لدعم الأزرار الـ 22 التي طلبتها لتصميمي (نعم ، لدي 3 لتجنيب!).
️ هنا مصفوفة الزر .
كانت هناك بعض الأسباب التي أردت عرضها. أولاً ، كنت بحاجة إلى طريقة لتغيير إعدادات العجلات دون الحاجة إلى توصيلها بجهاز كمبيوتر. ثانياً ، اعتقدت أيضًا أنه من الجيد أن يكون لديك ساعة لعرض وقت وتاريخ العالم الحقيقي. ثالثًا ، يمكن استخدام الشاشة في التحديثات المستقبلية لعرض القياس عن بعد ... (ولكن لا شيء مخطط له بعد). وأخيراً ، يبدو الأمر رائعًا.
يتم التحكم في الشاشة بواسطة أزرار العرض الثلاثة:
القائمة: افتح/أغلق قائمة العجلات
التالي: قم بالتمرير من خلال القائمة
حدد: حدد خيارًا
عرض خيارات القائمة:
وضع العجلات: اضبط وضع العجلة اعتمادًا على النظام الأساسي الذي تلعبه:
PS - وضع PlayStation (PS)
PC - وضع (PC) المتقدم
التخلص. الوضع: قم بتعيين وضع العرض عند تشغيل مفاتيح Display. في كل مرة تضغط على زر ، يعرض وظيفته:
PS - الضغط على أي زر يعرض وظيفة زر PlayStation (Cross ، Triangle ، L2 ، R2 ، ... إلخ)
GT - الضغط على أي زر يعرض تعيين زر المحاكاة وفقًا لتفضيلاتي الشخصية (محدد الحفرة ، HUD ، المساحات ، ... إلخ)
keypress: عرض الزر keypress على الشاشة
التاريخ/الوقت: إظهار أو إخفاء التاريخ والوقت على الشاشة الرئيسية
الجرس - قم بتشغيل الجرس أو إيقاف تشغيله
chirp ساعة - نعم ، يمكن أن يصدر أيضًا كل ساعة لتتبع الوقت الذي تقضيه على المحاكاة
العرض - قم بإيقاف تشغيل الشاشة (أي زر عرض يعيده مرة أخرى)
وقت التشغيل - عرض الوقت منذ تمهيد عجلة القيادة ، حتى تعرف المدة التي تم تشغيلها
تسمح المشفرات الدوارة بالوصول السريع إلى توازن الفرامل ، و ABS والتحكم في الجر أثناء القيادة. تعتبر عمليات الترميز الدوارة باردة لأنه يمكنك تعديل الإعدادات بسرعة دون الحاجة إلى صرف انتباه نفسك على قوائم الشاشة وما إلى ذلك.
تم تعيين المشفرات الدوارة على النحو التالي:
وصف | تعفن اليسار. (-) | تعفن الحق. (+) |
---|---|---|
توازن الفرامل (BB) | D-PAD أسفل | D-PAD UP |
نظام الكبح المضاد للوكيلة (ABS) | L3 | R3 |
التحكم في الجر (TC) | اليسار D-PAD | D-PAD يمين |
وصف | تعفن اليسار. (-) | تعفن الحق. (+) |
---|---|---|
توازن الفرامل (BB) | تحت | أعلى |
نظام الكبح المضاد للوكيلة (ABS) | 20 | 21 |
التحكم في الجر (TC) | غادر | يمين |
؟ فيما يلي خريطة روابط التحكم التي قمت بتطبيقها في Assetto Corsa Complizione لكلا المنصتين.
هذا شيء فكرت فيه أثناء مشاهدة مقطع فيديو حيث كان نيكو روزبرغ يشرح كيف تحتاج إلى تحويل توازن الفرامل من الأمام إلى الخلف والخلف عدة مرات في حضن واحد لتحسين قيادتك. يمكنك بالطبع استخدام المشفرات الدوارة ، ولكن لا يمكنك أن تكون دقيقًا ، خاصةً مع ردود الفعل التي ركلتها على عجلة القيادة.
تتمثل الفكرة في إنشاء أزرار محددة يمكنها تكرار نقرات mutliple اعتمادًا على تفضيلاتك. باستخدام مفاتيح الدوار ، يمكنك ضبط المعلمات بسرعة:
وضع الكابينة: يحدد الوظيفة التي تريد تكرارها (BB ، ABS ، TC)
خطوات الكابينة: حدد عدد المرات التي تريد فيها الضغط على الزر (1x-8x)
CAB -/+: عند تحديد زر الكابينة -/+ ، سيتم تنفيذها على تفضيلاتك المحددة
كنت أرغب في الحفاظ على الأشياء المدمجة قدر الإمكان بحيث كانت اللوحة المخصصة مطلوبة. أردت أيضًا أن تكون الأمور قابلة للإزالة وقابلة للتبديل في حالة الفشل في المستقبل. كان نيتي هو إنشاء ثنائي الفينيل متعدد الكلور المطبوع مخصصًا ، لكنه لم يكن منطقيًا حقًا في هذه المرحلة الزمنية (ربما في تحديث؟). يتكون اللوحة النهائية من لوحة Pervboard 5 × 7 سم واستخدمت سلكًا أساسيًا صلبًا لإجراء الاتصالات.
على الرغم من أن محاولتي الأولى (V1) كانت تعمل بشكل مثالي ، إلا أنها لم تكن مضغوطة كما أود. في الواقع ، لم تتناسب مع العلبة التوجيه على الإطلاق. لقد قمت بإعادة تصميم المسارات وأعيد بناء الإصدار الثاني (V2) باستخدام موصلات الذكور DuPont الزاوية ، مما يوفر مساحة كبيرة بسبب ارتفاع محدود.
؟ ألقِ نظرة على تخطيط الرسم البياني النهائي ولوحة .
إذا كنت قد حصلت على كل شيء سلكي وتوصيله كما يظهر الرسم البياني ، فمن المحتمل أن يتم تعيينك جميعًا لاستخدام عجلة القيادة.
لتجميع رسم Arduino ، ستحتاج إلى تثبيت هذه المكتبات:
eeprom.h - مكتبة eeprom لتخزين الإعدادات
liquidcrystal_i2c.h - شاشة الكريستال السائل I 2 C مكتبة
i2cencoderminilib.h - مكتبة الترميز الدوار I 2 C
Timelib.H - مكتبة الوقت
DS1307RTC.H - DS1307 RTC Library
اتبع تعليمات المكتبة حول كيفية إعداد الوقت الحالي على RTC.
اتبع تعليمات المكتبة حول كيفية تغيير عنوان كل من لوحات التشفير الدوار. لقد قمت بتعيينهم على النحو التالي:
BB (رصيد الفرامل): 0x20
ABS (نظام الكبح المضاد للوكيلة): 0x21
TC (التحكم في الجر): 0x22
الشيء الوحيد الذي قد يحتاج إلى التغيير والتبديل هو قيم التبديل الدوار ، بالنظر إلى أن القيم التي يتم إرجاعها تعتمد على الجهد المقدم. قم بتعيين DEBUG_ROTARY_SWITCHES
على true
وسيعرض LCD القيم الحالية لكلا المفاتيح. قم بتدوين هذه الأرقام وقم بتحديثها في ملف Sketch t300_functions
، ضمن وظائف getCABMode()
و getCABSteps()
.
لقد أضفت مراقبة الأداء المدمجة. ستحتاج إلى تعيين DEBUG_LATENCY
إلى true
وفتح الشاشة التسلسلية (115200 Baud). بمجرد التحميل ، ستعرض تقريرًا في الوقت الفعلي عن زمن انتقال الحلقة الحالية.
كان لدى إصدار البرنامج الأول عدد قليل من المشكلات ، حيث كان الكمون الأكبر. بين الحين والآخر ، سيتم تفويت نقرة زر ، مما يعني أنه كان هذا يعني اختلافًا في حالة اختلاف أو في حالة من الارتفاع. هذا يعوض عن بعض الأداء السيئ.
بعد إجراء اختبارات ، اكتشفت أن حلقة واحدة ركضت في حوالي 2800 مللي ثانية مع الفواق في نهاية المطاف كل ثانية في حوالي 106000ms. كان من المفيد أن يكون هناك شيء ينتج نوعًا من التأخير. لقد قمت في النهاية بتحسين الكود لمشفرات الدوران والساعة (RTC).
نظرًا لأن الشاشة لا تضيف الكثير إلى تجربة القيادة ، فيمكنك اختيار إيقاف تشغيلها أثناء القيادة عن طريق الضغط على مفتاح Rotary ABS.
النسخة الحالية تعمل بسلاسة ولم ألاحظ أي ضبابية أثناء السباق.
مساحة صغيرة للاعتراف بالعمل الذي قام به الآخرون سابقًا.
Taras Ivaniukovich https://rr-m.org/blog/ - للعمل الذي شاركه على مدونته والمساعدة التي قدمها طوال الطريق
Bram Harmsen https://www.thingiverse.com/thing:2813599 - للعكس محرك العكس على عجلة القيادة F1
MRFID72 - للحصول على فيديو YouTube الرائع الذي يشرح مفاتيح الدوار التناظرية
داني فان دن براندي - بالنسبة للرمز الذي وجدته عبر الإنترنت ساعدني في إعداد مصفوفة الزر
Antonio de Stefano https://3drap.it - من أجل حاوية عجلة القيادة الرائعة
GNU GENERAL Public License v3.0 أو أحدث