Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Sonar met arduino en weergave op verwerkings-IDE

Componenten en benodigdheden

Arduino UNO
× 1
SG90 Micro-servomotor
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 1
Jumperdraden (algemeen)
× 1
Soldeerloze breadboard op ware grootte
× 1

Benodigde gereedschappen en machines

Hot lijmpistool (algemeen)
Soldeerboutset, SolderPro 150

Apps en online services

Arduino IDE
The Processing Foundation Verwerking

Over dit project

Hallo allemaal, mij werd voorgesteld om een ​​auto voor het vermijden van obstakels te maken, maar ik vond het te gewoon en onpraktisch om er een te maken... dus ik dacht om een ​​sonar te maken met behulp van het concept van de servo van de auto voor het vermijden van obstakels en de HC-SR04-sensor.

Ik had geen tft-lcd-scherm waardoor ik niet wist hoe ik de output van de sonar moest weergeven. Toen dacht ik om de verwerkings-IDE te gebruiken, omdat hierdoor de output van de sonar op mijn pc kon worden weergegeven met een mooie resolutie! maar omdat ik nog niet bekend was met het verwerken van IDE, wist ik niet hoe ik het moest gebruiken, dus voor de praktijk gebruikte ik de p5-webeditor (alleen om te oefenen) dan dat ik de verwerkings-ID en enkele bibliotheken gebruikte om de uitvoer van sonar te lezen en op de pc weer te geven!

Ik heb een ultrasone sensor op de servomotor bevestigd met behulp van een heet lijmpistool, zodat de ultrasone sensor met servo roteert en een bereik van 180 graden bestrijkt en dan wordt de uitvoer weergegeven of een object wordt gedetecteerd of niet op de verwerkings-IDE en ik schreef wat meer code die geeft nauwkeurig de afstand en hoek weer!

Vrienden, ik heb ook gedeeld hoe de uitvoer bij het verwerken van IDE eruitziet, je kunt de afbeelding als referentie gebruiken voor je project :)

Omdat we weten hoe de montage en uitvoer eruit zien, is het enige dat overblijft de video van de uitvoer, bekijk de video tot het einde om de uitvoer veel beter te begrijpen.

Code

  • Sonarcode voor arduino IDE
  • Sonarcode voor het verwerken van IDE
