كما أضفت وظائف إلى السيارة عبر CAN ، عدم القدرة على البرمجة



الغرض من هذه المقالة هو التحدث عن تجربتي مع تعديلات السيارات والتجارب مع حافلة CAN.

كيف بدأ كل شيء


أولاً ، قررت إضافة كاميرا أمامية إلى شيفروليه كروز 2017. نظرًا لأن السيارة لديها بالفعل كاميرا للرؤية الخلفية للمصنع ، فمن الضروري على مستوى عالٍ اكتشاف شيئين:

  1. طريقة نقل الفيديو من الكاميرا الأمامية ، والتي سأضيفها.
  2. طريقة لعرض الصور من كاميرا الرؤية الخلفية في أي وقت.

الجزء الفيديو كان بسيطا. من التجربة السابقة ، عرفت أنه يمكنك إنشاء خلاط فيديو على مرحل.

تبين أن بدء التشغيل على الشاشة أكثر تعقيدًا ، وبعد إجراء بعض التحقيقات ، توصلت إلى استنتاج مفاده أن السيارة يجب أن ترسل إشارة من كاميرا الرؤية الخلفية إلى الشاشة عبر نوع من ناقل البيانات.

CAN حافلة


لدى شيفروليه حافلتان مختلفتان للبيانات. الأول هو معيار CAN ، سريع (500 كيلوبت في الثانية) وموثوق ، يتم استخدامه للبيانات الهامة. والثاني هو ما تسميه جنرال موتورز LAN (GMLAN) ، ناقل أقدم وأبطأ (33.3 كيلو بت في الثانية) يُستخدم للبيانات غير المتعلقة بالأمان.

كنت بحاجة إلى وسيلة للاستماع لحركة المرور على CAN ، وهذا هو ، الشم. جهاز PCAN مفيد بشكل لا يصدق لهذا الغرض.


يمكن الذروة

Peak Can (PCAN) هو جهاز USB قادر على اعتراض الرسائل ونقلها. بفضل برنامج Pcan View ، يمكنك البدء بدون تدريب كبير.

نظرًا لأن كاميرا الرؤية الخلفية أقل أهمية للسلامة من المكونات الأخرى ، فقد اقترحت أن البيانات التي تبحث عنها من المرجح أن تكون على حافلة GMLAN.

أسهل نقطة وصول هي موصل OBD2. قمت بتوصيل Peak Can بحافلة GMLAN ، وأطلقت البرنامج ، وبدأت الاستماع إلى حركة المرور على الفور.

التكامل


كان الهدف هو عكس هندسة مكالمة كاميرا الرؤية الخلفية. للقيام بذلك ، مع تشغيل جهاز الشم ، قمت بعكس السيارة بحيث تم تشغيلها على الشاشة ، ثم حاولت الوقوف عدة مرات. خلال هذه العملية ، لاحظت معرفًا واحدًا به رسائل تحاكي أفعالي بالتتابع.

بعد ذلك ، كنت واقفةً ومن خلال Pcan View حاولت أن أحيل نفس الرسالة التي رأيتها عند تشغيل العرض وإيقاف تشغيله. في غمضة عين ، كنت أتفاعل بالفعل مع الحافلة.


تمرير رسالة PCAN

ومع ذلك ، لم أخطط للسفر باستمرار مع جهاز كمبيوتر محمول. المطلوب هو طريقة لأتمتة هذه الوظائف - وهنا أصبح Arduino سهل الاستخدام. جعلت القدرة على الحصول على طاقة 12V مباشرة مع عدد كبير من الموارد والدعم على الإنترنت هذا الخيار واضحًا.

بالإضافة إلى Arduino ، كنت بحاجة إلى مكونين لاستكمال المشروع: وحدة CAN و وحدة الترحيل. في جوهرها ، اردوينو هو الدماغ الذي يعمل ويدير الكود. توفر وحدة CAN القدرة على التفاعل مع ناقل البيانات ، ويوفر التتابع الطاقة للكاميرا الأمامية ، ويعمل أيضًا كخلاط فيديو بينه وبين كاميرا الرؤية الخلفية.


وحدة Mcp2515 (أعلى) ، اردوينو أونو (وسط) ، وحدة التتابع (أسفل)

بعد إضافة وتكوين المكتبات المناسبة ، قام اردوينو بإجراء اتصال مع السيارة.


الاستماع إلى حركة المرور من خلال اردوينو

