Índice:

Implorando o robô com rastreamento facial e controle do Xbox Controller - Arduino: 9 etapas (com imagens)
Implorando o robô com rastreamento facial e controle do Xbox Controller - Arduino: 9 etapas (com imagens)

Vídeo: Implorando o robô com rastreamento facial e controle do Xbox Controller - Arduino: 9 etapas (com imagens)

Vídeo: Implorando o robô com rastreamento facial e controle do Xbox Controller - Arduino: 9 etapas (com imagens)
Vídeo: NR-12 Acidente em torno 2024, Novembro
Anonim
Image
Image
Instalando e configurando OpenCV e C ++
Instalando e configurando OpenCV e C ++

Vamos fazer um robô implorando. Este robô tentará irritar ou chamar a atenção das pessoas que passam. Ele detectará seus rostos e tentará atirar lasers neles. Se você der uma moeda ao robô, ele cantará uma música e dançará. O robô precisará de um arduino, uma transmissão ao vivo de uma câmera e um computador para rodar o openCV. O robô também poderá ser controlado por um controlador xBox se conectado ao PC.

Etapa 1: os materiais

Hardware Eletrônico

  • Arduino NANO ou UNO
  • Câmera USB 2.0
  • Cabos de ligação (macho e fêmea)
  • 2 x servo - genérico (tamanho sub-micro)
  • 2 x LED - RGB CATHODE 5mm
  • 2 lasers de 5mW
  • 1 x LED vermelho 5 mm
  • 1 x tábua de pão
  • 4 x resistor de 220Ω
  • 1 x resistor de 1KΩ
  • 1 x protoboard
  • 1 x sensor de sonar 4 pinos
  • Controlador de Xbox

Analógico de hardware

  • Caixa de madeira (15 x 15 x 7 cm)
  • Cola
  • Fita isolante

Programas

  • IDE Arduino
  • Visual studio 2017
  • 3Ds Max (ou qualquer outro software de modelagem 3D)
  • Pré-formar 2.14.0 ou posterior
  • OpenCV 3.4.0 ou posterior

Ferramentas

  • Equipamento de solda
  • Serra e broca
  • Cortador de arame

Etapa 2: instalação e configuração de OpenCV e C ++

Instalando e configurando OpenCV e C ++
Instalando e configurando OpenCV e C ++

Etapa 2.1: Obtendo o software

Visual studio 2017: Baixe Visual studio Comunity 2017openCV 3.4.0 Win pack: Vá para a página de download oficial

Etapa 2.2: Instalando OpenCV2.2.1: Extraia o arquivo zip para o seu Windows (: C) drive.2.2.2: Vá para as configurações avançadas do sistema. Isso pode ser encontrado em sua função de pesquisa win10.2.2.3: Precisamos configurar novas variáveis ambientais. Localize o ambiente "Path" e pressione edit.2.2.4: Agora temos que adicionar a localização do "mapa bin" a uma nova variável no ambiente Path. Se você instalou openCV em sua unidade C, o caminho pode ser assim: C: / opencv / build / x64 / vc14 / bin Cole o caminho e pressione "OK" em todas as janelas que você possa ter aberto durante este processo.

Etapa 2.3: configurando o visual studio C ++ 2.3.1: Faça um novo projeto visual C ++. Transforme-o em um projeto de aplicativo de console win32 vazio.2.3.2: Na guia de arquivos de origem, clique com o botão direito e adicione um novo arquivo C ++ (.cpp) e nomeie-o como "main.cpp".2.3.3: clique com o botão direito do mouse no projeto- nome no explorador de soluções e selecione Propriedades. 2.3.4: Precisamos adicionar outros diretórios de inclusão. Isso pode ser encontrado na guia C / C ++ em geral. Copie o seguinte caminho: C: / opencv / build / include e cole atrás do "AID" e clique em apply.2.3.5: Na mesma janela, precisamos selecione a guia "Linker". em geral, precisamos fazer outros diretórios adicionais do Libary. Cole o seguinte caminho atrás de "AID" C: / opencv / build / x64 / vc14 / lib e pressione aplicar novamente. 2.3.6: Na mesma guia Linker, selecione a guia "Input". E pressione "Dependências adicionais> editar" e cole o seguinte arquivo opencv_world320d.lib e xinput.lib (para o controlador) e pressione aplicar novamente. Feche a janela. Agora seu arquivo C ++ está pronto para ser usado.

Etapa 3: Configurando o Arduino

Configurando o Arduino
Configurando o Arduino
Configurando o Arduino
Configurando o Arduino
Configurando o Arduino
Configurando o Arduino
Configurando o Arduino
Configurando o Arduino

Atendendo aos servos: Os servos são capazes de girar ~ 160 ° Eles precisam ter entre 4, 8 e 6,0 Volt para operar normalmente. O servo tem 3 pinos: terra, 4, 8 - 6, pino de 0 volt e um pino de dados alfinete. Para o nosso projeto, vamos definir os pinos de dados para os servos no DigitalPin 9 e 10.

