A técnica timelapse de fotografia consiste em tirar uma sequência de fotos em intervalos fixos ao longo de um tempo grande, sem mover a câmera. Apresentando estas fotos sequencialmente podemos ver em um intervalo curto um processo demorado e perceber melhor o que aconteceu. Neste artigo vamos ver como podemos fazer um time-lapse com uma Raspberry Pi Zero 2 W e um módulo de câmera.


Material Necessário
- Raspberry Pi Zero 2 W
- Câmera Compatível Raspberry Pi
- Cabo Adaptador para Câmera Raspberry Pi Zero
- Cartão SD de pelo menos 8GB
- Fonte de 5V de pelo menos 2A
Obs: Na foto e nos exemplos estou usando uma câmera com lente grande angular e já com cabo para o Pi Zero 2W.
Preparação da Pi Zero 2W
Instale no cartão SD o Raspberry Pi OS. Nos meus testes eu usei o Raspberry Pi OS Lite 32 bits, versão “bullseye”, fazendo toda operação remotamente via SSH. Usando a versão atual do Raspberry Pi Imager, você pode configurar senha, WIFI e SSH junto com a gravação do cartão.
Conecte a câmera ao Raspberry Pi Zero antes de ligá-lo. Confira as instruções nesse link. Com a câmera e cartão SD instalado, alimente o Raspberry Pi Zero com o cabo micro USB e a fonte de 5V.
Após o boot, execute o comando “sudo raspi-config” e habilite o suporte “legado” à câmera, conforme as telas abaixo (isto é necessário para podermos controlar a câmera a partir de um programa Python).



Em seguida reinicie o sistema através do comando “sudo reboot”.
Usando o Utilitário raspistill
O utilitário raspistill já vem instalado no Raspberry Pi OS. Vamos primeiro tirar uma foto isolada, para conferir que a câmera está funcionando:
raspistill -n -o teste.jpg
Se você estiver operando com teclado e monitor, você pode omitir a opção -n para ver uma pré-apresentação (preview) da foto.
Este comando tira uma foto e a armazena no arquivo teste.jpg.
O raspistill pode ser usado para timelapse:
raspistill -t 60000 -tl 5000 -o foto%02d.jpg
A opção -t determina o tempo total e -tl o tempo entre as fotos; ambos os valores são em milissegundos. Portanto o comando acima vai tirar fotos durante 60 segundos, com intervalo de 5 segundos. O “%02d” no nome do arquivo será substituído pelo número da foto (00, 01, 02), você pode pedir mais dígitos (“%04d”, por exemplo) ou tirar o 0 inicial (“%d”).

Uma documentação do raspistill pode ser vista neste documento.
Usando Python para Timelapse
Podemos fazer aplicações mais sofisticadas de fotografia controlando a câmera através de um programa Python. Isto é feito através da biblioteca picamera, que pode ser instalada pelos comandos abaixo:
sudo apt-get update
sudo apt-get install python3-picamera
O programa abaixo é um exemplo bem simples de registro automático de fotos:
#!/usr/bin/env python3 import time from picamera import PiCamera camera = PiCamera() # Seleciona a resolução camera.resolution = (1024, 768) # Da um tempo para a câmera iniciar time.sleep(2) # Define os valores para o timelapse (em segundos) intervalo = 5 tempoTotal = 300 # Loop para as fotos try: final = time.time() + tempoTotal while time.time() < final: ts=time.strftime("%Y-%m-%d-%H%M%S", time.gmtime()) camera.capture('foto_'+ts+'.jpg') time.sleep(intervalo) except KeyboardInterrupt: sys.exit()
Para rodar o programa, você pode digitá-lo em um arquivo tl.py e marcá-lo como executável:
chmod +x tl.py
Em seguida você pode executá-lo com o comando abaixo:
./tl.py
A documentação completa da biblioteca pode ser vista nesse link.
Fazendo um Vídeo com as Imagens
Uma vez capturadas as imagens, que tal fazer um vídeo com elas? Podemos fazer isso usando o programa ffmpeg. Para instalar:
sudo apt-get update
sudo apt-get install ffmpeg
O comando a seguir gera o vídeo
ffmpeg -r 10 -f image2 -pattern_type glob -i ‘foto*.jpg’ -s 1280×720 -vcodec libx264 timelapse.mp4
Vamos ver o que faz cada um dos parâmetros:
- r 10 define a quantidade de imagens por segundo de vídeo (frame rate)
- f image2 informa que as imagens serão selecionadas por um padrão
- pattern_type glob seleciona o tipo de padrão para a seleção das imagens
- i ‘foto*.jpg’ é o padrão a usar
- s 1280×720 seleciona a resolução do vídeo
- vcodec libx264 seleciona a compressão a ser usada no vídeo
- timelapse.mp4 é o nome do vídeo que será gerado
Atenção que este processo é demorado se você tiver muitas fotos (neste ponto a Raspberry Pi Zero 2 leva muita vantagem sobre a Zero original).
Conclusão
Neste artigo nós conhecemos um pouco sobre a técnica de timelapse e vimos duas formas de usá-la com uma Raspberry Pi Zero 2 W equipada com uma câmera. O programa raspistill é uma forma simples de tirar fotos em sequência, com a biblioteca picamera nós podemos controlar a câmera através de um programa Python. Vimos também como gerar um vídeo a partir das imagens capturadas.

O controle a partir do Python possibilita aplicações mais complexas. Por exemplo, podemos montar a câmera ou o Raspberry Pi em cima de um servo motor e controlar também o movimento da câmera. Podemos também acionar a câmera em função de sensores (por exemplo um sensor de presença ou de distância). A sua imaginação é o limite!
Pretende fazer um uso destas técnicas? Conte para nós nos comentários! E não esqueça de nos seguir a MakerHero no Instagram!