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

مبتدئ

image_pdf

البرمجة

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

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
تم إضافة المنتج إلى السلة بنجاح