جدول المحتويات:

الرؤية الخلفية للسيارة: 9 خطوات (مع صور)
الرؤية الخلفية للسيارة: 9 خطوات (مع صور)

فيديو: الرؤية الخلفية للسيارة: 9 خطوات (مع صور)

فيديو: الرؤية الخلفية للسيارة: 9 خطوات (مع صور)
فيديو: ضبط الاضاءة و الصورة شاشة اندرويد للسيارة How To adjustment android car headunit Brightness 2024, يوليو
Anonim
Image
Image

لماذا نبني الرؤية الخلفية للمركبة؟

كان الاصطدام الاحتياطي مشكلة كبيرة ، أفاد المركز الأمريكي لمكافحة الأمراض أنه في الفترة من 2001-2003 ، تم علاج ما يقدر بـ 7 ، 475 طفلاً (2492 في السنة) دون سن 15 عامًا من حوادث السيارات الخلفية. حوالي 300 حالة وفاة في السنة نتيجة الاصطدامات الاحتياطية. بحلول عام 2018 ، ستتطلب جميع السيارات المباعة في الولايات المتحدة كاميرا احتياطية إلزامية.

كيف نحل المشكلة؟

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

سيكون Walabot قادرًا على اكتشاف مسافة الهدف الأقرب إلى السيارة.

ستمنحنا كاميرا Intel RealSense R200 مزيدًا من التفاصيل حول ما نراه ، بما في ذلك حالة الإضاءة المنخفضة.

تعد مجموعة مطوري Intel Joule قوية بما يكفي لتشغيل كاميرات RealSense جنبًا إلى جنب مع Walabot. Raspberry Pi ليس قوياً بما يكفي لتشغيل كاميرا RealSense ثلاثية الأبعاد ، حيث يمكننا إضافة الكثير من الميزات في المستقبل التي يمكنها تحسين وظائف السيارة. يمكن استخدام نفس الإصدار مع Pi بكاميرا USB عادية ، لكنها لن تكون جيدة في الليل.

يتم استخدام هاتف / جهاز لوحي يعمل بنظام Android لعرض الكاميرا الاحتياطية ، وذلك لتقليل تكلفة الشاشة الإضافية. يمكن بناء إصدار iOS عند الطلب.

من خلال هذه المكونات ، سنكون قادرين على بناء رؤية خلفية تُظهر للمستخدم الجزء الخلفي من السيارة.

الخطوة 1: اجمع الأجهزة التي تحتاجها

قم بتثبيت Ubuntu على Joule والمكتبات الضرورية اللازمة لتشغيله
قم بتثبيت Ubuntu على Joule والمكتبات الضرورية اللازمة لتشغيله
  1. إنتل جول
  2. والابوت برو
  3. كاميرا Intel R200 RealSense
  4. هاتف / جهاز لوحي يعمل بنظام Android يعمل 5.0 أو أعلى
  5. محول السيارة لمخرج القابس ومحول التيار المتردد بجهد 12 فولت تيار مستمر (هذا للعرض التوضيحي لتشغيل Joule ، وسيحتوي إصدار الإنتاج على آلية طاقة مختلفة)
  6. موزع USB لتركيب الكاميرا و Walabot (USB3 للكاميرا و USB2 لـ Walabot)
  7. DC إلى AC Direct Plug-in Power Inverter
  8. طابعة ثلاثية الأبعاد عامة لطباعة إطار لوحة ترخيص مُصمم خصيصًا

الخطوة 2: قم بتثبيت Ubuntu على Joule والمكتبات الضرورية اللازمة لتشغيله

نظرًا لأننا قررنا اتباع مسار Linux ، فاتبع الدليل https://developer.ubuntu.com/core/get-started/intel-joule لتثبيت Ubuntu على Joule. يمنحنا Ubuntu مرونة كبيرة لتشغيل نظام تشغيل فعلي على شريحة قائمة على إنترنت الأشياء.

الخطوة 3: دفق كاميرا RealSense

دفق كاميرا RealSense
دفق كاميرا RealSense
دفق كاميرا RealSense
دفق كاميرا RealSense

نظرًا لأننا نستخدم هاتفًا / جهازًا لوحيًا يعمل بنظام Android لتوفير التكلفة على فاتورة المواد ، كما يمكن الوصول إليها بسهولة أكبر للمستخدمين ، فسنستخدم مكتبة الحركة لاستضافة الكاميرا على غرار الكاميرات الأمنية. بمجرد تثبيت Ubuntu وتوصيله بشبكة wifi ، يمكننا فتح الجهاز واستخدام الأمر التالي. نقوم أولاً بتوصيل الكاميرا بجول عبر منفذ USB3 ثم نقوم بالخطوات التالية.

