Ultrasonic Radar

+ How To Add This Control To Your Project (Click to Expand)
  1. Load the most recent release of ARC.
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Control from the button ribbon bar in ARC.
  4. Choose the Ultrasonic Distance category tab.
  5. Press the Ultrasonic Radar icon to add the control to your project.
Ultrasonic sensors use sonar (sound navigation ranging) to determine the distance to an object or wall, the same way that some animals like bats and dolphins do. They offer excellent range and accuracy in an easy-to-use package. Their operation is not affected by sunlight or black materials, as infrared sensors are. However, they do have trouble with some soft materials, the sonar echo works ideally when bouncing off hard surfaces.

When an HC-SR04 or equivalent Ultrasonic Distance Sensor is connected to an EZB, this skill will display the distance of a detected object/wall in front of the sensor on the radar display. If the sensor is mounted on a servo, this skill will sweep the sensor back and forth in a scanning motion to detect objects in a 180-degree radius.

If an object is detected, it is displayed by a little red dot similar to an army radar scanner. Optionally, you can use the Settings menu to control a Movement Panel Skill. With this option selected, this skill will interact with a movement panel and automatically steer your robot away from obstacles. Another great feature of this skill is the "Scan only when moving forward" option. This ensures the scanner and object collision detection is only enabled when the robot is moving.

*Note: This skill can be used without a servo attached to the distance sensor, just set the Servo port to NA.

This skill is integrated with scripting and will update when GetPing() is called (with matching port configured) and the PAUSE checkbox is checked. That way you can have this skill on your project but it won't use any communication resources unless it's called from a script with GetPing(). What this means is you can leave the PAUSED checkbox checked, and this skill will be updated when GetPing() is called.

It's worth noting that the distance displayed is not a unit of CM or Inches. The distance value is an arbitrary number that is related to the type of sensor, voltage, detected material, and temperature. If a specific distance unit is required, use a tape measure to identify the distance value.

Main Window

1. Radar Display
This displays red dots to represent a detected wall/object in 180-degree space in front of the Ultrasonic sensor. The distance values are between 0-255 that corresponds to the detected distance being sent by the ultrasonic sensor.

2. Sweep line
This line represents the position that the sweeping servo is in.

3. Clear Button
This button clears the red dots from the Radar display.

4. Pause Checkbox
This checkbox pauses the capture of the ultrasonic distance value and the movement of the sweeping servo.

5. Servo and Distance Values
This section displays the values of the Ultrasonic sensor and the servo position signal that is being sent.


1. Title Field
This field contains the title of the skill. You can change it if you'd like. *Note: Changing the title will also change the title in the controlCommand() associated with this skill.

2. Board Index Drop-down
Select the EZB index number that your ultrasonic sensor is connected to.

3. Trigger Port Drop-down
Select the digital port that your ultrasonic trigger wire is connected to.

4. Echo Port Drop-down
Select the digital port that your ultrasonic echo wire is connected to. *Note: This port must be the same as the trigger port when using a 3-wire Ultrasonic sensor.

5. Interval Drop-down
This drop-down selects the interval rate in milliseconds that the ultrasonic sensor will be sampled at. The range is 100-60000 milliseconds. The default setting is 250.

6. Servo Settings
This section sets up the sweeping servo. You can use the drop-downs to select the servo port and the minimum/maximum servo positions. There is also an "invert servo" checkbox which would make the servo sweep the opposite way.

7. Increment Speed Drop-down
This drop-down adjusts the speed of the servo sweep. The range is between 1-36. The default value is 1.

8. Movement Checkboxes
These checkboxes control settings that interact with a movement panel within your ARC project. They enable different features, such as only scanning when the robot is moving forward, controlling the movement panel (automatic obstacle avoidance), and reversing before turning (backup then turn when an object/wall is encountered).

9. Minimum Distance Before Turn Drop-down
This drop-down selects the ultrasonic distance value to set as the minimum limit before the skill instructs the movement panel to turn the robot. The range is between 1-255. The default value is 20. This drop-down only works in tandem with a movement panel skill and the movement checkboxes must be enabled to use it.

10. Movement Delay Drop-downs
These drop-downs adjust the Turn and Reverse delay values (how long they will activate) in milliseconds. The range is 10-5000 milliseconds. The default value is 250 for both. These drop-downs only work in tandem with a movement panel skill and the movement checkboxes must be enabled to use them.

Wiring Diagram

Ultrasonic Distance Sensors come in 2 versions. A 4-wire type with/without an inline voltage regulator and 3 wires with/without a built-in voltage regulator. If an Ultrasonic has a voltage regulator it will need +6V or greater Voltage input, if it doesn't it will need +5V.

3-wire Wiring (with built-in regulator)
  • Ground = Black wire to GND
  • Power = Red wire to Vin
  • Trigger/Echo = white wire to Digital pin
4-wire Wiring (with regulator)
  • Ground = Black wire from regulator to GND
  • Power = Red wire from regulator to Vin
  • Trigger = white wire to Digital pin
  • Echo = green wire to a second Digital pin

How to Use Ultrasonic Radar

1) Connect an Ultrasonic sensor to an EZB. Optionally add a servo to the Ultrasonic as well.

2) Add the Ultrasonic Radar Skill to your ARC project (Project -> Add Skill -> Ultrasonic -> Radar).

3) Setup the ports in the Settings menu.

4) Connect a Robot to EZB + ultrasonic sensor.

5) Add a Movement Panel Skill to your ARC project (Project -> Add Skill -> Movement Panels).

6) Start the Robot on it's movement trajectory and adjust how it will behave with the movement settings inside the Radar Skill.

Fix Resolution

Tech Details


You will need an EZB I/O Controller and a Ultrasonic Sensor to use this skill.


Synthiam has a ultrasonic hardware reference design here.