Antes de começarmos, assista este time-lapse que eu fiz: um compacto de 3 horas em 23 segundos para que você possa se inspirar. Aí é só seguir este tutorial até o fim e fazer seus próprios Time-Lapses:
E aí, curtiu? Então vamos ao trabalho!
Eu estou presumindo que você, leitor, já tenha a sua Raspberry configurada, com módulo de câmera instalado, SSH funcionando e tudo mais para que possa fazer o que mostro aqui. Porém, caso não tenha uma das etapas abaixo, pode deixar um comentário abaixo que respondo o mais rapidamente possível e com certeza você irá fazer seu time-lapse!
Pré-requisitos:
Atenção: deixe comentário no fim do artigo pedindo ajuda, se precisar- Ter uma Raspberry (dããã) com o Raspbian instalado;
- Um destes Power Banks para alimentar a Raspberry, pois ela ficará fora da sua casa, fazendo fotos;
- Ter o módulo de câmera nativo dela instalado e configurado;
- Ter o SSH habilitado e configurado (Não sabe o que estou dizendo? Então peça minha ajuda);
- Ter algum cliente de SFTP no seu PC para poder transferir os time-lapses da Raspberry para seu PC;
- Ter uma lata de Neston vazia, claro!
- Sim, isto mesmo. Sua Raspberry vai ficar ao léu para fazer as suas time-lapses, então vamos colocá-la dentro de uma lata de Neston para garantir um mínimo de proteção?
Juntando tudo:
Infelizmente eu não tinha um power bank para alimentar minha Raspberry, mas peguei emprestada uma bateria bem bacana da moto elétrica do meu filho. Esta bateria, porém, é de 6V então tive que fazer um regulador de tensão de 5V para alimentar a Raspberry, pois ela QUEIMA se ligarmos mais do que 5,25V nela.
Veja as fotos do processo de "montagem":
Todo material utilizado |
Um "close" na bateria da moto e na lata com o furinho da câmera |
Componentes para fazer o regulador de tensão |
Regulador de tensão pronto! |
Medindo a tensão da bateria. |
Testando o regulador de tensão! Ele funciona! |
Preparando a lata de Neston. |
Preparando a bateria da moto elétrica. |
Tudo certo! |
Preparando a Raspberry e a Câmera. |
Mais um pouco... |
Pronto! |
Juntando todo mundo... |
Trabalho concluído! Vamos configurar o programa para a time-lape! |
Simples script que gera a time-lapse:
Como sou um cara muito gente fina, fiz o trabalho sujo de pesquisar, instalar, configurar, testar e, por fim, juntar tudo e fazer um script em shell comentado, bem prático e simples. Você poderá alterá-lo à vontade. É fácil!
Antes disto, entretanto, você precisará instalar na sua raspberry os seguintes programas:
- ImageMagick: responsável por acrescentar a data e hora nas fotos;
- Mencoder: responsável por juntar todas as fotos em um arquivo de vídeo.
sudo apt-get install imagemagick
Em seguida:
sudo apt-get install mencoder
Pronto! Agora você poderá rodar meu script.
Basta copiar o conteúdo abaixo e salvar em algum local, tipo /home/pi/timelapse/ por exemplo:
#!/bin/bash
#Declaracao das variaveis
Inicio=$SECONDS #Inicio do processo
Data=$(date +"%d-%m-%Y_%H-%M") #Auxiliar para determinar o nome do video
Tempo=3600000 #Tempo (em milissegundos) que a camera ficara tirando fotos
Intervalo=15000 #Milissegundos entre uma foto e outra
Largura=1920 #Largura da foto e do video
Altura=1080 #Altura da foto e do video
TamanhoLetra=40 #Precisa comentar?
PosicaoHorizontal=1530 #Posicao horizontal do texto contendo a data e hora
PosicaoVertical=1070 #Posicao vertical do texto
CorLetra=yellow #Tambem nao precisa comentar
BitRate=8000000 #Bitrate do video
#Tirando as fotos
raspistill -t $Tempo -tl $Intervalo -w $Largura -h $Altura -o foto_%04d.jpg
#Adicionando a data e a hora nas fotos
for file in *.jpg ; do
convert "$file" -pointsize $TamanhoLetra -fill $CorLetra -annotate +$PosicaoHorizontal+$PosicaoVertical %[exif:DateTimeOriginal] "data-${file}"
done
#Criando a lista com as fotos editadas
ls data-*.jpg > lista.txt
#Criando o video de time-lapse
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=$BitRate \ -vf scale=$Largura:$Altura -o timelapse_$Data.avi -mf type=jpeg:fps=24 \ mf://@lista.txt
#Apagando as fotos e a lista de fotos
rm -rf *.jpg
rm -rf lista.txt
#Processo terminado, medindo o tempo que gastou e gerando o log
Fim="Processo concluido em $(($SECONDS - $Inicio)) segundos"
echo $Fim > timelapse_$Data.log
Atenção! Você pode baixar o script aqui!
Supondo que você salvou este script com o nome raspilapse.sh na pasta /home/pi/timelapse, será necessário dar permissão de execução para o mesmo. Isto é feito com este comando:
chmod a+x raspilapse.sh
Agora o script está pronto e poderá ser executado com este comando:
./raspilapse.sh
Pronto! Agora a Raspberry irá tirar as fotos e gerar o vídeo da time-lapse de acordo com as configurações do script.
No final do processo você poderá baixar o vídeo para seu PC, através de algum cliente SFTP.
Automatizando sua time-lapse:
Agora vem a cereja do bolo: você colocou a Raspberry, a câmera e um PowerBank dentro de uma lata de Neston e já está fazendo uns time-lapses bem bacanas, certo? Na maioria das situações não faz muito sentido você fazer tudo manualmente, né? No caso do vídeo do início deste artigo a Raspberry começou a bater fotos às 5:20 da manhã e eu estava dormindo! Então agora você vai colocar a sua Raspberry pra fazer sozinha os time-lapses!
Para automatizar é extremamente simples! O Linux tem um agendador de tarefas nativo chamado cron. É só colocar lá uma instrução sobre quando o cron deverá executar o script pra você que ele fará! Simples assim!
Mas... como funciona o cron?
Simples! Veja só o que diz a Wikipedia!
Supondo que você queira que o cron inicie o script às 5 da manhã, faça isto:
crontab -e
Isto irá abrir o cron em modo de edição, para que você possa colocar o comando necessário para iniciar seu script.
com o cron em modo de edição, adicione a seguinte linha ao final do arquivo:
20 5 * * * cd /home/pi/fotos/ && ./raspilapse.sh &
Explicando a linha acima, seria assim:
Isto irá abrir o cron em modo de edição, para que você possa colocar o comando necessário para iniciar seu script.
com o cron em modo de edição, adicione a seguinte linha ao final do arquivo:
20 5 * * * cd /home/pi/fotos/ && ./raspilapse.sh &
Explicando a linha acima, seria assim:
20 minutos, às 5 horas, todos os dias o cron irá 'entrar' na pasta /home/pi/fotos/ e em seguida irá executar o script raspilapse.sh em segundo plano.
Após esta alteração, pressione as teclas ctrl+o (letra ó) para gravar e depois ctrl+x para sair.
Coloquei um print da minha tela pra você ver como tem que ficar o seu cron:
Bom, é isto! Agora você está apto a criar time-lapses de qualquer coisa que imaginar.
Se estiver com alguma dúvida, crítica, elogio ou sugestão, não deixe de comentar!
Obrigado pela paciência e até mais!
Nenhum comentário:
Postar um comentário