- Conceito:
- Materiais requisitados:
- Esquemas e Hardware:
- Programa para Arduino:
- Programa para processamento:
- Trabalhando:
Este é um projeto muito interessante no qual vamos aprender como implementar realidade virtual usando Arduino e Processing. Para a maioria de nós, o filme Homem de Ferro de Jon Favreau sempre foi uma inspiração para construir coisas novas que tornarão nossa vida mais fácil e divertida. Eu admirei pessoalmente as tecnologias que são mostradas no filme e sempre quis construir algo semelhante a isso. Então, neste projeto eu tentei imitar as coisas de realidade virtual que acontecem no filme, como podemos simplesmente acenar com a mão na frente do computador e mover o ponteiro para o local desejado e executar algumas tarefas.
Aqui, vou mostrar como você pode simplesmente acenar com a mão na frente da webcam e desenhar algo em seu computador. Também mostrarei como você pode alternar as luzes movendo virtualmente sua mão e fazendo cliques com os dedos no ar.
Conceito:
Para que isso aconteça, precisamos aproveitar o poder do Arduino e do Processing combinados. A maioria estaria familiarizada com o Arduino, mas o Processing pode ser novo para você. O Processing é um aplicativo como o Arduino, também de código aberto e gratuito para download. Usando o Processing, você pode criar aplicativos de sistema simples, aplicativos Android e muito mais. Ele também tem a capacidade de fazer processamento de imagens e reconhecimento de voz. É como o Arduino e é muito fácil de aprender, mas não se preocupe se você for completamente novo no processamento, pois escrevi este tutorial bastante simples para que qualquer pessoa interessada possa fazer isso funcionar rapidamente.
Neste tutorial, estamos usando o Processing para criar um aplicativo de sistema simples que nos fornece uma IU e rastreia a posição de nossa mão usando o processamento de imagem. Agora, temos que clicar com o botão esquerdo e direito com os dedos. Para que isso aconteça, usei dois sensores Hall (um no dedo indicador e outro no dedo médio) que serão lidos pelo Arduino Nano. O Arduino também transmite o status do clique para o computador sem fio via Bluetooth.
Pode parecer complicado, mas, confie em mim; não é tão difícil quanto parece. Portanto, vamos dar uma olhada nos materiais necessários para que este projeto esteja funcionando.
Materiais requisitados:
- Arduino Nano
- Sensor Hall (A3144) - 2Nos
- Um pequeno pedaço de ímã
- Módulo Bluetooth (HC-05 / HC-06)
- Bateria 9V
- Placa de pontos de fios de conexão.
- Um par de luvas
- IDE Arduino (software)
- Processando IDE (Software)
- Um computador com webcam e Bluetooth (você também pode usar Bluetooth externo ou webcam para o seu computador)
Esquemas e Hardware:
A parte de hardware deste projeto é muito simples e fácil de construir. O esquema completo é mostrado abaixo.
O Arduino, os resistores e os pinos berg são soldados em um quadro de pontos, conforme mostrado abaixo.
O sensor Hall e o módulo Bluetooth são soldados a um fio do conector, conforme mostrado abaixo.
Uma vez que essas duas seções estão prontas, podem ser montadas em luvas para que sejam fáceis de usar. Usei luvas de plástico descartáveis que podem ser adquiridas em qualquer loja médica perto de você. Você deve se certificar de que o ímã vem em seu dedo polegar e o sensor Hall 1 e o sensor Hall 2 devem estar presentes antes de seu dedo indicador e médio, respectivamente. Usei fitas adesivas para prender os componentes no lugar. Uma vez que os componentes são montados, deve ser parecido com isto.
Agora vamos abrir o IDE do Arduino e começar a programar.
Programa para Arduino:
O objetivo deste código Arduino é ler o status do sensor hall e transmiti-los usando o módulo Bluetooth. Ele também deve receber dados do Bluetooth e alternar o LED integrado com base no valor de entrada. O programa completo é fornecido no final deste tutorial; Também expliquei algumas linhas abaixo.
if (Phs1! = HallState_1 - Phs2! = HallState_2) // Verifique se novas teclas foram pressionadas {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); if (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); if (HallState_1 == LOW && HallState_2 == HIGH) Aisha.write (3); if (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
Conforme mostrado nas linhas acima, com base no status do sensor Hall, o Bluetooth escreverá um valor específico. Por exemplo, se o sensor Hall 1 for alto e o sensor Hall 2 for baixo, então transmitiremos o valor “2” através do módulo Bluetooth. Certifique-se de escrever os valores no módulo BT e não imprimi-los. Porque será fácil ler apenas no lado do processamento, apenas se estiverem escritos. Além disso, o valor só será enviado se não for igual ao valor anterior.
if (BluetoothData == 'y') digitalWrite (ledpin, HIGH); if (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Essas linhas são usadas para alternar o LED integrado que está conectado ao Pino 13, com base no valor recebido pelo módulo BT. Por exemplo, se o módulo receber um 'y', o LED é ligado e se receber um 'n' então ele é desligado.
Programa para processamento:
O objetivo do programa de processamento é criar um aplicativo de sistema que pode atuar como uma IU (interface do usuário) e também realizar o processamento de imagem para rastrear um objeto específico. Nesse caso, rastreamos o objeto azul que prendemos em nossas luvas acima. O programa possui basicamente quatro telas.
- Tela de Calibração
- Tela principal
- Tela de pintura
- Tela de alternância de LED
Podemos navegar de uma tela para outra simplesmente acenando com as mãos e arrastando as telas no ar. Também podemos fazer cliques nos locais desejados para alternar o LED ou até mesmo desenhar algo na tela.
Você pode copiar e colar o programa de processamento completo (fornecido no final) e modificá-lo com base na sua criatividade ou simplesmente baixar os arquivos EXE aqui e seguir os seguintes passos para iniciar o aplicativo.
- Instale o JAVA no seu computador se não o tiver instalado antes
- Instale You Cam perfect no seu computador
- Ligue seu Arduino e pareie seu computador com o módulo Bluetooth
- Inicie o arquivo do aplicativo
Se tudo correr bem, você deve ser capaz de notar o LED no seu módulo Bluetooth ficando estável e a luz da sua webcam acendendo. Se você tiver qualquer problema, entre em contato comigo através da seção de comentários e eu o ajudarei.
Assista ao vídeo no final para saber como calibrar sua aplicação e utilizá-la.
Se você deseja modificar o código e adicionar mais recursos a ele, você pode usar as seguintes informações do programa
O IDE de processamento pode ser baixado aqui. Se você quiser aprender mais sobre como processar e criar projetos mais interessantes, pode visitar os tutoriais aqui.
O processamento tem a capacidade de ler dados seriais; neste programa, os dados seriais vêm da porta COM Bluetooth. Você deve selecionar a porta COM à qual o seu Bluetooth está conectado usando esta linha abaixo
porta = novo Serial (isto, Serial.list (), 9600);
Aqui eu escolhi meu 1 st porta COM que é COM5 no meu caso (veja imagem abaixo) e eu ter mencionado que por módulo Bluetooth é executado em 9600 a taxa de transmissão.
Como dito anteriormente, o processamento também tem a capacidade de fazer processamento de imagens, neste tutorial as imagens são enviadas dentro do sketch usando uma webcam. Em cada imagem rastreamos um objeto específico. Para saber mais sobre isso, você pode visitar este tutorial.
Eu tentei o meu melhor para explicar o programa (fornecido no final) através das linhas de comentários. Você pode baixar os arquivos aqui.
Se você quiser saber mais sobre o esboço, pode entrar em contato comigo na seção de comentários e eu o ajudarei.
Trabalhando:
Assim que o Hardware e o software estiverem prontos, use as luvas e prepare-se para alguma ação. Agora, basta ligar o Arduino e iniciar o aplicativo. O led no módulo Bluetooth deve ficar estável. Agora, isso significa que seu aplicativo de sistema estabeleceu um link Bluetooth com seu Arduino.
Você verá a seguinte tela onde deve selecionar o objeto a ser rastreado. Este traçado pode ser feito simplesmente clicando no objeto. Nesse caso, o objeto é o disco azul. Agora você pode mover seu objeto e observar que o ponteiro segue seu objeto. Use um objeto de cor exclusiva e uma sala iluminada para obter melhores resultados.
Agora toque o dedo polegar com o dedo indicador e você verá a mensagem “Tecla 1 pressionada” e quando você pressionar o polegar com o dedo médio deverá ver “Tecla 2 pressionada”, isso indica que tudo está funcionando bem e a calibração acabou. Agora clique no botão Concluído.
Assim que o botão Concluído for pressionado, você será direcionado para a tela principal, onde pode pintar no ar ou alternar o LED na placa Arduino conforme mostrado no vídeo abaixo.