Índice:
- Etapa 1: os materiais
- Etapa 2: instalação e configuração de OpenCV e C ++
- Etapa 3: Configurando o Arduino
- Etapa 4: o código C ++
- Etapa 5: o código do Arduino
- Etapa 6: impressão 3D e refinamento da impressão
- Etapa 7: Construindo a caixa
- Etapa 8: Concluindo
- Etapa 9: iniciar o programa
Vídeo: Implorando o robô com rastreamento facial e controle do Xbox Controller - Arduino: 9 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
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 ++
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
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
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
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
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:
Robô de rastreamento de cores baseado em roda omnidirecional e OpenCV: 6 etapas
Robô de rastreamento de cores baseado em roda omnidirecional e OpenCV: Eu uso um chassi de roda omnidirecional para implementar meu rastreamento de cores e uso um software móvel chamado OpenCVBot. Graças aos desenvolvedores de software aqui, obrigado.OpenCV Bot realmente detecta ou rastreia qualquer objeto em tempo real através do processamento de imagem
Robô de equilíbrio / Robô de 3 rodas / Robô STEM: 8 etapas
Robô de balanceamento / Robô de 3 rodas / Robô STEM: Construímos um robô de balanceamento combinado e de 3 rodas para uso educacional em escolas e programas educacionais após as aulas. O robô é baseado em um Arduino Uno, um escudo personalizado (todos os detalhes de construção fornecidos), um pacote de bateria Li Ion (todos constr
Pistola de rastreamento facial: 4 etapas
Pistola de rastreamento facial: este projeto é uma expansão do projeto da pistola de arame de disparo a laser mostrado aqui - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ? ALLSTEPS A única diferença é que a arma não será disparada por laser, mas por
Como montar um braço robótico impressionante de madeira (Parte 1: Robô para rastreamento de linha) - Baseado no Micro: Bit: 9 etapas
Como montar um braço robótico impressionante de madeira (Parte 1: Robô para rastreamento de linha) - Baseado no Micro: Bit: Este cara de madeira tem três formas, é muito diferente e impressionante. Então vamos entrar nisso um por um
Rastreamento de objetos - Controle de montagem de câmera: 4 etapas
Rastreamento de objetos - Controle de montagem de câmera: Olá a todos, neste Instructable, mostrarei os progressos feitos em meu projeto de rastreamento de objetos. Aqui você pode encontrar o Instructable anterior: https://www.instructables.com/id/Object-Tracking/ e aqui você pode encontrar listas de reprodução do youtube com todas as t