Hello. I have a very unique problem I need help with. I am disabled and need a device to push a button that I can’t reach on my own. I think a servo would do the trick but I don’t need it to rotate, just go forward and back in one quick motion. I also need it to do this when I press a button on a controller of some sort. The button I need pushed is on an electronic book (Amazon Kindle). This device displays pages of a book on its screen. In order for me to see it, it must be positioned in such a way that I cant reach the “next page” key on my own. Can you guys advise me on a way to solve this problem? Thanks a bunch. Please answer my SOS.
I think a servo would be an excellent, simple solution. I haven’t handled a Kindle in person yet, but looking at one online it looks like the Robix servo gripper would be just perfect:
I just picked up one of these and I’m very happy with it. You would only need one servo (only Hitec brand standard size servos fit) to actuate the fingers, which would squeeze the button and the back side Kindle together. I’m not sure how you have your Kindle positioned, but if it’s being held up from the bottom I imagine just pushing against it from the front might not work too well. Also, the fingers have nice firm but squishy foam, so it wouldn’t do any damage to the button over time. A microcontroller running a very simple program could command a servo to close and open the hand at the push of a button. You could even use two grippers to press both the next page and previous page buttons.
I see that the Kindle has a whole QWERTY keyboard too! If you wanted to be able to reach all of the buttons (and were in a mood to void your warranty) I bet the screen could be removed from the rest of the case, making it more like a separate keyboard and monitor. There are several websites with pictures of Kindle dis-assemblies, but no one seems to have gone to the point of taking the screen out. It looks like it’s pretty self contained though. If it’s connected by a ribbon cable you might be able to buy a longer cable with the same number and spacing of contacts, or you might need to hack in extensions.
-Adam
Thank you Adam. I have a couple follow-up questions for you. Can I control the speed the claws close? the amount of pressure they squeeze? I don’t want to break the Kindle or hold the button down too long, because it will turn more than 1 page. Assuming this claw device works, what do I need to buy apart from the device you suggested? A battery and microcontroller I assume, but I have no idea. I’m a noob, so use dummy language. Thanks.
Servos don’t have integrated speed control, you command a position and they move there as fast as they can to reach it, but you can slow them down and still get smooth motion by changing the position signal in small increments over time rather than all at once.
You have some control over the pressure that the servo squeezes by controlling the position you send it to, and thus how much the foam is compressed. You will also want to get a servo that isn’t too powerful, just in case you accidentally squeeze it all the way. I got a HS-322HD for my claw, but if you’re going to be using this a whole lot I would probably go with a HS-325HB. It’s basically the same servo, but its gears are made out of a more durable material that will last for more movements. At 5V it can only deliver 42 inch-ounces of torque, and if I’m doing my mental free body diagrams correctly (the radius of the output disk is about half an inch, but the torque is split between two fingers) the maximum compression would be the same as laying a 2.625 pound weight on the button. Squeezing the button that hard every time is a little excessive and could wear it out more quickly than normal use, but it wouldn’t break it immediately. I just put my cell phone on a kitchen scale and apparently I mash it’s buttons with about a pound of force. Wow, my poor cellphone!
As for holding the button down too long, you could control how long the servo presses the button in your microcontroller program. Each time you press the button the program would execute a close-pause-open routine, with a pause length you determine by experimenting.
If you want your button presser to be portable, you will need batteries to run it, so a battery pack in the 4-6V range would work well, like a 4 or 5 cell NiMH pack. One or two servos won’t draw all that much power, so if you don’t need the portability you could also use a “wall wart” style ac adapter in the 5-6V range.
You will also need some sort of microcontroller to run the show. Computationally, controlling one or two servos is pretty simple, so just about any microcontroller will do the job, so selecting one depends more on your preferences. Do you have any prior programming or electronics experience? You should probably choose a microcontroller that you can either program in a language you already know, or one that has a simple, beginner oriented system. Another question to think about is do you think this is a one-time project for you, or the beginning of a new hobby? You have a few more options if you’re willing to also purchase a programmer for your microcontroller, but there are also many microcontrollers that come pre-programmed with a bootloader so you can program them directly from a computer serial (or USB) port.
I was also thinking you might want a controller that has buttons already built in, but I only know of ones that have those little tiny circuit board mounted buttons. If you’re going to be using it a lot you’re going to want to get some bigger, nicer buttons, so that’s not really a consideration.
If this is starting to seem like a bit too much there are also standalone devices that let you record a servo motion once and play it back at the push of a button. There must be others, but the only one I know of is here. I haven’t used one, so I can’t vouch for it’s quality, but it seems to me like it would be more than capable for your task, and as such, a little pricey. Then again, you don’t have to think about programming, or soldering! It will control up to four servos, so if you wanted two claws to press either the forward or back buttons you could make one “recording” moving both servos at the same time, then wire up a toggle switch that would only power one servo or the other. You could also flip it into loop mode if you wanted to scroll through a bunch of pages automatically.
So, what sounds good to you?
-Adam
Unfortunately the scale I have that can fit in the jaws of my servo pincher maxes out at one pound, so it’s definitely squeezing harder than that, but it’s not even uncomfortable to let it clamp onto my finger with all it’s might. It feels like it’s in the upper range of normal user button compression, so I wouldn’t really worry about it breaking your Kindle, unless they’ve got really flimsy buttons!
-Adam
Robotics may hold answers to many other problems I face, but for now this is a one-time thing. I have little programming experience and since I would not be doing the potential soldering myself, I can’t be sure of that either. I would like to program the open-hold-close command once and have it repeat that command when I press a button. Plugging into a USB port sounds easy enough for me.
- So I need to buy a gripper, a servo, a battery, and a microcontroller, right?
- Will 4.8V, 650mah Flat NiMH Battery work?
- I looked through some controller manuals and this one looks like you can record a sequence, but can it repeat the sequence when not connected to a computer? and can a separate button trigger the sequence?
(http://www.trossenrobotics.com/parallax-usb-servo-controller.aspx) - What about a hand-held button to activate the servo? Would this work? (http://www.trossenrobotics.com/store/p/3257-Keychain-Remote-Control.aspx) Are you familiar with this type device? Wired is fine too, probably cheaper, if you can find one.
- Can parts from different manufacturers work together or are there compatibility issues?
Servo - HS-325HB (http://servocity.com/html/hs-325hb_bb_deluxe.html)
Gripper - Robix servo gripper (http://www.trossenrobotics.com/store/p/5561-Little-Gripper-Kit-no-servos-.aspx)
Battery - 4.8V, 650mah Flat NiMH Battery (http://www.servocity.com/html/4_8v_650mah_nimh_battery.html)
Microcontroller - ?
Activator - keychain thingy
Total: $88.14 with the cheaper controller I asked about and an extension cord
not bad at all
Can you think of anything else I need?
Thank you for all you’ve done. You’re a life-saver. I’ll email you the results.
Lets go point by point.
-
That’s the short list, yes. You’ll also probably want a nice button (as you noted), and some miscellaneous electronics bits like wires, connectors, and possibly some resistors for the interface between your button and microcontroller. It’s mostly the sort of stuff you can get at Radio Shack as you discover you need it. Particularly you’re going to want to buy or build your own servo extension cable, since the built-in cables are only about a foot long. Pololu just started selling servo extension cables today (what a coincidence!), and ServoCity has a bunch too.
-
I would go with a higher voltage battery pack. Most microcontroller boards run on 5V, which they get from a built-in linear regulator which needs greater than 5V input. On the other hand, it would be nice to use one battery pack for both the servos and the microcontroller, so you don’t want to go too much above 6V for the sake of your servos, so maybe a 5 cell NiMH pack, like the ones on this page. NiMH batteries are far superior to NiCads. Also, the higher the milliamp-hour capacity of the battery (the mAh) the longer it will last, but the larger the pack will be, so it’s a trade off.
Ooh, there’s something I didn’t think of before! You’ll need a charger for your batteries too. A good smart charger can really extend the life of a battery pack (as opposed to just constant-voltage wall warts). The really fancy ones cost about as much as your entire project so far (and you need a separate DC power supply to run them, so add $30)! I generally use a line of very basic smart chargers with integrated power supplies from the Powerizer company. They have some nice battery pack + charger combos here. If you don’t mind the size, the 5Ah (that amp-hours, so about 7 times the capacity of that little battery you were looking at) one will last for ages! Lets say the servo draws an amp (it shouldn’t even need that much) as it presses the button, and the button motion takes two seconds, theoretically you would get 9000 button presses out of a single charge! Anyway, rabbit trail, back on topic.
- The Parallax USB servo controller uses a microcontorller, but it doesn’t look like it lets you actually mess with the firmware on it. It does have a nice computer interface program, but I’m pretty sure you can only save the motion sequences you set up on your computer, they’re not actually stored on the controller.
For myself I like the microcontroller boards Pololu makes, but they’re really not beginner friendly, and they do require a separate programmer. Recently the Arduino microcontroller boards have been getting more and more popular. I haven’t actually used one, but I like the idea of them much more than the usual Basic Stamp route of getting into microcontrollers. Basically it’s a beginner friendly interface sitting on top of a very powerful AVR microcontroller. They come with a bootloader, so you don’t need a programmer (there’s a USB version here), they have very simple free programming/debugging software, and they have a built in programming header so if you ever decide you want to get more advanced you can get directly at the powerful core microcontroller. If you start out with a Basic Stamp, and you decide to get more advanced later, what you’ve got is still just a Basic Stamp. Also, my Italian is a little rusty, but I’m pretty sure that Arduino translates to mean “a little arduous,” so at least they’re honest about it up front!
They say it needs at least six volts to work, but I think they mean more along the lines of a 6V nominal battery pack. This thread is all about interfacing an Arduino with a Pololu serial servo controller (which you don’t need for just two servos), and I think Phil ended up using a 5-cell NiMH pack to run everything.
-
That remote receiver is meant to run on 12V, so you would probably need another power source, and interfacing it with a microcontroller would require some protection circuitry. You can wire any simple contact button or switch (you probably want a “momentary on” type, as opposed to a click-on-click-off type) to a microcontroller with just a couple of resistors, typically a 10Kohm resistor and a 1Kohm resistor, but the exact values are flexible if you have some lying around.
-
Way back when (like, before I was alive) hobby servos had different protocols, but things are pretty standardized now. The way you control it is actually with a voltage pulse on the signal line, and the length of that pulse (typically from 1ms to 2ms) determines the position of the servo. Any microcontroller is going to be able to do timing, and drive an output pin high or low. The only brand specific problems you’re going to run into are using the programming language/software/interface for the microcontroller you select, and making wiring connections. The microcontroller won’t have a servo port, the servo will need direct battery power, not power through the microcontroller board’s voltage regulator, and the battery plug isn’t going to match the microcontroller power pins (and possibly not even the charger). You can buy all sorts of connectors, or even just cut and splice wires.
Phewt! See what happens when you get me talking about batteries and servos and microcontrollers? This is why my wife has a “no robots in the house” rule. It isn’t strictly enforced.
-Adam
I tried to get you all talked out but failed.
You bring up a good point, how many pins, wires, etc do you think I need? Think the Radioshack people could wire the button for me? Heheh.
Will this button work? (http://www.sparkfun.com/commerce/product_info.php?products_id=7836)
Hopefully I’m out of questions. Thanks again for the help.
That light-up dealey is way more complicated than you need for a simple button (you’ll need extra resistors just for the LEDs!). What you need is any simple momentary pushbutton switch, like any of these. It’s also good to have at least one resistor (probably 1Kohm) in-line with the button to limit the current that can flow through it when you press it, which could otherwise potentially damage your microcontroller. Depending on the kind of microcontroller you buy you may also need a second higher-resistance resistor (like 10Kohm) to keep the microcontroller input in a set state the rest of the time while you’re not pressing the button. Whatever kind of wire is fine to wire up the button, but it would be good to solder these things together, and cover the exposed connections with electrical tape or heat shrink or some such. You also probably want at least the button, or the whole set of electronics mounted in some sort of box, like a Radio Shack project box.
Frankly I’m not sure anyone who works at Radio Shack these days would know how to solder anything to anything, but they can certainly upgrade your cell phone plan for you! If you’re looking for someone to wire it up for you, you might try a non-consumer electronics store (I’ve heard that barely legal spy gear type stores are good for things like that, just don’t let them add a pinhole camera and a hidden GPS tracker!). You might also think about getting in touch with a local electronics or robotics club.
Or, you don’t happen to be in southeastern Michigan, do you?
-Adam