Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Sonar mit Arduino und Anzeige bei der Verarbeitung von IDE

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
SG90 Micro-Servomotor
× 1
Ultraschallsensor - HC-SR04 (Generic)
× 1
Jumper (generisch)
× 1
Lötfreies Steckbrett in voller Größe
× 1

Notwendige Werkzeuge und Maschinen

Heißklebepistole (generisch)
Lötkolben-Kit, SolderPro 150

Apps und Onlinedienste

Arduino-IDE
The Processing Foundation Processing

Über dieses Projekt

Hallo zusammen, mir wurde vorgeschlagen, ein Hindernisvermeidungsauto zu bauen, aber ich dachte, es wäre zu üblich und unpraktisch, um eines zu bauen ..., also dachte ich, ein Sonar mit dem Konzept des Servos des Hindernisvermeidungsautos und des HC-SR04-Sensors zu erstellen.

Ich hatte keinen TFT-LCD-Bildschirm, aufgrund dessen ich nicht wusste, wie man die Sonarausgabe anzeigt. Dann dachte ich, die Verarbeitungs-IDE zu verwenden, da sie es ermöglichte, die Sonarausgabe auf meinem PC auch mit schöner Auflösung anzuzeigen! Aber da ich neu in der Verarbeitung von IDE war, wusste ich nicht, wie ich es verwenden sollte, also habe ich zum Üben den p5-Webeditor (nur zum Üben) verwendet, als ich die Verarbeitung von IDE und einige Bibliotheken verwendet habe, um die Ausgabe von Sonar zu lesen und auf dem PC anzuzeigen!

Ich habe den Ultraschallsensor mit einer Heißklebepistole am Servomotor befestigt, so dass sich der Ultraschallsensor mit Servo dreht und einen Bereich von 180 Grad abdeckt zeigt genau den Abstand und den Winkel an!

Freunde Ich habe auch geteilt, wie die Ausgabe bei der Verarbeitung der IDE aussieht. Sie können das Bild als Referenz für Ihr Projekt verwenden :)

Da wir wissen, wie die Montage und Ausgabe aussieht, bleibt nur das Video der Ausgabe. Sehen Sie sich das Video bis zum Ende an, um die Ausgabe besser zu verstehen.

Code

  • Sonar-Code für Arduino-IDE
  • Sonar-Code zum Verarbeiten der IDE
