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

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

Componentes e Materiais

Arduino Yun1
Sensor Ultrassônico1
Servo Tower Pro MG996R1
Jumpers (genéricos)10

Aplicativos e Serviços Online

Sobre o Projeto

Passo 1: Teoria

Neste projeto usamos sensor ultrassônico de distância. Ele gera ondas sonoras além da audição humana e mede distância calculando o tempo que essas ondas levam para atingir um obstáculo e retornar. Princípio similar ao usado por morcegos e navios.

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

Outro componente é o servo motor. Diferente de motor DC comum, ele gira precisamente para uma posição angular dada e mantém esse estado. Quando recebe pulsos de duração específica, move para a posição angular correspondente.

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

Usaremos ambos para obter campo de visão de 180 graus para nosso robô.

Passo 2: Coletando Materiais

Hardware:

Software:

Passo 3: Montagem Mecânica

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

Usando pequeno pedaço de PCB de uso geral, faça um header pequeno para o HC-04 e fixe na haste do servo com fita dupla face.

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

Este passo é opcional, mas para tornar o sistema mais compacto, fixei o servo na parte saliente do shield protoboard também com fita dupla face.

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

O resultado final deve parecer o abdômen do Wall-E.

Passo 4: Código do Arduino

O código Arduino controla o movimento do servo, quando as leituras do sensor ultrassônico são capturadas e com que frequência. Também envia dados do sensor à porta serial.

Passo 5: Código MATLAB

O código MATLAB lida mais com dados que com controle da placa. Todos os dados do sensor são enviados via serial ao PC, onde são lidos pelo MATLAB.

Os dados recebidos 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 estão no sistema de coordenadas polares. Para fazer sentido visualmente, devem ser convertidos para coordenadas Cartesianas (X-Y).

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

O código MATLAB faz exatamente isso. Obtém dados serial da porta COM, salva em matriz com ângulo de rotação, converte para coordenadas Cartesianas com a fórmula acima.

Feito isso, plota os pontos no gráfico. Coloquei a placa numa caixa e obtive o seguinte resultado.

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

Passo 6: Conclusão

Construa um Mapeador Ultrassônico com Arduino Yun – Guia Passo a Passo

Embora o sistema não seja perfeito, cumpre o propósito. Consegue estimar largura e comprimento da caixa e envia dados com precisão.

Os únicos erros visíveis são devido à trepidação do sensor enquanto o servo move e leituras falhas do próprio sensor.

Fora isso, o sistema funciona bem e pode ser usado para experimentos de percepção de profundidade e projetos básicos de visão computacional.

Código

matlab_code_to_run_on_pc.m MATLAB

Código MATLAB para compilar e executar no PC

theta = 0:(pi/180):pi; 
s = serial('COM10'); 
s.BaudRate=9600 
fopen(s) 
i = 0; 
inc = 1; 
while i<180 
  A = fgets(s); 
  num(i+1) = str2num(A); 
  i = i+1; 
end 
fclose(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+1 
end 
plot(tab(:,3),tab(:,4))

Código Arduino Arduino

Código Arduino para carregar no Arduino Yun

#include <Servo.h> 
#include <NewPing.h> 
#define TRIGGER_PIN 12 
#define ECHO_PIN 11 
#define MAX_DISTANCE 200 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
Servo myservo; 
int pos = 0; 
int it = 10; 

void setup() { 
  myservo.attach(9); 
  Serial.begin(9600); 
  delay(3000); 
} 

void loop() { 
  int i = 0; 
  int t = 0; 
  int a = 0; 
  for (i = 0; i < 180; i ++) { 
    unsigned int uS = sonar.ping(); 
    myservo.write(i); 
    delay(20); 
    for (t = 0; t < it; t++) { 
      uS = sonar.ping(); 
      a = uS/US_ROUNDTRIP_CM + a; 
      delay(30); 
    } 
    a = a / (it-1); 
    t = 0; 
    Serial.println(a); 
    a = 0; 
  } 
}

Esquemáticos

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

Processo de manufatura

  1. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  2. Robô de Detecção Humana Baseado em Arduino Uno: Integração de Sensores Passo a Passo
  3. Construa um Dispositivo de Levitação Ultrassônica com Arduino – Guia Passo a Passo
  4. FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
  5. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  6. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  7. Veículo Remoto Controlado por Android com Raspberry Pi e Motor Shield
  8. Construa um Pote Inteligente IoT com ESP8266, Arduino e Sensor Ultrassônico – Monitoramento em Tempo Real
  9. Servidor Web Arduino Uno WiFi: Controle LED via Navegador
  10. Criar Robô Seguidor de Linha Autônomo com Arduino UNO