Índice:

OUCH: 6 etapas
OUCH: 6 etapas
Anonim
OUCH
OUCH
OUCH
OUCH

Ouch é o seu Ajudante de Catarata Inútil Omnidirecional pessoal. Conforme o reconhecimento facial atinge o Zeitgeist, OUCH atinge você! OUCH não só sabe como você é, mas também sabe ser muito chato! Ao contrário do irmão mais velho, esta máquina é muito visível e cumpre apenas um propósito: tornar sua vida um pouco mais complicada. Você já se esqueceu dos óculos escuros em casa e se surpreendeu com um reflexo brilhante? OUCH permite que você reviva este momento uma e outra vez. Ao refletir a luz da fonte de luz mais brilhante ao seu redor diretamente em seu rosto, você não desfrutará de um único momento ao seu redor.

Cuidado, ou OUCH pode ser a última coisa que você verá!

O projeto foi realizado como parte do seminário de Design Computacional e Fabricação Digital no programa de mestrado ITECH.

August Lehrecke | Max Zorn

Suprimentos

Partes eletrônicas:

Arduino

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4x fotoresistores
    • 4 resistências de 10k
    • 2x potenciômetros
    • 1x cabo de impressora USB

Raspberry Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x PCA9685 16 canais 12 bits servo driver PWM
    • Fonte de alimentação externa 5v DC
    • 1x Rasberry Pi 5.1V - fonte de alimentação 3Amp (ou equivalente externo)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1 resistor de 470 ohms
    • 1x resistor de 320 Ohm

Peças impressas em 3D:

OUCHs vêm em vários formatos e tamanhos. Para esta versão, usamos uma impressora 3D para imprimir mecanismos personalizados.

  • 4 x Stand
  • 2 x Base S
  • 1 x Base L
  • 2 x base de rotação dupla
  • 1 x base de rotação única
  • 1 x conjunto de suporte de eixo S
  • 1 x conjunto de suporte de eixo M
  • 1 x conjunto de suporte de eixo L
  • 1 x montagem de câmera
  • 1 x montagem leve
  • 1 x espelho de montagem

Opcionalmente, você pode usar o design de torre fornecido, para usar os componentes para:

  • 1 x torre (em vez de 4 x suporte)
  • 1 x Base S e 1x Base M (em vez de 2 x Base S)

Outras Partes:

  • Mylar
  • 1 x elástico
  • 1 x Zip tie
  • 12 parafusos de cabeça chata M5 x 160
  • 2 parafusos de cabeça chata M5 x 80

Ferramentas:

  • impressora 3d
  • Chave de fenda H3.0
  • Pistola de cola quente

Etapa 1: Etapa 1: Imprimir as peças

Se você tiver acesso a uma impressora 3D, poderá imprimir mecanismos personalizados para hospedar os Servos e montar os três componentes principais.

Para o componente Face, precisamos:

  • 2 x Stands
  • 1 x Base L
  • 1 x base giratória dupla
  • 1 x conjunto de suporte de eixo M
  • 1 x câmera e montagem do sensor de distância

O componente Light requer:

  • 1 x suporte
  • 1 x Base S
  • 1 x base giratória dupla
  • 1 x conjunto de suporte de eixo S
  • 1 x montagem leve

Os componentes do espelho consistem no seguinte:

  • 1 x suporte
  • 1 x Base S
  • 1 x base giratória única
  • 1 x conjunto de suporte de eixo L
  • Espelho de montagem

Por último, você também pode imprimir a torre fornecida.

Se você quiser usá-lo como base para todos os três componentes, terá que ajustar a matemática vetorial no código de acordo. Além disso, conecte o componente Face com a Base M em vez da Base L à torre.

Etapa 2: Etapa 2: fazer o espelho

Etapa 2: fazendo o espelho
Etapa 2: fazendo o espelho
Etapa 2: fazendo o espelho
Etapa 2: fazendo o espelho

Para fazer seu próprio componente Mirror, corte um pedaço circular de Mylar e coloque-o em cima da parte do espelho impressa em 3D. Em seguida, use primeiro um elástico para fixá-lo no lugar. O elástico deve se encaixar na ranhura ao redor do componente. Em seguida, use um zíper para proteger suavemente a conexão, não aperte muito ainda. Agora você pode começar a esticar o Mylar até obter uma superfície espelhada e brilhante. Por último, aperte o fecho de correr e aprecie o reflexo do seu lindo rosto!

Etapa 3: Etapa 3: montagem dos componentes

Etapa 3: montagem dos componentes
Etapa 3: montagem dos componentes
Etapa 3: montagem dos componentes
Etapa 3: montagem dos componentes
Etapa 3: montagem dos componentes
Etapa 3: montagem dos componentes
Etapa 3: montagem dos componentes
Etapa 3: montagem dos componentes

Componente Facial

  1. Cole o punho servo com cola quente no recorte da base giratória
  2. Cole o conector Servo na ranhura, localizada na parte inferior da parte de base
  3. Coloque as duas partes da base juntas, de modo que o Servo se encaixe no conector
  4. Use o parafuso do Servo para fixar o conector ao Servo
  5. Cole a quente a segunda peça do conector na ranhura de acordo, localizada na parte superior do suporte do eixo
  6. Use 4 parafusos M5 para aparafusar o suporte do eixo à base rotativa
  7. Cole o segundo Servo na montagem com cola quente
  8. Deslize a câmera nos pinos
  9. Fixe o sensor de distância ultrassônico à montagem, seja por meio de aparafusamento ou colagem a quente
  10. Conecte a montagem da câmera / sensor ao suporte do eixo, o Servo novamente deve deslizar para a peça do conector
  11. Use o parafuso do Servo para fixar o conector ao Servo
  12. Aparafuse o Raspberry Pi e o servo driver a um pedaço de madeira compensada (certifique-se de que o espaçamento corresponda aos orifícios da Base L)
  13. Aparafuse o componente Face aos suportes, usando parafusos M5