Sonarcode für Arduino IDEC/C++
#include const int trigPin=12;const int echoPin=11;lange Dauer;int Abstand;Servo s1;void setup() { Serial.begin (9600); pinMode (trigPin, AUSGANG); pinMode (echoPin, EINGANG); s1.attach(9);}void loop(){ for(int i=0;i<180;i=i+1){ s1.write(i); Verzögerung (30); Distanz =calDist(); Serial.print (i); Serial.print (","); Serial.print (Abstand); Serial.print("."); } for(int i=180;i>0;i=i-1){s1.write(i); Verzögerung (30); Distanz =calDist(); Serial.print (i); Serial.print (","); Serial.print (Abstand); Serial.print("."); }} Int calDist () { DigitalWrite (trigPin, LOW); VerzögerungMikrosekunden(2); digitalWrite (trigPin, HOCH); VerzögerungMikrosekunden(10); digitalWrite (trigPin, LOW); Dauer =pulseIn(echoPin, HIGH); Distanz =Dauer*0,034/2; Rückweg;}
Sonar-Code zur Verarbeitung von IDEJava
import processing.serial.*; Serieller myPort; String ang="";String distance="";String data="";int angle, dist;void setup() { size (2000,800); myPort =new Serial(this,"COM3", 9600); myPort.bufferUntil('.'); background(0);}void draw() {fill(0,5); noStroke(); rect(0, 0, Breite, Höhe*0,93); noStroke(); füllen (0,255); rect(0,Höhe*0,93,Breite,Höhe); drawRadar(); drawLine(); drawObject(); drawText();}void serialEvent (Serial myPort) { data =myPort.readStringUntil('.'); data =data.substring(0,data.length()-1); int index1 =data.indexOf(","); ang=data.substring(0, index1); distance=data.substring(index1+1, data.length()); Winkel =int(ang); dist =int (Entfernung); System.out.println (Winkel);}void drawRadar () { pushMatrix (); noFill(); Hubgewicht (0,5); Hub (10,255,10); Übersetzen (Breite/2, Höhe-Höhe * 0,06); Linie(-Breite/2,0,Breite/2,0); arc(0,0,(Breite*0,5),(Breite*0,5),PI,TWO_PI); arc(0,0,(Breite*0,25),(Breite*0,25),PI,TWO_PI); arc(0,0,(Breite*0.75),(Breite*0.75),PI,TWO_PI); arc(0,0,(Breite*0,95),(Breite*0,95),PI,TWO_PI); line(0,0,(-Breite/2)*cos(Radiant (30)),(-Breite/2)*sin(Radiant (30))); line(0,0,(-Breite/2)*cos(Radiant(60)),(-Breite/2)*sin(Radiant(60))); line(0,0,(-Breite/2)*cos(Radiant(90)),(-Breite/2)*sin(Radiant(90))); line(0,0,(-Breite/2)*cos(Radiant(120)),(-Breite/2)*sin(Radiant(120))); line(0,0,(-Breite/2)*cos(Radiant(150)),(-Breite/2)*sin(Radiant(150))); Hub (175,255,175); line(0,0,(-Breite/2)*cos(Radiant(15)),(-Breite/2)*sin(Radiant(15))); line(0,0,(-Breite/2)*cos(Radiant(45)),(-Breite/2)*sin(Radiant(45))); line(0,0,(-Breite/2)*cos(Radiant(75)),(-Breite/2)*sin(Radiant(75))); line(0,0,(-Breite/2)*cos(Radiant(105)),(-Breite/2)*sin(Radiant(105))); line(0,0,(-Breite/2)*cos(Radiant(135)),(-Breite/2)*sin(Radiant(135))); line(0,0,(-Breite/2)*cos(Radiant(165)),(-Breite/2)*sin(Radiant(165))); popMatrix();}void drawLine() { pushMatrix(); Strichgewicht(9); Strich(0,255,0); Übersetzen (Breite/2, Höhe-Höhe * 0,06); line(0,0,(Breite/2)*cos(Radiant(Winkel)),(-Breite/2)*sin(Radiant(Winkel))); popMatrix();}void drawObject() { pushMatrix(); Strichgewicht(9); Strich(255,0,0); Übersetzen (Breite/2, Höhe-Höhe * 0,06); float pixleDist =(dist/40.0)*(width/2.0); float pd=(Breite/2)-pixleDist; float x=-pixleDist*cos(Radiant(Winkel)); float y=-pixleDist*sin(Radiant(Winkel)); if(dist<=40){ line(-x,y,-x+(pd*cos(Radiant(Winkel))),y-(pd*sin(Radiant(Winkel)))); } popMatrix();}void drawText(){ pushMatrix(); füllen(100,200,255); Textgröße (25); text("10cm",(Breite/2)+(Breite*0,115),Höhe*0,93); text("20cm",(Breite/2)+(Breite*0,24,Höhe*0,93); text("30cm",(Breite/2)+(Breite*0,365),Höhe*0,93); text("40cm",(Breite/2)+(Breite*0,45,Höhe*0,93); if(dist<=40) { text("Distance:"+dist,width*0.7,height*0.99); } translate(width/2,height-height*0.06); Textgröße (25); text(" 30",(Breite/2)*cos(Radiant(30)),(-Breite/2)*sin(Radiant(30))); text(" 60",(Breite/2)*cos(Radiant(60)),(-Breite/2)*sin(Radiant(60))); text("90",(Breite/2)*cos(Radiant(91)),(-Breite/2)*sin(Radiant(90))); text("120",(Breite/2)*cos(Radiant(123)),(-Breite/2)*sin(Radiant(118))); text("150",(Breite/2)*cos(Radiant(160)),(-Breite/2)*sin(Radiant(150))); popMatrix(); }

Schaltpläne


Herstellungsprozess

  1. TinyML-Spracherkennung basierend auf Edge Impulse &Arduino
  2. Arduino-Gyroskop-Spiel mit MPU-6050
  3. Arduino Digital Dice
  4. ULTRASCHALLLEVITATION-Maschine mit ARDUINO
  5. DIY-Voltmeter mit Arduino und Smartphone
  6. Temperatur- und Feuchtigkeitsdatenlogger
  7. IOT - Smart Jar mit ESP8266, Arduino und Ultraschallsensor
  8. Autozähler mit Arduino + Processing + PHP
  9. Steuerung der LED-Helligkeit mit Bolt und Arduino
  10. So erstellen Sie einen Kompass mit Arduino und Processing IDE