BeagleBone – Criando uma ipcam
Oi pessoal, neste post vou explicar como montar uma ipcam com a Beaglebone, ou seja vou mostrar como colocar uma webcam na Beaglebone e acessa-la através de um ip. Para isso você vai precisar de uma Beaglebone com Angstrom, uma webcam, e uma máquina com linux (eu usei Ubunto 12.4). É preciso acessar a Beaglebone via terminal, e também é preciso que a Beaglebone e a máquina linux estejam conectados a mesma rede. Se você tiver alguma dúvida de como acessar a placa via terminal, e de como conectá-la a uma rede é só olhar o meu primeiro post em relação a Beaglebone (BeagleBone – Introdução e Primeiros Passos), como o nome já diz, este post que mencionei explica as primeiras atitudes que cada um deve tomar ao adquirir a Beaglebone.
Então, os primeiros passos são ligar a Beglebone, acessá-la através do terminal, ligá-la e verificar sua conexão. Depois disso você vai conectar a webcam a placa e conferir se a placa reconheceu a webcam, para isso dê o seguinte comando:
Agora você deve ver se a webcam está conectada ao sistema e se funciona bem como um hardware. Aqui está o resultdo que eu obtive com o “lsusb”:
Bus 001 Device 002: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 Webcam
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Agora vamos verificar quais módulos do kernel foram carregados, usando o seguinte comando:
Aqui estão os resultados que obtive com o “lsmod”:
gspca_zc3xx 35673 0
gspca_main 14671 1 gspca_zc3xx
sit 7617 0
tunnel4 2403 1 sit
spidev 3912 0
ip_tables 7854 0
x_tables 14548 1 ip_tables
g_mass_storage 24058 0
rfcomm 24371 0
ircomm_tty 14101 0
ircomm 8435 1 ircomm_tty
irda 85617 2 ircomm_tty,ircomm
hidp 10240 0
bluetooth 110070 4 rfcomm,hidp
rfkill 14637 2 bluetooth
ipv6 210864 15 sit
Os dois módulos necessários para usar a webcam são:
gspca_main 14527 1 gspca_zc3xx
E uma última maneira de testar se ela foi reconhecida pelo sistema é dando o outro seguinte comando:
Se o Video0 aparecer, então está tudo bem para ir para a próxima etapa.
Para captar as imagens da webcam usaremos o MJPG-streamer (http://sourceforge.net/projects/mjpg-streamer/). O MJPG-streamer pega as imagens JPGs de webcams compatíveis com Linux, sistema de arquivos ou outro plugin de entrada e nos disponibiliza um M-JPEG stream via HTTP para navegadores e outros softwares. É o sucessor da UVC-streamer. Você deve baixá-lo (aqui).
Após baixar o MJPG-streamer você deve transferí-lo para BeagleBone. Eu transferi via ssh, mas você pode fazer da maneira que preferir. Para transferir via ssh você deve abrir o prompt do seu linux, primeiramente de um ping na Beaglebone para confirmar a conexão, como o ip da minha Beaglebone é “200.131.216.83” o comando ficou da seguinte maneira:
Depois de confirmar a conexão, pelo prompt vá até o diretório onde está o arquivo que você vai transferir, nosso nosso caso é o “mjpg-streamer-mjpg-streamer.tar.gz”. Agora dê o comando a seguir para trasnferir, considerando que o meu ip é “200.131.216.83”, o comando ficou assim:
Depois confirme, e como endereço padrão da Beaglebone é vazio quando for pedido é só apertar “Enter”. Depois no terminal da placa vá ao diretório ao qual você transferiu o arquivo e dê o comando ls para conferir se o arquivo realmente foi transferido. Uma vez que o arquivo se encontra na Beaglebone, dê o seguinte comando para extraí-lo:
Vá ao diretório “mjpg-streamer” que acaba de ser criado:
Agora, no diretório do MJPG-streamer você irá compilá-lo, com os seguintes comandos:
export LD_LIBRARY_PATH=.
Depois você deve iniciar o serviço do MJPG-streamer, para isso dê o seguinte comando:
Depois de iniciar o serviço abra seu navegador e digite “http://200.131.216.83:8080” o número 8080 é a porta do serviço, depois clique em “stream” ou em “javascript” para ver a imagem da cam.
Você deve abrir o arquivo “README” e o “start.sh” para obter várias informações incluindo detalhes de como compilar o software.