فهرست مطالب:

دید عقب خودرو: 9 مرحله (همراه با تصاویر)
دید عقب خودرو: 9 مرحله (همراه با تصاویر)

تصویری: دید عقب خودرو: 9 مرحله (همراه با تصاویر)

تصویری: دید عقب خودرو: 9 مرحله (همراه با تصاویر)
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
Image
Image

چرا ما Vehicle Rear Vision را می سازیم؟

مرکز کنترل بیماریهای ایالات متحده گزارش داد که برخورد پشتیبان یک مشکل بزرگ بوده است ، از سال 2001-2003 ، تخمین زده می شود که 7،475 کودک (2،492 نفر در سال) زیر 15 سال به دلیل حوادث عقب رانندگی خودرو تحت درمان قرار گرفته اند. سالانه حدود 300 نفر کشته بر اثر برخوردهای پشتیبان ایجاد می شوند. تا سال 2018 تمام خودروهایی که در ایالات متحده فروخته می شوند به یک دوربین پشتیبان اجباری نیاز دارند.

چگونه مشکل را حل کنیم؟

اکثر خودروهای موجود در بازار امروز هنوز دوربین پشتیبان ندارند ، این شامل نیمی از خودروهایی است که امروز در ایالات متحده به فروش می رسند و بیش از نیمی از آنها در سراسر جهان. ما می توانیم با نصب دوربینی در پشت خودرو ، با استفاده از فضای پلاک خودرو ، این مشکل را برطرف کنیم.

Walabot قادر خواهد بود فاصله نزدیکترین هدف به خودرو را تشخیص دهد.

دوربین اینتل RealSense R200 جزئیات بیشتری از آنچه دیده می شود ، از جمله وضعیت کم نور را در اختیار ما قرار می دهد.

کیت توسعه دهنده Intel Joule به اندازه کافی قدرتمند است که می تواند دوربین های RealSense را در کنار Walabot اجرا کند. رزبری پای به اندازه کافی قدرتمند نیست که بتواند یک دوربین سه بعدی RealSense را اجرا کند ، در این صورت در آینده می توانیم ویژگی های بیشتری به آن اضافه کنیم که می تواند عملکرد خودرو را بهبود بخشد. همان نسخه را می توان با Pi با یک دوربین USB معمولی استفاده کرد ، اما برای شب خوب نخواهد بود.

تلفن/رایانه لوحی اندرویدی که برای نمایش دوربین پشتیبان استفاده می شود ، این امر به منظور کاهش هزینه صفحه اضافی است. نسخه iOS را می توان بر اساس درخواست ایجاد کرد.

از طریق این اجزا ، ما قادر خواهیم بود یک Rear End Vision بسازیم که پشت خودرو را به کاربر نشان می دهد.

مرحله 1: سخت افزارهای مورد نیاز خود را جمع آوری کنید

اوبونتو را روی Joule و کتابخانه های ضروری که برای اجرای آن لازم است نصب کنید
اوبونتو را روی Joule و کتابخانه های ضروری که برای اجرای آن لازم است نصب کنید
  1. اینتل ژول
  2. Walabot Pro
  3. دوربین Intel R200 RealSense
  4. تلفن/رایانه لوحی Android که 5.0 یا بالاتر اجرا می شود
  5. آداپتور خودرو برای خروجی دوشاخه و آداپتور AC 12VDC (این برای نمایشی برای تقویت ژول است ، نسخه تولیدی دارای مکانیزم قدرت متفاوتی است)
  6. USB Hub برای اتصال دوربین و Walabot (USB3 برای دوربین و USB2 برای Walabot)
  7. مبدل برق DC به AC Direct Plug-in Power Inverter
  8. چاپگر سه بعدی عمومی برای چاپ قاب پلاک سفارشی ساخته شده

مرحله 2: اوبونتو را بر روی Joule و کتابخانه های ضروری که برای اجرای آن لازم است نصب کنید

از آنجا که ما تصمیم گرفته ایم که مسیر لینوکس را دنبال کنیم ، برای نصب اوبونتو در ژول ، راهنمای https://developer.ubuntu.com/core/get-started/intel-joule را دنبال کنید. اوبونتو به ما انعطاف پذیری بالایی برای اجرای سیستم عامل واقعی بر روی تراشه مبتنی بر اینترنت اشیا می دهد.

