simplest short-range radar+status lights!
I've added status lights to @maker_robotics radar version 2.
Components and supplies
1
Ultrasonic Sensor - HC-SR04 (Generic)
1
5 mm LED: Red
1
Breadboard (generic)
1
Arduino UNO
1
Male/Male Jumper Wires
1
5 mm LED: Green
1
Female/Female Jumper Wires
Apps and platforms
1
Processing
1
Arduino IDE
Project description
Code
processing codes
java
change port at line 18 to the port you're using.
1import processing.serial.*; 2import java.awt.event.KeyEvent; 3import java.io.IOException; 4Serial myPort; 5String angle=""; 6String distance=""; 7String data=""; 8String noObject; 9float pixsDistance; 10int iAngle, iDistance; 11int index1=0; 12int index2=0; 13PFont orcFont; 14 15void setup() { 16 size (1900,1200); 17 smooth(); 18 myPort = new Serial(this,"COM6", 9600); 19 myPort.bufferUntil('.'); 20} 21 22void draw() { 23 24 fill(98,245,31); 25 noStroke(); 26 fill(0,4); 27 rect(0, 0, width, 1010); 28 29 drawRadar(); 30 drawLine(); 31 drawObject(); 32 drawText(); 33} 34 35void serialEvent (Serial myPort) { 36 data = myPort.readStringUntil('.'); 37 data = data.substring(0,data.length()-1); 38 39 index1 = data.indexOf(","); 40 angle= data.substring(0, index1); 41 distance= data.substring(index1+1, data.length()); 42 43 iAngle = int(angle); 44 iDistance = int(distance); 45} 46 47void drawRadar() { 48 pushMatrix(); 49 translate(700,700); 50 noFill(); 51 strokeWeight(2); 52 stroke(255,245,255); 53 // draws the arc lines 54 arc(0,0,1800,1800,PI,TWO_PI); 55 arc(0,0,1400,1400,PI,TWO_PI); 56 arc(0,0,1000,1000,PI,TWO_PI); 57 arc(0,0,600,600,PI,TWO_PI); 58 59 line(-960,0,960,0); 60 line(0,0,-960*cos(radians(30)),-960*sin(radians(30))); 61 line(0,0,-960*cos(radians(60)),-960*sin(radians(60))); 62 line(0,0,-960*cos(radians(90)),-960*sin(radians(90))); 63 line(0,0,-960*cos(radians(120)),-960*sin(radians(120))); 64 line(0,0,-960*cos(radians(150)),-960*sin(radians(150))); 65 line(-960*cos(radians(30)),0,960,0); 66 popMatrix(); 67} 68void drawObject() { 69 pushMatrix(); 70 translate(700,700); 71 strokeWeight(9); 72 stroke(255,0,0); 73 pixsDistance = iDistance*22.5; 74 if(iDistance<40) 75 line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),950*cos(radians(iAngle)),-950*sin(radians(iAngle))); 76 popMatrix(); 77} 78void drawLine() { 79 pushMatrix(); 80 strokeWeight(9); 81 stroke(30,10,250); 82 translate(700,700); 83 line(0,0,950*cos(radians(iAngle)),-950*sin(radians(iAngle))); 84 popMatrix(); 85} 86 87void drawText() { 88 89 pushMatrix(); 90 fill(0,0,0); 91 noStroke(); 92 rect(0, 1010, width, 600); 93 textSize(25); 94 fill(255,255,255); 95 translate(800,650); 96 rotate(-radians(-60)); 97 text("30°",0,0); 98 resetMatrix(); 99 translate(740,600); 100 rotate(-radians(-30)); 101 text("60°",0,0); 102 resetMatrix(); 103 translate(680,590); 104 rotate(radians(0)); 105 text("90°",0,0); 106 resetMatrix(); 107 translate(620,620); 108 rotate(radians(-30)); 109 text("120°",0,0); 110 resetMatrix(); 111 translate(590,680); 112 rotate(radians(-60)); 113 text("150°",0,0); 114resetMatrix(); 115 translate(50,650); 116 rotate(radians(0)); 117 fill(5,0,0); 118 text("PoliArdo team Serbia",2,5); 119 fill(255,255,255); 120 text("PoliArdo team Serbia",0,0); 121 popMatrix(); 122}
Arduino codes
c_cpp
paste this in ide
1int trigPin = 10; 2int echoPin = 11; 3int green_led = 8; 4int red_led = 9; 5int led_turnon_dist=101; 6long duration; 7int distance; 8 9void setup() { 10 Serial.begin(9600); 11 pinMode(trigPin, OUTPUT); 12 pinMode(echoPin, INPUT); 13 pinMode(green_pin, OUTPUT); 14 pinMode(red_pin, OUTPUT); 15} 16 17void loop() { 18 print_serial(); 19} 20void print_serial(){ 21 delay(30); 22 distance = measures_the_distance(); 23 if(distance<led_turnon_dist) 24 { 25 digitalWrite(green_pin, HIGH); 26 digitalWrite(red_pin, LOW); 27 Serial.println(distance); 28 } 29 else 30 { 31 digitalWrite(green_pin, LOW); 32 digitalWrite(red_pin, HIGH); 33 Serial.println(distance); 34 } 35} 36int measures_the_distance(){ 37 digitalWrite(trigPin, LOW); 38 delayMicroseconds(2); 39 digitalWrite(trigPin, HIGH); 40 delayMicroseconds(10); 41 digitalWrite(trigPin, LOW); 42 duration = pulseIn(echoPin, HIGH); 43 distance= duration*0.034/2; 44 return distance; 45}
Arduino codes
c_cpp
paste this in ide
1int trigPin = 10; 2int echoPin = 11; 3int green_led = 8; 4int red_led = 9; 5int led_turnon_dist=101; 6long duration; 7int distance; 8 9void setup() { 10 Serial.begin(9600); 11 pinMode(trigPin, OUTPUT); 12 pinMode(echoPin, INPUT); 13 pinMode(green_pin, OUTPUT); 14 pinMode(red_pin, OUTPUT); 15} 16 17void loop() { 18 print_serial(); 19} 20void print_serial(){ 21 delay(30); 22 distance = measures_the_distance(); 23 if(distance<led_turnon_dist) 24 { 25 digitalWrite(green_pin, HIGH); 26 digitalWrite(red_pin, LOW); 27 Serial.println(distance); 28 } 29 else 30 { 31 digitalWrite(green_pin, LOW); 32 digitalWrite(red_pin, HIGH); 33 Serial.println(distance); 34 } 35} 36int measures_the_distance(){ 37 digitalWrite(trigPin, LOW); 38 delayMicroseconds(2); 39 digitalWrite(trigPin, HIGH); 40 delayMicroseconds(10); 41 digitalWrite(trigPin, LOW); 42 duration = pulseIn(echoPin, HIGH); 43 distance= duration*0.034/2; 44 return distance; 45}
Comments
Only logged in users can leave comments