Project tutorial

Arduino Sonar © MIT

Use HC-SR04 on Arduino with Processing

  • 46,315 views
  • 27 comments
  • 87 respects

Components and supplies

About this project

Radar Screen Visualisation for HC-SR04 

Arduino Code:  

Sends sensor readings for every degree moved by the servo values sent to serial port to be picked up by Processing 

https://github.com/faweiz/My-Arduino/blob/master/arduino_radar/Arduino_radar_HC_SR04/Arduino/Arduino_radar_server_arduino/Arduino_radar_server_arduino.ino

Processing Code: 

Maps out an area of what the HC-SR04 sees from a top down view. Takes and displays 2 readings, one left to right and one right to left. Displays an average of the 2 readings

https://github.com/faweiz/My-Arduino/blob/master/arduino_radar/Arduino_radar_HC_SR04/Processing-code/Arduino_radar_client_processing/Arduino_radar_client_processing.pde

Any questions are welcome!

Github: https://github.com/faweiz

Portfolium: https://portfolium.com/faweiz

Linkedin: https://www.linkedin.com/in/faweiz

Schematics

HC_SR04 with arduino sketch
Hc sr04%20sketch

Code

Untitled fileArduino
/*
https://www.hackster.io/faweiz/arduino-radar
Radar Screen Visualisation for HC-SR04
Sends sensor readings for every degree moved by the servo
values sent to serial port to be picked up by Processing
*/

#include <NewPing.h>
#include <Servo.h> 
 
#define TRIGGER_PIN  2   // Arduino pin 2 tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     3   // Arduino pin 3 tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 150 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
#define SERVO_PWM_PIN 9 //set servo to Arduino's pin 9
 
// means -angle .. angle
#define ANGLE_BOUNDS 80
#define ANGLE_STEP 1
 
int angle = 0;
 
// direction of servo movement 
// -1 = back, 1 = forward 
int dir = 1;
 
Servo myservo;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
 
void setup() {
  Serial.begin(9600); // initialize the serial port:
  myservo.attach(SERVO_PWM_PIN); //set servo to Arduino's pin 9
}
 
void loop() {
 
  delay(50);
  // we must renormalize to positive values, because angle is from -ANGLE_BOUNDS .. ANGLE_BOUNDS
  // and servo value must be positive
  myservo.write(angle + ANGLE_BOUNDS);
  
  // read distance from sensor and send to serial
  getDistanceAndSend2Serial(angle);
  
  // calculate angle 
  if (angle >= ANGLE_BOUNDS || angle <= -ANGLE_BOUNDS) {
    dir = -dir;
  }
  angle += (dir * ANGLE_STEP);  
}
 
int getDistanceAndSend2Serial(int angle) {
  int cm = sonar.ping_cm();
  Serial.print(angle, DEC);
  Serial.print(",");
  Serial.println(cm, DEC);
  
}
Arduino_radar_server_arduino.ino
Arduino_radar_client_processing.pde

Comments

Similar projects you might like

USBcycle: Ride Through Your Virtual World!

Project showcase by Tazling

  • 1,850 views
  • 0 comments
  • 7 respects

DIY Thrust Station

by Vincenzo G.

  • 190 views
  • 0 comments
  • 3 respects

Arduino UNO High Precision Counting Scale

Project showcase by Fedeasche

  • 3,706 views
  • 5 comments
  • 19 respects

Mini CNC a Hand-Made Masterpiece

Project showcase by Mr-M

  • 1,353 views
  • 2 comments
  • 9 respects

Arduino Controlled Piano Robot: PiBot

Project tutorial by Jeremy Yoo

  • 1,848 views
  • 0 comments
  • 7 respects

Automation of Railway Models Part 3 - Bidirectional Line

Project showcase by Steve_Massikker

  • 897 views
  • 2 comments
  • 10 respects
Add projectSign up / Login