Encontrando os leds RGB: Os leds RGB têm 4 pinos. Pino vermelho, verde, azul e terra. Para economizar espaço no arduino, podemos conectar os 2 leds RGB. Portanto, usaremos apenas 3 pinos. Podemos conectar e soldar os leds RGB em um protoboard como na imagem. Pino vermelho => DigitalPin 3 (PWM) Pino verde => DigitalPin 4 Pino azul => DigitalPin 7

Conhecendo a campainha Piezo: Nosso pequeno robô vai fazer algum barulho. Para fazer isso, precisamos dar-lhe uma voz! Podemos escolher torná-lo muito alto. Ou podemos colocar um resistor de 220Ω antes da campainha piezoelétrica para torná-lo um pouco menos desagradável. Estamos deixando a campainha Piezo na placa de ensaio. Portanto, não há necessidade de solda. Conectamos o pino de dados (+) ao DigitalPin 2 e o pino de aterramento ao aterramento na placa de ensaio.

Encontrando o Sonar: Para evitar que o robô tente mirar em uma pessoa que está a 10 metros de distância. Podemos dar ao robô uma faixa de distância de onde ele será capaz de mirar nas pessoas. Fazemos isso com um sensor de sonar. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => terra

Conhecendo o detector de moedas: vamos fazer um detector de moedas. O detector de moedas funcionará detectando se o circuito está fechado ou quebrado. Quase funcionará como um interruptor. Mas precisamos ter cuidado. Se fizermos isso errado, isso nos custará um arduino. Primeiro: conecte AnalogPin A0 a um cabo de 5 volts. Mas certifique-se de colocar um resistor de 1KΩ entre eles. Segundo: Conecte um fio ao terra. Podemos soldar imediatamente os fios e o resistor no mesmo protoboard que os leds RGB. Agora, se tocarmos os 2 fios juntos, o arduino detectará um circuito fechado. Isso significa que existe uma moeda! Encontrando os lasers da desgraça. O robô precisa de suas armas para disparar! Para economizar espaço, eu soldei os 2 lasers juntos. Eles vão caber perfeitamente no quadro da câmera. Conecte-os ao DigitalPin 11 e ao aterramento. Vá embora, rapaz!

Gimmick opcional. Podemos colocar um LED vermelho sob o slot da moeda. Este será um pequeno truque divertido para quando estiver escuro. Conecte um fio ao DigitalPin 8 e coloque um resistor de 220Ω entre o LED e o fio para evitar que ele exploda. Conecte o pino curto do LED ao aterramento.

Etapa 4: o código C ++

Etapa 4.1: Configurando o main.cpp code4.1.1: Baixe "main.cpp" e copie o código para o seu próprio main.cpp.4.1.2: Na linha 14, altere o "com" para o com que o arduino usa. "\. / COM (altere isso)" 4.1.3: nas linhas 21 e 22 defina o caminho correto para os arquivos "haarcascade_frontalface_alt.xml" e "haarcascade_eye_tree_eyeglasses.xml" Se openCV estiver instalado na unidade C, esses arquivos podem ser localizados aqui: "C: / opencv / build / etc / haarcascades \" Mantenha as barras invertidas duplas ou adicione uma onde houver apenas uma.

Etapa 4.2: Adicionar tserial.h e Tserial.cppEstes 2 arquivos cuidarão da comunicação entre o arduino e o PC.4.2.1: Baixe tserial.h e Tserial.cpp.4.2.2: Coloque esses 2 arquivos no projeto diretório. No explorador de soluções, clique com o botão direito do mouse no projeto e selecione adicionar> item existente. Na janela pop-up, selecione os dois arquivos a serem adicionados.

Etapa 4.2: Adicionar CXBOXController.he CXBOXController.hEstes arquivos assumirão a parte do controlador do projeto.4.2.1: No explorador de soluções, clique com o botão direito do mouse no projeto e selecione adicionar> item existente. Na janela pop-up, selecione os dois arquivos a serem adicionados. Os arquivos C ++ são configurados.

Etapa 5: o código do Arduino

Etapa 5.1: Biblioteca NewPing 5.1.1: Baixe o ArduinoCode.ino e abra-o no IDE do arduino.5.1.2: Vá para "Sketch> Incluir biblioteca> Gerenciar bibliotecas".5.1.3: Pesquise na caixa de filtro "NewPing" e instale esta biblioteca.

Etapa 5.2: Biblioteca de pitches5.2.1: Baixe pitches.txt e copie o conteúdo de pitches.txt.5.2.2: No IDE do Arduino, pressione CTRL + Shift + N para abrir uma nova guia.5.2.3: Cole o código do pitches.txt na nova guia e salve-o como "pitches.h". O código do Arduino foi configurado

Etapa 6: impressão 3D e refinamento da impressão

Impressão 3D e refinamento da impressão
Impressão 3D e refinamento da impressão
Impressão 3D e refinamento da impressão
Impressão 3D e refinamento da impressão

