3
\$\begingroup\$

I want to make a wrist mounted button pusher, connected to a timer that can be programmed with a routine to push buttons at specific times accurate to a millisecond. I've been told I could use a micro-controller and a servo motor to do this, but I don't know enough about electronics to find a controller I could program or a motor that would be accurate to a millisecond.

First: Is this even possible? Is this the best way to approach this? Where can I find the materials I need and learn how to put it together?

\$\endgroup\$
11
  • \$\begingroup\$ What is a wrist mounted button pusher? \$\endgroup\$ Commented Feb 6, 2011 at 20:49
  • \$\begingroup\$ Well, from your description, it's going to be very complicated device. Can you provide a sketch of what you want? Also, what kind of buttons you need to push? DO you have exact specifications of the numpad? Also, on millisecond range, installation of the device is going to be a major problem. I doubt that it could be easily made to operate while wrist mounted with such precision. You'd need to exactly calculate distances when the device is connected to target and I doubt that a human could easily mate the wrist mounted device precisely enough to the target. \$\endgroup\$
    – AndrejaKo
    Commented Feb 6, 2011 at 21:24
  • \$\begingroup\$ Also, how important is the size? Since it's going to be wrist mounted, I expect that it needs to be small. On the other hand, as far as I know servos are mostly used to control rotation and you'd need mechanical rig to get translation from rotation. It can get pretty big and could be heavy. Also, is there any chance of you telling us what you exactly want to do with it? There could be an easier way to accomplish same thing. \$\endgroup\$
    – AndrejaKo
    Commented Feb 6, 2011 at 21:28
  • 1
    \$\begingroup\$ What I have in mind is a small motor that can move something (the button pushing part) less than an inch or so forward and back. It's movement would be determined by a routine on the micro contorller that can be turned on or off. The routine, once set, should set off the motor at specific times specific to the millisecond. The wristmounted part is not necessary, I figure I'll work around that once everything else is figured out, but the point is to keep it small. I want something to program and use on arcade games that depend on matching moving lights on a target to win. \$\endgroup\$
    – user2905
    Commented Feb 6, 2011 at 23:39
  • 1
    \$\begingroup\$ would a solenoid work better instead of a motor or a servo? i think you could get better timing out of them \$\endgroup\$
    – jsolarski
    Commented Feb 7, 2011 at 3:34

3 Answers 3

2
\$\begingroup\$

Accurate to a millisecond? Probably not, and for several reasons:

First the polling loop of whatever you're trying to control is probably nowhere near that fast. If you're looking at a typical keyboard, the controller may check each key maybe 25 times per second, nowhere near 1000 times.

Second, variation in the distance from the actuator to the button can give several milliseconds of inaccuracy: if at one time it has to travel 0.5 inches and another time, it has to travel 0.6, even though there's only a tenth of an inch difference, that's still 20% further it would have to travel.

Third, the button itself may not switch consistently enough for millisecond accuracy.

If you're trying to beat the arcade game I'm thinking of, with a ring of light bulbs that shows a circling "pulse" of light and the objective is to hit the button when the pulse is in a target zone, this wouldn't require the millisecond accuracy. You would need to account for a number of factors which would affect "scoring":

The length of time required from the time the microcontroller says 'go' until the actuator has traveled its distance. This is on the order of 1/10th second.

The length of time for the game's controller to trigger the leading edge light bulb and that bulb to fully light up (if they're using LED's that's almost instantaneous, but light bulbs would be slower).

The "dwell"--how long the light pulse is in the target zone. You won't want to hit the button too early, so the ideal is to hit it when it's halfway through.

All these timing factors would need to be taken into account with your design.

I'd recommend using a solenoid, since it will take less time to travel the required distance and will make the mechanism simpler. You'll need a driver circuit to feed the required current through it when the controller commands.

Remember to cut me in for a share of the prizes!

\$\endgroup\$
1
  • 1
    \$\begingroup\$ Millisecond precision (or at least 5-10 ms) is easily doable and valid. If the actuator is fast enough, you should be able to get millisecond repeatability on snap-action switches. It's not like you would (or could) run it at a kHz. \$\endgroup\$
    – Nick T
    Commented Feb 14, 2011 at 5:03
0
\$\begingroup\$

If the hardware is pushing a button, there must be wires at the other side of the button. Just take the button out and connect the wires from the input signal to the output(back of the button) with the required electronic logic. Then you can even get the millisecond timing.

\$\endgroup\$
0
\$\begingroup\$

If we're both thinking of the same game (a light spins around a ring of light, you push the button when the right light is lit), I think I have a solution for you. Instead of having your system looking at the target light, i.e. - the light that you want to be on when you push the button, look at the light one to three lights before your target. Instantly, you've given yourself a much greater amount of time for your mechanism to respond and activate. Now, all you need to do is find out exactly how long said system takes to activate, and with a little field testing you can calibrate your system to push the button as the light comes around to the target. So, by not looking at the target but at a previous light, you've gone from needing split-second precision to actually letting your controller wait a few 10ths of a second before it pushes the button, and instead of having to modify the mechanism to get the timing you want, you can just change a simple number in your code.

Since you said you're new to this, here's my suggestions for the system:

  • Like Crispy said, use a solenoid instead of a servo. You'll need a medium sized one, one big/strong enough to push the button. Your neighborhood electronics store (not radioshack) can help you out if you have one nearby, otherwise I recommend allelectronics.com for such things.

  • Use a Basic Stamp to get started with the microcontroller. You can pick up a starter kit at Parallax.com, they're insanely easy and fun to program once you get started.

  • To detect when the light lights up, use a photoresistor. This can plug directly into the BASIC Stamp and you can buy them at either Parallax or allelectronics (or anywhere else, for that matter). If you get a BASIC stamp starter kit, the book will have a tutorial on how to connect it, otherwise just Google "BASIC Stamp photoresistor"

  • Lastly, you will probably need to use a transistor to power the solenoid, as the BASIC Stamp probably can't carry enough current to do that. THIS LINK from Parallax describes the problem and how to fix it.

Good luck, hope you get some neat prizes out of this!

(Oh, one last thing: if a) you need help programming it or b) I'm entirely off base and I'm entirely off base as to the arcade game we're talking about, drop me a comment, I'd be happy to help out more)

\$\endgroup\$