Propaganda

Aprenda a criar uma câmera de segurança panorâmica e inclinável remotamente com um Raspberry Pi. Este projeto pode ser concluído em uma manhã apenas com as peças mais simples. Aqui está o resultado final:

O que você precisa

  • Raspberry Pi 2 ou 3 com cartão Micro SD
  • Arduino UNO ou similar
  • 2 x servos micro ou mini hobby
  • Webcam USB
  • Fios de conexão macho para macho
  • Fios de conexão macho para fêmea
  • Gravatas zip variadas

Construindo a câmera de segurança

Conecte uma buzina de servo (as pequenas “formas” de plástico) a cada servo usando o parafuso fornecido. A forma específica realmente não importa, embora quanto maior, melhor. Não aperte demais o parafuso.

Agora use tirantes para prender um servo ao outro em ângulo reto. Um deles será o pan (da esquerda para a direita), enquanto o outro será inclinado (para cima e para baixo). Não importa qual deles faz o quê, pode ser ajustado no código.

Servo-Hardware

Por fim, conecte sua webcam a um dos servos. Você pode usar presilhas para isso, embora minha webcam tenha um clipe preso na parte inferior - eu o removi e usei o parafuso para prendê-lo à buzina. Para estabilidade, convém montar todo o equipamento em uma caixa ou caixa. Uma simples caixa de papelão faz o truque muito bem. Você pode cortar um orifício quadrado e montar um servo nivelado na superfície, no entanto, uma gravata será suficiente.

instagram viewer

Câmera Pi-Pan-Tilt

Uma palavra sobre webcams

Nem todas as webcams USB são criadas da mesma forma. Conecte sua webcam à porta USB do seu Pi e execute este comando:

lsusb

Este comando exibe informações sobre todos os dispositivos USB conectados ao Pi. Se a sua webcam não estiver listada aqui, tente um hub USB com alimentação e repita o comando. Se a webcam ainda não for reconhecida, talvez você precise comprar uma webcam compatível.

Configuração Servo

Embora os servos possam parecer assustadores e complexos, eles são realmente muito simples de conectar. Os servos operam na modulação por largura de pulso (PWM), que é uma maneira dos sistemas digitais imitarem sinais analógicos. Os sinais PWM são essencialmente um sinal ON-OFF rápido. Um sinal que está LIGADO ou ALTO é descrito usando o ciclo de serviço. O ciclo de serviço é expresso como uma porcentagem e descreve por quanto tempo o sinal está LIGADO. Um sinal PWM de ciclo de trabalho de 25% ficará LIGADO por 25% das vezes e DESLIGADO pelos 75% restantes. O sinal não está ligado no início e depois apagado para sempre, é pulsado regularmente por um período muito curto de tempo.

Servos escutam esses pulsos e agem de acordo. Usar um ciclo de trabalho de 100% seria o mesmo que 5v “regular” e 0% seria o mesmo que terra. Não se preocupe, se você não entender completamente como o PWM funciona, você ainda pode controlar os servos (a Extreme Electronics é um bom lugar para aprender mais).

Existem duas maneiras principais de usar o PWM - hardware ou software. O PWM de hardware geralmente fornece menor latência (quanto tempo entre o servo que recebe o comando e a movimentação) do que o PWM de software, no entanto, o Pi possui apenas um pino compatível com PWM de hardware. Circuitos externos estão disponíveis para fornecer vários canais de hardware PWM, no entanto, um simples Arduino também pode lidar com a tarefa, pois eles têm vários pinos PWM de hardware.

Aqui está o circuito:

Pi-Servo-Conexão

Verifique duas vezes o pinagem para o seu Pi, eles variam um pouco entre os modelos. Você precisa descobrir como seus servos são conectados. Servos requerem três fios para controlá-los, no entanto, as cores variam ligeiramente:

  • Vermelho é positivo, conecte isso ao Pi + 5v
  • Marrom ou preto é negativo, conecte-o ao GND no Pi
  • Laranja ou branco é sinal, conecte-o aos pinos 9 e 10 do Arduino

Configuração do Arduino

Novo no Arduino? Comece aqui Introdução ao Arduino: Guia para iniciantesO Arduino é uma plataforma de prototipagem eletrônica de código aberto baseada em hardware e software flexível e fácil de usar. Destina-se a artistas, designers, amadores e qualquer pessoa interessada em criar objetos ou ambientes interativos. consulte Mais informação .

Depois que os servos estiverem conectados, abra o IDE do Arduino no seu computador e faça o upload desse código de teste. Não se esqueça de selecionar a placa e a porta corretas no Ferramentas> Placa e Ferramentas> Porta menus

