I am making and obstacle avoiding robot using the sharp IR rangefinder and would like to know how to make the robot stop in one place
and how to make it go in reverse.
Basically if the robot comes up to an object,the rangefinder will scan on both sides and take reading and compare them and decide which way to go.But if it detects objects on all three sides,it should do a 180 and then go straight.
are these right? using the functions in sor_utils.h,
to stop-----> servo_left(35);
to turn in reverse direction-----------> servo_left(44);
also a much simpler option would be to ask the robot to spin around if it detects an object on both sides and take readings like in
edge detecting code and when it does fnd an opening,it should go straight through,how do i do this??
if i am wrong please tell me the correct values.
here is a copy of the incomplete code
#include "SoR_Utils.h" //includes all the technical stuff
int scan_thresh=60;//threshold value of scanning sensor
//position of scanner, in units of servo command
int max_scan_angle=56;//maximum position scanner can rotate to (57)
//this function decides the direction in which it should turn
//lower (-) goes right
//higher (+) goes left
//30 far right, 50 straight, 56 far left (until it jams)
servo_scan(56) //look to far left
int reading1=a2dConvert8bit; //get reading from far left
servo_scan(30); //look to far right
int reading2=a2dConvert8bit; //get reading from far right
if(reading1<reading2) //object is closer on the right
robot_turn_left(); //turn away from object
else if(reading2>reading1) //object is closer on the left
robot_turn_right(); //turn away from object
delay_cycles(42000);//two second wait delay
/*********ADD YOUR CODE BELOW THIS LINE **********/
if (sharp_IR_reading<scan_thresh)//object is in danger zone;
whichway();//decide which way to go
delay_cycles(400);//a small delay to prevent crazy oscillations
/*********ADD YOUR CODE ABOVE THIS LINE **********/
and yes the code is based on the code on LMR.
How to fill up the //reverse and the //stop ?