kinect arduino controling motor speed depending on how many people in area

Hello,

I'm a vienna based artist and not a programmer =(

Thats probably the reason why I hassle arround with those kinect in front of me having installed processing, OpenNI/NITE, Visual Studio Express, Drivers and all what I get are lousy error messages :wink:

So I give it a try, to ask here for help for my project, which hopefully sounds so simple to you:

The must have:
I want to have the kinect telling the arduino board duemilanove how many people are in the area in front of it. with this information, the arduino must control the speed of an motor: count people = 0 > no movement / count people > 0 increase the speed / depending on the numbers of people the kinect can register, max people = max speed and all in between 0 to max is the percentage of the motor speed. So I think something like the kinect send some signal to the serial port the arduino is connected to and the arduino does give an output somehow to control the speeed of an motor.

The nice to have:
If it is possible and not millions of code lines, not only the numer of people but also the intensity of their movement should in/decrease the motor speed.

The Setup would be:
Some Win7 PC 32bit OS, a xbox 360 kinect device connected with usb, the arduino connected with usb, some strong motor (not available yet, recommendations are welcome).

does this sound like "hey, here you have a link to some readymade code examples which are readymade exactly to solve your problem" to you? :smiley:

I appreciate any suggestions how to setup, which software to use, what type of motor to get.
I also think about to pay someone somehow to solve this for me (no idea about the budget yet)...

Thanks a lot and greets from vienna
Tom

Tom
Sound like a nice project.
I would do it as follows: Connect the kinect to your pc (Microsoft has the kinect API) make the pc do all the thinking and calculation. The PC sends messages to the arduino over the serial connection on how hard the motor needs to run (that is change the speed of the motor)

On how to read the kinect you will have to go to the kinect forums. There is probably more help there for that part.

On the motor: You will have to decide on what you want the motor to do. On average a "standard" motorshield will drive up to 2 Amps DC on 24 volt DC but there are shields which can handle more than 30 Amps DC. An external dedicated driver can handle much more. So it is more a matter of how much money you have and how big the engine needs to be.What does the engine need to do?
If you want to go for AC there are other considerations.
From a code point of view: On driving the engine see the motorparty example.

I hope this helps you out a bit.
Best regards
Jantje

Hi Tom
I'm just getting into the Kinect sensor but I've already learned some pretty important things.

Firstly, you have to pick the programs you want to code from. If you're into game development, you could use Unity 3D with ZigFu -- www.unity3d.com.
If you already know some basic Arduino, you can use Processing (Arduino's mother language) If so, check this out: http://itp.nyu.edu/~mdm532/blog/ and search the blog for kinect. I've used some of her code to get jumpstarted into it.
Your last option is to use the Kinect for Windows SDK -- www.kinectforwindows.org. It supports audio (voice recognition). Note: you cannot use the Kinect SDK and Unity on the same computer as the drivers mess each other up.

I strongly recommend Processing, as it works directly with Arduino. Kinect SDK requires some C#/C++ knowledge. Unity is my least favorite, partly because it's extremely graphical, and not as much coding.
Motors: I would look for an old drill or a cheap one and use the motor out of that. My 18V drill motor (1.5 amps) works with the motor shield from RadioShack.

I hope I've answered some of your questions. Also, you can Google 'kinect and arduino' to find some cool projects that can (hopefully) kickstart your project. I'll see if I can round up some of my code for you soon.

Thanks,
Joseph :grin: