Line Following Robot... Plan B
Being interested in the Line Following Contest during UPEW this year, I decided to build a new Robot.
So I started sizing up materials for the task...

As I was working some of the details of attaching the more necessary accessories to my new Robot,
Plan A is fairly obvious from the construction, But, no plan is perfect, and so, It came to me,
That I might need a Plan B... Plan B is where the robot actually follows a line...
So, My question to you all, is how do you do it? what are you using to follow a shiny line on black "smooth" pavement?
The IR line follower from Parallax is sold out, and that seemed like the best way, but I could not find a schematic..
Is there a schematic for the 28034? or is it top secret until the contest is over?cough(MattG)cough...
Anyways, what do you fine folk do for hardware and such to make your robot follow a line?
-Tommy
So I started sizing up materials for the task...

As I was working some of the details of attaching the more necessary accessories to my new Robot,
Plan A is fairly obvious from the construction, But, no plan is perfect, and so, It came to me,
That I might need a Plan B... Plan B is where the robot actually follows a line...
So, My question to you all, is how do you do it? what are you using to follow a shiny line on black "smooth" pavement?
The IR line follower from Parallax is sold out, and that seemed like the best way, but I could not find a schematic..
Is there a schematic for the 28034? or is it top secret until the contest is over?cough(MattG)cough...
Anyways, what do you fine folk do for hardware and such to make your robot follow a line?
-Tommy


Comments
I think Phil's linescan sensor should work well.
I've used these sensor for wheel encoders but not for line following.
I believe Bill Henning makes a little line following sensor board.
I just built my first outside robot, while it is small (only 8" long) it should be good enough for use outside compared with the other robots I own. I plan to buy a GPS and try a robo-Magellan challenge, but line following on pavement sounds interesting too.
Martin,
Check out the video in Kye's Stingray run. Looks like they just spray painted the lines, and there is less contrast than black pavement. He used the QTI sensors.
Jim
The initial blast should serve to neutralize within a 5' to 6' radius, And the spike head trip hammer, will help to pick off any remaining stragglers...
I figure I got Plan A all worked out, it's just that I would not want to be thought of as "unsporting" because my robot could not follow a line...
I believe that the Line to follow will be 1" HVAC tape, it's a shiny silver color, I wonder if the ColorPal could see this?
-Tommy
http://www.retrojunk.com/details_commercial/11364/
So is the stuff conductive? Maybe you could use a bunch of metal whisker wires to sense the tape.
@Duane, yes, the tape is conductive, I could only guess that 1" wide might equal #12AWG.
and it is very shiny...
Maybe you could help me.
I want to put four true/false variables into one easy to manage binary byte...
value0 :=(QTI.readSensorDigital(0,225)) value1 :=(QTI.readSensorDigital(1,225)) value2 :=(QTI.readSensorDigital(2,225)) value3 :=(QTI.readSensorDigital(3,225))It would help me to make the four value's into one binary something like this...case state %0011, %0001, %0010: ' Pivot left DutyCycleA := 65 DutyCycleB := 0 %0111, %0110, %0100: ' Slight left DutyCycleA := 60 ect,ect...Just like Kye did, except I am only using four QTI's, and Servo's instead of those sweet Stingray motors.-Tommy
VAR long value0,value1,value2,value3 OBJ QTI : "QTIEngine" pst : "Parallax Serial Terminal" PUB start pst.Start(115_200) QTI.QTIEngine repeat value0 :=(QTI.readSensorDigital(0,225)) value1 :=(QTI.readSensorDigital(1,225)) value2 :=(QTI.readSensorDigital(2,225)) value3 :=(QTI.readSensorDigital(3,225)) pst.Str(String(pst#CE, pst#HM, "QTI Sensors 0,1,2,3 = ")) pst.bin(value0,1) pst.bin(value1,1) pst.bin(value2,1) pst.bin(value3,1) waitcnt(clkfreq / 6 + cnt)The values line up magically on the TV screen. But that doesn't help to move my Robot.VAR long value ' just because I don't like to use shift operations on anything but a long ' it should work with a byte also. I haven't tested either. OBJ QTI : "QTIEngine" pst : "Parallax Serial Terminal" PUB start | index pst.Start(115_200) QTI.QTIEngine repeat value := 0 ' clear away old bits to start fresh repeat index from 0 to 3 ' we want to loop to repeat four times but we also want to increment "index" to send to the QTI object value <<= 1 ' shift all the bits in "value" one bit to the left, the last bit will be filled with a zero value += QTI.readSensorDigital(index,225) & %1 ' "by "anding" the return value with one, we can be sure only one bit is added to "value" pst.Str(String(pst#CE, pst#HM, "QTI Sensors 0,1,2,3 = %")) pst.bin(value, 4) ' display the four least significant bits of "value" Edit: you already know this. waitcnt(clkfreq / 6 + cnt)I haven't tested the above code. Let me know if there's a problem.
I was determined to "AND" anything and everything...
state :=(value0, and value1, and value2, and value3) state := temp[0] + temp[1] + temp[2] + temp[3]Good thing I stopped and asked when I did, cuz it was about to get ugly-er.LOL, I am never in doubt,.. Often mistaken,.. But never in doubt... sigh...
Thanks again Duane, Now I can move foward with the Blast testing and Fire proofing...
-Tommy