This week I decided it was time to do a project with the Parallax Propeller chip. I’d heard all kinds of good things about this MCU and since I have all these Roomba parts laying around my shop I figured it was time to build another robot. I wanted a robot platform that I could experiment with. One that could easily have other sensors added in the future. I had a Propeller MSR1 control board on hand which is perfectly suited to this purpose with it’s 24 IO pins and on board h-bridge. I also had an extra Parallax PING sensor to mount on my robot and a couple of those wonderful Roomba drive motors to move the thing. Next I needed a chassis to mount everything to. I had a plastic enclosure leftover from the Laser Ranger Finder project that was perfect. Now that all my parts were gathered together, it was time to get building.
When I build a thing I usually just sit down with my parts and brainstorm for a while. I come up with ideas, think them through and change them as the design comes forth. Being willing to change the path you’re on with design is important. I try to let the function dictate the form. So, after some time I came up with a way to mount the motors to the enclosure and use the enclosure’s top to mount the control board and sensors to. This would allow easy access for future mods to be added. My choice for batteries was eight AA rechargeables simply because I had them on hand. They would go inside the enclosure and help keep the center of gravity down low which would add stability. At the rear I installed a tail wheel from a Roomba which is designed with two wheel tank steering in mind.
Once everything was together it was time to get some code and upload it. After a crash course in SPIN from my friend Roy Eltham, I had some standard motor drive and sensor code going. It was time to test. There was, of course, a bug. There’s always something to troubleshoot… that’s hackin! The problem was in the sensor part of the robot. It would seem to trigger a turn in direction even though there wasn’t an object in the way. Strange. I checked code, wiring, connectors, I even raised the PING sensor up on the bolt that you see in the final design, but none of this worked. I decided to look at the specs for the PING and noticed that an example schematic had a 1K resistor in series on the signal wire! Aha! I installed this resistor and suddenly, the robot was working perfectly. It was an impedance matching issue.
This was my first time using the Propeller chip and I have to say that I love it! It’s a very powerful MCU. I’m very pleased with the ease of use of the programming language to alter the robot’s behavior. I’m sure you’ll be seeing more projects from me that put it to use.
Until then… keep on hackin!
Awesome work there Dino! Great writeup too!
Great robot. Glad you are giving the Propeller a try. I think you will be more and more impressed the longer you use it.
Great re-purposing of roomba parts; my roomba still works, but my brother in law has one which is mis-behaving… hmmm…
I like the MSR1, but I prefer RoboProp as it has quite a few more features … however I may be biased, as I designed RoboProp 🙂
Great work on the robot. I am working on a design for a pipe and culvert inspection robot that will use several Ping sensors with a Propeller MCU. I may use Spin or C, not sure at this point, and I will have to learn either language regardless. Your project has provided me with a few ideas for me to try to use. Thank you. George Sutton firstname.lastname@example.org