Check out our Re-Designed Line Follower Sensor!
Dexter Industries has offered a line follower for our robots for a long time. The line follower has done its job, but we decided there was room for improvement. Here is what changed, why and how it will affect you!
At First Glance
The new line follower is now black instead of red. You may notice there’s no included acrylic, which makes it easier to assemble. The blinking LED is also gone on the new line follower, as the blinking wasn’t indicative of anything special. The internal circuit has been redesigned with power consumption in mind, which is a benefit to users and you will notice that the sensor no longer warms up.
Don’t Lose Sight of that Line: Tighter Sensor Pitch
With our first line follower, the sensors were pretty far apart from each other. This had the unfortunate side effect that some lines would fall right in between two sensors and thus fail to be detected. We knew we needed to get those sensors closer together for better resolution. The space between sensors went from being 1.2cm down to 0.7cm. As a result this means it’s much easier to keep track of a line and not lose it. For example, electrical tape that has been on the track for a while and has started curling a little will still be detected! Precision is a good thing!
Smooth Turning: From Five to Six Sensors
Since the sensors are now much closer together, we added an extra one in order to give you more data. More granularity leads to better algorithms. The six ITR-8307/TR8 sensors work in tandem to handle curves in a super smooth way.
Second I2C Port
Some robots like the GoPiGo2 and the BrickPi3 offer just a single I2C port which means you had to choose between the line follower and the distance sensor. And while the GoPiGo3 offers two I2C ports, we’ve had requests from users for more so they could use the temperature/humidity/pressure sensor too! The new line follower now offers the possibility of daisy chaining sensors, which means you can have a line follower and a distance sensor at the same time on all robots, or any other combination!
GoPiGo3: Line Follower Can Be Connected to the AD Ports Too!
On the GoPiGo3, our new line follower isn’t restricted to the I2C ports. It can also go on the AD ports, creating a new I2C bus in the process. That means you could have a line follower in the front of the robot and one in the back too, without needing to worry about I2C address conflicts.
Higher Refresh Rate
The circuit redesign has already been mentioned. Our other goal was to be able to poll this sensor with a higher refresh rate, leading to faster reactions. The new sensor board allows for refresh rates up to 120Hz! This translates in being able to let the GoPiGo run faster. No need to slow it down to a crawl.
No Blinking LED
Having that bright blinking LED on continuously was a tad annoying as it served no purpose other than indicating the sensor was receiving power. We got rid of it and haven’t looked back since.
Since most of our robots run from batteries, we paid close attention to the power consumption of this new sensor. As mentioned already this line follower does not generate heat leading to a major gain in efficiency!
Starting with DexterOS 2.3.0, both line followers are supported equally. The same blocks will work for both line followers. You still need to calibrate it before using it, just like it was before. The black line follower will return 6 data points in the control panel instead of 5 for the red line follower.
We’ve created a brand new library that is able to support both the red and the black sensor. The old library will stay available for users of the red line follower, should they want to keep using it. The new library has a read() method that allows you to get information in various formats or, if you prefer, a few helper functions like position(), position_01() returning a list of 0 and 1, or position_bw() returning a string of ‘b’ and ‘w’. Documentation is on ReadTheDocs.
The new line follower is supported in Scratch for the GoPiGo3 and BrickPi3. It is not currently supported for the GoPiGo2 which still uses the red line follower exclusively (as far as Scratch is concerned). The broadcast command is “LINE”, or “I2C LINE”.
You will get the readings back in a few formats:
- Position: left, right, or center
- BW: a string of ‘b’ and ‘w’
- Each individual sensor reading so you can put them in an array.
To celebrate the launch, we have written a tutorial that uses PID control to follow a line. The tutorial even works if you have the red line follower so you don’t have to wait.