Índice:

Sistema de radar simples do Magicbit: 6 etapas
Sistema de radar simples do Magicbit: 6 etapas

Vídeo: Sistema de radar simples do Magicbit: 6 etapas

Vídeo: Sistema de radar simples do Magicbit: 6 etapas
Vídeo: DIY Mini Radar Detection Station | Best Science Project | Arduino Project | How To Make Radar . 2024, Julho
Anonim

Este tutorial mostra como fazer um sistema de radar simples usando o sensor HC-SR04 e a placa de desenvolvimento Microbit com processamento e IDE do Arduino.

Suprimentos:

  • SG90 Micro-servo motor
  • Fios de ligação (genérico)
  • Breadboard (genérico)
  • Magicbit
  • Cabo USB-A para Micro-USB
  • Sensor Ultrassônico - HC-SR04 (Genérico)

Etapa 1: História

Neste tutorial, aprenderemos como fazer um sistema de radar simples usando a placa de desenvolvimento principal do Magicbit. Para isso utilizamos o sensor ultrassônico HC-SR04 e para a exibição dos dados utilizamos o ambiente de processamento. Vamos começar.

Etapa 2: Teoria e Metodologia

Primeiro, vamos discutir como isso funciona. O princípio é muito fácil. Primeiro, giramos nosso sensor em torno do eixo vertical em uma faixa de 180 graus continuamente. Durante esse movimento, pegamos os dados sobre a distância até o objeto mais próximo do sensor ultrassônico em todos os ângulos. Para este processo, usamos a placa principal Magicbit. Depois, temos que estabelecer a conexão com o ambiente de processamento para mostrar nossos dados. Para isso, usamos protocolo de comunicação serial com taxa de transmissão adequada. Em seguida, projetamos a interface do nosso sistema de radar usando o IDE de processamento. Nesse IDE configuramos nossa comunicação serial para obter dados em tempo real via serial. Portanto, fazemos comunicação em tempo real com o Magicbit e mostramos os dados que são enviados do Magicbit para o IDE de processamento.

Etapa 3: configuração do hardware

Configuração de hardware
Configuração de hardware
Configuração de hardware
Configuração de hardware

Para este projeto, usamos principalmente três componentes de hardware. Eles são Magicbit, servo motor e sensor ultrassônico. A conexão entre todas essas partes é mostrada na Figura acima.

Sensor ultrassônico usado 3,3 V para ligar. Por isso, usamos a porta inferior direita da placa Magicbit para conectar o sensor ultrassônico ao Magicbit. Mas o servo motor é usado 5V para o funcionamento adequado, por isso usamos a porta inferior esquerda para conectar o servo motor com Magicbit. Neste caso, usamos o módulo conector servo Magic bit. Mas se você não tiver esse módulo, você pode usar três fios de jumper para conectar 5V a 5V, Gnd a Gnd e pino de sinal a 26 pinos no magicbit.

Depois de construir o circuito, temos que construir uma pequena parte mecânica. defina o conector do servo de lado único para o servo motor usando uma porca pequena. Em seguida, fixe o sensor nesse conector usando algum suporte em forma de L ou da maneira adequada. Depois de todo o sistema, fixamos o breadboard. Mas você pode usar outra superfície para montar servo e Magicbit.

Etapa 4: configuração do software

Configuração de software
Configuração de software
Configuração de software
Configuração de software

O lado do software é um pouco complexo. Para um entendimento adequado, você pode consultar os links a seguir antes de prosseguir para a próxima parte.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

Vejamos o código do Arduino IDE e como esse código funciona.

Para dirigir o servo, usamos a biblioteca de servo ESP32. Esta biblioteca quase inclui o gerenciador de placa de bits mágicos no IDE do Arduino. Para lidar com o sensor ultrassônico, usamos a biblioteca newPing. Isso pode ser baixado do seguinte link.

bitbucket.org/teckel12/arduino-new-ping/do…

Baixe o arquivo zip e vá em ferramentas> incluir biblioteca> adicionar biblioteca Zip no Arduino. agora selecione o arquivo zip baixado da nova biblioteca de pinos. Para comunicação com processamento, usamos comunicação serial com taxa de transmissão de 115200 baud. Esta é a frequência mais adequada para ESP32. Em todos os ângulos, enviamos nossos dados para o computador usando este protocolo. A distância até o objeto frontal mais próximo do sensor, a direção de rotação e o ângulo de rotação estão incluídos nestes dados. Usando dois loops for, giramos nosso servo em duas direções. Enquanto um grau de rotação, enviamos dados seriais em 4 vezes. A razão para isso você pode entender no processamento da explicação da parte.