أ. تثبيت الحركة على أوبونتو:

sudo apt-get updatesudo apt-get install motion

ب. نسخ ملفات التكوين:

mkdir.motion sudo cp /etc/motion/motion.conf ~ /.motion / motion.conf

ج. تكوين الملف ، لأولئك الذين هم على دراية بـ ubuntu يمكنهم تثبيت Sublime للقيام بتحرير نص أسهل ، وإلا يمكننا تحريره داخل سطر الأوامر.

sudo نانو ~ /.motion / motion.conf

د. بعد توصيل كاميرا R200 ، يمكننا تغيير الأسطر التالية أثناء الحركة

هذا لوضعه في وضع الخلفية:

# ابدأ في وضع الخفي (الخلفية) ثم قم بتشغيل البرنامج الخفي (الافتراضي: إيقاف التشغيل)

هذا لاستخدام عرض كاميرا RealSense Camera.

# جهاز الفيديو المراد استخدامه لالتقاط (افتراضي / dev / video0) # لـ FreeBSD الافتراضي هو / dev / bktr0 videodevice / dev / video2

من خلال تغيير العرض والارتفاع ، عملت 1280 × 720 بشكل رائع بالنسبة لي ، ولكن يمكنك التلاعب بالأبعاد لمعرفة ما يناسب احتياجاتك.

# عرض الصورة (بكسل). النطاق الصالح: يعتمد على الكاميرا ، الافتراضي: 352 عرض 1280 # ارتفاع الصورة (بكسل). النطاق الصالح: يعتمد على الكاميرا ، الافتراضي: 288 ارتفاع 720

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

# الحد الأقصى لعدد الإطارات التي سيتم التقاطها في الثانية. # النطاق الصالح: 2-100. الافتراضي: 100 (تقريبًا بلا حدود). فراميراتي 30

نظرًا لأننا نتدفق دائمًا إلى الخلف من السيارة ، يمكننا تعيين منفذ مخصص ، نستخدم 5001

################################################## ######### # Live Stream Server ###################################### ####################### # يستمع خادم mini-http إلى هذا المنفذ للطلبات (افتراضيًا: 0 = معطل) stream_port 5001 # جودة ملف jpeg (بالنسبة المئوية) للصور المنتجة (افتراضي: 50) stream_quality 50 # إخراج الإطارات بمعدل 1 إطارًا في الثانية عندما لا يتم الكشف عن أي حركة وزيادة إلى المعدل # المعطى بواسطة stream_maxrate عند اكتشاف الحركة (افتراضي: إيقاف) الافتراضي: 1) stream_maxrate 60 # تقييد اتصالات البث على المضيف المحلي فقط (افتراضي: تشغيل) stream_localhost off

يمكنك بعد ذلك تشغيل ifconfig ومعرفة عنوان IP وتشغيله في Terminal ، وسيكون المنفذ 5001.

حركة

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

بمجرد تشغيل هذا ، يمكننا إضافة هذا إلى تطبيق بدء التشغيل في Ubuntu.

بدء الحركة للكاميرا

يتم إرفاق motion.conf في قسم التعليمات البرمجية ، يمكنك التحقق من المزيد من الإعدادات هناك.

الخطوة 4: إعداد Walabot

إعداد Walabot
إعداد Walabot
إعداد Walabot
إعداد Walabot
إعداد Walabot
إعداد Walabot
إعداد Walabot
إعداد Walabot

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

أ ، قم بتنزيل ملف deb من

اتبع التعليمات من https://api.walabot.com/_install.html#_linuxInstall لتثبيت Walabot API بحيث يمكن استيرادها إلى مشاريع python.

يوجد خطأ في موقع الويب من حيث تثبيت Walabot API https://walabot.com/api/_pythonapi.html#_installingwalabotapi حيث تنص على

python -m pip "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

التي ينبغي أن تكون

تثبيت python -m pip "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

ب. قم بتوصيل Walabot Pro عبر USB 2 ، لم أستطع الحصول على عمل USB3 ولكن USB2 يعمل بشكل جيد عند الاتصال بنظام Linux. نظرًا لأن Joule لديها منفذ USB3 واحد فقط ، قم بتوصيل منفذ USB2 إضافي لاستيعاب Walabot Pro هنا

ج. اختبر مشروع Walabot مثل https://github.com/Walabot-Projects/Walabot-Senso… عن طريق تشغيل الأمر التالي في المجلد

بيثون SensorTargets.py

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

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

MYPORT = 5002 استيراد sys ، الوقت من استيراد مأخذ التوصيل * s = socket (AF_INET، SOCK_DGRAM) s.bind ((''، 0)) s.setsockopt (SOL_SOCKET، SO_REUSEADDR، 1) s.setsockopt (SOL_SOCKET، SO_BROADCAST، 1)

