Aegidius
 Plüss   Aplulogo
   
serverstatus
 www.aplu.ch
 www.java-online.eu
     Print Text 
© 2018, V10.0
 
  NxtLib
 
 

 

Ultrasonic Sensor (Simulation Mode)

Purpose: The principle of radar based searching can be demonstrated with an ultrasonic sensor. The robot vehicle has the duty to find the direction to a given sound reflecting target and then approach it.

In simulation mode the targets are constructed by a polygon mesh defined from an array of vertex points. A target image may be shown at a given location, but this image is only used for illustration and is not detected as target.

The LegoSim JavaDoc provides more information, e.g. for useTarget():

ev3simdoc

You may nicely animate the radar-like search by displaying a search cone and a proximity circle to the nearest detected target point.


import ch.aplu.robotsim.*;
import java.awt.*;

public class UltrasonicSensorEx1
{
  private LegoRobot robot;
  private Gear gear;
  private UltrasonicSensor us;

  public UltrasonicSensorEx1()
  {
    robot = new LegoRobot();
    gear = new Gear();
    robot.addPart(gear);
    gear.setSpeed(10);
    us = new UltrasonicSensor(SensorPort.S1);
    robot.addPart(us);
    us.setBeamAreaColor(Color.green);  
    us.setProximityCircleColor(Color.lightGray)
  
    searchTarget();
    while (true)
    {
      if (us.getDistance() < 35)
        gear.stop();
    }
  }

  private void searchTarget()
  {
    while (true)
    {
      gear.right(50);
      int distance = us.getDistance();
      if (distance != -1)
      {
        gear.right(1500);
        gear.forward();
        return;
      }
    }
  }

  public static void main(String[] args)
  {
    new UltrasonicSensorEx1();
  }

  // ------------------ Environment --------------------------
  static
  {
    Point[] mesh =
    {
      new Point(500)new Point(2542)new Point(-2542),
      new Point(-500)new Point(-25-42)new Point(25-42)
    };

    RobotContext.useTarget("sprites/target_red.gif", mesh, 380380);
  }
}


Execute the program locally using WebStart.

ultrasonic_film


Discussion: You can easily port this program to the autonomous or direct mode. The environment then becomes a real sound reflecting target like a hexagonal box standing on the floor.