My original idea for Sbot's processing was one of the linux boxes upstairs in my office. I have a lot of bright ideas for Sbot's purpose. Originally, I wanted to put up a few security cameras in the common living areas of my house, but the other people that live with me did not agree. I hooked up one camera in the kitchen, only to find it later that day uplugged. So, I had to find a compromise to appease others that I live with. So, I thought I could build a robot and put the camera on the robot. Then the robot could be a security sentry that can move from room to room. Then it can use infrared to see without any lights!! Then I can have it do background subtraction to detect movement!! Ohh! I can also use openCV to use facial detection to see if there's actually people around - maybe talk to them. Wait!! Why not use facial recognition to familiarize itself with people who live and visit my house frequently and maybe toss them a "hello" or "Konnichiwa" (Domo Arigato!) using the person's name!
As you can see, the processing power of a small controller board can be used up with just thinking of ideas from one small piece of the robot's potential capabilities. I hadn't even thought of the math and processing involved to actually move the robot around. Since I went from zero to 100 with my ideas in one sitting, I realized I'd need a brain with some power.
I had already decided that whatever the robot runs off of, I would want it to be linux. Remember, I'm on a shoestring of a budget. I have a few old desktop computers of various OS's, but then I figured weight would be a factor that would hurt battery power. Not to mention, desktop power supplies are made to run off of the wall power. I didn't want to run an extension cord throughout the house, and I don't know the difficulty level of building a power supply that would be adequate. I started looking into smaller microprocessor boards as the brain.
I already owned a Arduino that a friend gave to me a while back. I started doing some experimentation with it even though it wasn't linux. I found it was useful, but a little too simple for all the things I had planned. I wound up using that as a platform to learn PWM motor control. Pulse Width Modulation is basically where the motor is programmatically turned on and off rapidly so you can slow down the motors from their full speed. I wound up using the Arduino to build a turning platform that I can use for my camera and time lapse photography. I wonder if I'll remember to update this post to the proper post once I put that tutorial together? Probably not.
After experimenting a while making Sketches in Arduino, I went to find something like the Arduino that came with linux already. I found the Raspberry Pi. I found there were a lot of great experiments with these little computers all the way from building a solar powered fileserver to a motorized voice controlled wheelchair. I figured that this was the board I was going to use. I did find a couple other boards that were just a little more expensive that offered the choice of linux or Windows, but with so much support for Raspberry Pi and not much at all for the others, I figured I'd start with the PI.