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.
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).
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.
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.
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.
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.
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.
*Originally posted by D.Viddy *
**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.
If you’re talking about using the mechanical encoders on these pages, make sure you use the gray scale version. The BCD will screw you up.
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.
Actually, there’s another disadvantage of these Piher potentiometers - you can’t get them from any of the permitted suppliers (newarkinone, future-active, digikey), so I guess you can’t use them. Does anybody know of any “out” for this? Does every little $2 or $3 part I might buy at some local electronics store for the robot also have to be obtainable from the listed suppliers? What would seem reasonable to me is that there be a lower limit, maybe $5 or $10 dollars, under which you could buy electronics parts from anybody.
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.
As I understand it, we’ve got only those 3 suppliers. But, I like your idea. I think we should propose it to FIRST (for at least 2005 if not this season).
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!
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.
There isn’t really a process. I think you more or less just send them an e-mail (assuming you know them already).
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.
See rule which addresses purchase of additional components from IFI. As I read it you can have whatever you want, but the components are included in the $3500 maximum cost.