#incluir // Importe a biblioteca Servo servoPan, servoTilt; // Crie objetos servo. int servoMin = 20, servoMax = 160; // Defina os limites dos servos void setup () {// Setup dos servos nos pinos compatíveis com PWM servoPan.attach (9); servoTilt.attach (10); } void loop () {for (int i = servoMin; i  servoMin; --i) {// Move os servos do máximo para o mínimo servoPan.write (i); servoTilt.write (i); atraso (100); // Aguarde 100 ms} }

Tudo bem, você deve ver os dois servos se moverem lentamente para frente e para trás. Observe como "servoMin" e servoMax "são definidos como 20 e 160 graus (em vez de 0 e 180). Isso ocorre parcialmente porque esses servos baratos não conseguem mover com precisão os 180 graus completos e também devido ao tamanho físico da webcam, impedindo o uso de toda a faixa. Pode ser necessário ajustá-los para sua configuração.

Se eles não estiverem funcionando, verifique se o circuito está conectado corretamente. Às vezes, as tábuas de pão também podem variar em qualidade, portanto, considere investir em um multímetro para verificar.

Os servos são quase muito poderoso para o Arduino poder, então eles serão alimentados pelo Pi. O trilho de 5v no Pi é limitado a 750mA fornecido a todo o Pi, e o Pi consome aproximadamente 500mA, deixando 250mA para o Pi servos. Esses micro servos consomem aproximadamente 80mA, o que significa que o Pi deve ser capaz de lidar com dois deles. Se você deseja usar mais servos ou modelos maiores e com maior potência, pode ser necessário usar uma fonte de alimentação externa.

Agora carregue o seguinte código no Arduino. Isso ouvirá os dados seriais recebidos (serial como no Universal Serial Barramento ou USB). O Pi enviará esses dados via USB ao Arduino, informando para onde mover os servos.

#incluir // Importe a biblioteca Servo servoPan, servoTilt; // Criar objeto servo. String data = ""; // Armazena comandos de entrada (buffer) void setup () {// Setup dos servos nos pinos compatíveis com PWM servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Iniciar série a 9600 bps (velocidade) } void loop () {while (Serial.available ()> 0) {// Se houver dados char singleChar = Serial.read (); // Leia cada caractere if (singleChar == 'P') {// Mova pan servo servoPan.write (data.toInt ()); data = ""; // Limpar buffer} else if (singleChar == 'T') {// Move o servo de inclinação servoTilt.write (data.toInt ()); data = ""; // Limpar buffer} else {data + = singleChar; // Anexar novos dados}} }

Você pode testar esse código abrindo o monitor serial (canto superior direito> Monitor Serial) e enviando alguns dados de teste:

  • 90P
  • 0P
  • 20T
  • 100T

Observe o formato dos comandos - um valor e depois uma letra. O valor é a posição do servo e a letra (em maiúsculas) especifica o servo de panorâmica ou inclinação. Como esses dados são transmitidos do Pi em série, cada caractere passa um de cada vez. O Arduino precisa armazená-las até que todo o comando seja transmitido. A letra final não apenas especifica o servo, mas também permite que o Arduino saiba que não há mais dados nesse comando.

Por fim, desconecte o seu Arduino do computador e conecte-o ao Raspberry Pi através da conexão de porta USB usual.

Configuração do Pi

Agora é hora de configurar o Pi. Primeiro, instalar um sistema operacional Como instalar um sistema operacional em um Raspberry PiVeja como instalar um sistema operacional no seu Raspberry Pi e como clonar sua configuração perfeita para recuperação rápida de desastres. consulte Mais informação . Conecte a webcam e o Arduino ao USB Pi.

Atualize o Pi:

sudo apt-get update. sudo apt-get upgrade

Instalar movimento:

sudo apt-get install movimento

O Motion é um programa desenvolvido para lidar com o streaming da webcam. Ele lida com todo o trabalho pesado e pode até executar gravação e detecção de movimento (tente construindo um sistema de segurança de captura de movimento Crie um sistema de segurança do Motion Capture usando um Raspberry PiDos muitos projetos que você pode criar com o Raspberry Pi, um dos mais interessantes e permanentemente úteis é o sistema de segurança de captura de movimento. consulte Mais informação ). Abra o arquivo de configuração do Motion:

sudo nano /etc/motion/motion.conf

Este arquivo fornece muitas opções para configurar o Motion. Configure da seguinte maneira:

  • daemon on - Execute o programa
  • framerate: 100 - Quantos quadros ou imagens / segundo para transmitir
  • stream_localhost off - Permitir acesso pela rede
  • width 640 - Largura do vídeo, ajuste para a sua webcam
  • height 320 - Altura do vídeo, ajuste para a sua webcam
  • stream_port 8081 - A porta para saída de vídeo para
  • output_picture off - Não salve nenhuma imagem

Este é um arquivo muito grande, então você pode querer usar CTRL + W para procurar linhas. Quando terminar, pressione CTRL + X e confirme para salvar e sair.

Agora edite mais um arquivo:

sudo nano / etc / default / motion

Defina "start_motion_daemon = yes". Isso é necessário para garantir que o Motion seja executado.

