البرمجة
نبدأ بعمل تحديثات النظام
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))
يجب أن تثبت الكاميرا بشكل جيد عند التصوير