Etapa 6.1: Imprima o arquivo 3D Abra o arquivo printfile.form e verifique se está tudo certo. Se tudo parecer certo, envie o trabalho de impressão para a impressora. Se algo parecer errado ou se você quiser mudar o modelo. Incluí os arquivos 3Ds Max e os arquivos OBJ para você editar.

Etapa 6.2: Refinar o modelo 6.2.1: Após a impressão, mergulhe os 2 modelos em álcool 70% para remover qualquer impressão resedu.6.2.2: Após a impressão, coloque o modelo no sol por algumas horas para deixar a luz ultravioleta endurecer o modelo. Ou você pode usar uma lâmpada UV para endurecer o modelo. Isso precisa ser feito porque o modelo ficará pegajoso.

6.2.3: Remova a estrutura de suporte. Isso pode ser feito com um alicate. Ou qualquer outra ferramenta que possa cortar plásticos.6.2.4: Algumas partes da impressão 3D ainda podem ser moles. Mesmo que o modelo tenha recebido muita luz ultravioleta. As partes que podem ser macias são as que ficam próximas das estruturas de suporte. Coloque o modelo em mais sol de luz ultravioleta para endurecer. 6.2.5: Com uma "dremel" você pode lixar todas as pequenas saliências feitas pela estrutura. Você pode tentar encaixar os servos na estrutura. Se não couberem, você pode usar a Dremel para lixar o material. faça caber.

Etapa 7: Construindo a caixa

Construindo a Caixa
Construindo a Caixa
Construindo a Caixa
Construindo a Caixa

Etapa 7.1: Fazendo os furos Incluí uma planta da caixa em questão. O projeto não está em escala, mas todos os tamanhos estão corretos. 7.1.1: Comece marcando todos os orifícios nos locais corretos. 7.1.2: Faça todos os orifícios. Os orifícios maiores podem ser feitos até o tamanho com uma Dremel.7.1.3: Os orifícios quadrados também podem ser perfurados. Mas para torná-los quadrados, você pode ajustar a Dremel com uma pequena lima e limar cantos agudos. 7.1.4: Tente ajustar todos os componentes. se eles couberem, você está pronto para ir! 7.1.5: Cuidado com os estilhaços de madeira. Use lixa para se livrar deles.

Passo 7.2: Pintura 7.2.1: Comece lixando a tampa. Precisamos que a tinta grude. 7.2.2: Pegue um pano e coloque um pouco de Terebintina para limpar a caixa. 7.2.3: Agora você pode pintar a caixa com spray da cor que desejar.

Etapa 8: Concluindo

Terminando
Terminando
Terminando
Terminando
Terminando
Terminando

Agora temos que colocar tudo no lugar e deixá-lo fazer o que é necessário. Etapa 8.1: O detector de moedas 8.1.1: Cole algumas braçadeiras de metal para o detector de moedas.8.1.2: Solde cada fio do conector a uma braçadeira.8.1.3: Teste a conexão com uma moeda. Se não houver circuito fechado, solde os fios mais para a borda. Passo 8.2: O protoboard e RGB leds8.2.1: Coloque o protoboard no canto superior direito e prenda-o com fita! 8.2.2: Conecte os leds RGB com os fios do protoboard! 8.2.3: Conecte todos os fios do protoboard ao arduino. Etapa 8.3: O sensor de sonar 8.3.1: Coloque o sensor nos orifícios que fizemos para ele. Se você tiver jumpwires macho para fêmea, pode pular 8.3.28.3.2: Corte alguns fios macho e fêmea ao meio e solde os fios fêmea e macho juntos para fazer um único cabo que podemos usar para conectar o sensor ao arduino.8.3.3: Conecte o sensor ao arduino

Etapa 8.4: Lasers e câmera 8.4.1: Cole a pequena moldura na câmera. Certifique-se de que está na posição vertical.8.4.2: Coloque os lasers na estrutura também. Cole-os para baixo para que o inimigo não os roube!

Etapa 8.5: Servos e impressão 3D8.5.1: Cole o servo no orifício da tampa8.5.2: Faça upload do arquivo arduino para o arduino (isso faz com que os servos fiquem na posição correta) 8.5.3: Com o servo veio um pequeno planalto redondo. Coloque-o no servo na tampa.8.5.4: Coloque a impressão 3D grande no servo e no platô e aparafuse-os firmemente com um parafuso.8.5.5: Coloque o segundo servo na impressão 3D pequena e cole-os. 8.5.6: Coloque a câmera no lugar e tudo está pronto para funcionar!

Etapa 9: iniciar o programa

Para iniciar o robô, abra o arquivo C ++ no Visual Studio. Certifique-se de estar no "modo de depuração" Carregue o arquivo arduino para o arduino. Depois de fazer o upload, pressione play no Visual Studio. E o robô irá disparar e coletar todas as moedas do mundo !!!

Recomendado: