How to add the Ultrasonic Radar robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Ultrasonic Distance category tab.
- Press the Ultrasonic Radar icon to add the robot skill to your project.
Don't have a robot yet?
Follow the Getting Started Guide to build a robot and use the Ultrasonic Radar robot skill.
How to use the Ultrasonic Radar robot skill
This robot skill uses an ultrasonic distance sensor mounted to a servo to sweep up to 180 degrees for objects within proximity. If an object is detected, the robot skill will use the current movement panel to have the robot reverse or turn away toward a clear direction.
Ultrasonic sensors use sonar (sound navigation ranging) to determine the distance to an object or wall, the same way some animals like bats and dolphins do. They offer excellent range and accuracy in an easy-to-use package. Unlike infrared sensors, their operation is not affected by sunlight or black materials. However, they have trouble with soft fabrics; 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. The sensor is then mounted on a servo to 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 the current 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 are only enabled when the robot moves.
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(). You can leave the PAUSED checkbox checked; 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 related to the sensor type, voltage, detected material, and temperature. If a specific distance unit is required, use a tape measure to identify the distance value.
1. Radar Display
This displays red dots representing a detected wall/object in a 180-degree space in front of the Ultrasonic sensor. The distance values are between 0-255, which 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 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.
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 at which the ultrasonic sensor will be sampled. 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.
Ultrasonic Distance Sensors come in 2 versions. A 4-wire type with/without an inline voltage regulator and three 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
- 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
Fix Ultrasonic Resolution
If you use an EZ-Robot ultrasonic distance sensor, there may be false positives from the ping sound echoing within the casing. It is easy to fix with a few cotton balls inserted in the case around the sensors. Watch this video for detailed instructions.
Synthiam has a ultrasonic hardware reference design here.