Building an Open Source "Clicker"?
fieldtest asks: "Most Slashdot readers have read about "clickers", remote control style devices that students use to wirelessly answer a teacher's questions. Unfortunately, as a college student, I have had less than stellar experiences with these clickers. I hear complaints from my professors and fellow students often as well. So, I want to build an open source clicker system for all universities to use. I believe that this is a prime opportunity to show how powerful free software can be.
So, what do the talented people of Slashdot recommend?"
"The problem is this: a clicker system requires...clickers. What I need are remote controls that have a minimum of 6 buttons (for users to select options with). The sticking point comes when a button is pressed -- the remote must send the option choice, as well as a unique ID specific to the remote, so the clicker software can distinguish between different students.
I've experimented and Googled around. I've tried standard TV remote controls combined with an USB-UIRT receiver, but the range was too low. Googling shows some interesting programmable remotes, but they're far too expensive ($100+) to have each user purchase one.
How should I go about building the perfect clicker and receiver system? Any suggestion is welcome, from IR to radio, from Bluetooth to ZigBee based communications. Recommend a commercial product, or a do it yourself solution. Please also recommend a receiver device, and a way to connect it to a computer. Also, if you recommend that I just build a custom circuit board for the remote control, please give some references and examples of how it should be implemented."
I've experimented and Googled around. I've tried standard TV remote controls combined with an USB-UIRT receiver, but the range was too low. Googling shows some interesting programmable remotes, but they're far too expensive ($100+) to have each user purchase one.
How should I go about building the perfect clicker and receiver system? Any suggestion is welcome, from IR to radio, from Bluetooth to ZigBee based communications. Recommend a commercial product, or a do it yourself solution. Please also recommend a receiver device, and a way to connect it to a computer. Also, if you recommend that I just build a custom circuit board for the remote control, please give some references and examples of how it should be implemented."
How much do you know about hardware and software? If you're good with one, get somebody who's good with the other to help you out. And make it run on ANY system (windows, linux, mac)
Show this to your friends and family that don't know what a real hacker is
There is a project currently in progress to write a program using mobile phones as clickers via bluetooth.
They're full featured, do everything necessary, and in the vast majority of cases STUDENTS ALREADY HAVE THEM.
Unfortunately I'm not aware of it being open source - it was distributed at a conference at the start of September..
It occurs to me you might be able to do something with cheap X10 remotes- but you'd be limited to 16 students per class, or alternatively, using the 8 button keychain remotes programed to split each housecode into 4 students for a total of 64 addresses (4 on, 4 off per student). That's still pretty small for some college classes- but at least it's reasonable on price. There are now whole-housecode recievers and the software is just interpreting a serial stream.
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
My friend has a class that uses these for exams. I don't see how this can possibly be a good idea, especially if the means to modify them is trivial at best.
I think you're missing the point here. Most people who have problems with clickers won't find those problems disappearing with an "open-source" clicker. Their problems are either with the hardware (which it seems you are not trying to improve), or with the whole concept of using clickers.
Personally, as an educator, I would find clickers to be a nuisance, and wouldn't find them useful anyway. It is far more effective to try to interact with the students and understand where their learning is at, individually, then tailor my teaching to whatever common problems or such need the most attention.
Put the room on springs.
Put a giant bar magnet with the north pole facing down in the ceiling.
Give each student a bar magnet. Mark the south pole "yes" and the north pole "no".
Students hold their magnets in the air to indicate the answer.
If the room moves up, the majority of the students chose "yes". If it moves down, the majority of the students chose "no". The more it moves, the more the students are in agreement.
Best of all, the batteries will never die.
Unless you drop the answer sticks.
Do daemons dream of electric sleep()?
Q: "How do I get the smart slashdot folks to help me with my class project?"
A: "Tell them that I'm gonna make it Open Source!"
www.cypress.com
CY7C601xx
CY7C602xx
About $3-$5 in quantity
Development kit: CY3655 $350
(also check out their wireless USB products)
* Wireless enCoRe(TM) II -"enhanced Component
Reduction"
o Crystalless oscillator with support for an external crystal or resonator. The internal oscillator eliminates the need for an external crystal or resonator
o Configurable IO for real-world interface without external components
* Enhanced 8-bit microcontroller
o Harvard architecture
o M8C CPU speed can be up to 24 MHz or sourced by
an external crystal, resonator, or signal
* Internal memory
o 256 bytes of RAM
o Eight Kbytes of Flash including EEROM emulation
* Low power consumption
o Typically 10 mA at 6 MHz
o 10-A sleep
* In-system reprogrammability
o Allows easy firmware update
* General-purpose I/O ports
o Up to 36 General Purpose I/O (GPIO) pins
o High current drive on GPIO pins. Configurable 8- or 50-mA/pin current sink on designated pins
o Each GPIO port supports high-impedance inputs,
configurable pull-up, open drain output, CMOS/TTL
inputs, and CMOS output
o Maskable interrupts on all I/O pins
* SPI serial communication
o Master or slave operation
o Configurable up to 2-Mbit/second transfers
o Supports half duplex single data line mode for
optical sensors
* 2-channel 8-bit or 1-channel 16-bit capture timer. Capture timers registers store both rising and falling edge times
o Two registers each for two input pins
o Separate registers for rising and falling edge capture
o Simplifies interface to RF inputs for wireless
applications
o Internal low-power wake-up timer during suspend
mode
o Periodic wake-up with no external components
* Programm
"Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry
Students raise hands and shout "ME ME ME ME ME!!!!" when they get the answer.
sulli
RTFJ.
My question is why does it HAVE to be wireless? why couldn't you add it on to the desks/tables/etc.? it'd be much simpler/cheaper to design it to work over wires (though it would still take alot of wires for a sufficiently large classroom). This would prevent any problems with range or interference from other students that IR or RF can have.
For those 100 or 200 level classes with 200+ people in them, one might argue that it would be beneficial to maintain order. But the reality of the situation is that you'd have to give out clickers to every student, then train the professors how to use them. And seriously, folks, most professors aren't going to give a damn about learning to use these, especially those older ones with tenure who were born before Christ walked the earth. So they're most likely going to ignore them anyway. The other disadvantage is that these things would break down, and probably frequently. Students themselves wouldn't know how they work (properly, being the key word here). When they think they know how it works, the darn thing will break, and have to get fixed. IT departments are just going to love these things! LOL
You could use USB for the interface back to a piece of host software on a regular computer. There are lots of cheap microcontrollers with USB interfaces built in, and they even come with reference firmware and drivers. USB is an incredibly easy bus from a hardware circuit perspective too.
Combine that with pcb123.com and a couple hundred dollars for boards and parts, and you've got your clickers. The only hard part will be finding some kind of plastic case to put them in that will be durable enough for classroom use. You can save money by not soldering the USB connector onto all the boards.
We only used them once or twice in a couple classes when I was an undergrad. Are they really used that often?
Raise your hand?
The easiest way to do it is to just not go wireless in the first place. Once you get rid of this criteria, wiring a lecture hall with the cable for a connection really isn't that difficult.
/., these guys actually did the experimentation, are intellectually capable of rolling their own project had they desired, and made a decision based on their experiences. They're very nice people and will probably share their experiences with you, particularly prof. Mats Selen, who afaik headed the project.
The subjects in which clickers are mainly used (physics, engineering), everyone already has a graphical calculator, and they're generally of either HP or TI variety. Thus you only have two (ok maybe 3, TI-85 line is quite different from 83's), but then you have no mandatory extra cost to the student, since everyone in these disciplines has a suitable calculator already.
No hardware issues, no support issues, you basically just wire a minijack to every seat, and you're set.
I know the physics program at uiuc has experimented with this about 5 years ago, prior to them becoming the new fad. You probably want to check with their physics education group http://www.physics.uiuc.edu/research/per/
about the plus/minuses with it. IIRC they eventaully went with commercial clickers -- I'm pretty sure there's a good reason why, you probably should check with them.
Unlike the majority of these posts that you're going to read from
People don't like to feel stupid, especially in front of their peers. If a professor is trying to find out if her students know something and asks for hands, you get three different groups
Clickers let the professor get high response rate with anonymity. There's a lot of hate on /. for these things, but used properly (and I've seen it done many times) they're a great tool
"Seven Deadly Sins? I thought it was a to-do list!"
1. Professors won't go for it. Cell phones are already enough of a problem in the classroom. The last thing most professors want to do is encourage people to bring them to class and more importantly, if they must be brought to class, they'd rather not have students leaving them on (as a college student who has had a lecture course of 300 students interrupted on multiple occassions by one or two idiots who leaves their phone with who-knows-what ringtone on, believe me, I know).
2. Students won't go for it. Contrary to popular belief, not all students have or want cell phones. I don't own one and plan on avoiding owning one as long as possible (hopefully until whoever I work for buys me one and pays for it). I'd rather not have to pay yet more money to go to school just so I can answer quizes - books cost enough, thank you very much.
The problem with a unique ID for the clicker is that you could later identify who had which clicker, meaning that the answers would not truly be anonymous.
Instead, I would have a button on the clicker with a label like "begin session" which would cause the device to generate a UUID for the session.
Alternatively you may want to take each measure independently in which case you can create the UUID for each button press.
It is preferred that you have a MAC address to create a UUID, but you don' t necessarily have to have one. Some classes of UUIDs do not require a MAC. Alternatively, the device could retrieve a UUID via a transaction when it is activated.
If I were doing this, I would probably write a version of the app for Windows, Mac, Linux, Palm, WinCE, and Symbian.
On the more capable devices, you could make such a clicker pretty sophisticated. For example, it could show the text of the question and whether you have already answered it or not.
I would probably have a Mac/Windows/Linux PC application recording the data for each question. I'd probably set it up to be fed into SPSS or whatever.
Avoid Missing Ball for High Score
Still allows the other students to see what "the shy student" or "the embarrassed student" said.
Some students feel that being made a fool of in front of class is embarrassing enought that they would rather fail the class than be ridiculed.
Yes, it's stupid, but I bet you a full 1/2 of students feel that way.
Yes I go to school still at night, so this is not from 1984. And yes, I usually don't care who thinks what so I open my big mouth whenever, but others say nothing the entire semester, and are happy with a C.
I tell you it's bad because my current teacher asks: "Does anybody _not_ understand this concept?" and the class stays silent, looking confortable. Then the teacher asks: "Does anybody understand this concept?" and the room also stays silent and still, very unconfortable now. (he's doing a lousy job btw)
The key is that people try to make friends of other students, not professors, so student-to-student image is veeeery important.
I know I'm going off-topic, but I can tell you that this is the very reason educators need something like the clicker.
Ultimately, the teaching environment sucks. Teachers are too few and many are very bad, can't be understood because of poor english speaking skills, can't make the subject interesting, or simply don't care.
The younger students I see (and I do pity them) are adrift in a sea of bureaucracy that is absolutely sucking their creativity dry. They look like zombies, listening like drones for hours on end and just memorizing enough to pass the next test. Cumulative final? Have to remember this crap more than 4 weeks straight? Drop the class, or suffer through yet-another crappy class taught by someone who can't teach.
I know you want to know: CSUN.
"Piter, too, is dead."
I saw a demonstration of such a system. It had a screen at the front of the class room. The screen had the question and the multiple choices. Below the choices were the numbers assigned to each clicker (student.) When you made your selection, your number on the screen blinked verifying it had recorded your answer. If you changed your answer, it would blink again.
So during the demo, I point out that if I worked out a code, I could message each other students the answers via these blinks. Say, three blinks means select "c".
The teachers swore me to secrecy. I only reveal it now as a warning to others....
Here at UC Berkeley most students hate these clickers (called 'PRS' here, for personal response system or some shit like that). It is so superficial. A professor throws on some multiple choice question, and people hit a button to answer it and get participation credit. Is this the second grade or something? What the hell is participation credit for - in colleges we don't need that kind of bullshit. If people don't want to pay attention to lectures, that is their choice - most of the time lectures are useless anyways. Not only that, it wastes $45 on each student's part.
The best solution is to not have any such system and simply DO example problems in lecture. The thing that college lectures lack is not something captivating (like hitting the button on a remote is actually captivating...) or innovative, but BETTER LECTURES. Period. Lecturers tend to go over things in too much of an 'overview' format (at least in the science/tech classes) and avoid doing actual example problems that might help us LEARN.
Instead of throwing materials and problems at students and saying 'Here go study and come take my test later', lecturers should try to teach the students legitimately and AIM to improving their testing performance...right now, all it feels like is that I am paying 20k a year for taking a few tests. A f***ing remote control won't solve this issue of boring, shitty lectures.
Alright.
First, a normal infrared remote won't work. You'll need a custom programmed microcontroller remote and a receiver to handle such. In order for the receiver to detect all the remote's answers (given a one way system) each remote, when the button is pressed, would send its message, pause a random amount of time, send again, pause random again, etc. This would go on for a second or so during and after the button press so the receiver has a chance to catch it in the midst of all the other remotes sending their data. The data burst would have to be *very* short to increase the bandwidth and decrease the collision rate.
A one-way RF system would be very similar.
If you do a two way radio, there are a few more options. Ideally you'd do a two-way network (such as zigbee) since it would be very expandable - it could accept a variety of clickers from the simple credit card remote to the full keyboard and display.
A simple 2.4GHz custom network could be designed using Nordic Semiconductor's nrf series of chips. The nRF24E1 chip would be perfect - includes microcontroller, 2.4GHz transceiver, and is very low power.
-Adam
I think that St Francis Xavier physics http://www.stfx.ca/ was looking at a WiFi system that was pretty inexpensive, and I remember UIUC physics doing some investigation of building their own.
I'm not sure why it needs to be "clickers" - in a large classroom environment, I'm assuming auditorium style fixed seating, which suggests that keypad for each seat would be the best solution. There are readily available keypad solutions (i.e. crestron) which would support 250+ keypads on a single bus, all individually addressed, and would be far less maintenance intensive than any wireless solution. From 2 to 12 buttons could be done "off the shelf". And no replacement cost for "clickers" walking out the door every class period.
And, if you still needed some # of wireless devices, they could be easily tied into the same system.
http://www.crestron.com/
http://www.humaneinterface.com/
-a.e.mossberg
The clickers must have some way of managing contention, a backoff algorithm or polling of some sort, otherwise they'd just all collide if everyone clicked at the same time, and the results wouldn't be discernable.
So, it appears that all you'd need is to hotwire a single clicker into transmitting continuously, and it would inhibit all the others.
Of course, your idea of crashing the software is cute, but it just takes one software patch and you're back to the drawing board. Attacking the RF layer is more likely to yield a permanent solution.
Better yet, if one of the supposed advantages of a clicker system is anonymity, why not build a receiver that lets you eavesdrop on everyone else's clicks and serial numbers?
Here's a similar homebrew system for the Apple II:
http://www.applefritter.com/node/1542/
Pretty much every phone has blue tooth OR an IR POrt. Just get a receiver.
I know you mean this as a joke, but I thought I'd point out that a professor of mine once built a setup like this (okay, it had nothing to do with clickers) in a circular room on our campus. Basically he made a giant set of Helmholtz coils, big enough to enclose the whole room.
.... but I just thought I'd relate the story. Assuming you can get some surplus 25 or 50-conductor POTS cable, making a room-sized Helmholtz coil arrangement isn't at all impossible.
What he did was take the circumference of the room, and multiply it by 2, and then go out and got two lengths of 50-pair phone cables that long. One he mounted on a raceway on the wall, the other at about floor level. Where the cable ends met, he spliced the conductors of the phone wires together so that instead of 50 pairs, he made one long continuous circuit, running around the circumference of the room 200 times (50 pairs = 100 conductors * 2 wraps = 200 times around).
One loop was at floor level, the other was somewhere in the walls near the ceiling. The internal resistance of the coils was pretty high, but with an AC current it produced a measurable current in another coil any place in the room.
The purpose of the whole thing was actually a sort of assisted listening system for people with hearing aids. Many hearing aids have a small coil in them attached to the amplifier which can act as a sort of receiving antenna if the person is standing in a fluctuating EM field at audio frequencies. So basically you could hook these coils up to an audio source (with proper amplification) and a person with a hearing aid would be able to hear it through their own hearing aid, standing or sitting anywhere in the room.
Whether or not the system was ever used for anything other than lab demonstrations I don't know
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
Hi, I'm the submitter of this story. If anyone wants to help, I've set up a SourceForge project here:
http://sourceforge.net/projects/acaclick
No need to splice individual wires: just press insulation-displacement connectors onto the ends of the ribbon cable at an offset of one wire and connect them together. Cut the two outermost wires with a sharp knife and attach them to the signal source.
Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
Why make it so hard? Give each clicker a unique ID, store them in a box, let each student take one at the beginning of the class and return them at the end. No way to know who had which clicker and secondly you can keep an eye on those clickers and prevent them from disappearing.
The ID is necessary, how are you otherwise going to prevent a student from voting multiple times (intended or not)? Normal RCs toggle a particlar bit in the code they send each time the button is pressed. This way a receiver can know if you pressed the button again or are still holding the button down. But a receiver can't distinguish between differend RCs.
If the ID is noted on the clicker in a human-readable format, the ID can be matched with a student at the beginning of the lecture if the teacher intents to hold a test.
This way provides more options than generating random IDs and posses less problems as well (how to make sure the IDs are unique and anonymous?).
IMO it's possible to do even with a standard IR-DA port. A classic IR-DA port supports up to 4Mb/s or 500KB/s. Let each clicker send out its byte at this rate, then wait a relative long time and resend. Timing can be random. With a bit experimentation such a system can run reliable.
Sorry, but the point of education isn't to socialize you. It's to teach.
I think these devices are great. I used them in classes in highschool. They greatly improve the efficiency of a classroom environment. They can enable all students to learn, via a distributed Socratic method, as though each had a personal tutor. This type of teaching is unparalleled in efficiency and efficacy. Schools in the near future will have to use them to maintain standards and keep down costs.
Let me give you a personal example. For the year that I attended college, I had a Calculus class. For the most part, the object of this class was to have us memorize as many different estimation methods as possible. I think it was called Calc II. There were around 40 students.
Every class period consisted of the same general routine. The professor would have us turn to a new chapter in our 50 lb book. He would begin to explain whatever new concept he hoped to teach in that hour long class. After about three minutes of explanation, a girl at the back of the class would raise her hand and ask some inane question, usually pertaining to whatever was taught in the last class period. Being the nice helpful teacher that he was, the professor would then spend anywhere from fifteen to thirty minutes explaining some concept that most of the class understood to this particular student, almost completely ignoring the day's lesson. At most, the professor usually got about half of each lesson completed before the class was over.
In effect, this one (poor) student got a half hour worth of private tutoring out of each class period. The other 39 students in the class got to figure out the lesson for themselves on their own time, before the next class period, and attempt the homework from their own self-teachings.
Had the professor used some of these devices, or at least a little common sense, he would have been able to judge the rate at which each student was understanding his lessons. Those who didn't keep up could be tutored separately, outside of class. Instead of charging ahead into new, more complex concepts, he could have spent more time on the things he was doing a poor job of explaining. Instead, the class snowballed into a giant clusterfuck of confusion and waste for all involved.
This was an expensive, small private school, yet, apparently, was run by idiots, and happily catered to idiot students.
I was on full academic scholarship as a National Merit Finalist yet, needless to say, I flunked right out. And I have no intention of going back. Tuition rates have doubled. The school is still run by (and filled with) the same idiots. I can seriously get a better education for free, on the damn internet, than I can wasting my time there.
I went to college for an education, not for a social experience, not for psychological evaluation, and not to waste my time. And while, technically, I failed college, in reality college failed me. College failed to provide me with an environment in which I could learn. By the rising tuition rates all over the country, most colleges are failing just as badly as mine was. I didn't need to pay more to have psychologists tell me what I was doing wrong. I needed a professor that would teach instead of waste my time.
So, in conclusion, why don't you just take your ridiculous preconceived notions, and your "let them have psychologists" attitude, and cram them up your ass.
"I assumed blithely that there were no elves out there in the darkness"
Nicely over complicated! you must be a Business management major.
make all clickers 100% identical, simply including the ibutton 3 legged transistor looking serial number chip in the parts count will make each unit have a nice huge unique serial number. coupled with a nice dirt cheap 442mhz transmitter module and your button push simply transmits your serial number and a single byte multiple times the PC on the recieving end (better yet, 4 reciever modules spaced around the room evenly) will sort out the responses and the duplicates. duplicates will be required because of using the same frequency and transmitters transmitting over top of each other.
I can build the clicker hardware in about 5 minutes writing a pic program for it will take longer. writing the instructor pc software a bit linger still.
this is a very non difficult project, no two clickers will ever have the same ID and if you use a fast/short databurst the chance that you will miss a response of a room of 100 clickers all hittting their buttons at the same time is very minimal. if your transmission takes 5ms and you havea random delay between transmits of 9-100ms and repeat transmission for 10 times. you will get counted.
we did this stuff in EE back in the late 80's I was able to pick out 20 different data transmitters all on the same bench using the same frequency.
any undergrad in EE and CS can do this project in less than a weekend.
Do not look at laser with remaining good eye.
Keep It Simple you freakin paranoid Spaz. We're not talking about government secrets, just enough anonymity to make students comfortable enough to answer truthfully.
Hey fireboy....um...I have a problem with my...er...printer. ...and I was wondering if you could give me a hand...
There's no place like