Week 14: project development

I'm making a vehicle of networked sensors and motors, and a GUI to control it with Python. With the GUI, I can program it in Python to respond to inputs.

Who's done what beforehand?: My project is based on a Braitenberg Vehicle, which started off as a thought experiment. Hogg, Martin, and Resnick, from the media lab, made Braitenberg vehicles out of LEGOs, which later became LEGO mindstorms, and others have made physical and simulated instantiations of these vehicles, see here.

I want to try out making such a vehicle, adding tilt sensors so you could potentially program it to balance, as well as following a light. I want the vehicle to be wireless, and programmed from a computer in python (via a GUI), so there's not a big learning curve for using it (if you know python), and you could use arbitrary amounts of computing power.

What materials and components will be required?: Acrylic body; 4+ PCBs to network together; cabels. Most components are in the inventory, with the exception of Xbees for making it wireless, which have already arrived.

Where will they come from?: Most materials will come from the inventory. Xbees and FTDI cable from digikey, Xbee adaptors from Adafruit Industries, batteries from local convenience stores.

How much will it cost? Xbees cost $20 each, Xbee adaptors cost $10 each. The most expensive parts from the inventory are the DC gear motors, which cost $14 each, and the acrylic. The rest of the electronics are estimated to cost a couple dollars per board, and 2 9V batteries also add to the cost.

What parts and systems will be made?: The acrylic body; networked pcbs with sensors, motors and wireless; GUI to control it with Python code

What processes will be used? laser cutter for body, modela for pcbs, xypython for GUI

What tasks need to be completed?: Make it wireless (with Xbees); add more pcbs and/or modify existing pcbs; program motor boards with hardware pwm; make it do a cool example task, e.g. balance and/or interact with light

What questions need to be answered?: What's the best system of sensing to check if it's balancing? What's a good algorithm to use to check if it's balancing?

What is the schedule?: I'll work on things semi-concurrently, generally starting with making/improving pcbs, then improving algorithms to make it do a cool example task, then adding wireless.

How will it be evaluated?: The vehicle will be successful if: it is sturdy enough to move around; the boards successfully network together; communication with the computer is not super slow; the GUI works, and it can be programmed to have a behavior. Ideally, it will also have wireless communication with the computer, and one of the behaviors it can do is balance.