Agora descubra o seu endereço IP:

ifconfig

Este comando mostra os detalhes da conexão de rede para o Pi. Olhe para a segunda linha, inet addr. Você pode definir um endereço IP estático (o que é um IP estático? O que é um endereço IP estático? Aqui está o porquê você não precisa de umUm endereço IP estático é aquele que nunca muda. Os endereços IP dinâmicos mudam. Explicamos por que você não precisa de um endereço IP estático. consulte Mais informação ), mas por enquanto anote esse número.

Agora inicie o Motion:

início do movimento de serviço sudo

Você pode parar ou reiniciar o movimento alterando “start” para “stop” ou “restart”.

Alterne para o seu computador e navegue até o Pi a partir de um navegador da web:

http://xxx.xxx.x.xx: 8081

Onde xxx.xxx.x.xx é o endereço IP do Pi. Os dois pontos seguidos por um número são a porta que foi configurada anteriormente. Tudo bem, você deve ver o fluxo da sua webcam! Tente se movimentar e veja como as coisas ficam. Pode ser necessário ajustar as configurações de brilho e contraste no arquivo de configuração. Pode ser necessário focar a webcam - alguns modelos têm um pequeno anel de foco ao redor da lente. Gire isso até que a imagem seja a mais nítida.

De volta ao Pi, crie uma pasta e navegue até ela:

mkdir security-cam. cd security-cam /

Agora instale o Twisted:

sudo apt-get install python-twisted

Twisted é um servidor da Web escrito em Python, que escuta comandos e depois age de acordo.

Uma vez instalado, crie um script Python para executar comandos (mova os servos).

sudo nano servos.rpy

Observe como a extensão do arquivo é ".rpy" em vez de "py". Aqui está o código:

# Importe os arquivos necessários. serial de importação. de twisted.web.resource import Resource # Setup Arduino na velocidade correta. tente: arduino = serial. Serial ('/ dev / ttyUSB0', 9600) exceto: arduino = serial. Classe serial ('/ dev / ttyUSB1', 9600) MoveServo (Recurso): isLeaf = True def render_GET (próprio, solicitação): tente: # Enviar valor acima serial para o Arduino arduino.write (request.args ['value'] [0]) retorna 'Success' exceto: retorna 'Failure' resource = MoveServo ()

Agora inicie o servidor da web:

sudo twistd -n web -p 80 --caminho / home / pi / security-cam /

Vamos dividir - “-p 80” especifica a porta (80). Essa é a porta padrão para páginas da web. “–Path / home / pi / security-cam /” diz ao Twisted para iniciar o servidor no diretório especificado. Se você fizer alterações nos scripts dentro da pasta "security-cam", será necessário reiniciar o servidor (CTRL + X para fechar e execute o comando novamente).

Agora crie a página da web:

sudo nano index.html

Aqui está o código da página da web:

Faça uso da câmera de segurança DIY


Altere “PI_IP_ADDRESS” (usado duas vezes) para o endereço IP real do seu Pi (raspberrypi.local também deve funcionar se você estiver executando o Raspian mais recente). Reinicie o servidor da web e navegue até o Pi do seu computador, sem precisar especificar a porta. Você deve poder mover para a esquerda e para a direita e ver o fluxo de vídeo:

Pi-Pan-Tilt-Camera-Web-View

Aí está. Sua própria câmera de rede Pan e Tilt. Se você deseja expor sua webcam à Internet, lembre-se de considere os perigos 5 perigos a considerar ao apontar suas câmeras de segurança domésticaÉ importante considerar cuidadosamente onde você posiciona suas câmeras e em quais partes da sua casa você as aponta. Manter as coisas seguras é importante, mas também a privacidade. consulte Mais informação - então olhe encaminhamento de porta O que é o encaminhamento de porta e como ele pode me ajudar? [MakeUseOf explica]Você chora um pouco por dentro quando alguém lhe diz que há um problema de encaminhamento de porta e é por isso que seu novo aplicativo brilhante não funciona? Seu Xbox não permite que você jogue, seus downloads de torrents recusam ... consulte Mais informação , para que seu roteador saiba para onde enviar solicitações de entrada. Você poderia adicionar uma fonte de alimentação externa 3 baterias Raspberry Pi para projetos portáteisUma bateria Raspberry Pi pode transformar um Pi comum em um computador portátil. Você precisará de uma dessas soluções de bateria para começar. consulte Mais informação e adaptador Wi-Fi para um equipamento realmente portátil.

Você fez algo legal com uma webcam e um Pi? Deixe-me saber nos comentários, eu adoraria ver!

Joe é graduado em Ciência da Computação pela Universidade de Lincoln, Reino Unido. Ele é um desenvolvedor de software profissional e, quando não está pilotando drones ou escrevendo músicas, pode ser encontrado tirando fotos ou produzindo vídeos.