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

Sonar usando arduino e exibição no IDE de processamento

Componentes e suprimentos

Arduino UNO
× 1
Micro servo motor SG90
× 1
Sensor ultrassônico - HC-SR04 (genérico)
× 1
Fios de jumpers (genérico)
× 1
Placa de ensaio sem solda em tamanho real
× 1

Ferramentas e máquinas necessárias

Pistola de cola quente (genérica)
Kit de solda, SolderPro 150

Aplicativos e serviços online

Arduino IDE
The Processing Foundation Processing

Sobre este projeto


Olá a todos, fui sugerido para fazer um carro para evitar obstáculos, mas achei que seria muito comum e impraticável fazer um ..., então pensei em fazer um sonar usando o conceito de servo de carro para evitar obstáculos e sensor HC-SR04.

Eu não tinha uma tela lcd tft por causa da qual eu não sabia como exibir a saída do sonar. Então pensei em usar o IDE de processamento, pois ele permitia exibir a saída do sonar no meu pc também com boa resolução! mas como eu era novo no processamento de IDE, não sabia como usá-lo, então para prática usei o editor web p5 (apenas para prática) do que usei o processamento Ide e algumas bibliotecas para ler a saída do sonar e exibir no pc!



Anexei o sensor ultrassônico ao servo motor usando uma pistola de cola quente para que o sensor ultrassônico gire com o servo e cubra um intervalo de 180 graus e, em seguida, a saída, independentemente de um objeto ser detectado ou não, é mostrada no processamento de IDE e eu escrevi mais alguns códigos que exibe com precisão a distância e o ângulo!



Amigos, também compartilhei como a saída do processamento do IDE parece que você pode usar a imagem como referência com o seu projeto :)

Como sabemos como a montagem e a saída parecem, a única coisa que resta é o vídeo de saída, assista ao vídeo até o fim para entender a saída muito mais apropriadamente.




Código

  • Código de sonar para IDE arduino
  • Código de sonar para processamento de IDE
Código de sonar para arduino IDE C / C ++
 #include  const int trigPin =12; const int echoPin =11; longa duração; distância interna; Servo s1; void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); s1.attach (9);} void loop () {for (int i =0; i <180; i =i + 1) {s1.write (i); atraso (30); distância =calDist (); Serial.print (i); Serial.print (","); Serial.print (distância); Serial.print ("."); } para (int i =180; i> 0; i =i-1) {s1.write (i); atraso (30); distância =calDist (); Serial.print (i); Serial.print (","); Serial.print (distância); Serial.print ("."); }} int calDist () {digitalWrite (trigPin, LOW); atrasoMicrosegundos (2); digitalWrite (trigPin, HIGH); atrasoMicrosegundos (10); digitalWrite (trigPin, LOW); duração =pulseIn (echoPin, HIGH); distância =duração * 0,034 / 2; distância de retorno;} 