منذ أن عرفت بالفعل أنه يمكنني بدء العرض ، بدأت أفكر في كيفية القيام بذلك. كانت الفكرة الأولية هي تثبيت زر اتصال فوري خاص على اللوحة ، لكنني بدأت أفكر: "ماذا في الشبكة يمكن استخدامه كمحرك؟"

أثناء التجارب ، وجدت أن الرسائل ذات المعرف المقابل لزر "إلغاء التحكم في التطواف" يتم نقلها أيضًا عبر ناقل GMLAN. كان هذا مثاليًا لأن التحكم في التطواف يتم تنشيطه بسرعة تزيد عن 65 كم / ساعة عند استخدام الكاميرا الأمامية ، وبسرعة تقل عن 15 كم / ساعة ، يتم تشغيل كاميرا الرؤية الخلفية للمساعدة في إيقاف السيارة ، لذا فلن يتم تشغيلها أبدًا التداخل. بعد كتابة بعض التعليمات البرمجية ، تمكنت من التعرف على Arduino عند الضغط على زر التحكم في إلغاء الرحلة.


بنقرة واحدة الاعتراف

ومع ذلك ، لا أريد تنشيط الكاميرا في كل مرة أقوم فيها بإلغاء التحكم في التطواف ، لذلك قررت أن أفضل طريقة لتحويلها (في الواقع) إلى زر متعدد الوظائف. لا يتم تنشيط الكاميرا إلا إذا تم "الضغط مرتين" على الزر.

بعد عطلة نهاية أسبوع طويلة لاستكشاف وظيفة millis وتصحيح الرمز ، نجحت في برمجة التعرف على النقر المزدوج.


انقر نقرا مزدوجا الاعتراف

وحين ربطتها بفرقي للتحكم في الشاشة ، حصلت على فائدة صغيرة رائعة.


اضغط مرتين + الأوامر

وظائف


الآن أتيحت لي الفرصة لتشغيل العرض وإيقافه ، ولكن كانت هناك مشكلة واحدة - ماذا عن كاميرا الرؤية الخلفية؟ كنت بحاجة إليهم للعمل مع الكاميرا الأمامية ، كما لو كانوا قد أقيموا في المصنع.

في المخطط الانسيابي ، صورت كيف أمثلها.



لقد أدركت بسرعة أنه في مثل هذا النظام ، تحتاج إلى معرفة حالة المتغيرات الثلاثة في أي وقت:

  • وحدة الكاميرا الأمامية: هل قام السائق بتشغيله أو إيقاف تشغيله؟
  • عرض الكاميرا: هل الصورة تعمل أم لا؟
  • عكس: سيارة في الاتجاه المعاكس أم لا؟

بدون خبرة في البرمجة ، كان من الصعب للغاية القيام بذلك ، وطوال الوقت الذي كنت فيه وقت الفراغ كنت أفكر في طرق مختلفة.

في النهاية ، لقد نجحت!


الرصد النشط

الآن تمكنت من تنفيذ المنطق التشغيلي الذي يتحكم في التتابع.


مراقبة التتابع

خلال العملية ، تعلمت المزيد عن Arduino ولاحظت أن إصدار Nano قادر على فعل كل ما تحتاجه ، في حين أن حجمه أصغر وسعره أقل. إنه مثالي للتثبيت الدائم في السيارة. لقد قمت بتطوير نموذج وطباعته على طابعة ثلاثية الأبعاد لوضع المكونات كوحدة مدمجة للتثبيت.


حالة 3D



كل ذلك معا


وأخيرا جاء اليوم عندما رأيت النتائج. على الرغم من أنه لا يزال يتعين عليك العبث بالوقت ، فقد كان من الجيد أن ترى أن الوحدة النمطية تعمل بشكل صحيح.


قم بتشغيل / إيقاف تشغيل وضع الانتظار ، وتشغيل / إيقاف تشغيل الكاميرا الأمامية ، والتحول تلقائيًا إلى كاميرا الرؤية الخلفية والتبديل تلقائيًا مرة أخرى

بشكل عام ، علمتني هذه التجربة كثيرًا وفتحت عيني على إمكانية الاندماج مباشرة مع حافلة CAN. إنه لأمر مدهش للغاية ما يمكن تحقيقه من خلال الاتصال على سلكين.

في المستقبل


في المستقبل ، أخطط لكتابة تعليمي متعمق حول كيفية إضافة وظائف إضافية إلى الأزرار الموجودة في سيارتك باستخدام البرامج والمكونات المجانية.

Source: https://habr.com/ru/post/ar451294/


All Articles