Agora é hora de examinar o ambiente de processamento. Este é um software de programação baseado em java. Podemos escrever um esboço de nosso programa neste esboço no processamento de IDE. Também podemos gerar saída visual ao executar nosso programa. Além disso, você pode obter a saída como objetos 2D e 3D. Não só isso, ele pode ser usado para processamento de imagem e muito mais.

No esboço de processamento, primeiro projetamos nossa interface de exibição de dados usando funções gráficas simples. No início do código, estabelecemos nossa comunicação serial incluindo bibliotecas seriais. Na função de configuração, você deve fazer algumas alterações de acordo com a porta USB usada para conectar o Magicbit ao computador. você pode verificar sua porta usando o Arduino IDE ao configurar o Arduino IDE para fazer o upload do código. Em seguida, altere o nome da porta de comunicação na parte de configuração no esboço de processamento. quando os dados seriais estão disponíveis, a função Serialevent é acionada automaticamente. Portanto, a lógica principal do código é a inclusão em evento serial para evitar a perda de ângulos e dados. quando novos dados estão disponíveis, desenhamos uma linha na tela de acordo com nosso ângulo. Nesse momento, se não houver detecção de objeto, a linha inteira será verde. Do contrário, alguma parte da linha ficará vermelha de acordo com a distância do sensor ao objeto. Além disso, na direção de rotação correspondente, desenhamos outras 200 linhas próximas a essa linha com nível decrescente de cor verde. entre cada principal, temos uma diferença de 0,25 graus. Portanto, obtemos 4 leituras por vez do Magicbit em cada rotação de grau. Por causa disso, podemos criar belas mãos de busca na tela.

Depois de fazer o upload do código com sucesso para o Magic e definir a parte do hardware com sucesso, abra o IDE de processamento e execute o código clicando no botão Executar. Agora você tem um sistema de radar muito simples.

Você pode personalizar os códigos conforme desejar o que deseja exibir.

Etapa 5: Solução de problemas

O esboço de processamento não está em execução.

  • Espere um pouco. Por causa do tempo de inicialização depende do desempenho do seu PC e GPU.
  • Verifique se o número da porta serial está correto no processamento do esboço.
  • Verifique se a conexão USB está fixada corretamente.
  • Verifique a conexão entre o sensor ultrassônico e o Magicbit.
  • Abra o monitor serial e verifique se os dados estão vindo do Arduino. Se não, o problema é o código do Arduino ou a conexão USB.

O servo não está funcionando.

  • Verifique se a conexão USB está fixada corretamente.
  • Verifique a fiação.
  • Verifique se o servo está em boas condições.

Etapa 6: Código Arduino

#incluir

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 Sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // inclui a distância interna da biblioteca servo; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Define em qual pino está o servo motor conectado delay (3000); } void loop () {// gira o servo motor de 15 a 165 graus para (int i = 0; i <= 180; i ++) {RadarServo.write (i); atraso (50); distance = sonar.ping_cm (); // Chama uma função para calcular a distância medida pelo sensor ultrassônico para cada grau para (int j = 0; j0) {break; } Serial.print (i); // Envia o grau atual para a porta serial Serial.print (","); // Envia o caractere de adição próximo ao valor anterior necessário posteriormente no IDE de processamento para indexação Serial.print (j); // Envia o grau atual para a Porta Serial Serial.print ("*"); Serial.print (1); // Envia o valor da distância para a porta serial Serial.print ("/"); // Envia o caractere de adição próximo ao valor anterior necessário posteriormente no IDE de processamento para indexação Serial.print (distance); // Envia o valor da distância para a porta serial Serial.print ("."); // Envia o caractere de adição próximo ao valor anterior necessário posteriormente no IDE de processamento para indexação}} // Repete as linhas anteriores de 165 a 15 graus para (int i = 180; i> = 0; i -) {RadarServo.write (i); atraso (50); distância = sonar.ping_cm (); para (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continue; } Serial.print (i); // Envia o grau atual para a porta serial Serial.print (","); // Envia o caractere de adição próximo ao valor anterior necessário posteriormente no IDE de processamento para indexação Serial.print (j); // Envia o grau atual para a porta serial Serial.print ("*"); Serial.print (-1); // Envia o valor da distância para a porta serial Serial.print ("/"); // Envia o caractere de adição próximo ao valor anterior necessário posteriormente no IDE de processamento para indexação Serial.print (distance); // Envia o valor da distância para a porta serial Serial.print ("."); // Envia o caractere de adição próximo ao valor anterior necessário posteriormente no IDE de processamento para indexação}}

}

Recomendado: