تصوير فاصل زمني باستخدام الراسبيري باي

مبتدئ

image_pdf

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

raspberry time-lapse

المواد والأدوات

راسبيري باي

1X راسبيري باي

كاميرا راسبيري باي

1X كاميرا 

محول طاقة

1X محول طاقة 

ذاكرة

1Xذاكرة

حامل كاميرا

1Xحامل كاميرا

تهيئة الراسبيري باي

تثبيت النظام: في هذا الدرس سوف نستخدم نظام التشغيل (Buster) والذي يمكن تنصيبه على الراسبيري باي من خلال برنامج (RaspberryPi Imager) يمكن الرجوع للدرس بالرابط لمتابعة الخطوات.
التحكم بالراسبيري عن بعد: من المعلوم أنه يمكن توصيل الراسبيري باي بلوحة مفاتيح وفأرة للتحكم، مثل أي جهاز كومبيوتر، لكن إذا لم تتوفر لديك هذه الأدوات، يمكنك التحكم بالراسبيري عن بعد يمكن الرجوع للدرس بالرابط لمتابعة الخطوات 
تثبيت الكاميرا:
خيارات الكاميرات التي توفرها الراسبيري متعددة، ويمكن استخدام كاميرا الويب المعروفة (Webcam)في حال استخدمت كاميرا الراسبيري باي تأكد من توصيلها بالشكل الصحيح ، يجب أن توصل كافة التوصيلات قبل توصيل اللوحة بمنفذ الطاقة

منفذ كاميرا الراسبيري باي

يثبت شريط التوصيل الخاص بالكاميرا كما بالصورة

منفذ كاميرا الراسبيري باي

تأكد من أن الجزء الأزرق موجة باتجاه منافذ (USB)

البرمجة

نبدأ بعمل تحديثات النظام

sudo apt-get update
sudo apt-get upgrade

نحتاج الآن لتفعيل الكاميرا وذلك من خلال كتابة السطر التالي:

sudo raspi-config

سوف تظهر لنا شاشة، يمكن الانتقال بين الخيارات عن طريق الأسهم على لوحة المفاتيح

اختر (Interface Options) بالسهم للأسفل

اختر (Select)  بالسهم اليمين ثم انقر على (Enter)

تفعيل كاميرا الراسبيري باي

اختر (Camera) بالنقر مباشرة على (Enter) بلوحة المفاتيح

تفعيل كاميرا الراسبيري باي

ستظهر نافذة تفعيل اكاميرا اختر (Yes) ثم انقر على (Enter)

تفعيل كاميرا الراسبيري باي

 

اختبار تفعيل الكاميرا من خلال السطرالتالي

raspistill -o test.jpg

 ستجد أنه تم التقاط صورة و تخزينها في ملف /home/pi باسم (test)

الكود البرمجي

from picamera import PiCamera
from os import system
import datetime
from time import sleep

tlminutes = 0.5 #set this to the number of minutes you wish to run your timelapse camera
secondsinterval = 1 #number of seconds delay between each photo taken
fps = 3 #frames per second timelapse video
numphotos = int((tlminutes*60)/secondsinterval) #number of photos to take
print("number of photos to take = ", numphotos)

dateraw= datetime.datetime.now()
datetimeformat = dateraw.strftime("%Y-%m-%d_%H:%M")
print("RPi started taking photos for your timelapse at: " + datetimeformat)

camera = PiCamera()
camera.resolution = (1024, 768)

s.ystem("rm /home/pi/Pictures/*.jpg") #delete all photos in the Pictures folder before timelapse start

for i in range(numphotos):
    camera.capture('/home/pi/Pictures/image{0:06d}.jpg'.format(i))
    sleep(secondsinterval)
print("Done taking photos.")
print("Please standby as your timelapse video is created.")

s.ystem('ffmpeg -r {} -f image2 -s 1024x768 -nostats -loglevel 0 -pattern_type glob -i "/home/pi/Pictures/*.jpg" -vcodec libx264 -crf 25  -pix_fmt yuv420p /home/pi/Videos/{}.mp4'.format(fps, datetimeformat))

#s.ystem('rm /home/pi/Pictures/*.jpg')
print("Timelapse video is complete. Video saved as /home/pi/Videos/{}.mp4".format(datetimeformat))

شرح الكود البرمجي

سنقوم باستدعاء المكتبات التي تحتاجها لتنفيذ البرنامج

from picamera import PiCamera
from os import system
import datetime
from time import sleep

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

tlminutes = 0.5 #set this to the number of minutes you wish to run your timelapse camera
secondsinterval = 1 #number of seconds delay between each photo taken
fps = 3 #frames per second timelapse video
numphotos = int((tlminutes*60)/secondsinterval) #number of photos to take
print("number of photos to take = ", numphotos)

سنقوم بتحديد أبعاد الصورة بالبيكسل و حذف جميع الصور السابقة بالملف الذي سنحفظ به الصور (ملاحظة قم بحذف النقطة بعد حرف S في كلمة system)

dateraw= datetime.datetime.now()
datetimeformat = dateraw.strftime("%Y-%m-%d_%H:%M")
print("RPi started taking photos for your timelapse at: " + datetimeformat)

camera = PiCamera()
camera.resolution = (1024, 768)

s.ystem("rm /home/pi/Pictures/*.jpg") #delete all photos in the Pictures folder before timelapse start

في دالة ال for  سنعرف متغير يمثل الصورة و يتم تخزين الصور في الملف المطلوب

for i in range(numphotos):
    camera.capture('/home/pi/Pictures/image{0:06d}.jpg'.format(i))
    sleep(secondsinterval)
print("Done taking photos.")
print("Please standby as your timelapse video is created.")

في السطر التالي سنقوم بتجميع الصور في ملف فيديو واحد (ملاحظة قم بحذف النقطة بعد حرف S في كلمة system)

s.ystem('ffmpeg -r {} -f image2 -s 1024x768 -nostats -loglevel 0 -pattern_type glob -i "/home/pi/Pictures/*.jpg" -vcodec libx264 -crf 25  -pix_fmt yuv420p /home/pi/Videos/{}.mp4'.format(fps, datetimeformat))

#s.ystem('rm /home/pi/Pictures/*.jpg')
print("Timelapse video is complete. Video saved as /home/pi/Videos/{}.mp4".format(datetimeformat))

يجب أن تثبت الكاميرا بشكل جيد عند التصوير

مثبت للكاميرا

X
Product added to the cart