مرحله 3: جریان دوربین RealSense

جریان دوربین RealSense
جریان دوربین RealSense
جریان دوربین RealSense
جریان دوربین RealSense

از آنجا که ما از تلفن/رایانه لوحی Android برای صرفه جویی در هزینه صورتحساب استفاده می کنیم ، همچنین برای کاربران در دسترس تر است ، ما از کتابخانه حرکت برای میزبانی دوربین مشابه دوربین های امنیتی استفاده خواهیم کرد. پس از نصب و اتصال وای فای به اوبونتو ، می توانیم ترمینال را باز کرده و از دستور زیر استفاده کنیم. ابتدا دوربین را از طریق پورت USB3 به Joule وصل می کنیم سپس مراحل زیر را انجام می دهیم.

آ. نصب حرکت بر روی اوبونتو:

sudo apt-get updatesudo apt-get install motion

ب کپی فایل های پیکربندی:

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

ج پیکربندی فایل ، برای کسانی که با ubuntu آشنا هستند می توانند Sublime را برای ویرایش راحت تر متن نصب کنند ، در غیر این صورت می توانیم آن را در داخل خط فرمان ویرایش کنیم.

sudo nano ~/.motion/motion.conf

د پس از اتصال دوربین R200 ، می توانیم خطوط زیر را در motion.conf تغییر دهیم

برای قرار دادن آن در حالت پس زمینه:

# در حالت daemon (پس زمینه) شروع کنید و ترمینال (پیش فرض: خاموش) را روشن کنید

این برای استفاده از نمای دوربین RealSense Camera است.

# دستگاه ویدئویی برای ضبط (پیش فرض /dev /video0) # برای FreeBSD پیش فرض /dev /bktr0 videodevice /dev /video2 است

با تغییر عرض و ارتفاع ، 1280 7 720 برای من عالی بود ، اما شما می توانید با ابعاد بازی کنید تا ببینید چه چیزی نیاز شما را برآورده می کند.

# عرض تصویر (پیکسل). محدوده معتبر: وابسته به دوربین ، پیش فرض: 352 عرض 1280 # ارتفاع تصویر (پیکسل). محدوده معتبر: وابسته به دوربین ، پیش فرض: ارتفاع 288 720

من این را روی 30 قرار دادم ، هرچه عدد بیشتری را تعیین کنید ، به قدرت محاسباتی بیشتری نیاز خواهید داشت. می توانید بازی کنید تا ببینید معیار آن چیست ، اما 30 برای من عالی عمل کرده است.

# حداکثر تعداد فریم در ثانیه ضبط می شود. # محدوده معتبر: 2-100. پیش فرض: 100 (تقریباً بدون محدودیت). نرخ فریم 30

از آنجا که ما همیشه از خودرو عقب می رویم ، می توانیم یک پورت اختصاصی تنظیم کنیم ، از 5001 استفاده می کنیم

################################################## ##########سرور پخش مستقیم ##################################### ########################سرور mini-http برای درخواست ها (به طور پیش فرض: 0 = غیرفعال) به این پورت گوش می دهد stream_port 5001#کیفیت jpeg (به درصد) تصاویر تولید شده (به طور پیش فرض: 50) stream_quality 50 # فریم های خروجی با سرعت 1 فریم در ثانیه هنگامی که هیچ حرکتی تشخیص داده نمی شود و در صورت تشخیص حرکت به میزان # افزایش داده شده توسط stream_maxrate (پیش فرض: خاموش) stream_motion خاموش # حداکثر نرخ فریم برای جریانهای جریان (پیش فرض: 1) stream_maxrate 60 # محدود کردن اتصالات جریان فقط به localhost (پیش فرض: روشن) stream_localhost خاموش

سپس می توانید ifconfig را اجرا کرده و آدرس ip را پیدا کرده و در ترمینال اجرا کنید ، پورت 5001 خواهد بود.

حرکت - جنبش

در صورت عدم وجود خطا ، به راحتی می توانید دوربین را از رایانه خود با استفاده از ip بررسی کنید ، در صورت وجود هرگونه خطایی مانند مشکلات مجوز را برطرف کنید.

پس از اجرا ، می توانیم آن را به برنامه راه اندازی در اوبونتو اضافه کنیم.

راه اندازی حرکت برای دوربین

motion.conf در قسمت کد پیوست شده است ، می توانید تنظیمات بیشتری را در آنجا بررسی کنید.

مرحله 4: راه اندازی Walabot

راه اندازی Walabot
راه اندازی Walabot
راه اندازی Walabot
راه اندازی Walabot
راه اندازی Walabot
راه اندازی Walabot
راه اندازی Walabot
راه اندازی Walabot

با وجود دوربین در محل ، ما هنوز نیاز به راه اندازی walabot داریم ، این می تواند فاصله بین وسیله نقلیه و جسم پشت را تشخیص دهد و دید واضحی از نحوه عملکرد ما داشته باشد.

a ، فایل deb را از https://www.walabot.com/WalabotInstaller/Latest/walabot-maker.deb بارگیری کنید

دستورالعمل های https://api.walabot.com/_install.html#_linux را دنبال کنید تا API Walabot را نصب کنید تا بتوان آن را به پروژه های پایتون وارد کرد.

در وب سایت در قسمتی که در آن 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 install "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

ب Walabot Pro را از طریق USB 2 وصل کنید ، من نتوانستم کار usb3 را انجام دهم ، اما usb2 با اتصال به لینوکس خوب کار می کند. از آنجا که Joule فقط یک پورت USB3 دارد ، یک پورت USB2 اضافی را برای قرار دادن Walabot Pro در اینجا وصل کنید

ج پروژه Walabot مانند https://github.com/Walabot-Projects/Walabot-Senso… را با اجرای دستور زیر در پوشه آزمایش کنید.

python SensorTargets.py

این باید به شما یک آزمایش خوب بدهد تا ببینید آیا Walabot به درستی کار می کند یا خیر ، و همچنین نحوه اندازه گیری فاصله با چیزهایی که می خواهید. مثال DistanceMeasure در اندازه گیری چندان سازگار نبود و zPosCm بسیار دقیق به نظر می رسد ، بنابراین تصمیم گرفتم از zPosCM برای نمایشی استفاده کنم.

د ما هنوز باید داده ها را به دستگاه نمایشگر منتقل کنیم ، زیرا این برنامه را در Android برای کاهش هزینه مواد اجرا می کنیم ، می توانیم از سوکت استفاده کنیم. از کد زیر برای راه اندازی سوکت و udp در پایتون استفاده می کنیم.

MYPORT = 5002 sys واردات ، زمان از واردات سوکت * s = سوکت (AF_INET، SOCK_DGRAM) s.bind ((''، 0)) s.setsockopt (SOL_SOCKET، SO_REUSEADDR، 1) s.setsockopt (SOL_SOCKET، SO_BROADCAST)

دستور زیر اطلاعات مربوط به بروزرسانی را پخش می کند

s.sendto (خیابان (اهداف [0].zPosCm) ، ('255.255.255.255' ، MYPORT))

ه وقتی این کار انجام شد ، می توانیم آن را در Startup Application تنظیم کنیم

f Walabot در حال راه اندازی و انتقال داده ها از طریق UDP است ، کد پایتون کامل را می توانید در قسمت پیوست کد مشاهده کنید. تصویر زیر چاپی است که در صورت عدم وجود ناحیه باید به نظر برسد. کد در قسمت کد ضمیمه شده است.

مرحله 5: ایجاد Wifi Hotspot از Joule

ایجاد Wifi Hotspot از Joule
ایجاد Wifi Hotspot از Joule

ما در حال ایجاد نقطه اتصال وای فای خود برای دستگاه اندرویدی برای انتقال داده ها از طریق آن هستیم. با استفاده از دستور زیر در شروع به طور خودکار آن را راه اندازی می کند. این برای Ubuntu 16.04 یا بالاتر استفاده می شود ، زیرا از این مورد استفاده می شود. در مرحله بعد ما به طور خودکار این را از طریق برنامه Android متصل می کنیم. از این دستور در برنامه های راه اندازی استفاده کنید.

nmcli دستگاه wifi hotspot con-name وسیله نقلیه-دید عقب-ssid وسیله نقلیه-دید عقب

در داخل فایل پایتون walabot ، ما همچنین آن را در جایی که پیام udp به دستگاههایی که از طریق نقطه اتصال خصوصی متصل می شوند ، ارسال می کنیم. این برای اطمینان از گم شدن هیچ بسته ای است.

out = os.popen ('ipigh'). بخوانید (). splitlines () برای i، line in enumerate (out، start = 1): ip = line.split (''] [0] s.sendto (str (اهداف [0].zPosCm) ، [ip ، MYPORT])

مرحله 6: ایجاد Android به عنوان صفحه نمایش

ساخت Android به عنوان صفحه نمایش
ساخت Android به عنوان صفحه نمایش

برنامه اندروید برای نمایش دستگاه ساخته شده است ، عمدتا به این دلیل که هزینه مواد را کاهش می دهد زیرا در غیر این صورت یک صفحه جداگانه می تواند هم گران باشد و هم نصب آن دشوار باشد. در مورد این پروژه می توانیم از تلفن/رایانه لوحی Android استفاده کنیم.

اندروید بر 3 قسمت تمرکز می کند که قبلاً انجام داده بودیم ،

  • اتصال به نقطه wifi ایجاد شده از طریق دستگاه IoT (Intel Joule)
  • دوربین RealSense را از طریق حرکت از طریق وای فای پخش کنید
  • اندازه گیری فاصله از هدف Walabot از طریق udp

پس از تنظیم همه چیز و نصب برنامه Android (منبع باز در اینجا) ، می توانید دوربین را در کنار walabot مشاهده کنید

مرحله 7: آزمایش همه چیز

Image
Image
آزمایش همه چیز
آزمایش همه چیز
آزمایش همه چیز
آزمایش همه چیز

اکنون همه چیز در حال اجرا است ، باید یک تنظیم اساسی از همه اجزای متصل شده داشته باشیم. وقتی صفحه Joule را راه اندازی می کنیم ، hotspot باید به طور خودکار راه اندازی شود ، برنامه حرکت و walabot همراه با آن شروع می شود و هنگامی که برنامه اندروید خود را روشن می کنیم ، باید بتوانیم از دوربین جریان پیدا کنیم. این بدان معناست که صفحه کلید/موس و مانیتور دیگر برای عملکرد دستگاه IoT مورد نیاز نیستند. اگر در این لحظه مشکلی مانند کتابخانه ها درست نصب نشده است ، قبل از اقدام به مرحله بعدی باید آن را برطرف کنیم.

چاپ سه بعدی محفظه ای که می تواند دوربین را نگه دارد بسیار مهم است.

در ساخت سخت افزار ، باید قاب چاپی سفارشی خود را برای دوربین آماده کنیم. از آنجا که این یک نمونه اولیه است ، ممکن است کمی شل شود ، اما وقتی نگهدارنده پلاک سفارشی را ایجاد می کنیم ، انتظار داریم همه اجزای آن در داخل نگهدارنده باشد.

مرحله 8: آزمایش روی یک ماشین واقعی

Image
Image
تست کردن روی ماشین واقعی
تست کردن روی ماشین واقعی
تست کردن روی ماشین واقعی
تست کردن روی ماشین واقعی

اکنون که همه چیز را کار کرده ایم ، می توانیم آن را روی یک ماشین واقعی آزمایش کنیم. از آنجا که این یک نمونه اولیه است ، همه چیز ممکن است کمی خشن باشد ، ما از نوار چسب برای برخی از اجزا استفاده می کنیم.

به منظور تقویت Joule IoT Kit ، ما از DC In AC Direct Plug-in Power Inverter استفاده کردیم ، سپس فقط یک پریز برق طولانی را به صندوق عقب منتقل کردیم.

ما قسمت جلو و قسمت عقب را خواهیم داشت. این فقط یک نمونه اولیه است ، نسخه بعدی تراشه های داخل پلاک را ادغام می کند.

و برای قسمت جلویی ، می توانیم از نگهدارنده تلفن استفاده کنیم یا فقط از نوار چسب تبلت Android استفاده کنیم.

مرحله 9: از آن در جهان استفاده کنید

از آن در جهان استفاده کنید
از آن در جهان استفاده کنید

با استفاده از این ابزار ، می توانیم خودرو را با خیال راحت به خودروهای دیگر پشتیبان گیری کرده و بتوانیم عابران پیاده را زیر نظر بگیریم. شما می توانید ویدئوی نمایشی را در ابتدا مشاهده کنید. هدف این پروژه تشویق شیوه های رانندگی ایمن تر است.

می توانید پروژه را از https://github.com/Nyceane/vehicle-rear-vision بررسی کنید

توصیه شده: