- Requisitos:
- Baixando e instalando softwares:
- Peça de hardware Arduino e diagrama de circuito:
- Parte do software Arduino:
- Aplicativo móvel Android para radar ultrassônico:
- Explicação de trabalho:
Este é um projeto interessante no qual exploramos o poder de um Arduino e Android para criar um dispositivo de vigilância que usa Arduino e sensor Ultra Sonic para transmitir as informações para um aplicativo móvel (Android) usando Bluetooth.
Proteção e segurança tem sido nossa principal preocupação desde idades. Instalar uma câmera de segurança com modo noturno com opção de inclinação e panorâmica fará um grande buraco em nossos bolsos. Portanto, façamos um dispositivo econômico que faça quase o mesmo, mas sem nenhum recurso de vídeo.
Este dispositivo detecta objetos com a ajuda do sensor ultrassônico e, portanto, pode funcionar mesmo durante a noite. Também estamos montando o sensor US (Ultra Sonic) sobre um servo motor, este servo motor pode ser configurado para girar automaticamente para fazer a varredura da área ou pode ser girado manualmente usando nosso aplicativo móvel, para que possamos focalizar o sensor ultrassônico em nossa direção necessária e sentir os objetos presentes ali. Todas as informações detectadas pelo sensor US serão transmitidas ao nosso smartphone por meio do Módulo Bluetooth (HC-05). Por isso, funcionará como um sonar ou um radar.
Interessante né ??…. Vamos ver o que seria necessário para fazer este projeto.
Requisitos:
Hardware:
- Fonte de alimentação A + 5V (estou usando minha placa Arduino (outra) como fonte de alimentação)
- Arduino Mega (você pode usar qualquer coisa, desde Pro mini até Yun)
- Servo motor (qualquer classificação)
- Módulo Bluetooth (HC-05)
- Sensor Ultra Sônico (HC-SR04)
- Breadboard (não obrigatório)
- Fios de conexão
- Android móvel
- Computador para programação
Programas:
- Software Arduino
- Android SDK
- Processando Android (para criar um aplicativo móvel)
Assim que estivermos prontos com nossos materiais, vamos começar a construir o hardware. Dividi este tutorial em Arduino Part e Processing Part para facilitar o entendimento. Pessoas que são novas no processamento não precisam temer muito porque o código completo é fornecido no final do tutorial e pode ser usado como tal.
Baixando e instalando softwares:
O IDE do Arduino pode ser instalado aqui. Baixe o software de acordo com o seu SO e instale-o. O IDE do Arduino exigirá um driver para se comunicar com o hardware do Arduino. Este driver deve ser instalado automaticamente assim que você conectar sua placa ao computador. Tente fazer o upload de um programa blink a partir de exemplos para ter certeza de que o Arduino está instalado e funcionando.
O Processing IDE pode ser instalado aqui. O Processing é um excelente aplicativo de código aberto que pode ser usado para muitas coisas, ele tem vários modos. No “Modo Java” podemos criar aplicativos de computador Windows (arquivos.EXE) e no “modo Android” podemos criar aplicativos móveis Android (arquivos.APK). Ele também tem outros modos como o “modo Python” onde você pode escrever programas python. Este tutorial não cobrirá o básico do Processing, portanto, se você quiser aprender programação ou processamento em java, vá até este ótimo canal do YouTube aqui.
Peça de hardware Arduino e diagrama de circuito:
Este projeto envolve muitos componentes como o Servo Motor, Módulo Bluetooth, Sensor Ultrassônico, etc. Portanto, se você for um iniciante, é recomendável começar com algum tutorial básico que envolva esses componentes e depois voltar aqui. Confira nossos vários projetos de Servo Motor, Módulo Bluetooth e Sensor Ultrassônico aqui.
Todos os componentes não são alimentados pelo próprio Arduino porque o servo motor, o módulo Bluetooth e o sensor US juntos consomem uma grande quantidade de corrente que o Arduino não será capaz de fornecer. Portanto, é estritamente aconselhável usar qualquer fonte externa de + 5V. Se você não tiver uma fonte externa de + 5 V ao seu alcance, pode compartilhar os componentes entre duas placas Arduino como fiz. Eu conectei os barramentos de força Servos a outra placa Arduino (cor vermelha) e conectei o módulo Bluetooth HC-05 e o sensor ultrassônico HC-SR04 ao Arduino mega. CUIDADO: Ligar todos esses módulos usando uma placa Arduino irá fritar o regulador de tensão do Arduino.
O diagrama de conexão para este projeto de sonar baseado em Arduino é fornecido abaixo:
Assim que as conexões forem feitas, monte o sensor US em seu servo motor conforme mostrado abaixo:
Usei um pequeno pedaço de plástico que estava no meu lixo e uma fita dupla-face para montar o sensor. Você pode ter sua própria ideia para fazer o mesmo. Existem também porta-servo disponíveis no mercado que podem ser usados para o mesmo propósito.
Uma vez que o Servo é montado e as conexões são fornecidas, ele deve ser parecido com isto.
Siga o esquema na parte superior se houver alguma conexão errada. Agora vamos começar a programar o Arduino Mega usando o IDE do Arduino.
Parte do software Arduino:
Temos que escrever nosso código para que possamos calcular a distância entre um objeto e o sensor Ultra Sonic e enviá-lo para nosso aplicativo móvel. Também temos que escrever um código para que nosso servo motor faça a varredura e também seja controlado a partir dos dados recebidos pelo módulo Bluetooth. Mas não se preocupe, o programa é muito mais simples do que você pode imaginar, graças ao Arduino e suas bibliotecas. O código completo é fornecido abaixo na seção de código.
A função abaixo é usada para fazer o servo motor varrer automaticamente da esquerda para a direita (170 a 10) e novamente da direita para a esquerda (10 a 170). Os dois loops for são usados para conseguir o mesmo. A função us () é chamada dentro de ambas as funções para calcular a distância entre o sensor e o objeto e transmiti-la ao Bluetooth. Um retardo de 50 ms é dado para fazer o servo girar lentamente. Quanto mais lento o motor gira, mais precisas se tornam suas leituras.
// ** Função do servo para varrer ** // void servofun () {Serial.println ("Sweeping"); // para depuração para (posc = 10; posc <= 170; posc ++) // Usar 10 a 170 graus é seguro do que 0 a 180 porque alguns servo podem não estar operacionais em ângulos extremos {servo.write (posc); // define a posição do servo motor delay (50); nos(); // medir a distância dos objetos ao longo do sensor dos EUA} para (posc = 170; posc> = 10; posc--) {servo.write (posc); atraso (50); nos(); // mede a distância dos objetos no sensor dos EUA} Serial.println ("Scan Complete"); // para depuração flag = 0; } // ** Fim da função de varredura do servo ** //
Como dito anteriormente, o servo motor também pode ser controlado manualmente a partir do smartphone. Basta deslizar para a direita para fazer o motor se mover para a direita e deslizar para a esquerda para fazer o motor se mover para a esquerda. A função acima é usada para conseguir o mesmo. O anjo do servo motor será recebido diretamente pelo módulo Bluetooth e armazenado na variável BluetoothData , então o servo é posicionado naquele anjo específico usando a linha servo.write (BluetoothData).
// ** Função para controlar o Servo manualmente ** // void ownerservo () {us (); // Obter valor do usuário e controlar o servo if (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("Escrito"); if (BluetoothData == 'p') {flag = 0; }}} // __ Fim da função de controle manual __ //
A distância presente antes do objeto será calculada pela função abaixo. Funciona com fórmulas simples que Velocidade = Distância / tempo. Como sabemos a velocidade da onda dos EUA e o tempo gasto, a distância pode ser calculada usando as fórmulas acima.
// ** Função para medir a distância ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); duração = pulseIn (echoPin, HIGH); distância = (duração / 2) / 29,1; // Calcula a distância do sensor if (distance <200 && distance> 0) Blueboy.write (distance); } // __ Fim da função de medição de distância __ //
Se você tiver alguma dúvida sobre o programa, fique à vontade para usar a seção de comentários de suas perguntas. Então, uma vez que estamos prontos com nosso código, podemos imediatamente despejar o código em nosso hardware. Mas o dispositivo de vigilância não começará a funcionar até que seja conectado ao aplicativo Android. Verifique também o vídeo no final para ver o trabalho completo.
Aplicativo móvel Android para radar ultrassônico:
Se você não deseja fazer seu próprio aplicativo e, em vez disso, deseja apenas instalar o mesmo aplicativo usado neste tutorial, siga as etapas abaixo.
1. Você pode baixar diretamente o arquivo APK no link abaixo. Este arquivo APK é feito para Android versão 4.4.2 e superior (Kitkat an acima). Extraia o arquivo APK do arquivo zip.
Aplicativo Android para Radar Ultrasônico
2. Transfira o arquivo.Apk do computador para o telefone celular.
3. Ative a instalação de aplicativos de fontes desconhecidas nas configurações do Android.
4. Instale o aplicativo.
Se instalado com sucesso, você encontrará o aplicativo chamado “Zelobt” instalado no seu telefone, conforme mostrado abaixo:
Se você instalou este APK, pode pular a parte abaixo e ir para a próxima seção.
Programando seu próprio aplicativo usando o Processing:
Você pode usar o arquivo.APK fornecido acima ou pode criar seu próprio aplicativo usando o Processing, conforme explicado aqui. Com pouco conhecimento de programação, também é muito fácil escrever seu próprio código para seu aplicativo Android. No entanto, se você está apenas começando, não é aconselhável começar com este código, pois é um pouco alto que o nível de iniciante.
Este programa usa duas bibliotecas, a saber, a “biblioteca Ketai” e a “biblioteca ControlP5” . A biblioteca Ketai é usada para controlar todo o hardware presente no nosso telefone móvel. Coisas como o nível da bateria do seu telefone, valores do sensor de proximidade, valores do sensor do acelerômetro, opções de controle de Bluetooth, etc. podem ser facilmente acessados por esta biblioteca. Neste programa usamos esta biblioteca para estabelecer uma comunicação entre os telefones Bluetooth e o Arduino Bluetooth (HC-05). A “biblioteca ControlP5” é usada para traçar gráficos para nosso sistema de radar.
O programa Android completo está em anexo, você pode baixá-lo aqui.
CUIDADO: Não se esqueça de instalar as bibliotecas mencionadas acima e não copie e cole a parte do código sozinha, pois o código importa imagens da pasta de dados que são fornecidas no anexo acima. Portanto, baixe e use apenas isso.
Depois de concluir a parte de codificação e compilá-la com sucesso, você pode conectar seu telefone celular diretamente ao computador por meio do cabo de dados e clicar no botão play para transferir o aplicativo para o seu telefone celular. Verifique também nossos outros projetos de processamento: Jogo de pingue-pongue usando Arduino e rádio FM controlado por telefone inteligente usando Processing.
Explicação de trabalho:
Agora, estamos prontos com nosso hardware e a parte de software. Ligue seu hardware e emparelhe seu celular com o módulo Bluetooth. Uma vez emparelhado, abra seu aplicativo “Zelobt” que acabamos de instalar e agora espere um segundo e você deve notar que seu módulo Bluetooth (HC-05) se conecta automaticamente ao seu smartphone. Assim que a conexão for estabelecida, você verá a seguinte tela:
Você pode notar que diz conectado a: Nome do dispositivo (endereço de hardware) na parte superior da tela. Ele também exibe o ângulo atual do servo motor e a distância entre o sensor dos EUA. Um gráfico azul também é traçado no fundo vermelho com base na distância medida. Quanto mais perto o objeto fica, mais alta fica a área azul. O gráfico medido quando alguns objetos são colocados próximos também é mostrado na segunda figura acima.
Como disse anteriormente, você também pode controlar seu servo motor de seu aplicativo móvel. Para fazer isso, basta clicar no botão parar. Isso impedirá que seu servo varra automaticamente. Você também pode encontrar uma roda circular na parte inferior da tela que, quando deslizada, gira no sentido horário ou anti-horário. Ao deslizar esta roda, você também pode fazer seu servo motor girar nessa direção específica. A roda e o gráfico atualizados quando passados são mostrados na imagem abaixo.
O código do Arduino é fornecido abaixo e o arquivo APK para o aplicativo Android está aqui. O funcionamento do projeto completo é mostrado no vídeo abaixo. Espero que você tenha entendido o projeto. Se você tiver quaisquer pedidos, por favor use a seção de comentários abaixo.