![]() |
Using Digi-Key Shaft Encoders
How would I go about programming one of these, and which one would be ideal for positioning a low speed (60 RPM) shaft? Any info is appriciated. Thanx.
Digi-Key Shaft Encoder Pages: http://dkc3.digikey.com/PDF/T031/0830.pdf http://dkc3.digikey.com/PDF/T031/0831.pdf http://dkc3.digikey.com/PDF/T031/0832.pdf |
At 60rpm, you can use just about anything as that's only 1 rps, meaning you could, in theory, sample down to 1/40th of a rotation.
As for programming, I'd recommend having a few lines of code to turn the input into a numeric identifier for the current position. Then, just compare that position to the one from the last loop to figure out how far you've rotated in the previous 26ms. The only non-trivial part is going to be dealing with loops (ie position was 4 last time, but now is 1--you need to recognize that in this case 1>4). |
Positioning or speed?
Are you trying to measure the position (angle) of a shaft, or the speed of rotation. As Rob says, they will work for speeds like yours.
If you want position or the angle, like for a steering system, then the problem with these is the low resolution. Most have 16-32 "codes" per rotation. This means you can only get the position to +/- 1/32 of a rotation (~11 deg.). To get more resolution, you could connect one with a belt or gears so that the encoder rotated more than the shaft being measured, more complex. |
We are trying to feedback angle from the shaft encoder, we are looking at the 256 ticks/rev so our resolution will be fine. We don't need it perfect, just somthing like <10 degrees.
|
In that case, you should be fine. 60rpm=1rps=9degrees/26ms. Therefore, in theory the Stamp could sample down to approx. 9 degree resolution. That's assuming, of course, that it hits the new position EXACTLY as the controller is sampling, but you should be able to get decent resolution none-the-less.
|
Yes it all should work fine.
|
In real life the rule of thumb is to sample at greater than 10 times the max output Frequency. That mean that the Max encoder frequency should be no greater than .26 sec.
|
.26 sec?
Don't you mean .026, That would be 26 milliSeconds.
|
26mSec is the update rate of the BS that we can't change so the max Freguency of our input is 260mSec or 3.8Hz. If your encoder signal is faster than this you will run the risk of missing pulses.
|
so if 26ms is your sampling time. this is about 38.4Hz
then 38.4 / 10 = 3.84 Hz. = 0.26 seconds or 260 ms. your motors should not rotate faster then 3.84Hz. Theoretically, you only need a two folds the sample time. This is also called the nyquist frequency, or aliasing frequency. |
sample rate for optical encoders
We are intending to use one of these, or something equivalent to measure steering angle. I've read through the posts above and I don't think the analysis above is correct.
The device generates 256 pulses per revolution. At 60 rpm, 1 rps, this is 4 milliseconds per pulse. Especially with last year's stamp, there's no chance of sampling fast enough to use this device. With this year's processor, maybe it will work. Has anyone tried? Or measured how often an interrupt can be serviced under "normal" cpu loads? 4 ms is probably only a few hundred instructions, perhaps close to 1000. I'm a bit doubtful that you can do it without totally consuming the cpu. If you can tolerate less angular resolution and use the 128 or 64 pulse per rev device, seems like you have a lot better chance of making this work. Or am I missing something here? Bill |
To measure steering angle (Unless you want continous rotation) remember a potentiometer works great and is 'absolute'by nature so you don't need a running count or a calibration on power up.
|
Re: Using Digi-Key Shaft Encoders
Quote:
If you're talking about the optical encoders, then you have a couple of choices. I think you can rig the RC as a counter. One way would be to tie the encoder into a low priority interrupt and fire an interrupt on each pulse. This may become very band-width intensive though. There are also chips available which do all the counting and demodulating for you. I haven't looked through digikey to find one, but I'm sure they sell them. I've use HPs (now Agilent's) chips, in particular the HCTL1100, which is far more expensive and powerful than you would need. Or, you could rig up a counter circuit of your own. Depends on your electrical design skills. If you need more resolution, you can always attach a measurement gear to your system. This has the added advantage of protecting your encoder from the shocks and abuse that your drive wheels will experience. If you do this, you need to remember to use a fine pitch gear set or an anti-backlash gear to minimize the errors introduced by backlash. |
using potentiometer as shaft encoder
Piher makes a continuous rotation pot, the N15 series. Spec sheet here:
http://www.piher-nacesa.com/pdf/n15.pdf Mouser sells them (mouser.com). For example, mouser part# 531-N15TV-100K. They only do 340 degrees, so you need two of them to get 360 coverage. The advantage over the optical sensors is - direct readout (no CPU load) - easy to program - cheap @ $3 The disadvantages are - poor accuracy (3% = 11 degrees) Bill |
Re: using potentiometer as shaft encoder
Quote:
It's too bad if we can't use these Piher pots (for example). They are less than $3 each and make great continuous rotation sensors. I have not yet found anything similar from the listed suppliers. Bill |
Re: using potentiometer as shaft encoder
Quote:
Anyone up for making the suggestion? Nice and pretty now, nothing like, "you guys really blew it on this 3 supplier's only rule, you can make it up to us by getting half a brain and ..." Remember, we want them to agree with us! Joe J. |
Re: using potentiometer as shaft encoder
Joe, seems like you're a big name, why don't you do it? If not, somebody remind me the approved mechanism for making such suggestions and I'll do it.
Bill |
$100/$200 electronics spending rule and other electronic suppliers
Some related questions have already been asked, but not yet answered:
on 1/13: Q: In the past, items such as wire, switches, and pots were not considered part of the custom circuit and its $200 limit. The rules do not make distinctions between the custom circuit and other robot electronics. Please clarify and on 1/15 a related question: Q: We need 5 Victor speed controllers (kit has 4). The extra controller costs >$100. R75 sets individual itemlimit to $400. R71 sets limit of electronic component to $100. Does the Victor speed controller fall under rule R71 or R75? Neither of these specifically ask about using other suppliers for "trivial" parts, so I guess that question should still be asked. |
Re: using potentiometer as shaft encoder
Quote:
I think I am pretty much tapped out on the "making suggestions" front. My thought was that FIRST was tired of hearing from me, someone new would perhaps get a better hearing. Joe J. |
Re: $100/$200 electronics spending rule and other electronic suppliers
Quote:
|
Re: using potentiometer as shaft encoder
Quote:
I'd like to see the rule amended to say we can purchase compenets that meet the $$$ requirements ($100/$200) that we can obtain from Newark, Digikey, and Future Active OR from a supplier/distributor SUCH THAT the component or comparable component is available from Newark, Digikey, or Future Active. Does that make sense? This rule would be in the spirit of the GP. If we buy a part from our local distributor and Digikey or the others sell a comparable item (at comparable pricing), I see no advantage that one team could gain. I'll post on the Q&A and let's see what they think. |
Re: using potentiometer as shaft encoder
Quote:
|
Re: using potentiometer as shaft encoder
Quote:
My mistake, I didn't make my self clear. I posted on the Q&A at usfirt that is a little more clear. My intent was that a component A manufactured by company X where Digikey, Future, and Newark are not distributors of X. However, they are distributors for company Y (competitor to X) that manufacture component B (comparable to A). For example, where A and B might be potentiometers with similar ratings and resistor ranges and comparable costs. Does that make sense? |
Re: Using Digi-Key Shaft Encoders
If you really, really want to use a potentiometer, why not use the Bourns 6639S-1-103 which is available at Digi-Key (search for 6639S-1-103-ND). I'd rather use an encoder.
-Kevin |
Re: Using Digi-Key Shaft Encoders
Quote:
My concern about encoders was the CPU utilization, though I didn't much more than guess about this issue. Any estimates what it will take to track an encoder that reads 128 or better pulses per rev? Bill |
Re: Using Digi-Key Shaft Encoders
Quote:
-Kevin |
Re: Using Digi-Key Shaft Encoders
Quote:
That's 9.55 rev/s or 1222 cycles/s. Should be fine. Also, (818.1 us/cycle) / (.1 us/instruction) = 8180 instructions/cycle Assuming your int handler takes 10 instructions, 0.122% of your instructions are devoted to 1 of your encoders. Heh, I think I got carried away with that calculation, but I was curious myself. |
Re: Using Digi-Key Shaft Encoders
Quote:
FIRST has promoted the use of sensors the last few years. It seems like many teams are looking for either one of two things here: 1. Some type of encoder/pot to measure steering angle (slow rpm, continuous turn with good resolution ~3°). I like the idea of a continuous pot because it doesn't take up CPU power and takes almost nothing to program, and does not rely on starting postition (absolute). An optical encoder measuring ticks (like a mouse) needs to count not only ticks, but the direction of ticks. PS/2 mice have two optical sensors, and with some programming outside of beginners, these two sensors can measure both position and direction (relative to some starting point). 2. Angular velocity in order to measure speed of shaft rotation, which can then give you the linear distance traveled by the output wheel/belt (C=pi*D). The http://www.rec.ri.cmu.edu/education/...tent/index.htm site has some information listed for encoders, but I didn't find where to obtain their encoders and they were not in the Edubot or KOP. Where do we obtain these parts? The sample programs count the number of ticks in a constant direction, but what about when the wheel changes direction or is attached to steering? The sample code does not address this issue. Sample code from FIRST or Innovation FIRST would help teams to concentrate on building robots. Not all teams have the resource or knowledge to construct additional electronics that use encoders to measure steering angles, angular velocity, etc. which is in turn converted back to an analog signal readable by the RC analog inputs. Any help from other teams who have knowledge on how to do any of the above would be appreciated! |
Re: Using Digi-Key Shaft Encoders
Quote:
|
Re: Using Digi-Key Shaft Encoders
Quote:
Quote:
Quote:
Quote:
Quote:
-Kevin |
Re: Using Digi-Key Shaft Encoders
Quote:
-Kevin |
Re: Using Digi-Key Shaft Encoders
I'm having trouble with the links to digikey at the first of this post. Does anyone know the part numbers that the links refer to?
Or alternatively, any recommends for digi-key optical encoders? Thanks. |
Re: Using Digi-Key Shaft Encoders
Quote:
|
Re: Using Digi-Key Shaft Encoders
Quote:
|
Re: Using Digi-Key Shaft Encoders
Quote:
|
Re: Using Digi-Key Shaft Encoders
In MPLAB IDE, go to View->Disassembly
|
Re: Using Digi-Key Shaft Encoders
Quote:
-Kevin |
Re: Using Digi-Key Shaft Encoders
Quote:
|
Re: Using Digi-Key Shaft Encoders
Quote:
-Kevin |
Re: Using Digi-Key Shaft Encoders
mechanical or optical encoders? i know the mechanical encoders are alot cheaper and i was wondering how much that degraded quality
does anyone know the pro's con's between the two? we plan on using them to compensate for steering problems and atonomous and aren't sure which we want. |
Re: Using Digi-Key Shaft Encoders
Mechanical encoders don't last nearly as long as optical ones do - check the specs on them for that measurement.
|
Re: Using Digi-Key Shaft Encoders
Have you read the white paper titled "Quadrature Encoders"?
This should help you a lot. email me if you have any specific questions or comments. Daniel |
Re: Using Digi-Key Shaft Encoders
After reading this forum, I still have a few questions.
What exactly is a encoder? And how can I use it to measure the speed of the robot? |
Re: Using Digi-Key Shaft Encoders
Quote:
To measure the speed, you just use the difference in position between two measurements at different times. |
Re: Using Digi-Key Shaft Encoders
Quote:
So to find the speed, one would have two encoders at different times and subtract them? |
Re: Using Digi-Key Shaft Encoders
Quote:
Bill |
| All times are GMT -5. The time now is 10:12. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi