مقدمه
لینوکس همه چیز را از سرورها و ابررایانهها گرفته تا دستگاههای تعبیهشده مانند Raspberry Pi، کنترلکنندههای صنعتی و تجهیزات پزشکی قدرت میدهد. اگر در حال ساخت محصولی هستید که به دوربین نیاز دارد - برای بینایی ماشین، آندوسکوپی یا رباتیک - احتمالاً میپرسید:آیا ماژول های دوربین می توانند با لینوکس کار کنند؟پاسخ کوتاه بله است و اغلب بهتر از سایر موارد استسیستم عامل ها. با تشکر از درایورهای منبع باز وپروتکل UVC، بیشترماژول دوربینانواع به طور کامل هستندوصل کنید-و-پخش کنیددر لینوکس این مقاله نحوه پشتیبانی لینوکس را توضیح می دهدماژول دوربین USBوماژول دوربین MIPIطرح ها، چهسازگاری با لینوکسمعنی و نحوه انتخاب ماژول مناسب.
چگونه لینوکس از ماژول های دوربین پشتیبانی می کند
لینوکس دو راه اصلی برای ارتباط با a داردماژول دوربین:
UVC (کلاس ویدیویی USB) برای دوربین های USB – A ماژول دوربین USBکه به دنبال آن استپروتکل UVCبه طور خودکار توسط هسته لینوکس شناسایی می شود. هسته شامل یک درایور بومی (uvcvideo) است که خارج از جعبه کار می کند. بدون درایور اضافی
MIPI CSI-2 برای دوربین های جاسازی شده- تعداد زیادی تعبیه شده استماژول دوربین MIPIطرح ها مستقیماً به یک پردازنده (Raspberry Pi، Jetson، i.MX) متصل می شوند. لینوکس آنها را از طریق Video4Linux (V4L2) پشتیبانی می کند، اما آنها به یک درایور دستگاه خاص و پیکربندی درخت دستگاه نیاز دارند.
هر دو با استفاده از APIهای استاندارد مانند V4L2، OpenCV، GStreamer یا ffmpeg به شما دسترسی کامل می دهند.
ماژولهای دوربین UVC: True Plug-and-Play
راپروتکل UVCویدئو را از طریق USB استاندارد می کند. هنگامی که شما یکماژول دوربین UVC، لینوکس:
دستگاه USB را تشخیص می دهد.
درایور uvcvideo را بارگیری می کند.
یک گره /dev/videoX ایجاد می کند.
می توانید فوراً با برنامه هایی مانند guvcview، vlc یا نرم افزار V4L2 خود فیلم بگیرید. این کار برایماژول دوربین hd(720p/1080p) و حتی4kماژول ها (با USB 3.0). الفماژول دوربین USBبا استفاده از aدوربین ماژول cmosحسگر (به عنوان مثال، Sony IMX307) به عنوان یک وب کم استاندارد در هر سیستم لینوکس ظاهر می شود.
ماژول های دوربین MIPI در لینوکس
A ماژول دوربین MIPIاز طریق خطوط اختصاصی CSI و نه USB متصل می شود.سازگاری با لینوکسبه درخت سیستم روی تراشه و دستگاه بستگی دارد. با این حال، پلتفرم های جاسازی شده محبوب پشتیبانی عالی دارند:
رزبری پای– دوربین های رسمی MIPI با سیستم عامل Raspberry Pi (با استفاده از libcamera یا raspicam) کار می کنند.
NVIDIA Jetson– JetPack SDK شامل درایورهای سنسورهای MIPI (IMX219، IMX477) است.
پردازنده های i.MX– کرنل از بسیاری از سنسورهای MIPI از طریق درایور مدیا i.MX پشتیبانی می کند.
دوربین های MIPI هستندنهplug-and-play - ممکن است لازم باشد درایور یا همپوشانی درخت دستگاه را فعال کنید - اما آنها تأخیر و قدرت کمتری ارائه می دهند.
سازگاری لینوکس بر اساس نوع دوربین
| نوع دوربین | Plug-and-Play؟ | راننده | قطعنامه ها |
|---|---|---|---|
| دوربین یو وی سی یو اس بی | بله | uvcvideo (توکار) | VGA تا 4K |
| دوربین MIPI CSI | خیر (نیاز به درخت دستگاه دارد) | مخصوص پلتفرم | تا 4K |
| USB صنعتی | بله (UVC) | uvcvideo | HD / 4K |
چرا لینوکس یک انتخاب عالی است
بدون درایور اختصاصی– برای دوربین های UVC، هرگز درایورها را دانلود یا کامپایل نکنید. uvcvideo از سال 2005 در هسته است.
ثبات دراز مدت– توزیع های لینوکس برای سال ها پایدار هستند. دوربین شما پس از به روز رسانی سیستم عامل کار می کند.
اکوسیستم نرم افزاری غنی– پیوندهای V4L2، GStreamer، OpenCV، FFmpeg، Python.
سربار کم- ایده آل برای سیستم های تعبیه شده که در آن هر میلی وات مهم است.
معماری متقابل– x86، ARM، RISC‑V، و غیره
نحوه تست ماژول دوربین در لینوکس
وصل کنیدماژول دوربین USB(یا وصل کنیدماژول دوربین MIPIبه درستی).
ls /dev/video* را اجرا کنید - دستگاه جدیدی مانند /dev/video0 ظاهر می شود.
قالبهای فهرست: v4l2-ctl --list-formats-ext -d /dev/video0
یک تصویر آزمایشی بگیرید: ffmpeg -f v4l2 -i /dev/video0 -frames:v 1 test.jpg
از guvcview برای نمایشگر رابط کاربری گرافیکی استفاده کنید.
اگر دوربین با UVC سازگار باشد، فوراً کار میکند.
مسائل و راه حل های بالقوه
| مشکل | راه حل |
|---|---|
| دوربین MIPI شناسایی نشد | بررسی پوشش درخت دستگاه. فعال کردن درایور |
| دوربین UVC فقط وضوح پایین را نشان می دهد | از v4l2-ctl --set-fmt-video برای وادار کردن وضوح بالاتر استفاده کنید |
| اجازه به /dev/video0 رد شد | افزودن کاربر به گروه ویدیو: sudo usermod -a -G video $USER |
| لکنت دوربین 4K | استفاده از پورت USB 3.0 نرخ فریم را کاهش دهید یا به MJPEG تغییر دهید |
نحوه انتخاب ماژول دوربین برای لینوکس
| مورد نیاز | ماژول پیشنهادی | چرا |
|---|---|---|
| نمونه سازی سریع، مبتنی بر کامپیوتر | ماژول دوربین USBبا UVC | Plug-and-play |
| جاسازی شده (رزبری پای) | ماژول دوربین MIPIیا UVC | تأخیر کمتر MIPI؛ UVC راحت تر |
| وضوح بالا (4K) | ماژول دوربین 4kدارای USB 3.0 | درایور UVC لینوکس از 4K پشتیبانی می کند |
| کابل بلند | ماژول دوربین USBبا پسوند فعال | UVC روی USB طولانی کار می کند |
| کم مصرف جاسازی شده است | ماژول دوربین MIPI(شتر جهانی) | قدرت کمتر از USB |
ماژول های دوربین Sincere برای لینوکس
در صادقانه، ما تولید می کنیمدوربین ماژول cmosماژول های مبتنی بر سازگاری کامل با لینوکس:
ماژول دوربین USB– سازگار با UVC، plug-and-play در هر توزیع لینوکس. VGA تا 4K
ماژول دوربین HD– 1080p @ 30/60fps، با uvcvideo کار می کند.
ماژول دوربین MIPI– برای پلتفرم های تعبیه شده (Raspberry Pi، Jetson، i.MX) با درایورهای از پیش ساخته شده یا سفارشی.
سازگاری با لینوکس– تست شده بر روی اوبونتو، دبیان، Raspberry Pi OS و غیره
وصل کنید-و-پخش کنید- ماماژول دوربین UVCمحصولات نیازی به نصب درایور ندارند
خلاصه
بله،ماژول های دوربینعالی کار کنید بالینوکس. ماژول دوربین USBدستگاه هایی که ازپروتکل UVCدرست هستندوصل کنید-و-پخش کنید- فقط متصل شوید و آنها به عنوان /dev/video دستگاه ظاهر می شوند.ماژول دوربین MIPIطرح ها نیاز به تنظیمات بیشتری دارند اما در پلتفرم های جاسازی شده محبوب به خوبی پشتیبانی می شوند. لینوکس درایورهای بالغ (از جمله uvcvideo)، اکوسیستم غنی از ابزارهای ویدئویی و ثبات طولانی مدت را فراهم می کند. این که آیا شما نیاز به یکماژول دوربین hdبرای کنفرانس ویدیویی یا یک ماژول 4K برای بازرسی صنعتی، لینوکس یک انتخاب قابل اعتماد است. همه ماژول های ما بر اساس کیفیت بالا ساخته شده انددوربین ماژول cmosسنسورها و تست شده اندسازگاری با لینوکس.
برای بحث در مورد خود با صادقانه تماس بگیریدماژول دوربینو الزامات لینوکس





