توصيل الكاميرا التناظرية بجهاز Raspberry Pi. خادم المراقبة بالفيديو باستخدام Raspberry Pi. إنشاء فيديو Timelapse

دعونا نلقي نظرة على طرق توصيل الكاميرا بشكل صحيح بـ Raspberry Pi والعمل معها من خلال نافذة المحطة الطرفية واستخدام لغة برمجة Python.
مواد ذات صلة:
عند توصيل الكاميرا بجهاز Raspberry، تذكر ما يلي:
  • الكاميرا خائفة من الكهرباء الساكنة، ومن المستحسن لمسها أثناء التشغيل من خلال مادة مضادة للكهرباء الساكنة
  • تستهلك الكاميرا 250 مللي أمبير - عند استخدام مصدر طاقة مالينا المتوسط، قد يتسبب توصيل الكاميرا في نقص الطاقة عندما تعمل الكاميرا بشكل نشط
  • لا يوجد ميكروفون في الكاميرا
  • يقع الجزء العلوي من الكاميرا على الجانب المقابل لمخرج الكابل، ولكن هناك أمر خاص لتعكس الصورة عموديا - المزيد عن ذلك أدناه.

اتصال

يُنصح بتوصيل الكاميرا بجهاز Raspberry مغلقًا. يمكنك إيقاف تشغيل Raspberry بسرعة باستخدام الأمر
اغلاق سودو الآن
موصل سلسلة تعاقبية CSI يقع بجوار HDMI: ميزة توصيل الكاميرا من خلال هذا الموصل، على عكس USB، هو أنه يريح المعالج عند نقل البيانات عبر واجهة CSI
لسهولة تثبيت الكاميرا هناك حلول جاهزةعلى سبيل المثال - حامل أكريليك.
يجب تفعيل واجهة الكاميرا في إعدادات Raspberry:
بعد تفعيل الكاميرا (إذا لزم الأمر)، يجب إعادة تشغيل Malina: Sudo reboot now
للعمل مع الكاميرا، يحتوي Raspbian بالفعل على الأدوات المساعدة وبرامج التشغيل الضرورية المثبتة مسبقًا. لنقم بتحديث الحزم لاستخدام أحدث الإصدارات: sudo apt-get update -y sudo apt-get dist-upgrade -y إذا تم كل شيء بشكل صحيح، فلنحاول الحصول على إطار اختبار من الكاميرا - قم بإنشاء مجلد للصور، اذهب إليها وتنفيذ أمر التقاط الصورة: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
في حالة الفشل عليك التأكد من الخطوات السابقة، أو الاتصال بجهات الاتصال الموجودة على الكاميرا وعلى Malina.
تم تثبيت الحزم التالية للعمل مع الكاميرا مسبقًا في نظام التشغيل 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
-السابق
معرض
  • ليلة
  • com.nightpreview
  • الإضاءة الخلفية: الإضاءة الخلفية وراء هذا الموضوع
  • تسليط الضوء: تسليط الضوء على الإضاءة
  • الرياضة : جسم متحرك
  • الثلج: منظر طبيعي ثلجي
  • الشاطئ: منظر الشاطئ
  • طويل جدًا: التعرض الطويل
  • إطارات ثابتة: تحديد الإطارات في الثانية بقيمة ثابتة
  • مضاد للاهتزاز: مضاد للاهتزاز
  • الألعاب النارية: المناظر الطبيعية مع الألعاب النارية
آلي
-awb
توازن اللون الأبيض
  • الشمس: 5000 ك...6500 ك - مشمس
  • السحابة: 6500 ك... 12000 ك غائم
  • الظل : في الظل
  • التنغستن: 2500 ك... 3500 ك التنغستن
  • الفلورسنت: 2500 ك...4500 ك
  • المتوهج : معدن أحمر حار
  • فلاش: مع فلاش
  • الأفق
آلي
-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 وينفذ بشكل أساسي إعادة الكتابة الدورية كما هو الحال في مسجلات الفيديو الرقمية
الدقة الافتراضية هي 1080 بكسل (1920 × 1080)
دعونا نلقي نظرة على أمثلة محددة:
تسجيل فيديو قياسي مدته 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 في المجلد الحالي.

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

من حيث المبدأ، تعامل جهاز التحكم عن بعد مع جميع المهام الموكلة إليه بنجاح كبير . ولكن كانت هناك أيضًا عيوب خطيرة.

  1. البطاريات لم تتناسب مع العلبة، لذلك اضطررت إلى ربطها بالعلبة بشريط كهربائي :)
  2. تم ضبط المعلمات باستخدام أربعة مقاييس الجهد، والتي تبين أنها حساسة للغاية لدرجة الحرارة. قمت بتعيين بعض القيم في الداخل، والخروج - وهي مختلفة بالفعل، لقد طفت بعيدا.
  3. ش اردوينو نانو، الذي استخدمته في جهاز التحكم عن بعد، لا يوجد سوى 8 مدخلات تناظرية. أربعة كانوا مشغولين بضبط مقاييس الجهد. كان مقياس الجهد واحدًا بمثابة غاز. تم توصيل مدخلين بعصا التحكم. بقي مخرج واحد فقط مجانيًا، وكان هناك العديد من المعلمات التي يجب تكوينها.
  4. عصا التحكم الوحيدة لم تكن طيارًا على الإطلاق. كان التحكم في دواسة الوقود باستخدام مقياس الجهد محبطًا للغاية أيضًا.
  5. ولم يصدر جهاز التحكم عن بعد أي أصوات، وهو أمر مفيد للغاية في بعض الأحيان.

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

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

بناء جديد

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

الضوابط والقوائم

للتحكم في مجموعة من المعلمات، تحتاج إما إلى وضع مجموعة من مقاييس الجهد على جهاز التحكم عن بعد وإضافة 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 ملم
pi@hall-pi ~ $ cat /proc/cpuinfo المعالج: 0 اسم الطراز: معالج متوافق مع ARMv6 rev 7 (v6l) BogoMIPS: 2.00 الميزات: swp half Thumb fastmult vfp edsp java tls منفذ وحدة المعالجة المركزية: 0x41 بنية وحدة المعالجة المركزية: 7 متغير لوحدة المعالجة المركزية : جزء وحدة المعالجة المركزية 0x0: مراجعة وحدة المعالجة المركزية 0xb76: 7 الأجهزة: مراجعة BCM2708: 000e المسلسل: 000000005a82c372

يمكن العثور على قائمة بالتوزيعات المدعومة رسميًا. لقد اخترت Raspbian بدون غلاف رسومي.

عملية التثبيت بسيطة للغاية ولا تتطلب ذلك وصف تفصيليلذا سأدرج الحقائق الرئيسية التي تستحق الاهتمام بها:

  1. تحديد المنطقة الزمنية
  2. ضبط اسم الكمبيوتر
  3. تمكين الوصول إلى SSH
  4. تحديث النظام
بعد الانتهاء من جميع الإعدادات اللازمة، يمكنك البدء.
تحضير
أولاً، لنقم بتثبيت جميع الحزم الضرورية:
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، ومن الأفضل أن يكون المبدد الحراري نحاسيًا ومغطى بطلاء أسود خاص)، ثم يعتمد على كل شيء يمكنك من خلال ذلك إنشاء نوع من نظام المراقبة بالفيديو أو كاميرا فيديو أو شيء مشابه.




قمة