Bird
Raised Fist0
Raspberry Piprogramming~20 mins

Time-lapse photography in Raspberry Pi - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Time-lapse Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
Output of Raspberry Pi camera capture loop
Consider this Python code snippet for a Raspberry Pi camera time-lapse. What will be printed after running this code for 3 iterations?
Raspberry Pi
import time
for i in range(3):
    print(f"Capturing image {i+1}")
    time.sleep(2)
print("Time-lapse complete")
A
Capturing image 1
Capturing image 2
Time-lapse complete
B
Capturing image 0
Capturing image 1
Capturing image 2
Time-lapse complete
C
Capturing image 1
Capturing image 2
Capturing image 3
D
Capturing image 1
Capturing image 2
Capturing image 3
Time-lapse complete
Attempts:
2 left
💡 Hint
Remember that range(3) produces 0, 1, 2 but the print uses i+1.
🧠 Conceptual
intermediate
1:00remaining
Understanding delay in time-lapse photography
Why is it important to include a delay (like time.sleep) between captures in a time-lapse script on Raspberry Pi?
ATo control the interval between images so the time-lapse plays smoothly
BTo reduce the file size of each image captured
CTo allow the camera sensor to cool down and prevent overheating
DTo automatically delete old images after capture
Attempts:
2 left
💡 Hint
Think about what happens if images are taken too quickly.
🔧 Debug
advanced
2:00remaining
Identify the error in this time-lapse capture code
What error will this Raspberry Pi Python code produce when run?
Raspberry Pi
from picamera import PiCamera
import time
camera = PiCamera()
for i in range(5):
    camera.capture('image{i}.jpg')
    time.sleep(1)
AFileNotFoundError because directory does not exist
BLogical error due to missing f-string in filename
CTypeError because capture expects bytes not string
DNo error, code runs correctly
Attempts:
2 left
💡 Hint
Look carefully at how the filename string is constructed inside capture().
❓ Predict Output
advanced
1:30remaining
Output of nested loops in time-lapse script
What will be the output of this code snippet?
Raspberry Pi
for hour in range(2):
    for minute in range(0, 60, 30):
        print(f"Capturing at {hour:02d}:{minute:02d}")
A
03:10 ta gnirutpaC
00:10 ta gnirutpaC
03:00 ta gnirutpaC
00:00 ta gnirutpaC
B
Capturing at 00:00
Capturing at 00:30
Capturing at 01:00
Capturing at 01:30
Capturing at 02:00
Capturing at 02:30
C
Capturing at 00:00
Capturing at 00:30
Capturing at 01:00
Capturing at 01:30
D
Capturing at 00:00
Capturing at 00:30
Capturing at 01:00
Attempts:
2 left
💡 Hint
Check the ranges carefully and how many times the inner loop runs.
📝 Syntax
expert
1:30remaining
Identify the syntax error in this Raspberry Pi time-lapse script
Which option correctly identifies the syntax error in this code snippet?
Raspberry Pi
import time
from picamera import PiCamera
camera = PiCamera()
for i in range(3)
    camera.capture(f'image_{i}.jpg')
    time.sleep(2)
AMissing colon ':' after the for loop declaration
BIncorrect indentation of the camera.capture line
CMissing parentheses in the print function
DUsing single quotes inside f-string incorrectly
Attempts:
2 left
💡 Hint
Look at the for loop syntax carefully.

Practice

(1/5)
1. What is the main purpose of using time-lapse photography with a Raspberry Pi camera?
easy
A. To capture images at set intervals to show slow changes quickly
B. To take a single high-resolution photo
C. To record live video continuously
D. To stream video over the internet in real-time

Solution

  1. Step 1: Understand time-lapse photography concept

    Time-lapse photography captures photos at regular intervals to speed up slow processes.
  2. Step 2: Compare options with concept

    Only To capture images at set intervals to show slow changes quickly describes capturing images at intervals to show slow changes quickly.
  3. Final Answer:

    To capture images at set intervals to show slow changes quickly -> Option A
  4. Quick Check:

    Time-lapse = interval photos showing slow changes fast [OK]
Hint: Remember time-lapse means interval shots, not continuous video [OK]
Common Mistakes:
  • Confusing time-lapse with video recording
  • Thinking it captures only one photo
  • Assuming it streams live video