Sonarcode voor arduino IDEC/C++
#include const int trigPin=12;const int echoPin=11;lange duur;int afstand;Servo s1;void setup() { Serial.begin(9600); pinMode (trigPin, UITGANG); pinMode (echoPin, INPUT); s1.attach(9);}void loop(){ for(int i=0;i<180;i=i+1){ s1.write(i); vertraging (30); afstand =calDist(); Serial.print(i); Serieel.print(","); Serial.print(afstand); Serieel.print("."); } for(int i=180;i>0;i=i-1){ s1.write(i); vertraging (30); afstand =calDist(); Serial.print(i); Serieel.print(","); Serial.print(afstand); Serieel.print("."); }} int calDist(){ digitalWrite(trigPin, LOW); vertragingMicroseconden(2); digitalWrite(trigPin, HOOG); vertraging Microseconden (10); digitalWrite(trigPin, LAAG); duur =pulseIn(echoPin, HOOG); afstand=duur*0.034/2; terugreis;}
Sonarcode voor het verwerken van IDEJava
import processing.serial.*; Seriële myPort; String ang="";String distance="";String data="";int angle, dist;void setup() { size (2000.800); myPort =nieuw serieel (deze, "COM3", 9600); mijnPort.bufferUntil('.'); background(0);}void draw() { fill(0,5); geen slag(); rect(0, 0, breedte, hoogte*0.93); geen slag(); vul (0,255); rect(0,hoogte*0.93,breedte,hoogte); tekenRadar(); teken lijn(); tekenObject(); drawText();}void serialEvent (Serial myPort) { data =myPort.readStringUntil('.'); data =data.substring(0,data.length()-1); int index1 =data.indexOf(","); ang=data.substring(0, index1); afstand=data.substring(index1+1, data.length()); hoek =int(ang); dist =int(afstand); System.out.println(hoek);}void drawRadar(){ pushMatrix(); geen vulling(); slaggewicht (0,5); slag (10,255,10); vertalen(breedte/2,hoogte-hoogte*0.06); lijn(-breedte/2,0,breedte/2,0); arc(0,0,(breedte*0,5),(breedte*0,5),PI,TWO_PI); arc(0,0,(breedte*0,25),(breedte*0,25),PI,TWO_PI); arc(0,0,(breedte*0,75),(breedte*0,75),PI,TWO_PI); arc(0,0,(breedte*0.95),(breedte*0.95),PI,TWO_PI); line(0,0,(-width/2)*cos(radialen(30)),(-width/2)*sin(radialen(30))); line(0,0,(-width/2)*cos(radialen(60)),(-width/2)*sin(radialen(60))); line(0,0,(-width/2)*cos(radialen(90)),(-width/2)*sin(radialen(90))); line(0,0,(-width/2)*cos(radialen(120)),(-width/2)*sin(radialen(120))); line(0,0,(-width/2)*cos(radialen(150)),(-width/2)*sin(radialen(150))); beroerte (175,255,175); line(0,0,(-width/2)*cos(radialen(15)),(-width/2)*sin(radialen(15))); line(0,0,(-width/2)*cos(radialen(45)),(-width/2)*sin(radialen(45))); line(0,0,(-width/2)*cos(radialen(75)),(-width/2)*sin(radialen(75))); line(0,0,(-width/2)*cos(radialen(105)),(-width/2)*sin(radialen(105))); line(0,0,(-width/2)*cos(radialen(135)),(-width/2)*sin(radialen(135))); line(0,0,(-width/2)*cos(radialen(165)),(-width/2)*sin(radialen(165))); popMatrix();}void drawLine() { pushMatrix(); slagGewicht (9); slag (0,255,0); vertalen(breedte/2,hoogte-hoogte*0.06); line(0,0,(breedte/2)*cos(radialen(hoek)),(-breedte/2)*sin(radialen(hoek))); popMatrix();}void drawObject() { pushMatrix(); slagGewicht (9); slag (255,0,0); vertalen(breedte/2,hoogte-hoogte*0.06); float pixleDist =(dist/40.0)*(width/2.0); float pd=(breedte/2)-pixleDist; float x=-pixleDist*cos(radialen(hoek)); float y=-pixleDist*sin(radialen(hoek)); if(dist<=40){ line(-x,y,-x+(pd*cos(radialen(hoek))),y-(pd*sin(radialen(hoek)))); } popMatrix();}void drawText(){ pushMatrix(); vul(100,200,255); tekstgrootte(25); tekst("10cm",(breedte/2)+(breedte*0.115),hoogte*0.93); tekst("20cm",(breedte/2)+(breedte*0,24),hoogte*0,93); tekst("30cm",(breedte/2)+(breedte*0.365), hoogte*0.93); tekst("40cm",(breedte/2)+(breedte*0.45),hoogte*0.93); if(dist<=40) { text("Afstand:"+dist,width*0.7,height*0.99); } vertalen(breedte/2,hoogte-hoogte*0.06); tekstgrootte(25); text(" 30",(width/2)*cos(radialen(30)),(-width/2)*sin(radialen(30))); text(" 60",(width/2)*cos(radialen(60)),(-width/2)*sin(radialen(60))); text("90",(width/2)*cos(radialen(91)),(-width/2)*sin(radialen(90))); text("120",(width/2)*cos(radialen(123)),(-width/2)*sin(radialen(118))); text("150",(breedte/2)*cos(radialen(160)),(-breedte/2)*sin(radialen(150))); popMatrix(); }

Schema's


Productieproces

  1. TinyML-taaldetector-gebaseerd op Edge Impulse &Arduino
  2. Arduino-gyroscoopspel met MPU-6050
  3. Arduino digitale dobbelstenen
  4. ULTRASONE LEVITATION-machine die ARDUINO gebruikt
  5. DIY voltmeter met Arduino en smartphone
  6. Temperatuur- en vochtigheidsdatalogger
  7. IOT - Smart Jar met ESP8266, Arduino en ultrasone sensor
  8. Autoteller met Arduino + Processing + PHP
  9. LED-helderheid regelen met Bolt en Arduino
  10. Volledige controle over uw tv met Alexa en Arduino IoT Cloud
  11. Hoe maak je een kompas met Arduino en Processing IDE?