الأمر التالي سوف يبث البيانات عند التحديث

s.sendto (str (أهداف [0].zPosCm)، ('255.255.255.255'، MYPORT))

ه. عندما يتم ذلك ، يمكننا إعداده في تطبيق بدء التشغيل

F. يتم الآن إعداد Walabot ونقل البيانات عبر UDP ، ويمكن رؤية رمز Python الكامل في منطقة مرفق الكود. لقطة الشاشة أدناه هي النسخة المطبوعة لما يجب أن تبدو عليه في حالة عدم وجود منطقة. الكود مرفق في قسم الكود.

الخطوة 5: إنشاء نقطة اتصال Wifi من Joule

إنشاء نقطة اتصال واي فاي من جول
إنشاء نقطة اتصال واي فاي من جول

نقوم بإنشاء نقطة اتصال wifi خاصة بنا لجهاز android لنقل البيانات من خلالها. سيؤدي استخدام الأمر التالي عند البدء إلى إعداده تلقائيًا. يتم استخدام هذا في Ubuntu 16.04 أو ما بعده ، حيث يتم استخدام هذا. سنقوم تلقائيًا بتوصيل هذا عبر تطبيق Android في الخطوة التالية. استخدم هذا الأمر في تطبيقات بدء التشغيل.

جهاز nmcli واي فاي نقطة اتصال اسم السيارة-الرؤية الخلفية ssid-نطاق الرؤية الخلفية-bg كلمة المرور القيادة الآمنة

داخل ملف python الخاص بـ walabot ، سنقوم أيضًا بتحديثه حيث سنرسل رسالة udp إلى الأجهزة المتصلة عبر نقطة اتصال خاصة. هذا لضمان عدم فقدان أي حزمة.

out = os.popen ('ip neigh'). اقرأ (). splitlines () لـ i ، تعداد السطر (الخروج ، البدء = 1): ip = line.split ('') [0] s.sendto (str (الأهداف [0].zPosCm) ، (ip ، MYPORT))

الخطوة 6: إنشاء Android كشاشة عرض

بناء Android كشاشة عرض
بناء Android كشاشة عرض

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

يركز Android على 3 أجزاء قمنا بها سابقًا ،

  • الاتصال بنقطة اتصال wifi التي تم إنشاؤها عبر جهاز إنترنت الأشياء (Intel Joule)
  • دفق كاميرا RealSense عبر الحركة عبر wifi
  • قياس المسافة من هدف Walabot من خلال udp

بعد إعداد كل شيء وتثبيت تطبيق Android (مفتوح المصدر هنا) ، ستتمكن من رؤية الكاميرا تعمل جنبًا إلى جنب مع walabot

الخطوة السابعة: اختبار كل شيء

Image
Image
اختبار كل شيء
اختبار كل شيء
اختبار كل شيء
اختبار كل شيء

الآن قمنا بتشغيل كل شيء ، يجب أن يكون لدينا إعداد أساسي لجميع المكونات المرفقة. عندما نبدأ لوحة Joule ، يجب أن يتم إعداد نقطة الاتصال تلقائيًا ، وسيبدأ تطبيق الحركة و walabot معها ، وعندما نقوم بتشغيل تطبيق Android الخاص بنا ، يجب أن نكون قادرين على البث من الكاميرا. هذا يعني أنه لم تعد هناك حاجة إلى لوحة المفاتيح / الماوس والشاشة حتى يعمل جهاز إنترنت الأشياء. إذا حدثت أي مشاكل في هذه اللحظة مثل عدم تثبيت المكتبات بشكل صحيح ، يجب علينا إصلاحها قبل المتابعة إلى الخطوة التالية.

تعد الطباعة ثلاثية الأبعاد للغلاف الذي يمكنه حمل الكاميرا أمرًا مهمًا للغاية.

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

الخطوة الثامنة: تجربة سيارة حقيقية

Image
Image
تجربة على سيارة حقيقية
تجربة على سيارة حقيقية
اختبار على سيارة حقيقية
اختبار على سيارة حقيقية

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

من أجل تشغيل Joule IoT Kit ، استخدمنا محول طاقة تيار مستمر إلى تيار متردد مباشر ، ثم ببساطة قمنا بتشغيل منفذ طاقة طويل إلى صندوق السيارة.

سيكون لدينا الجزء الأمامي والجزء الخلفي. هذا مجرد نموذج أولي الآن ، الإصدار التالي سيدمج الرقائق داخل حامل لوحة الترخيص.

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

الخطوة 9: استخدمه في العالم

استخدمه في العالم
استخدمه في العالم

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

يمكنك التحقق من المشروع من

موصى به: