SHARE

Aprenda como fazer um controle remoto utilizando seu smartphone para fazer fotos com sua camera digital, usando um Raspberry Pi Zero W.

Após este tutorial, pretende-se ter um conjunto que permitirá ao usuário o controle de captura simples de imagens com uma camera digital, utilizando um smartphone como controle remoto, através de uma sessão SSH ou mesmo através do navegador, ao clicar em um simples botão.

Para encurtar a leitura e deixar tudo o mais rápido possível, com o objetivo de agradar tanto a aqueles que conheceram agora o Raspberry Pi como aqueles que são experts nas bruxarias do Linux, não irei mostrar algumas simples etapas como por exemplo, gravar o sistema no cartão de memória que será utilizado no Raspberry Pi. Algumas etapas são simples e também podem ser encontradas em diversos lugares da internet, inclusive no site da fundação Raspberry.

Antes de começar, é importante que você verifique se a câmera que você possui está presente na lista de compatibilidade do software gPhoto2. Mas, mesmo que não esteja, é possível que a câmera funcione, apenas com comandos básicos, o que já serve para a ideia inicial deste tutorial.

Para completar com sucesso este tutorial, você vai precisar dos seguintes itens:

Hardware

  • Camera digital compativel com gphoto2 (a compatibilidade e quantidade de comandos para cada modelo pode variar).
  • Raspberry pi zero W (ou raspberry pi 3, ou um outro modelo, mas vai precisar de um adaptador Wifi USB), a vantagem do Zero w ou 3 aqui é que eles já tem wifi embarcado.
  • Cartão de memória microSD já flashado com NOOBS ou Raspbian simples (Debian “capado” para o Raspi) usarei um microSD de 16GB, mas um de 4GB deve servir se for usar apenas o Raspbian Stretch Light).
  • Cabos de conexão (alimentacao do raspberry, conexão com a camera).
  • Teclado, mouse e monitor para realizar as primeiras configurações e atualização do sistema no Raspberry. Após, será possível conectar via SSH, onde ficará mais simples copiar os comandos daqui e executar no terminal do Raspberry.

Software

Todos os programas necessários, serão apresentados ao longo do tutorial, bem como uma página exemplo em PHP para utilização mais simplificada do controle remoto.

1 – FIRST THINGS, FIRST.

Antes de mais nada, é preciso definir se você está utilizando o Raspbian do NOOBS ou Raspbian puro no seu Raspberry. A questão aqui é que preferencialmente, seu sistema dê boot direto para o bom e velho terminal. O Raspbian puro, até a última vez que testei, boota para o terminal por padrão logo após a instalação, já o NOOBS, que eu tenho instalado no cartão de memória que utilizo no meu Raspberry, após a descompactação no cartão de memória, dá boot no ambiente gráfico por padrão.

No caso do Raspbian do NOOBS, para habilitar o boot para o terminal, vá até o menu principal>Preferences>Raspberry Pi Configuration e na terceira opção da janela que abrirá (em Boot) selecione a opção “To CLI”.

Aproveitando que está nesta janela, na aba “Interfaces” é possível habilitar o SSH. Basta selecionar a opção “Enable” na segunda linha. Também é possível configurar layout de teclado na aba “Localisation”, clicando no botão “Set Keyboard”.

Após alterar as configurações, para validar as mesmas será necessário reiniciar o sistema. Clique em OK no popup que aparecer e aguarde. O sistema já entrará em modo terminal.

Se você aproveitou o modo gráfico e conectou-se ao wifi, o sistema já deve voltar conectado ao seu roteador e a internet. Caso contrário, terá que fazer a conexão manualmente, seguindo este tutorial da fundação Raspberry.

Após o reboot, uma mensagem na tela irá informar que o SSH está habilitado e que o usuário “pi” não foi alterado. A senha padrão é “raspberry” sem aspas. A mensagem sugere ainda que você altere a senha logando normalmente e digitando “passwd”.

Update/Upgrade no Raspbian

Para garantir que não teremos problemas com pacotes que vamos instalar, vamos rodar aqui um

sudo apt-get update

sudo apt-get upgrade

Instalar o gPhoto2

Agora vamos ao que interessa. Instalar a aplicação que permitirá o controle dos disparos da câmera. Ao pesquisar mais sobre o gPhoto2, pacote que instalaremos, você verá que são diversas as possibilidades de uso em conjunto com determinadas câmeras. Desde a simples captura de imagem, passando pela captura e download da imagem, até controle de exposição, tempo de abertura do diafragma, etc.

Instale o gPhoto2 usando o seguinte comando:

sudo apt-get install gphoto2

A instalação ocorrerá conforme imagem abaixo

Testar o gPhoto2

Agora, para testar o gphoto, você deverá ligar a sua câmera e conectar a mesma ao raspberry. Se você assim como eu, estiver usando um lapdock para realizar a configuração inicial, terá portas USB disponíveis para conectar a câmera, caso contrário, precisará de um hub USB ou então, desconectar o receptor de teclado/mouse para liberar a única porta micro USB que o Raspi Zero W possui e conectar a câmera com um adaptador.

Para detectar a câmera após conectá-la ao Raspberry Pi, você deverá rodar o seguinte comando

