Project tutorial

Arduino Sonar © MIT

Use HC-SR04 on Arduino with Processing

  • 51,046 views
  • 28 comments
  • 93 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

Hacking My Toaster

Project tutorial by javier muñoz sáez

  • 673 views
  • 5 comments
  • 10 respects

Rickroll Box

Project showcase by slagestee

  • 1,778 views
  • 0 comments
  • 6 respects

Gyroscope Fun with NeoPixel Ring

Project tutorial by danionescu

  • 3,294 views
  • 0 comments
  • 12 respects

Arduino 4WD RC Car

Project tutorial by Andriy Baranov

  • 60 views
  • 0 comments
  • 5 respects

Arduino Obstacle Avoidance Robot with Ultrasonic HC-SR04

Project tutorial by Jorge Rancé

  • 1,232 views
  • 3 comments
  • 12 respects

START: A STandalone ARduino Terminal

Project tutorial by Alessio Villa

  • 2,229 views
  • 0 comments
  • 7 respects
Add projectSign up / Login