suitable sensor to read crowd reaction during a debate

Ok so here's the scenario:

Up to 200 people sitting on the ground in a marquee at a festival. A talk from various experts (such as Marcus Du Sautoy) is the main focus, following which we will be having a QnA session between expert and audience. We want to incorporate audience feedback using open technologies into the debate, partly as a way to give a voice to the less gregarious members of the audience. The idea we're currently looking at is to have a 'statement and reponse' section in between the talk and the QnA session.

So, what we need is to be able to take a rough reading of the audience reaction for each 'statement' presented to them. Due to the fact that it is situated in a noisy festival, audio capture clearly isn't appropriate, so we are going to ask the audience to stand up or move around as a positive response to a question then we are going to ask the audience to repeat this for the opposite statement, so as to get a fair comparison. For example, how good do you feel Western Capitalism has been for developing nations since WW2? ...then... How bad do you feel Western Capitalism has been for developing nations since WW2.

Ok sorry for the preamble, I know this is an arduino forum, but I just wanted to set the scene properly...

So we're looking at motion detection sensors to sense the overall movements of between 50 to 200 people. What we are looking for here is to get an aggregate of motion occurring, rather than to know exactly where that motion is occurring. They will be mounted either from the ceiling of the marquee looking down, or on the sides looking inward.

I have used infra-red and ultrasonics before, but feel they are inappropriate due to them being proximity based, rather than general motion detectors, and also FOV is often not that wide.

I initially looked at using an xbox kinect sensor (or a few of them), but I believe the 'x, y, z' sensor only has a range of 3.5m. Please tell me if I've been too hasty in writing it off though!?

I wondered about using the Parallax X-band motion detector (datasheet: http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/32213-X-BandMotionDetector-v1.1.pdf). I have used one of these before to good effect, but I don't know how it would respond to such a large amount of stimulus. Also, 1 detector wouldn't be enough, so I'd looking at using 2 or more... is this even possible? On an old arduino forum posting (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1279812004/all) someone suggests that there would be confusion between the sensors if more than 1 used, but this is merely a supposition, does anyone know this to be the case?

The other technology I wondered about is either security alarm or cctv technology. Would security alarms such as these... http://www.texe.com/ricochet/products.html ...be suitable, or even usable? They operate around the 800MHz range and are modular, but I don't know how easy it'd be to hack the system to be able to read the output of each sensor for my own purposes... And as for cctv cameras, my friend has some with suitable range and FOV, but all they have as an output is a BNC connector so I don't know how I would then go about interpreting the video image to get an approximate aggregate of motion occurring in the image. Does anyone have any idea about software that could do this?

I know I have strayed away from actual arduino related content massively here, but I am certainly looking at the potential of the xband motion detector, which I would be using with an arduino. If anyone has any expertise/knowledge of the other things I have mentioned, please do respond, otherwise, please don't be offended that I have gone so far off arduino topic!

any help very kindly appreciated :slight_smile:
thanks,
MrJack.

Maybe heat sensors to detect flaming torches, and metal detectors to detect pitchforks.

As a non-arduino alternative, have you considered using a video camera and comparing each frame with the previous? At times when there is a lot of motion, the sum of absolute pixel differences between frames will be large. When the crowd is stationary the differences will be low.

You will need a camera that can be plugged into a computer - a high quality USB camera with a wide-angle lens would be a good place to start, and some software to capture images from the camera and give you access to the pixels. If you have any experience with C or C++ then I would suggest OpenCV (http://opencv.willowgarage.com/wiki/ which can be used to interface with USB video devices and has a TON of really cool image analysis options.

Pressure sensors inthe chairs / floor as people start to stand/ move more?

Perhaps hand out sheets of cardboard with one side red and one side green. Then a simple light sensor could check for the amount of reflected red vs reflected green and come up with a rating based on that. Having reflective material and an alternating red/green light source near the sensor would help reduce the effect of background reflections. The cardboard would be relatively cheap and have no moving parts. Having the sensor mounted high would reduce the weighting imbalance between the near rows and far rows. Gradating the light source might also work.

Cardboard has no moving parts?

Hmm, you’re right!

One alternative strategy is to assume (probably rightly) that everyone there has a phone that has some degree of smartness, enough to run a browser. If we discount the possibility that some people are not running smart phones, and of those that are, some are not provisioned with data access that they don’t have to pay extra for, then you could simply go in the direction of a mobile web app. The audience would be given the url as (for example) a projected QRcode, and once there, would be able to press a button on screen to register an active response (whether that’s yes or no) or not respond. It’s a bit exclusive, I know, as some inevitably won’t have a phone, some phones won’t be smartphones, some smartphones would require paying discretely for data, etc.

Thanks people... some good solutions/suggestions here...

heat sensors to detect flaming torches, and metal detectors to detect pitchforks

... some creative thinking there AWOL, but I think perhaps this one's best left for my next BNP/KKK meeting!

Pressure sensors inthe chairs / floor as people start to stand/ move more?

... this is something I already considered, but to be honest I'd like to keep away from being reliant on having the right type of flooring - it could get potentially quite expensive having to construct a pressure sensitive floor for up to 200 people, no?

hand out sheets of cardboard with one side red and one side green. Then a simple light sensor could check for the amount of reflected red vs reflected green and come up with a rating based on that

... I like this solution for its' simplicity, and am going to keep it in mind, but it does seem a bit like the TV programme "ready steady cook" where the audience votes with read or green coloured peppers on cards (perhaps this was your thinking??)

The audience would be given the url as (for example) a projected QRcode, and once there, would be able to press a button on screen to register an active response (whether that’s yes or no) or not respond

... this is a great idea but as you say it's somewhat exclusive, though that I think it could work really well in conjunction with a slightly less exclusive method. Bearing in mind that this will be at a festival with potentially little-to-zero 3g access - how would I go about providing a wireless hub for people to log in to the url? Or could the wireless network simply open up on the voting page automatically? I have little knowledge of wireless/web technology at this level :~

have you considered using a video camera and comparing each frame with the previous

... this I think could be a catch (almost) all way of capturing an aggregate response from the crowd. I was already thinking of using a couple of cctv cameras. Like I said, they have bnc connectors, up to 90degree angle and I think over 10 metres range so could capture the entire tent. I don't have any C or C++ knowledge, but how easy do you think it would be for me to program OpenCV to read the pixel image one frame to the next, as you say? (I have 3 months, working on this very part-time, to get it up and running!)