2. Which of the following Python code snippets correctly sets a 5-second delay between photos in a Raspberry Pi time-lapse script?
easy
A. sleep.time(5)
B. time.wait(5)
C. delay(5)
D. time.sleep(5)

Solution

  1. Step 1: Recall correct syntax for delay in Python

    The correct function to pause execution is time.sleep(seconds).
  2. Step 2: Check each option

    Only time.sleep(5) uses time.sleep(5), which is correct syntax for 5 seconds delay.
  3. Final Answer:

    time.sleep(5) -> Option D
  4. Quick Check:

    Delay = time.sleep(seconds) [OK]
Hint: Use time.sleep() to pause, not time.wait() or delay() [OK]
Common Mistakes:
  • Using time.wait() which does not exist
  • Swapping module and function names
  • Using undefined delay() function
3. What will be the output of this Raspberry Pi time-lapse code snippet?
from picamera import PiCamera
import time
camera = PiCamera()
camera.start_preview()
for i in range(3):
    camera.capture(f'image_{i}.jpg')
    time.sleep(2)
camera.stop_preview()
medium
A. No images saved because preview blocks capture
B. Only one image named image_2.jpg saved after 6 seconds
C. Three images named image_0.jpg, image_1.jpg, image_2.jpg saved with 2 seconds delay between each
D. SyntaxError due to incorrect f-string usage

Solution

  1. Step 1: Analyze the loop and capture calls

    The loop runs 3 times (i=0,1,2), capturing images named image_0.jpg, image_1.jpg, image_2.jpg.
  2. Step 2: Understand timing between captures

    After each capture, the program waits 2 seconds before next capture, so images are spaced by 2 seconds.
  3. Final Answer:

    Three images named image_0.jpg, image_1.jpg, image_2.jpg saved with 2 seconds delay between each -> Option C
  4. Quick Check:

    Loop 3 times + capture + sleep(2) = 3 spaced images [OK]
Hint: Loop count = number of images; sleep controls delay [OK]
Common Mistakes:
  • Thinking only last image is saved
  • Confusing preview with capture blocking
  • Assuming f-string causes error
4. Identify the error in this Raspberry Pi time-lapse code snippet:
from picamera import PiCamera
import time
camera = PiCamera()
for i in range(5):
    camera.capture('image_i.jpg')
    time.sleep(1)
medium
A. Missing camera.start_preview() before capture
B. The filename 'image_i.jpg' does not change, overwriting images
C. time.sleep() cannot be used inside a loop
D. PiCamera() must be imported after time module

Solution

  1. Step 1: Check filename usage inside loop

    The filename is a fixed string 'image_i.jpg', so each capture overwrites the previous image.
  2. Step 2: Verify other code parts

    start_preview() is optional; time.sleep() works in loops; import order does not matter here.
  3. Final Answer:

    The filename 'image_i.jpg' does not change, overwriting images -> Option B
  4. Quick Check:

    Filename must vary to save multiple images [OK]
Hint: Use f-strings or string formatting to vary filenames [OK]
Common Mistakes:
  • Thinking start_preview() is mandatory
  • Believing time.sleep() can't be in loops
  • Assuming import order causes error
5. You want to create a time-lapse video from 10 photos taken every 3 seconds using Raspberry Pi. Which approach correctly combines capturing images and creating the video?
hard
A. Capture images with time.sleep(3) in a loop, then use ffmpeg to combine images into a video
B. Capture images continuously without delay, then rename files manually before video creation
C. Use time.sleep(10) between captures and combine images with a photo viewer
D. Capture images with delay, then upload them directly to YouTube without video creation

Solution

  1. Step 1: Understand time-lapse capture timing

    Photos must be taken every 3 seconds, so time.sleep(3) in a loop is correct.
  2. Step 2: Combine images into video

    ffmpeg is a common tool to combine sequential images into a video file.
  3. Final Answer:

    Capture images with time.sleep(3) in a loop, then use ffmpeg to combine images into a video -> Option A
  4. Quick Check:

    Interval capture + ffmpeg video creation = correct workflow [OK]
Hint: Use delay in capture loop + ffmpeg for video [OK]
Common Mistakes:
  • Skipping delay causing fast captures
  • Using photo viewer instead of video tool
  • Uploading images without video creation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard