Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Acompanhamento de rotação horizontal / vertical com o pi de framboesa


Com algum esforço, descobri que controlar dois servo motores para permitir que uma webcam faça panorâmicas / inclinações enquanto rastreia um rosto em tempo real usando o pi de framboesa não é tão impossível quanto pode parecer à primeira vista. Com alguns ajustes cuidadosos e otimização de código, fui capaz de permitir que o pi acompanhasse dois servos enquanto executava a detecção de rosto do OpenCV em 320 × 240 procurando um perfil direito, perfil esquerdo e face frontal e ajustando os servos mais rápido do que uma vez por segundo .

Etapa 1:Adquira o hardware.


Coisas necessárias:

A framboesa pi - Modelo A funcionará bem, eu tenho o Modelo B original que tem as mesmas especificações do novo Modelo A (rede negativa).
Um suporte de pan / tilt
Dois Servos
Um cabo de fita GPIO
Uma webcam compatível com Pi - usei um Logitech C210

Supondo que você já tenha um pi raspberry e uma webcam, o hardware adicional custará cerca de US $ 25

Etapa 2:prepare seu pi de framboesa.


Certifique-se de que está usando o Official RaspbianOS (a versão hard-float) e que ele está atualizado.
Você pode querer fazer um overclock do seu raspberry pi. Eu fiz a 800mhz. Quanto mais alto você for, mais rápido será o reconhecimento facial, mas menos estável pode ser o seu pi.

Instale o OpenCV para python:sudo apt-get install python-opencv
Obtenha o maravilhoso servoblaster servo driver para o raspberry pi de Richard Hirst:aqui

Você pode baixar todos os arquivos como um arquivo zip e extraí-los para uma pasta em algum lugar do pi.
Para instalar o driver servo blaster, abra um terminal e um CD no diretório onde você extraiu os arquivos servoblaster
execute o comando:make install_autostart

Você pode querer fazer com que o servobstrutor atinja o tempo limite e pare de enviar sinais ao servo após um segundo se ele não estiver sendo movido.
para fazer isso, adicione a seguinte linha a / etc / modules:servoblaster idle_timeout =1000

inicie o servoblaster com o seguinte comando:sudo modprobe servoblaster

A próxima tarefa é fazer com que a câmera funcione conforme o esperado:

Em primeiro lugar, muito obrigado a Gmoto por encontrar e apontar isso, foi a última parte do “pi” a fazer tudo funcionar perfeitamente; você tem que ajustar alguns parâmetros no módulo uvcvideo para fazer tudo funcionar bem.
Ou seja, execute estes comandos:

rmmod uvcvideo
modprobe uvcvideo nodrop =1 tempo limite =5000 peculiaridades =0x80

Você precisará executá-lo toda vez que reiniciar se planeja executar o programa de rastreamento de face ou, alternativamente, adicionar os parâmetros a / etc / modules como você fez com o ajuste de tempo limite do servoblaster.

Etapa 3:monte seu equipamento


Construa os suportes de panorâmica / inclinação de acordo com as instruções e prenda os servos.
Prenda sua câmera na parte superior do suporte (acabei de usar a fita) e conecte-a à porta pi usb do Raspberry.
Estava capaz de alimentá-lo sem um hub usb, mas você pode querer obter um hub usb alimentado e passar por ele.

Etapa 4:Conectando os servos


Servoblaster considera servo-0 como tudo o que está conectado ao GPIO 4 e servo-1 é tudo o que está conectado ao GPIO-17.
Os servos têm três fios, um é vermelho que é Vin / positivo, um é marrom ou preto que é terra / negativo e o outro é controle.
usando o cabo de fita (e no meu caso algum fio de conector preso nos orifícios) conecte o fio de controle de cada servo ao pino correto. O código assume que o servo-0 controlará o movimento da esquerda para a direita e o servo-1 controlará o movimento de cima para baixo da câmera; então conecte-os desta forma.

Agora, parece ser senso comum que o Vin para os servos viria dos pinos de 5v do GPIO e o terra para os servos viria dos pinos de terra do GPIO, mas isso não funcionou no meu caso porque usei um servo maior para a base. O servo grande puxou mais energia do que o pi estava disposto a fornecer. Eu fui, no entanto, capaz de alimentar meu servo de inclinação menor sem nenhum problema. Além disso, Richard Hirst, que fez o servoblastro, parece sugerir que ele pode conduzir vários pequenos servos com o GPIO 5v. Também descobri que existem alguns fusíveis em minha versão do pi que foram removidos posteriormente, relacionados a esses pinos de alimentação. Meu instinto me diz que você poderia alimentar dois servos menores com esses pinos em um pi mais novo. Se você não puder, isto é o que você terá que fazer:

Você precisará de algum tipo de fonte de alimentação externa que seja capaz de lidar com uma carga pesada de 5v-6v:usei a que está embutida em um arduino, mas qualquer fonte de energia de 5 volts deve servir; os servos são classificados para até 6v. O pino de 5v em uma fonte de alimentação de computador, um carregador de parede 5v-6v, algumas baterias em paralelo; Faça como quiser. Assim que tiver sua fonte externa, basta conectar as linhas positivas e negativas dos servos ao lado positivo e negativo de sua fonte de alimentação e, em seguida, conectar o aterramento (negativo) de sua fonte de alimentação externa a um pino de aterramento no GPIO do raspberry pi.

Etapa 5:execute o programa


Anexei o script python a este artigo, ele é chamado PiFace.py para executá-lo apenas em CD em seu local no terminal e digite:python PiFace.py

Aqui estão alguns vídeos meus em ação.



Para mais detalhes:Pan / Tilt face tracking com o raspberry pi

Processo de manufatura

  1. Ler a temperatura com DS18B20 | Raspberry Pi 2
  2. Monitoramento de temperatura no Raspberry Pi
  3. Medindo a temperatura com RASPBERRY PI
  4. Monitorando a temperatura com Raspberry Pi
  5. A integração dos dados do sensor com o microprocessador Raspberry Pi
  6. Sensor de rastreamento de linha com RPi
  7. Detecção de relâmpagos com um Raspberry Pi
  8. Rastreamento Raspberry Pi Ball
  9. Alarme de água Raspberry pi 2 com t sapateiro mais
  10. Acompanhamento de rotação horizontal / vertical com o pi de framboesa