Componente Espelho

  1. Siga as etapas 1 a 7
  2. Conecte o espelho ao suporte do eixo
  3. Cole um suporte de espelho na madeira compensada, de modo que os componentes Espelho e Face fiquem alinhados
  4. Aparafuse o componente Mirror ao suporte, usando parafusos M5

Componente de luz

  1. Siga as etapas 1 a 7 acima
  2. Passe os sensores de luz através dos orifícios de montagem na parte inferior da cruz de sombreamento
  3. Conecte a cruz de sombreamento ao suporte do eixo, o Servo novamente deve deslizar para a peça de conexão
  4. Use o parafuso do Servo para fixar o conector ao Servo
  5. Cole um suporte na madeira compensada, de modo que os componentes Luz, Espelho e Face fiquem alinhados e o Espelho fique entre os componentes Face e Luz
  6. Aparafuse o componente Face aos suportes, usando parafusos M5

* Todos os componentes também podem ser conectados à torre, no entanto, considere a maior complexidade de codificação e fiação e o tempo de impressão. Se você quiser usar a torre, use a peça Base M em vez da Base L para o componente Face e aparafuse as peças Base na torre usando os olhais e parafusos M5.

Etapa 4: Etapa 4: configurar as placas

Etapa 4: configurar as placas
Etapa 4: configurar as placas
Etapa 4: configurar as placas
Etapa 4: configurar as placas
Etapa 4: configurar as placas
Etapa 4: configurar as placas

Aqui está o diagrama de fiação para os três componentes. O rastreador solar atua em seu próprio loop no Arduino e envia suas posições servo para o Rasberry Pi por meio da porta USB serial. Um sensor de distância opcional pode ser conectado à frente do pan / tilt piCamera para criar uma triangulação mais robusta do alvo. Aqui estaremos alinhando-os em uma linha reta e apenas calculando a média dos vetores, portanto, não é necessário.

Quatro servos são conectados ao servo driver PCA9685 que é alimentado por uma fonte de alimentação externa de 5v. Dois dos servos controlam o pan e tilt para a câmera de rastreamento de rosto, enquanto os dois restantes controlam o pan e tilt para o espelho.

Etapa 5: O Código:

O código
O código

O código para este projeto pode ser dividido em duas partes: O código de rastreamento de luz do Arduino e o código de rastreamento de face / posicionamento de espelho Python.

Código Arduino:

Este código é uma versão ligeiramente modificada do projeto de rastreamento do sol do geobruce. É uma ótima referência para descobrir mais sobre o componente de rastreamento solar e mais detalhes podem ser encontrados nesta página de instructables. Os valores de intensidade de luz são obtidos dos 4 fotoresistências e calculados para encontrar a área mais brilhante e ajustar os servos de acordo. Em seguida, escrevemos os valores do ângulo do servo na porta serial.

Código Python:

Este código integra o CV aberto para criar um mecanismo de pan tilt de rastreamento de rosto, bem como direciona os servos para o espelho. Você terá que seguir alguns passos para baixar o CV aberto no seu Raspberry pi. Existem muitos recursos para isso, mas eu gosto muito do pyimagesearch. Uma explicação completa desse processo pode ser encontrada aqui. Nota: Baixamos as bibliotecas de CV abertas em um ambiente virtual no qual executamos todo o código, se você decidiu fazer isso, certifique-se de baixar todas as dependências no ambiente virtual em que está executando o programa e não o próprio Pi.

Depois de baixar o CV aberto, este código também exigirá mais algumas dependências (instaladas no ambiente específico que você está executando) para executar:

  • Adafruit ServoKit: uma página completa sobre o processo de download do Raspberry Pi pode ser encontrada aqui.
  • imutils
  • entorpecido
  • gpiozero (se estiver usando sensor de distância)

Para o rastreamento de rosto, o script requer um argumento (--faces) que é um arquivo.xml que o openCv usa para encontrar rostos. Você terá que colocar este arquivo no mesmo diretório do script python. Forneci nos downloads e também pode ser encontrado aqui.

Etapa 6: executando o código

Executando o Código
Executando o Código
Executando o Código
Executando o Código

Depois de ter baixado todo o código no mesmo diretório e configurado seu ambiente virtual com CV aberto, você está pronto para executá-lo.

  1. Abra o prompt de comando no seu pi
  2. Digite workon cv (ou qualquer nome que você escolheu para o seu ambiente virtual)
  3. Mude o diretório para onde você tem seus arquivos armazenados (cd (caminho para os arquivos))
  4. A última linha executa o programa e especifica o arquivo haar em cascata. (python Face3.py --faces haarcascade_frontalface_default.xml)

Ao executá-lo, você deverá ver um fluxo de vídeo do picam pop-up na tela e o prompt de comando começará a imprimir os valores do servo de todos os seis servos.

E você está pronto! Dependendo da qualidade dos servos que você possui, você pode calibrar cada um deles especificamente para melhorar a precisão do seu sistema. Acabamos tendo que ajustar todas as faixas de PWM para que funcionassem corretamente.

Recomendado: