Arduino+Processing 超声波雷达
pinMode(trigPin, OUTPUT); for(int i=15;i<=165;i++){ distance = calculateDistance(); distance = calculateDistance(); digitalWrite(trigPin, LOW); digitalWrite(trigPin, HIGH); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance= duration*0.034/2;
import processing.serial.*; import java.awt.event.KeyEvent; import java.io.IOException;
font = createFont("宋体.vlw",48); myPort = new Serial(this,"com4", 9600); //设置数据来源串口号 rect(0, 0, width, height-height*0.065); void serialEvent (Serial myPort) { temp = myPort.readString(); String[] data = split(temp, ",");
translate(width/2,height-height*0.074); arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI); arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI); arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI); arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI); line(-width/2,0,width/2,0); line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30))); line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60))); line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90))); line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120))); line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150))); line((-width/2)*cos(radians(30)),0,width/2,0); translate(width/2,height-height*0.074); stroke(255,10,10); // red color //pixsDistance=iDistance*((height-height*0.1666)*0.025); pixsDistance=iDistance*((height-height*0.800)*0.025); line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(width-width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle))); translate(width/2,height-height*0.074); //line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); line(0,0,(height-height*0.18)*cos(radians(iAngle)),-(height-height*0.18)*sin(radians(iAngle))); text("超声波测距雷达显示屏", 430,25); text("[探索软件制 CopyRight@2018]", 650,25);
rect(0, height-height*0.0648, width, height); text("10cm",width-width*0.3854,height-height*0.0833); text("20cm",width-width*0.281,height-height*0.0833); text("30cm",width-width*0.177,height-height*0.0833); text("40cm",width-width*0.0729,height-height*0.0833); text("目标: " + noObject, width-width*0.875, height-height*0.0277); text("角度: " + iAngle +" °", width-width*0.55, height-height*0.0277); text("距离: ", width-width*0.26, height-height*0.0277); text(" 厘米", width-width*0.225, height-height*0.0277); text(" " + iDistance , width-width*0.225, height-height*0.0277); translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-width/2*sin(radians(30))); translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-width/2*sin(radians(60))); translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-width/2*sin(radians(90))); translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-width/2*sin(radians(120))); translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-width/2*sin(radians(150)));
|