The OSEPP Robot
Among the rites of passage in microcontroller programming is building a robot. If your interest runs more toward coding in general than robotics, you might be best off building one from a kit.
There are several entry-level Arduino-based wheeled robot kits in the $90-$180 price range. I chose the OSEPP "101 Robotics Kit" mainly because it's available over the counter in the market area where I live. Not a bad choice, as it turned out.
I was mainly interested in knowing if devices of this type are a more effective teaching tool for coding and basic electronics than the usual flashing lights on a breadboard approach. When my own kids were in school, I recall a great deal of interest in robotics and almost none in electronics and coding, so this seemed like a reasonable bet. It's available for around CDN $160. About the price of a TI graphing calculator, if you want to look at it that way.
The OSEPP robot is advertised as "one of the 'coolest' looking kits in the Arduino market" and I would have to say it certainly is that. It's built for the most part with generic PC hardware: M4 screws and brass standoffs. The chassis is a CNC fabrication of black anodised aluminum well provided with an assortment of mounting holes. It's a tricycle configuration with the driving wheels in back and a single ball caster in front. Included are a couple of 6V geared motors, an OSEPP Arduino UNO-compatible board, an infrared remote control and sensor, a couple of infrared collision sensors and a 180 degree IR follower.
If you want more than that, the chassis is drilled and punched for an Arduino Mega board as well as a standard radio control model servo. The overall impression is more of a piece of educational lab gear rather than an electronic toy. This is not the least expensive Arduino robot on the market, but you are certainly getting something for your money.
The packaging of the kit, for a product from a relatively small company, is impressive: very well organised with all small parts individually packaged and clearly labeled. Anything that requires soldering comes pre-assembled.
The skill level required to assemble this would be about on the level of building a model from a Meccano set: basic hand tools, nuts and bolts. It should take an hour or so to put together after careful perusal of the instructions.
And speaking of instructions, gods of all saints, the thing actually comes with 100+ page bound manual! The software has to be downloaded from the OSEPP web site; no CD is provided, but the provision of an actual paper book to work from shows somebody's heart was in the right place.
Batteries not included...
You should know that the robot requires two type 18650 rechargeable lithium batteries, which are not included with the unit. You will also need a charger specifically for them. These are, unfortunately, not usually commmon hardware store items.
I got mine, and a suitable charger for them, from a vaping shop: 18650s are commmonly used in high-end electronic cigarettes. You need the type that are NOT "flat-topped", or else they won't make contact with the terminals in the battery holder.
If you can only get the flat-topped ones, see if your local hardware store has any 5/16" disk magnets. Stick one of these to the positive terminal of each battery and you should be good. You can also melt a little blob of solder onto the positive terminal if you're comfortable doing such things.
If you're a teacher, I recommend you check if your school has a policy about allowing high-capacity lithium ion batteries in shop classes. These are not your dad's carbon-zinc penlights and must be handled with care and respect.
Further on the subject of batteries, the only way to get them out of the battery holder for charging is to separate the top and bottom chassis plates by removing eight screws.
I understand some folks have replaced the two 18650s with four alkaline AA batteries but I have no idea how well this works. Four rechargeable AA batteries won't work for this, by the way; they don't provide enough voltage to run the voltage regulators in the unit.
The manual is divided into mechanical assembly, electrical wiring, and theory of operation. No prior experience on the user's part is assumed. The wiring diagrams are accurate but not always crystal-clear, so it's important they be studied well. After the thing is built, the user is guided through a series of tutorials that explain each of the robot's subsystems in some detail. A small program is provided at each step. These are presented individually at first, then are gradually combined into a complete robot program. The material may not be of textbook standard but it is definitely worthwhile and provides a meaningful learning experience. The sections on infrared signaling and H-bridge motor controls are particularly informative.
As assembled, the robot will run autonomously in an enclosed space using infrared sensors for object avoidance. The IR follower enables it to follow an infrared light source - an incandescent flashlight works best - so you can "lead" it around. The software provides several modes of operation. You can control it manually with the remote control, control it with the IR follower, or have it operate autonomously with or without the IR follower as an additional input.
In addition to collision avoidance, the complete robot program has an algorithm for getting the machine out of trouble should it become stuck in a corner, which is rather amusing to watch.
Don't expect it to be all-powerful, though. It's not. The software provided illustrates the basics and provides a couple of rather neat examples of complete robot programs, but really only scratches the surface of what is needed to control a fully autonomous device.
One thing you'll learn from a project of this sort is that the technical challenges presented by a self-guiding autonomous system are unique and significant. Something to keep in mind when self-driving semi-trailer trucks start appearing on the roads where you live.
I have a few issues with the design of this device.
It has no wheel encoders, and therefore no means of measuring wheel speed. You can control the power delivered to each motor, but you have no way of knowing whether both wheels are turning at the same speed or not. Since steering is accomplished by differentially varying the power to the motors, this makes directional control a bit of a hit or miss proposition. It really needs wheel encoders.
It should be front-wheel drive. Having the driving wheels of a tricycle vehicle in front provides more inherent directional stability, particularly if the third wheel is essentially a large ball bearing.
I found the directional stability of the robot was greater when it was operating in reverse. Getting it to operate in a straight line presented a problem I haven't solved yet.
There is relatively little software documentation, and what there is is limited to comments in the code which in turn are pretty well limited to identifying what the variables and constants in the code are for. There is no explanation of how stuff actually works.
This is the only robot kit I've worked with, so I'm not exactly an authoritative source, but I think it's a nicely designed, fairly robust device with a good bit of development potential and some worthwhile educational outcomes, as long as the battery issue isn't a deal-breaker for you.
Mine presently doesn't bear much resemblance to the original: I've modified it to use servo-driven scanning sonar for navigation.
More on that later.
Bruce Grant's Web Page is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at http://www.wbga.ca..