Release 2013.01.12.00

Download and install the latest ARC robot programming software to experience these updates.

Download ARC
Software Information
This release is minor and the update focus is on the EZ-Script i2c read/write commands. The i2c is normally a confusing protocol due to the addressing issues. I have created the i2c commands in EZ-Script to figure out all addressing conversion for you:)

Click here to read about i2c: http://www.ez-robot.com/Community/Forum/posts.aspx?threadId=322

Click here to locate the i2c port on your EZ-B: http://www.ez-robot.com/Tutorials/Hardware.aspx

For example, the confusion behind the i2c addressing lies in shifting the 7 bit address into an 8 bit address, and setting the LSB to 0 or 1 depending on the direction of the data. Does that sound confusing? Good, because you do not need to worry about any of that with EZ-Builder!

If you communicating with an i2c device (for example an Arduino or Compass, etc) - you may be given one of many address types....

Quote:


Device Address: 0xa0

or

Device Address: 0x50

or

Device Read Address: 0x50
Device Write Address: 0x51


The above list of addresses are all the same - surprisingly. In any other environment, you would need to understand how they are the same to know how to use them. You would need to convert between 7 bit and 8 bit of 0xa0 to 0x50. You would then also need to convert the 0x50 to 0x51. Wow, so confusing! Well, ARC makes it easy.

In fact, you can use ANY i2c device address - without needing to format or convert the bytes. ARC will figure it out for you:) You simply connect the device to your i2c port, read the manual to find the i2c address, and enter it in EZ-Builder's EZ-Script i2cWrite() or i2cRead() commands.

Changes:
- Release() fix
- i2cWrite() and i2cRead() do not need device address conversion
- Change tracking color by ControlCommand(). See below example


Tracking Color Change Command

Code:


ControlCommand("Camera", CameraColorTracking, "Red" )
or
ControlCommand("Camera", CameraColorTrackingEnable, "Blue" )
United Kingdom
#10  
That board looks ideal for a future project I have in mind, and price isn't too bad either $89(USD).
#11  
i ordered 2 for some of my projects,I2C doesnt look to hard with the new EZB update
#12  
Robotmaker, no I didn't see your post on this board. sorry, I've been busy since the holidays and haven't had much time to spend on the forum.

Thanks for going through the trouble and time of pointing me to this. It looks like an ideal solution and easy addition to EZB. I wish I had seen this months ago. It would have saved me tons of work. Maybe I'll still get one.

thanks again!
Synthiam
#13  
@Dave, all that board will do is return the ticks to the EZ-B for the encoders. It will be the same amount of effort as you have done with the ADC Variable Resistor. The tick count won't provide you with positioning either. Meaning, you only know a rough estimate of how many rotations the motor has made - unless you know the starting position, it's impossible to know where the moving component is. Even if you do know the starting position, it's not an accurate way of moving to a specific position.

The Variable Resistor solution that you use is how Servos work. And the reason Servos use a Variable Resistor, instead of an encoder, is to have a great dependable method of addressing custom positioning.

Encoders are only beneficial for helping a two motor'd mechanism to drive very straight.
#14  
DJ i found out its the other way ,quadratue encoders are used for odometry and navigation
it does need other sensors for good navigation.

Quadrature encoder has 2 channels A and B,servo feedback only has one and resolution is very low compare to let says 120 cpr or even 1024 cpr

Here is info on odometry optical encoders
Odometry is the use of data from moving sensors to estimate change in position over time. Odometry is used by some robots, whether they be legged or wheeled, to estimate (not determine) their position relative to a starting location. This method is sensitive to errors due to the integration of velocity measurements over time to give position estimates. Rapid and accurate data collection, equipment calibration, and processing are required in most cases for odometry to be used effectively.

Single encoders are not that bad,but still have much higher resolution then a feedback pot and more linear
Single optical encoders are in IROBOT roomba models for navigation
Single magnetic ENCODERS using hall effect sensors and magnet are in NEATO models
#15  
SOME other info on using servo pots ,can only get 180 deg or so,since the pot has a dead stop
thats why when you need a servo to set up as continuous servo ,the pot is removed and two 2.5k or pot is adjusted to center
OPTICAL encoders have a pulse out (pwm)
magnetic encoders have 0-5 volts out mostly
WAY A QUADRATURE encoder is that one is set at 90 deg to the other IR sensor
#16  
Thanks to both DJ and Robotmaker for the education.

I was and am exploring other methods of sending back positioning info to EZ-B other than large Variable Resistors (pots) I've found. I really don't have any extra room up in the head of B9. I'm animating the radar unit under the bubble so it will rotate back and forth by script or hopefully with the tracking camera when someone walks by. With all the gears, motors, wires and switches I'm running out of room. However just tonight I think I've worked out a way for everything to fit.

