Programming Sensors for Robots with EV3 Framework

introduction to robots and the mind programming n.w
1 / 14
Embed
Share

Learn about programming sensors for robots using the EV3 Framework, including different sensor types, sensor frameworks, and examples for implementation. Understand the concepts of open vs. closed-loop controllers, active vs. passive sensors, and the sensor programming process to enhance your robotics projects.

  • Sensors
  • Robotics
  • Programming
  • EV3 Framework
  • Sensor Framework

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Introduction to Robots and the Mind - Programming with Sensors - Bert Wachsmuth & Michael Vigorito Seton Hall University

  2. Last Time Open vs Closed Loop controllers Controls a system using only the current state and its model of the system Has a feedback loop that measures differences between actual and desired state and takes corrective action if necessary Active vs passive sensors Modify their environment and measure results Record some parameters of their environment

  3. EV3 Sensors EV3TouchSensor getTouchMode() registers touch EV3ColorSensor getColorIDMode() measures one of 8 colors getRedMode() measure mount of reflected red light getAmbientMode() measures the ambient light intensity setFloodlight(int colorID) turn LED on in given color EV3UltrasonicSensor getDistanceMode() returns distance in meter getListenMode() listens to other active ultrasound sensors EV3GyroSensor getAngleMode() measures orientation in degree getRateMode() measures rotational velocity getAngleAndRateMode() measures both direction and velocity

  4. Sensor Framework For each sensor you want to use: Define field of type EV3 sensor name Define field of type SensorProvider and initialize to the desired sensor mode Define field of type float[] to store the data measured by sensor Define a method to query the sensor and return the sensor data in appropriate type

  5. Example public static EV3UltrasonicSensor distanceSensor = new EV3UltrasonicSensor(SensorPort.S1); public static SampleProvider distanceProvider = distanceSensor.getDistanceMode(); public static float[] distanceSample = new float[distanceProvider.sampleSize()]; public static double getDistance() { distanceProvider.fetchSample(distanceSample, 0); return distanceSample[0]; }

  6. Using the Sensor If you follow the recommended sensor framework, it is easy to use a sensor: public static void main(String[] args) { System.out.println( D = + getDistance()); Button.ENTER.waitForPressAndRelease(); }

  7. Loops Usually we want to query a sensor repeatedly: employ a while loop, which is deceptively simple: while (condition_is_true) { // do this }

  8. Distance Measuring Tool Assuming you created the standard framework for the distance sensor, create the following main method: public static void main(String[] args) { while (Button.ENTER.isUp()) { System.out.println( D= + getDistance()); Delay.msDelay(500); } }

  9. Distance Measuring Tool v2 public static void main(String[] args) { while (Button.ENTER.isUp()) { double dist = getDistance(); Sound.playTone((int)(1000*dist), 100); System.out.println("d = " + dist); } }

  10. A Complete Program Task: Create a robot that drives forward if possible, avoiding any obstacle. Need to clarify: avoiding any obstacle Create a robot that drives forward as long as there is no obstacle ahead. If there is an obstacle, it avoids it by turning 90 degrees clockwise

  11. A Complete Program (2) Robot needs to have: Two motors One distance sensor Robot needs to do: Drive forward Detect obstacle Avoid obstacle

  12. A Complete Program (3) public class Avoider { // fields (not shown) // methods public static void driveForward() {} public static void avoidObstacle() {} public static boolean obstacleDetected() {} public static void main(String[] args) { while (Button.ENTER.isUp()) { driveForward(); if (obstacleDetected()) { avoidObstacle(); } } } }

  13. Making Decisions: if The if statement lets you selectively execute code only if a certain condition is true Syntax: if (condition_is_true) { // execute this code } Or if (condition_is_true) { // execute this code } else { // execute this code }

  14. A WallHugger Robot Create a robot that drives parallel to a wall if possible. If there is an obstacle ahead, it turns 90 degrees away from the wall.

Related


More Related Content