Código de sonar para processamento de IDE Java
 import processing.serial. *; Serial myPort; String ang =""; String distance =""; String data =""; ângulo interno, dist; void setup () {size (2000.800); myPort =novo Serial (este, "COM3", 9600); myPort.bufferUntil ('.'); background (0);} void draw () {fill (0,5); noStroke (); rect (0, 0, largura, altura * 0,93); noStroke (); encher (0,255); rect (0, altura * 0,93, largura, altura); drawRadar (); desenhar linha(); drawObject (); drawText ();} void serialEvent (Serial myPort) {data =myPort.readStringUntil ('.'); data =data.substring (0, data.length () - 1); int index1 =data.indexOf (","); ang =data.substring (0, índice1); distance =data.substring (index1 + 1, data.length ()); ângulo =int (ang); dist =int (distância); System.out.println (ângulo);} void drawRadar () {pushMatrix (); Sem preenchimento(); strokeWeight (0,5); curso (10,255,10); traduzir (largura / 2, altura-altura * 0,06); linha (-largura / 2,0, largura / 2,0); arco (0,0, (largura * 0,5), (largura * 0,5), PI, TWO_PI); arco (0,0, (largura * 0,25), (largura * 0,25), PI, TWO_PI); arco (0,0, (largura * 0,75), (largura * 0,75), PI, TWO_PI); arco (0,0, (largura * 0,95), (largura * 0,95), PI, TWO_PI); linha (0,0, (- largura / 2) * cos (radianos (30)), (- largura / 2) * sin (radianos (30))); linha (0,0, (- largura / 2) * cos (radianos (60)), (- largura / 2) * sen (radianos (60))); linha (0,0, (- largura / 2) * cos (radianos (90)), (- largura / 2) * sin (radianos (90))); linha (0,0, (- largura / 2) * cos (radianos (120)), (- largura / 2) * sen (radianos (120))); linha (0,0, (- largura / 2) * cos (radianos (150)), (- largura / 2) * sin (radianos (150))); curso (175,255,175); linha (0,0, (- largura / 2) * cos (radianos (15)), (- largura / 2) * sin (radianos (15))); linha (0,0, (- largura / 2) * cos (radianos (45)), (- largura / 2) * sin (radianos (45))); linha (0,0, (- largura / 2) * cos (radianos (75)), (- largura / 2) * sin (radianos (75))); linha (0,0, (- largura / 2) * cos (radianos (105)), (- largura / 2) * sin (radianos (105))); linha (0,0, (- largura / 2) * cos (radianos (135)), (- largura / 2) * sen (radianos (135))); linha (0,0, (- largura / 2) * cos (radianos (165)), (- largura / 2) * sen (radianos (165))); popMatrix ();} void drawLine () {pushMatrix (); strokeWeight (9); curso (0,255,0); traduzir (largura / 2, altura-altura * 0,06); linha (0,0, (largura / 2) * cos (radianos (ângulo)), (- largura / 2) * sin (radianos (ângulo))); popMatrix ();} void drawObject () {pushMatrix (); strokeWeight (9); curso (255,0,0); traduzir (largura / 2, altura-altura * 0,06); float pixleDist =(dist / 40,0) * (largura / 2,0); float pd =(largura / 2) -pixleDist; float x =-pixleDist * cos (radianos (ângulo)); float y =-pixleDist * sin (radianos (ângulo)); if (dist <=40) {linha (-x, y, -x + (pd * cos (radianos (ângulo))), y- (pd * sin (radianos (ângulo)))); } popMatrix ();} void drawText () {pushMatrix (); preencher (100.200.255); textSize (25); texto ("10 cm", (largura / 2) + (largura * 0,115), altura * 0,93); texto ("20 cm", (largura / 2) + (largura * 0,24), altura * 0,93); texto ("30 cm", (largura / 2) + (largura * 0,365), altura * 0,93); texto ("40cm", (largura / 2) + (largura * 0,45), altura * 0,93); if (dist <=40) {text ("Distância:" + dist, largura * 0,7, altura * 0,99); } traduzir (largura / 2, altura-altura * 0,06); textSize (25); texto ("30", (largura / 2) * cos (radianos (30)), (- largura / 2) * sin (radianos (30))); texto ("60", (largura / 2) * cos (radianos (60)), (- largura / 2) * sin (radianos (60))); texto ("90", (largura / 2) * cos (radianos (91)), (- largura / 2) * sin (radianos (90))); texto ("120", (largura / 2) * cos (radianos (123)), (- largura / 2) * sin (radianos (118))); texto ("150", (largura / 2) * cos (radianos (160)), (- largura / 2) * sin (radianos (150))); popMatrix (); } 

Esquemas


Processo de manufatura

  1. Detector de linguagem TinyML baseado em Edge Impulse e Arduino
  2. Jogo Arduino Gyroscope com MPU-6050
  3. Dados digitais Arduino
  4. Máquina de LEVITAÇÃO ULTRASÔNICA Usando ARDUINO
  5. Faça você mesmo voltímetro usando Arduino e Smartphone
  6. Registrador de dados de temperatura e umidade
  7. IOT - Jar inteligente usando ESP8266, Arduino e sensor ultrassônico
  8. Contador de carros usando Arduino + Processing + PHP
  9. Controle de brilho do LED usando Bolt e Arduino
  10. Como fazer uma bússola usando Arduino e IDE de processamento