توصيل الكاميرا التناظرية بجهاز Raspberry Pi. خادم المراقبة بالفيديو باستخدام Raspberry Pi. إنشاء فيديو Timelapse
دعونا نلقي نظرة على طرق توصيل الكاميرا بشكل صحيح بـ Raspberry Pi والعمل معها من خلال نافذة المحطة الطرفية واستخدام لغة برمجة Python.مواد ذات صلة:
عند توصيل الكاميرا بجهاز Raspberry، تذكر ما يلي:
- الكاميرا خائفة من الكهرباء الساكنة، ومن المستحسن لمسها أثناء التشغيل من خلال مادة مضادة للكهرباء الساكنة
- تستهلك الكاميرا 250 مللي أمبير - عند استخدام مصدر طاقة مالينا المتوسط، قد يتسبب توصيل الكاميرا في نقص الطاقة عندما تعمل الكاميرا بشكل نشط
- لا يوجد ميكروفون في الكاميرا
- يقع الجزء العلوي من الكاميرا على الجانب المقابل لمخرج الكابل، ولكن هناك أمر خاص لتعكس الصورة عموديا - المزيد عن ذلك أدناه.
اتصال
يُنصح بتوصيل الكاميرا بجهاز Raspberry مغلقًا. يمكنك إيقاف تشغيل Raspberry بسرعة باستخدام الأمراغلاق سودو الآن
موصل سلسلة تعاقبية CSI يقع بجوار HDMI: ميزة توصيل الكاميرا من خلال هذا الموصل، على عكس USB، هو أنه يريح المعالج عند نقل البيانات عبر واجهة CSI
لسهولة تثبيت الكاميرا هناك حلول جاهزةعلى سبيل المثال - حامل أكريليك.
![](https://i2.wp.com/systop.ru/uploads/posts/2018-05/1527699779_vydelenie_298.png)
![](https://i0.wp.com/systop.ru/uploads/posts/2018-05/1527699865_vydelenie_300.png)
![](https://i2.wp.com/systop.ru/uploads/posts/2018-05/1527699957_vydelenie_301.png)
للعمل مع الكاميرا، يحتوي Raspbian بالفعل على الأدوات المساعدة وبرامج التشغيل الضرورية المثبتة مسبقًا. لنقم بتحديث الحزم لاستخدام أحدث الإصدارات: sudo apt-get update -y sudo apt-get dist-upgrade -y إذا تم كل شيء بشكل صحيح، فلنحاول الحصول على إطار اختبار من الكاميرا - قم بإنشاء مجلد للصور، اذهب إليها وتنفيذ أمر التقاط الصورة: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
![](https://i0.wp.com/systop.ru/uploads/posts/2018-05/1527700014_vydelenie_302.png)
تم تثبيت الحزم التالية للعمل مع الكاميرا مسبقًا في نظام التشغيل Raspbian:
- raspivid، raspvidyuv - التقاط الفيديو
- raspistill، raspiyuv - التقاط الصور
يتم تشغيل كافة الأدوات المساعدة من المحطة وهي سهلة الاستخدام للغاية.
لا تستخدم الحزم التي تنتهي أسماؤها بـ "yuv" مكون التشفير - فهي تخزن المعلومات "الخام" غير المعالجة التي يتلقاها مستشعر الكاميرا. دعونا نلقي نظرة على العمل مع كل حزمة، ولكننا سنتعرف أولاً على قائمة معلمات الكاميرا المشتركة بين جميع الحزم، وبعد ذلك سننظر إلى الوسائط المحددة و أمثلة محددةتطبيقاتهم.
المعلمات المشتركة
دعونا نلقي نظرة على قيم المعلمات. ومن الجدير بالذكر أن:- إذا لم يتم تحديد وسيطة عند استدعاء الأداة المساعدة، فسيتم استخدام قيمتها الافتراضية.
- إذا كان عمود "نطاق القيم المسموح بها" فارغًا، فلن يلزم تمرير أي قيم إضافية - يكفي مجرد تمرير الوسيطة نفسها.
- يتم عرض المعاينة فقط على شاشة فعلية متصلة بجهاز Raspberry. إذا قمت بالوصول إلى Raspberry عبر سطح المكتب البعيد (VNC)، فلن تظهر المعاينة في أي إعدادات حيث يتم إرسال صورة المعاينة مباشرة إلى الشاشة أعلى بقية المعلومات
- يشبه مشاهدة مقاطع الفيديو عبر سطح المكتب
دعوى | وصف | مجال صحيح | القيمة الافتراضية |
-ص | معاينة خيارات النافذة | العرض، الارتفاع، الإحداثي x، الإحداثي y | |
-F | معاينة ملء الشاشة | لا |
|
-ن | لا معاينة | ||
-المرجع | معاينة شفافية النافذة | 0...255 | 255 |
-ش | حدة | -100...100 | 0 |
-co | مقابلة | -100...100 | 0 |
-ر | إضاءة | 0...100 | 50 |
-سا | التشبع | -100...100 | 0 |
-ايزو | حساسية مستشعر الكاميرا | -100...100 | 0 |
-ضد | تثبيت الفيديو (فيديو فقط) | لا |
|
-إيف | تعويض التعرض | -10...10 | 0 |
-السابق | معرض |
| آلي |
-awb | توازن اللون الأبيض |
| آلي |
-ifx | تأثيرات مختلفة | لا شيء، سلبي، شمسي، ملصق، سبورة بيضاء، سبورة، رسم، تقليل الضوضاء، نقش، طلاء زيتي، فتحة، gpen، باستيل، ألوان مائية، فيلم، طمس، تشبع، تبديل الألوان، تبييض، نقطة تلوين، توازن الألوان، رسوم متحركة | لا أحد |
-cfx | توازن الالوان | 0...255:0...255 | 128:128 |
-مم | قياس التعرض |
| متوسط |
-تعفن | دور | 0 ... 359 | 0 |
-HF | الانعكاس الأفقي | لا |
|
-vf | الانعكاس العمودي | لا |
|
-روي | عائد استثمار المستشعر | الإحداثيات من الزاوية اليسرى العليا وعرض المنطقة وارتفاعها 0 … 1,0 … 1,0 … 1,0 … 1 | 0,0,1,1 |
-ss | سرعة مصراع الكاميرا | في ميكروثانية | 6000000 |
-drc | ضغط النطاق الديناميكي | عن |
|
-شارع | عرض إحصائيات | لا |
راسبيستيل - التقاط الصور
تنتج هذه الأداة المساعدة صورة مضغوطة مشفرة، ولتنفيذ هذا الإجراء، هناك عدد لا بأس به من المعلمات التي تم تمريرها كوسائط عند تشغيل raspistill.الحجج
دعوى | وصف | مجال صحيح | القيمة الافتراضية |
-ث | عرض | 0...ماكس | الأعلى |
-ح | ارتفاع | 0...ماكس | الأعلى |
-س | جودة | 0...100 | 75 |
-س | اسم الملف | المسار إلى الملف | - |
-الخامس | الإخراج إلى المحطة | معلومات حول عملية الالتقاط | لا |
-ر | التأخير قبل الإجراء | بالمللي ثانية | 0 |
-TL | مرور الوقت | مثال: -tl 2000 -o image%04d.jpg 2000 - الفاصل الزمني %04d - نمط رقم مكون من 4 أرقام | - |
-ه | الترميز للتنسيق | JPG، BMP، GIF، وPNG | jpg |
-x | إضافة علامات EXIF | ما يصل إلى 32 علامة | - |
-ص | تخزين مصفوفة باير في البيانات الوصفية لصورة مشفرة | - |
أمثلة
دعونا نلقي نظرة على أمثلة محددة لاستخدام raspistill:التقط صورة قياسية بعد ثانيتين واحفظها في ملف image.jpg (في المجلد الذي تتواجد فيه حاليًا). ستكون الدقة قياسية (كحد أقصى) raspistill -t 2000 -o image.jpg نفس الشيء، ولكن بدقة 640x480 raspistill -o image.jpg -w 640 -h 480 التقط صورة بجودة منخفضة بنسبة 5% و احفظه في ملف image.jpg (في المجلد الذي تتواجد فيه حاليًا). بهذه الجودة، سيكون حجم الصورة أصغر بكثير raspistill -o image.jpg -q 5 الحصول على صورة مشفرة بتنسيق PNG وحفظها في الملف image.png raspistill -o image.png –e png الحصول على صورة قياسية مع علامتي EXIF المضمنتين: الفنان - بوريس، ارتفاع نظام تحديد المواقع العالمي (GPS) - 123.5 م raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 إنشاء مجموعة من الصور المتتابعة التي سيتم التقاطها على فترات زمنية مدتها 10 ثوانٍ طوال 10 دقائق (600000 مللي ثانية) ويتم تسميتها image_num_001_today.jpg وimage_num_002_today.jpg وما إلى ذلك. سيتم تسمية الصورة النهائية last.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l last.jpg التقط الصور عند الضغط على Enter، وسيتم حفظ الملفات جنبًا إلى جنب وتسميتها my_pics01.jpg my_pics02. جي بي جي الخ. raspistill -t 0 -k -o my_pics%02d.jpg
raspiyuv
وسيطات الإطلاق هي نفسها تمامًا تلك الخاصة بـ raspistill (انظر أعلاه)، والتي لا تتوفر منها سوى ما يلي:-س - الجودة
-e - تحديد تنسيق الصورة المستهدفة
-x - إضافة علامات EXIF
-r - تخزين مصفوفة Bayer في البيانات التعريفية للصورة المشفرة
ومع ذلك، هناك حجة خاصة
-rgb - حفظ البيانات الأولية "الخام" بتنسيق RGB888 (8 بت/قناة)
raspivid - التقاط الفيديو
إطلاق المعلمات
دعوى | وصف | مجال صحيح | القيمة الافتراضية |
-ث | عرض | 0...ماكس | 1920 |
-ح | ارتفاع | 0...ماكس | 1080 |
-ب | معدل البت للفيديو | عدد البتات في الثانية. تم ضبط 10 ميجابت/ثانية على -b 10000000 | |
-س | اسم الملف | المسار إلى الملف | - |
-الخامس | الإخراج إلى المحطة | معلومات حول عملية الالتقاط | |
-ر | التأخير قبل الإجراء | بالمللي ثانية | 0 |
-إطارا في الثانية | معدل الإطار | عدد الإطارات في الثانية 2...30 | |
-ك | ابدأ/أوقف التسجيل بالضغط على Enter | تتم مقاطعة العملية بالضغط على "X" | |
-سان جرمان | حفظ مقاطع الفيديو ذات المدة المحددة في ملفات منفصلة | ضبط مدة مقطع واحد وقناع الملف -sg 3000 -o فيديو%04d.h264 | |
-wr | تحديد الحد الأقصى لعدد الملفات أثناء التجزئة | يُستخدم مع الوسيطة -sg وينفذ بشكل أساسي إعادة الكتابة الدورية كما هو الحال في مسجلات الفيديو الرقمية |
دعونا نلقي نظرة على أمثلة محددة:
تسجيل فيديو قياسي مدته 5 ثوانٍ (1920 × 1080، 30 إطارًا في الثانية) وحفظه في ملف video.h264 raspivid -t 5000 -o video.h264 تسجيل فيديو مدته 5 ثوانٍ بدقة 1080 بكسل ومعدل بت محدد يبلغ 3.5 ميجابت /s وحفظه في ملف video.h264 raspivid -t 5000 -o video.h264 -b 3500000 سجل 5 ثوانٍ من الفيديو عالي الوضوح بمعدل إطارات 5 إطار في الثانية واحفظه في ملف video.h264 raspivid -t 5000 -o video.h264 -f 5 إذا كانت الشاشة متصلة بـ Raspberry عبر HDMI، فيمكن مشاهدة الفيديو المسجل باستخدام مشغل omxplayer: sudo apt-get install omxplayer #if لم يتم تثبيت المشغل بعد omxplayer video.h264 عرض الفيديو غير متاح عبر VNC
رموز الخطأ
- 0 - الانتهاء بنجاح
- 64 - تم إرسال أمر غير صالح (خطأ في بناء الجملة)
- 70- خطأ في الأداة المساعدة أو عند التواصل مع الكاميرا
- 130 - تمت مقاطعة التنفيذ من قبل المستخدم (مجموعة المفاتيح Ctrl + C)
مكتبة PiCamera
هذه مكتبة للغة برمجة Python تتيح لك تبسيط العمل وأتمتته باستخدام كاميرا Raspberryوصف كامل للمكتبة باللغة الإنجليزية
في الإصدارات الحديثة من توزيع Raspbian، تكون المكتبة مثبتة مسبقًا بالفعل، ويمكنك التحقق من ذلك من خلال وحدة تحكم Python python3 import picamera. في حالة الفشل، يجب عليك مغادرة وحدة التحكم عن طريق إدخال أمر الخروج () أو بالضغط على Ctrl + D وقم بتثبيت المكتبة باستخدام الأمر sudo apt-get install python3-picamera العمل مع الكاميرا من كود Python مشابه للأوامر الطرفية التي تمت مناقشتها أعلاه. يمكنك بسهولة الحصول على صورة قياسية من الكاميرا مباشرةً في وحدة تحكم Python: استيراد picamera #import the مكتبة الكاميرا Camera = picamera.PiCamera() # إنشاء كائن كاميرا Camera.capture("image.jpg") # استدعاء صورة الكاميرا طريقة الالتقاط الكاميرا .Close() # أغلق جلسة الكاميرا سيتم حفظ الصورة في ملف image.jpg في المجلد الحالي.
قبل عامين، عندما بدأت العمل على طائرات متعددة المروحيات لأول مرة، كان علي أن أصنع واحدة صغيرة. نظرًا لأن المقصود من الطائرة الرباعية أن تكون مستقلة تمامًا، فكل ما كان مطلوبًا من جهاز التحكم عن بعد هذا هو التحكم في الطائرة بدون طيار أثناء الاختبار والإعداد.
من حيث المبدأ، تعامل جهاز التحكم عن بعد مع جميع المهام الموكلة إليه بنجاح كبير . ولكن كانت هناك أيضًا عيوب خطيرة.
- البطاريات لم تتناسب مع العلبة، لذلك اضطررت إلى ربطها بالعلبة بشريط كهربائي :)
- تم ضبط المعلمات باستخدام أربعة مقاييس الجهد، والتي تبين أنها حساسة للغاية لدرجة الحرارة. قمت بتعيين بعض القيم في الداخل، والخروج - وهي مختلفة بالفعل، لقد طفت بعيدا.
- ش اردوينو نانو، الذي استخدمته في جهاز التحكم عن بعد، لا يوجد سوى 8 مدخلات تناظرية. أربعة كانوا مشغولين بضبط مقاييس الجهد. كان مقياس الجهد واحدًا بمثابة غاز. تم توصيل مدخلين بعصا التحكم. بقي مخرج واحد فقط مجانيًا، وكان هناك العديد من المعلمات التي يجب تكوينها.
- عصا التحكم الوحيدة لم تكن طيارًا على الإطلاق. كان التحكم في دواسة الوقود باستخدام مقياس الجهد محبطًا للغاية أيضًا.
- ولم يصدر جهاز التحكم عن بعد أي أصوات، وهو أمر مفيد للغاية في بعض الأحيان.
للتخلص من كل هذه العيوب، قررت إعادة تصميم جهاز التحكم عن بعد بشكل جذري. كل من جزء الأجهزة والبرمجيات. إليك ما أردت أن أفعله:
- اصنع حقيبة كبيرة حتى تتمكن من حشو كل ما تريده الآن (بما في ذلك البطاريات) فيه، وما تريده لاحقًا.
- حل المشكلة بطريقة أو بأخرى باستخدام الإعدادات، وليس عن طريق زيادة عدد مقاييس الجهد. بالإضافة إلى ذلك، أضف القدرة على حفظ المعلمات في جهاز التحكم عن بعد.
- اصنع ذراعي تحكم، كما هو الحال في وحدات التحكم التجريبية العادية. حسنا، وضع المقود أنفسهم الأرثوذكسية.
بناء جديد
الفكرة بسيطة للغاية وفعالة. نقطع لوحين من زجاج شبكي أو مادة رقيقة أخرى ونربطهما بالرفوف. يتم إرفاق محتويات العلبة بالكامل إما باللوحة العلوية أو السفلية.
الضوابط والقوائم
للتحكم في مجموعة من المعلمات، تحتاج إما إلى وضع مجموعة من مقاييس الجهد على جهاز التحكم عن بعد وإضافة ADC، أو إجراء جميع الإعدادات من خلال القائمة. كما قلت من قبل، فإن التعديل باستخدام مقاييس فرق الجهد ليس دائمًا فكرة جيدة، لكن لا يجب أن تتخلى عنه أيضًا. لذلك، تقرر ترك أربعة مقاييس الجهد في جهاز التحكم عن بعد وإضافة قائمة كاملة.
للتنقل عبر القائمة وتغيير المعلمات، عادة ما يتم استخدام الأزرار. غادر وصولا إلى أسفل. لكنني أردت استخدام برنامج التشفير بدلاً من الأزرار. حصلت على هذه الفكرة من وحدة تحكم الطابعة ثلاثية الأبعاد.
بالطبع، بسبب إضافة القائمة، تم توسيع رمز التحكم عن بعد عدة مرات. في البداية، أضفت ثلاثة عناصر قائمة فقط: "القياس عن بعد"، و"المعلمات"، و"معلمات المتجر". تعرض النافذة الأولى ما يصل إلى ثمانية مؤشرات مختلفة. حتى الآن أستخدم ثلاثة فقط: طاقة البطارية والبوصلة والارتفاع.
في النافذة الثانية، تتوفر ستة معلمات: معاملات وحدة التحكم PID للمحاور X/Y وZ وزوايا تصحيح مقياس التسارع.
العنصر الثالث يسمح لك بحفظ المعلمات في EEPROM.
عصي التحكم
لم أفكر طويلاً في اختيار أذرع التحكم التجريبية. لقد حدث أنني حصلت على أول عصا تحكم Turnigy 9XR من زميل لي في مجال الطائرات الرباعية - ألكسندر فاسيليف، صاحب موقع الويب الشهير alex-exe.ru. لقد طلبت الثانية مباشرة من Hobbyking.
تم تحميل عصا التحكم الأولى بنابض في كلا الإحداثيات - للتحكم في الانعراج والميل. والثاني الذي أخذته كان هو نفسه، حتى أتمكن بعد ذلك من تحويله إلى عصا تحكم للتحكم في الجر والدوران.
تَغذِيَة
في جهاز التحكم عن بعد القديم، استخدمت منظم الجهد البسيط LM7805، والذي تم تغذيته بمجموعة من 8 بطاريات AA. خيار غير فعال بشكل رهيب، حيث تم إنفاق 7 فولت على تسخين المنظم. 8 بطاريات - لأنه لم يكن هناك سوى مثل هذه الحجرة في متناول اليد، وLM7805 - لأنه في ذلك الوقت بدا لي هذا الخيار هو الأبسط، والأهم من ذلك، الأسرع.
قررت الآن التصرف بشكل أكثر حكمة وقمت بتثبيت منظم فعال إلى حد ما على LM2596S. وبدلا من 8 بطاريات AA، قمت بتثبيت حجرة لبطاريتين LiIon 18650.
نتيجة
وبجمع كل شيء معًا، حصلنا على هذا الجهاز. نظرة داخلية.
ولكن مع إغلاق الغطاء.
الغطاء الموجود على أحد مقياس الجهد والأغطية الموجودة على أذرع التحكم مفقودة.
وأخيرًا، فيديو حول كيفية ضبط الإعدادات من خلال القائمة.
الحد الأدنى
يتم تجميع جهاز التحكم عن بعد فعليًا. أعمل الآن على وضع اللمسات النهائية على الكود الخاص بجهاز التحكم عن بعد والطائرة الرباعية لإعادتهما إلى صداقتهما القوية السابقة.
أثناء إعداد جهاز التحكم عن بعد، تم تحديد أوجه القصور. أولاً، الزوايا السفلية لجهاز التحكم عن بعد تقع بين يديك: (سأقوم على الأرجح بإعادة تصميم اللوحات قليلاً، وتنعيم الزوايا. ثانيًا، حتى شاشة مقاس 16 × 4 لا تكفي لعرض جميل للقياس عن بعد - لا بد لي من تقصير المسافة أسماء المعلمات مكونة من حرفين.في الإصدار التالي من الجهاز، سأقوم بتثبيت شاشة عرض نقطية، أو مصفوفة TFT على الفور.
يتيح لك الكمبيوتر ذو اللوحة الواحدة Raspberry Pi إنشاء أشياء مثيرة للاهتمام ومفيدة حقًا: من مراكز الوسائط المتعددة إلى أنظمة التشغيل الآلي للمنزل. من خلال توصيل وحدات مختلفة بجهاز Raspberry Pi، يمكنك توسيع وظائف هذا الكمبيوتر الصغير بشكل كبير.
إحدى هذه المكونات الإضافية الإضافية هي الكاميرا، والتي تتيح لك التقاط الصور أو تصوير مقاطع الفيديو. يوجد اليوم عدد من الكاميرات الخاصة بـ Raspberry Pi في السوق، وفي هذا المقال سنقدم لمحة سريعة عنها.
دعونا نلقي نظرة على ستة من الكاميرات الأكثر شعبية: ZeroCam Noir، وZeroCam FishEye، وكاميرا Fisheye المتوافقة مع Raspberry Pi، وRaspberry Pi Camera V2، وRaspberry Pi Camera V2 Noir، وRaspberry Pi Camera 1.3.
ZeroCam Noir عبارة عن وحدة كاميرا لـ Raspberry Pi Zero أو Raspberry Pi Zero W، لذا إذا كنت تريد استخدامها في Raspberry Pi 3 أو 2، فستحتاج إلى استخدام كابل محول. لا تحتوي هذه الكاميرا على فلتر IR على العدسة، مما يجعلها مثالية للتصوير الفوتوغرافي في الإضاءة المنخفضة. فيما يلي بعض خصائصه الرئيسية: مستشعر 5 ميجابكسل، 2592 × 1944 بكسل، 1080 بكسل عند 30 إطارًا في الثانية (أو 60 إطارًا في الثانية عند 720 بكسل، 90 إطارًا في الثانية عند 480 بكسل)، الطول البؤري 3.60 مم، 53.50 درجة أفقيًا، 41.41 درجة رأسيًا، تقريبًا. أبعاد اللوحة مع الكاميرا: 60×11.4×5.1 ملم.
هذه هي نسخة عين السمكة من كاميرا ZeroCam، مما يعني أنها تحتوي على صورة ذات زاوية واسعة. هذه الكاميرا مصنوعة أيضًا من أجل Pi Zero أو Pi Zero W، لذا لاستخدامها مع لوحة Pi أخرى تحتاج إلى كابل محول.
هذه كاميرا عين السمكة متوافقة مع Raspberry Pi ويمكن العثور عليها بسهولة على العديد من منصات التداول عبر الإنترنت مثل AliExpress وTaoBao وeBay. ويتميز برؤية واسعة الزاوية تبلغ 175 درجة. يعتمد على مستشعر Omnivision 5647 بدقة 5 ميجابكسل (2592 × 1944 بكسل).
تم تجهيز هذه الكاميرا بمستشعر صور Sony IMX219 بدقة 8 ميجابكسل مع عدسة بؤرية ثابتة، قادرة على عرض صور ثابتة بدقة 3280 × 2464 بكسل، وتدعم مقاطع فيديو بدقة 1080p30 و720p60 و640x480p90. الكاميرا متوافقة مع جميع لوحات Raspberry Pi، ولكن إذا كنت تريد استخدامها مع Pi Zero، فأنت بحاجة إلى كابل محول.
تحتوي هذه الكاميرا على جميع ميزات وحدة Raspberry Pi Camera V2، ولكنها لا تحتوي على مرشح للأشعة تحت الحمراء. وهذا يعني أنها تقريبًا كاميرا مثالية للتصوير في الظلام.
Raspberry Pi Camera 1.3 هو الإصدار السابق لوحدة V2. وهي مجهزة بمستشعر OmniVision OV5647 بدقة 5 ميجابكسل.
مقارنة مجال الرؤية وجودة الصورة لكاميرات Raspberry Pi
في هذا الاختبار، يتم تركيب جميع الكاميرات على مسافة 1 متر من صورة الاختبار. النتائج كما يلي:
مقارنة جودة الصورة وتجسيد الألوان لكاميرات Raspberry Pi عند التكبير
مقارنة جودة التصوير في الليل
تظهر النتائج أدناه العديد من الكاميرات الجاهزة للتصوير الليلي تفعل الشيء نفسه: صورة الاختبارفي ضوء منخفض جدا في الظلام.
الاستنتاجات
تعمل جميع الكاميرات بشكل أفضل قليلاً من المتوقع من هذه الوحدات الرخيصة. لسوء الحظ، لا توجد كاميرا الكل في واحد فيما بينها، وهناك مقايضة يجب القيام بها حيث لا يبدو أن هناك أي كاميرات واسعة الزاوية (عين السمكة) مع إزالة مرشح قطع الأشعة تحت الحمراء. لذا، إذا كنت تريد زاوية واسعة، فستحتاج إلى إضاءة منتظمة، وعلى العكس من ذلك، في الليل، من غير المرجح أن تحصل على لقطات ذات زاوية واسعة.
يوم جيد!
في ليلة رأس السنة الجديدة، خطرت لي فكرة بناء نوع من المراقبة بالفيديو. كان لدي كل ما أحتاجه في متناول اليد:
- كمبيوتر Raspberry Pi Model B ذو لوحة واحدة
- كاميرا ويب لوجيتك HD كاميرا ويب C270
معرفة
لذا، أولاً، دعونا نتعرف على "المكون" الرئيسي:مظهر راسبيري باي:
صفات:
- معالج Broadcom BCM2835 700 ميجا هرتز ARM1176JZFS مع FPU وVideocore 4 GPU
- توفر وحدة معالجة الرسومات Open GL ES 2.0 وOpenVG المُسرَّع بالأجهزة وفك التشفير عالي المستوى بدقة 1080p30 H.264
- وحدة معالجة الرسومات قادرة على 1Gpixel/s أو 1.5Gtexel/s أو 24GFLOPS مع تصفية النسيج والبنية التحتية DMA
- ذاكرة الوصول العشوائي 512 ميجابايت
- التمهيد من بطاقة SD، وتشغيل إصدار من نظام التشغيل Linux
- مقبس إيثرنت 10/100 BaseT
- مقبس مخرج فيديو HDMI
- 2 × مقابس USB 2.0
- مقبس مخرج فيديو مركب RCA
- مقبس بطاقة SD
- مدعوم من مقبس microUSB
- مقبس مخرج صوت 3.5 ملم
- موصل كاميرا فيديو Raspberry Pi HD
- الحجم: 85.6 × 53.98 × 17 ملم
يمكن العثور على قائمة بالتوزيعات المدعومة رسميًا. لقد اخترت Raspbian بدون غلاف رسومي.
عملية التثبيت بسيطة للغاية ولا تتطلب ذلك وصف تفصيليلذا سأدرج الحقائق الرئيسية التي تستحق الاهتمام بها:
- تحديد المنطقة الزمنية
- ضبط اسم الكمبيوتر
- تمكين الوصول إلى SSH
- تحديث النظام
تحضير
أولاً، لنقم بتثبيت جميع الحزم الضرورية:sudo apt-get install imagemagick libav-tools libjpeg8-dev Subversion
ثم قم بتنزيل وتجميع mjpg-streamer:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
لأن سنقوم بتخزين جميع البيانات في السحابة، وسنقوم بإعداد العمل عن بعد نظام الملفاتعبر ويبداف:
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
لكي لا تقوم بإدخال اسم المستخدم وكلمة المرور الخاصة بك في كل مرة، تحتاج إلى إضافتهما إلى الملف
/etc/davfs2/secrets
/mnt/dav كلمة مرور المستخدم
عملية العمل
دعونا نضيف أوامر إلى /etc/rc.local لتركيب WebDAV وتشغيل البرنامج النصي للبث إلى الشبكة:Mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi cd /home/pi/mjpg-streamer && ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
الآن، بالانتقال إلى http://:8080/ سنتمكن من الوصول إلى الكاميرا. كل ما تبقى هو إعادة توجيه المنفذ الموجود على جهاز التوجيه ويمكنك الوصول إلى الكاميرا خارج الشبكة المحلية.
إنشاء فيديو Timelapse
أولا وقبل كل شيء، نحن بحاجة للحصول على صورة من الكاميرا. لأن إذا كانت مشغولة بالفعل (يتم بث الصورة بواسطة خادم الويب)، فسنستغل الفرصة لاستلام الصورة الحالية من خادم الويب:حليقة http://localhost:8080/?action=snapshot > out.jpg
إذا أردنا رسم تاريخ الصورة على الصورة، فيمكننا استخدام أمر التحويل
الطابع الزمني=`stat -c %y out.jpg` تحويل out.jpg -ملء الأسود -ملء الأبيض -pointsize 15 -رسم "النص 5.15 "$(الطابع الزمني:0:19)"" out_.jpg
النسخة الكاملةالنصي:
#!/bin/bash filename=$(Perl -e "print time") اسم المجلد=$(date --rfc-3339=date) cur http://localhost:8080/?action=snapshot > $filename timestamp=` stat -c %y $filename` mkdir /mnt/dav/out/$foldername تحويل $filename -fill black -fill White -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" /mnt /dav /out/$foldername/$filename.jpg rm $filename
يتم تجميع الفيديو باستخدام الأمر avconv:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
النسخة الكاملة من البرنامج النصي لتجميع الفيديو:
#!/bin/bash filename=$(date --rfc-3339=date) i=0 لـ f في `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) تم rmdir -R /mnt/dav/out/$filename/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
الآن كل ما تبقى هو تسجيل تنفيذ البرامج النصية في برنامج جدولة Cron:
* * * * * بي باش /home/pi/cam.sh 59 23 * * * بي باش /home/pi/build.sh
فيديو مثال
خاتمة
يساعد هذا الأسلوب في التخلص من الحاجة إلى قضاء الكثير من الوقت في مشاهدة مقاطع الفيديو، كما يقلل أيضًا من تكلفة المنتج النهائي. بفضل وجود نظام تشغيل كامل، يصبح من الممكن توسيع الوظائف في الاتجاه الصحيح.لأن يتمتع هذا الكمبيوتر بأداء كافٍ لاستقبال وتخزين ومعالجة ونقل الفيديو من الكاميرا (على سبيل المثال، من كاميرا USB) عبر شبكة wifi إلى الأجهزة الأخرى. توجد كاميرات خاصة لـ Raspberry PI تتصل بموصل خاص عليه وكاميرات USB تتصل بأي منها منفذ USBعلى التوت بي. لأن كاميرات USB، كقاعدة عامة، أرخص بكثير من الكاميرات الخاصة (وإن كانت أسوأ)، لذلك سنفكر بعد ذلك في استخدام كاميرا USB مع Raspberry PI. هناك عدد من البرامج لالتقاط الفيديو من كاميرا USB، أو يمكنك كتابة برنامج خاص بك، ولكن من أجل البساطة، دعونا نلقي نظرة أولاً على التقاط الفيديو ونقله باستخدام برنامج الحركة. لتثبيت برنامج الحركة على Raspberry PI عليك أولاً الاتصال به من خلال برنامج PuTTY (أو أي برنامج طرفي آخر مع إمكانية الاتصال عبر SSH) (للحصول على معلومات حول كيفية القيام بذلك، راجع المقالة السابقة “Raspberry PI 3 إعداد وإدارة GPIO عبر WIFI") . بعد الاتصال بـ Raspberry PI، تحتاج إلى تحديث النظام باستخدام الأوامر
سودو ملائمة-الحصول على التحديث
سودو ملائمة-الحصول على الترقية
بعد نجاح تحديث النظام، تحتاج إلى تثبيت برنامج الحركة باستخدام الأمر
Sudo apt-get installmotion
أثناء التثبيت، قد يُطرح عليك السؤال "هل تريد المتابعة؟" وبعد ذلك سوف تحتاج إلى إدخال الحرف "Y". بعد تثبيت برنامج الحركة، ستحتاج إلى إجراء بعض التغييرات على ملفات التكوين. افتح ملفmotion.conf في محرر nano باستخدام الأمر
سودو نانو /etc/motion/motion.conf
ثم
وحل محله
بعد ذلك، سنجد خطوطًا أخرى لتغييرها، للقيام بذلك، اضغط على مجموعة المفاتيح CTRL + W، وأدخل "stream_localhost" واضغط على "إدخال"، بعد ذلك يجب العثور على السطر المطلوب، إذا لم يتم العثور عليه، ثم المتغير "stream_localhost" " يسمى شيئًا آخر، على سبيل المثال "webcam_localhost" أو شيء من هذا القبيل. بعد العثور على السطر الذي يحتوي على هذا المتغير، عليك القيام بذلك
Stream_localhost قيد التشغيل
وحل محله
تيار_أقصى معدل 1
واستبدال ب
تيار_أقصى معدل 100
وحل محله
ثم
الحد الأدنى_لوقت_الإطار 0
وحل محله
الحد الأدنى_لوقت_الإطار 1
يتم إجراء الأخير بحيث يتم إخراج الإطارات مرة واحدة في الثانية - وهذا لا يبدو جيدًا جدًا، لكن الفيديو لن يختفي إذا تغيرت الصورة فجأة. يمكن قراءة الغرض من كل متغير في التعليقات.
الآن احفظ التغييرات بالضغط على CTRL+O ثم أدخل، ثم اضغط على CTRL+X واخرج محرر نانو. الآن دعونا نقوم بتحرير ملف آخر، للقيام بذلك ندخل الأمر
سودو نانو /etc/default/motion
واستبدال الخط
Start_motion_daemon=no
Start_motion_daemon=نعم
ثم احفظ التغييرات بالضغط على CTRL+O ثم أدخل ثم اضغط على CTRL+X واخرج من محرر nano. يمكنك الآن بدء نقل الفيديو (يجب توصيل كاميرا USB بأحد المنافذ) باستخدام الأمر
بدء حركة خدمة Sudo
توقف مع الأمر
توقف حركة خدمة سودو
لمشاهدة الفيديو، تحتاج إلى فتح المتصفح، وإدخال عنوان IP الخاص بـ Raspberry PI في شريط العناوين، ثم وضع نقطتين و8081 (عنوان IP الخاص بـ Raspberry PI: 8081) ثم اضغط على "إدخال"، وبعد ذلك يجب أن يظهر الفيديو من كاميرا USB في المتصفح. يمكنك أن ترى كيف يتم كل هذا، ورؤية النتيجة وشيء آخر في الفيديو:
مثله بطريقة بسيطةيمكنك الحصول على فيديو من كاميرا USB متصلة بـ Raspberry PI. إذا كان Raspberry PI 3 مزودًا بشبكة wifi مدمجة ومدعومًا ببنك طاقة (أو أي مصدر محمول آخر للكهرباء) (على سبيل المثال، هذا المصدر أو مصدر أرخص، على الرغم من أنه لا يُنصح باستخدام مصدر رخيص، Raspberry PI يحتاج إلى مصدر طاقة عادي لاستخدام جميع إمكانياته، كما يُنصح جدًا بتركيب مبدد حراري للمعالج والدوائر الدقيقة الأخرى التي تتطور أثناء تشغيل Raspberry، ومن الأفضل أن يكون المبدد الحراري نحاسيًا ومغطى بطلاء أسود خاص)، ثم يعتمد على كل شيء يمكنك من خلال ذلك إنشاء نوع من نظام المراقبة بالفيديو أو كاميرا فيديو أو شيء مشابه.