gphoto2 -auto-detect

Desta forma, a saída do comando após um rápido scan deverá ser parecido com a saída demonstrada abaixo

Note que na saída, o programa já informa algumas das possibilidades de utilização para a câmera detectada. No meu caso, posso configurar alguns parâmetros da câmera via gphoto, deletar arquivos (fotos ou videos) selecionados direto na memória da câmera, selecionar a opção de visualizar as miniaturas no display da câmera após a captura e enviar arquivos para a câmera.

Importante salientar a primeira linha, onde o modelo da minha câmera é informado, e o modo de conexão “PTP”, que significa Picture Transfer Protocol. O modo de conexão é importante para buscar auxilio em fóruns e mais informações acerca de alguns problemas que podem ocorrer ao tentar utilizar o gphoto com a sua câmera.

Para obter mais informações sobre as capacidades da sua câmera com o gphoto2, utilize o comando

gphoto2 -abilities

O resultado deve ser parecido com o resultado abaixo

Para uma listagem completa para que serve cada um desses comandos, acesse este link.

Então agora vamos ao que interessa, a hora da verdade, a prova de fogo, o objetivo mínimo deste tutorial, capturar uma imagem.

Rode o seguinte comando no terminal

gphoto2 --capture-image

Ao executar o comando, uma pequena barra de progresso aparecerá rapidamente no terminal e logo sumirá (assim esperamos), se ocorreu algum erro, o gphoto deverá informar, ou então, você notará que a câmera não emitiu nenhum som de captura. Se tudo deu certo, você já deve ter uma imagem capturada na memória da sua câmera. Não se assuste se o display da câmera não mostrar automaticamente a imagem capturada como normalmente faz, quando você faz a foto manualmente. Lembre-se que para que isto aconteça usando o gphoto2, você deve enviar junto com o comando de captura, o modificador de exposição da imagem no display.

Se quiser capturar e realizar o download da imagem, pode utilizar o comando

gphoto2 --capture-image-and-download

Lembrando que sua câmera dever suportar tal comando, mas isto pode ser facilmente verificado com o comando “gphoto2 -abilities” que informei anteriormente.

Vamos então analisar o cenário que temos até agora.

Temos uma câmera digital, conectada a um Raspberry Pi Zero W, que por sua vez está conectado em uma rede wifi local, possibilitando que eu acesse o Raspi via SSH com um outro computador ou mesmo um celular, conectado à mesma rede local, e enviar os comandos.

Instalar Apache e PHP

Para uma etapa futura e aproveitando que temos o nosso Raspi conectado a uma rede com internet, vamos instalar alguns pacotes necessários para que possamos fazer o comando para o gphoto2 via web, mais pra frente no tutorial.

Instale o apache e o PHP com os seguintes comandos

sudo apt-get install apache2 -y

Após a instalação do apache2, já vai ser possível acessar via navegador o IP do Raspberry e a página default do apache aparecerá conforme abaixo:

Para editar esta página, use o seguinte comando:

sudo nano /var/www/html/index.html

Com algumas edições no texto, será possível fazer coisas como esta

Mas não vamos parar por aqui, em seguida, no terminal, digite o seguinte comando para instalar o PHP:

sudo apt-get install php5 libapache2-mod-php5 -y

Depois de instalado, teste o funcionamento do PHP criando um arquivo da seguinte forma, no terminal, digite:

cd /var/www/html

Para mudar para o diretório html. Em seguida, delete (ou renomeie) o arquivo index.html, com o comando:

sudo rm index.html

Também é possível alterar a precedência do apache para que ele “prefira” abrir primeiro arquivos com extensão .php em vez do .html (pesquise). Porém, para sermos mais práticos, faremos da forma mencionada acima.

Seguindo o tutorial, em seguida, crie um arquivo index.php da seguinte forma:

sudo nano index.php

Você já estará dentro do arquivo, coloque o trecho de código abaixo:

<?php
 phpinfo(); 
?>

Saia do arquivo pressionando control+x e pressione Y para confirmar a saída salvando o arquivo.

Agora, recarregue o apache2 com o seguinte comando:

sudo service apache2 restart

E acesse novamente o IP do seu Raspi via navegador, seguido de /index.php (ficando mais ou menos assim: ip.do.raspberry.pi/index.php). Você deverá ver uma página conforme abaixo:

É uma página bastante extensa, com informações sobre a versão da build do PHP bem como outras informações do servidor (neste caso, o Raspberry Pi). Vale a pena dar uma olhada e pesquisada sobre o que você vai ler lá.

Talvez você tenha se perguntado ao longo deste tutorial, “e se eu não tiver uma rede local a qual me conectar e que eu possa fazer a “ponte” entre meu computador ou celular para acessar o Raspberry PI?” Como proceder?

Bem, na próxima parte do nosso tutorial, vamos mostrar como transformar o Raspberry Pi Zero em um AP wifi, de modo que você possa conectar-se a ele e enviar os comandos via SSH. Na próxima etapa, iremos mostrar também, como montar uma pequena página em PHP que enviará os comandos para o terminal Linux “por debaixo dos panos”, acionando assim a câmera através do gPhoto2.

Fiquem ligados e até qualquer hora!

Deixe seu comentário