My first preference would be the ADC Variable Resistor at this stage with the build of my B9 robot and my experience. I've already used them twice in other parts of the robot for custom rotation positioning and have scripts already figured out and working. This method works great for me and seems to work with how EZ-B controls my animation. The only things I have worried about was going past the stop point of the pot and the pot wearing out over time and returning drifting voltage readings. On the first worry; I will not rotating any part of my B9 more than 180. Also I have installed multi turn pots that will give me 10 rotations. I've also installed stop plates and limit switches just in case disaster happens. In the second worry; I'm sure the pots will drift over time and if I'm alive to see that then they can always be adjusted in ARC, cleaned, replaced or upgraded.

Someday I may have more knowledge and get back in there and use more sophisticated sensors but for now I'll stay with the tried and true.

Again, thanks for the help and concern. I can use all I can get! Keep it coming. ;)
#17  
All valuable information,which Ive book marked, amongst dozens of others. Thanks robotmaker and DJ....it seems the thread has "drifted" off the "release" topic , but thats ok..it keeps me checking and saving pertinent threads:)
#18  
Dave check out usdigital.com they have so many encoders all types,i am looking to get the small one they make
thats what makes pot not so great DRIFTING and accuracy

You need both in real good PID and navigation.

Hall effects and OPTICAL encoders dont drift and very high accuracy.

ADC analog pots are mostly for servo's ,because drift and accuracy not important
if you do research on it will found out why ADC pots not good for PID control or navigation.
#19  
another item about ADC pots the range is same as a magnetic encoder with ADC output
so thay are about the same only no drifting and accuracy little higher
Second you need a very stable 5 volt source or more drifting on magnetics doesnt need to be stable

ABOUT optical encoders if you do a formula on the size of the wheel and CPR of the encoder you can find how much it travels from start to end,and higher the CPR higher the accuracy of feet traveled and same with left turn or right or backwards and using a grid map for navigation
Synthiam
#20  
Again, encoders should not be considered for your applied use. Counting the number of ticks will not be an accurate and reliable method of custom positioning. Use analog variable resistors (pots) and the ADC port.:) Good luck!

Spend a few minutes thinking about it and you'll Eureka to the reason why encoders are not designed for positioning.
#21  
I'm sold DJ. I've seen it in action on my nattering ninny. I'm truly amazed how much control I can have with speed and positioning with pots and EZ-B.
Synthiam
#22  
Don't forget to share your POT code in the new EZ-Script section. I know many would benefit from it:)
#23  
DJ i guess magnetic encoders can be use in the ADC PORT TOO

And will you have a module to read optica encoders,i would think is very easy to read PWM like the way sonars do using the echo port
#24  
Accuracy of a pot is about 2-3 bits unless you go to a higher price of a multiturn then looking at 5 bits
accuracy of magentic encoder is 10 bits and can get them up to 14 bits

Voltage output on both are the same ,both put out 0-5 volts level and both are connected to the wheel
so better replacement to pot is magnetic encoder,since they really do the same
not really counting the ticks on a magnetic encoder

here is some info off the site usdigital that mostly makes encoders

Analog output provides an analog voltage that is proportional to the absolute shaft position. Analog output is only available in 10-bit resolution.

and some info on tracking ,there are 2 types of encoders one is absolute and other is incremental

Position Control
When controlling robotic end effector's position, absolute encoders are the preferred solution. US Digital absolute encoders are unique in the market as they offer high performance without the complicated communication protocols normally associated with absolute encoders. The compact size of the miniature magnetic MA3 encoder means that absolute encoders can be used in creative and tight spaces; the designer no longer needs specialized hardware or software to interact with the encoder, opening up a new world of possibilities.
#25  
So my question would be; How would this MA3 encoder interface with the EZB? Through the ADC port? Would it return the voltage values just like a common pot?


DJ, I didn't know you had the coding section up and ready. Wow, that was fast! I'll get my codes in there asap.
#26  
Wow, that little sucker costs over $70! Sure looks nice though and sounds likes it returns voltage readings like a regular pot. very tiny also.
#27  
They make others under $30 small size,but on that one i bought 6,if you buy 5 or more price drops alot
dont forget when you deal with higher precision and smaller size price is high


Also another point most pots DONT DO 360 deg ,witch is what is needed on a motor feedback

I did find some but at a cost of $50 and there are big
ADC takes 0-5 volts ,and both put out 0-5 volts ,its not like digital,so interfacing is the same

I SELL high torque motors from neato xv-11 and they come with magnetic encoders,they put out the same voltage
#28  
robotmaker, I think this part could help me. I need shaft position feedback, but let's say I have 60 turns of the shaft. I don't want to mess with gearing to get the shaft turns to something reasonable for a feedback pot. This peice is not limited mechanically, right? It will continue to rotate mechanically and just reset it's analog output?
#29  
i think so, never tested it

ALSO for others, regular pots are not 360 deg continuous and even multiturn they have a metal stop inside,they work great for servo position ONLY.

So only magnetic hall effects encoders can be used on motors for navigation and speed with analog output ,second can only tell if going foward,unless you have a differential circuit.

On quaderature optical encoders have 2 outputs 90 deg to each other and has ciruit to tell in going foward pulse or backward pulse ,by comparing the pulses.

When i get a chance and time looking at making pulse width to analog voltage out circuit.