Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Mapeador ultrassônico usando um Arduino Yun

Componentes e suprimentos

Arduino Yun
× 1
Sensor ultrassônico
× 1
Servos (Tower Pro MG996R)
× 1
Fios de jumpers (genérico)
× 10

Aplicativos e serviços online

Arduino IDE
MATLAB

Sobre este projeto





Etapa 1:Teoria


Neste projeto, estamos usando um sensor ultrassônico de distância. Ele gera ondas sonoras além do alcance da audição humana e mede a distância calculando o tempo necessário para que essas ondas atinjam um obstáculo e viajem de volta. Isso é semelhante ao princípio usado por morcegos e navios de cruzeiro.

Outro componente que vamos usar é um servo motor. Ele difere do motor CC normal porque pode girar com muita precisão para uma determinada posição angular e manter seu estado lá. Quando um servo motor recebe pulsos de uma duração específica, ele se move para a posição angular correspondente.

Estaremos usando esses dois componentes para obter um campo de visão de 180 graus para o nosso robô.





Etapa 2:coleta de materiais


Este projeto usa o seguinte hardware
  • Arduino Uno / Yun (observe que qualquer placa de footprint do Arduino pode ser usada no lugar do Uno ou Yun)
  • Arduino Prototyping Shield
  • Um sensor ultrassônico HC-04
  • Um servo motor (usei o Tower Pro SG90 porque é muito compacto)
  • No lado do software, usamos os seguintes programas
  • O IDE do Arduino para fazer upload do código de controle para o Arduino para girar o servo e obter dados de distância do sensor ultrassônico e também enviá-lo para a porta serial.
  • Mathworks MatLab para receber os dados da linha serial, processá-los e visualizá-los em um gráfico.





Etapa 3:Montagem Mecânica


Usando um pequeno pedaço de placa de circuito impresso de uso geral, faça um pequeno cabeçalho para o HC-04 e prenda-o a uma sirene servo usando um pedaço de fita dupla-face.

Esta etapa é opcional, mas para tornar o sistema mais compacto, conectei o servo à parte saliente da proteção do protoboard usando fita dupla-face também.

O resultado final deve ser semelhante ao abdômen de Wall-E.





Etapa 4:o código do Arduino


O código do Arduino controla o movimento do servo motor e quando as leituras do sensor ultrassônico são capturadas e com que frequência. Ele também envia os dados do sensor para a porta serial.
  • Importar bibliotecas
  • Inicialize variáveis ​​e pinos.
  • Inicializar objeto servo
  • Inicialize a comunicação serial
  • Aguarde 3 segundos
  • Inicialize os contadores para 0
  • Girar servo em 1 grau
  • Obtenha dados do sensor ultrassônico 10 vezes (definido por padrão)
  • Faça a média dos dados
  • Envie a média para a porta serial
  • Volte para a etapa 7





Etapa 5:o código MatLab


O código MatLab lida mais com dados do que com o controle real da placa, então todos os dados do sensor são enviados via serial para o PC, onde são lidos pelo MatLab.

Agora, os dados que recebemos do Arduino nos dizem duas coisas. O grau de rotação do servo e a distância de um obstáculo nessa direção. Portanto, os dados que temos neste ponto estão no sistema de coordenadas polares. Para que faça sentido aos olhos humanos quando visualizado, deve ser convertido para o sistema de coordenadas cartesiano ou X-Y.

Portanto, o código MatLab faz exatamente isso. Ele obtém os dados em série da porta COM, salva-os em uma matriz com o ângulo de rotação e, em seguida, os converte em coordenadas cartesianas com a fórmula fornecida acima.

Uma vez feito isso, ele fornece uma saída plotando os pontos em um gráfico. Coloquei a placa na caixa e obtive o seguinte resultado.

Etapa 6:Conclusão

Embora o sistema não seja perfeito, ele dá conta do recado. Ele pode obter uma estimativa aproximada da largura e do comprimento da caixa e enviar os dados com precisão.

Os únicos erros que posso ver no momento são devido ao movimento do sensor enquanto o servo está em movimento e leituras incorretas do próprio sensor.

Além disso, o sistema funciona bem e pode ser usado para experimentos de percepção de profundidade, bem como projetos básicos de visão computacional.

Código

  • matlab_code_to_run_on_pc.m
  • Código Arduino
matlab_code_to_run_on_pc.m MATLAB
Código MatLab a ser compilado e executado no PC
 theta =0:(pi / 180):pi; s =serial ('COM10'); s.BaudRate =9600fopen (s) i =0; inc =1; enquanto i <180 A =fgets (s); num (i + 1) =str2num (A); i =i + 1; endfclose (s) j =1 while j <181 tab (j, 1) =(j-1) * inc tab (j, 2) =num (j) tab (j, 3) =num ( j) * cosd ((j-1) * inc) tab (j, 4) =num (j) * sind ((j-1) * inc) j =j + 1end% figura% polar (theta, num) plot (guia (:, 3), guia (:, 4)) 
Código Arduino Arduino
Código Arduino a ser carregado no Arduino Yun
 #include  #include  #define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200 Sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); Servo myservo; int pos =0; int it =10; configuração vazia () {myservo.attach (9); Serial.begin (9600); atraso (3000);} loop vazio () {int i =0; int t =0; int a =0; para (i =0; i <180; i ++) {não sinalizado int uS =sonar.ping (); myservo.write (i); atraso (20); para (t =0; t  

Esquemas

Arquivo Fritzing para conexões de sensor ultrassônico e servo YunConfig.fzz

Processo de manufatura

  1. Faça Monitor Ambilight usando Arduino
  2. Sistema de detecção de humanos usando Arduino Uno
  3. Máquina de LEVITAÇÃO ULTRASÔNICA Usando ARDUINO
  4. FlickMote
  5. Faça você mesmo voltímetro usando Arduino e Smartphone
  6. Monitor de freqüência cardíaca usando IoT
  7. Brinquedo controlado pelo Android usando Raspberry Motor Shield
  8. IOT - Jar inteligente usando ESP8266, Arduino e sensor ultrassônico
  9. WebServerBlink usando Arduino Uno WiFi
  10. Robô seguidor de linha