Building something to a budget (and there is always a budget) presents challenges and trade offs. When the budget is very low, as in the $50 Robot project, there is always the risk of cutting one two many corners. I am crossing the line into unacceptable quality a few times during the development process so that the quality is adequate in the final version without asking builders to spend a penny too much.
A good example is with the sensors for obstacle avoidance. For non-contact sensors the choices are basically infrared (IR) or ultrasonic. Both have their advantages and both have good quality, but more expensive products and cheaper, but possibly poorly performing products.
In the past (with a significantly larger budget) I have worked exclusively with the Sharp line of IR range finding sensors. They are very good, given the limits of what you can do with IR. They are very precise, they don’t give spurious readings. They have a narrow beam (which is not really that great for a robot obstacle avoidance sensor). At around $13 each they are really not that expensive. However they would definitely be a budget buster for this project. So I tried to go as cheap as possible. You can find 5v IR sensor modules on ebay for just over $1. I really wanted these to work. Really. But they are just a disaster. They kinda sorta work in a dark room but even then have to be manually calibrated every time they start up. In any sort of real conditions they are just ugly to work with. Don’t buy them. As a middle choice I tried something you can find labeled “KeyesIR” for around $4 each. The module is physically similar to the ugly sensors but it uses more sophisticated components. They are not that bad–they do a good job of rejecting spurious readings (such as from a sunny window). They might be satisfactory for short range stationary applications. But the performance is not quite good enough for obstacle detection on a mobile robot. On to ultrasonics…
The situation is better in the ultrasonic world. As in IR, there is a very high quality choice out there. I have a pile of Maxbotix ultrasonic sensors from previous projects. These things are amazing. They give precise distance measurements in a variety of convenient formats. You supply power and they spit out data. They have an ideal beam width for this project.
The only problem is that they start at $25 each. Not going to work. So for now I am where most cheap robot projects end up, the HC-SR04 ultrasonic sensor. These run $2 or less. They don’t have the sophistication, convenience or wider beam of the Maxbotix but they fit the budget and they have satisfactory performance.
So the initial sensor suite for the robot will probably be a SR04 in the center and a couple of contact switches with whiskers on either side. This has been a little bit of re-inventing the wheel as you see this set up a lot, but it didn’t hurt (or cost much) to see how cheap I could go before committing to something that will get the job done and still stay in budget.