Asked
— Edited
I came across this and was wondering, could this be used with an EZ-B? If so, what would be needed to get this working? It states that it's i2c so not strictly sure what would be needed to be done to control servos connected to this board.
16 Channel servo driver
Find a data sheet showing the commands for i2c, and then you just send the commands to it as per the manual using the i2c ex-script commands.
Edit: Here's the data sheet: www.adafruit.com/datasheets/PCA9685.pdf
Go down to page 10, which has the commands I believe.
Thanks @Technopro.
The data sheet was on the product page link, but I see you found it. I had a look though the sheet, but I'm still non the wiser. Apart from the v4 LED array, the only thing I've done with i2c was to use an LCD screen, and I needed help with that to set it up. Good to now that this driver can work directly with the EZ-B though.
Looking at it, it looks more to be an LED driver board than a servo control board.
You'll probably need to use either of these commands:
I2CWrite( boardIndex, deviceAddress, data, .... ) Send a series of ASCII data to the specified device hex address over the i2c interface. This command will Start i2c, Write Data, and Stop i2c. boardIndex is the EZ-B you wish to use (0 is first EZ-B) Device Hex Address of i2c device must be in 0x00 format. Data can be Hex (0x09), string ("string"), or decimal (188) Example: I2CWrite(0, 0x09, 0x02, 0x05, 0x06) Example: I2CWrite(0, 0x09, 244) Example: I2CWrite(0, 0x09, "This is text + $variable)
I2CWriteBinary( boardIndex, deviceAddress, variable ) Send a series of binary data to the specified device hex address over the i2c interface from the provided variable array. This command will Start i2c, Write Data, and Stop i2c. boardIndex is the EZ-B you wish to use (0 is first EZ-B) Device Hex Address of i2c device must be in 0x00 format. Variable is an array with data that you wish to send Example: I2CWriteBinary(0, 0x09, $variable)
I don't have enough knowledge in i2c to be of help, but what I've given you so far should be correct.
Thanks again for your input. Apparently, these drivers can drive LED's and/or servos, so the dates sheet is correct.
I've looked through the data sheet again, and I'm just not clear on how I can control individual servos to their min and max positions. Any ideas anyone?
From what I see in the data sheet you would have to setup the outputs to match what is done in the EZB4. It's all pulse with modulation control, both for the led's and the servos. Here is a video that may help: https://www.youtube.com/watch?v=kY8iJ84J4GE
@WBS.
Wow, your up late (or really early whatever the case may be)
Thanks for the video link, although it wasn't much help as I'd seen it before, and I get how PWM works. I guess what I'm looking for is someone to give me a step by step to hooking one of these up the the v4, then show how to move servos with it. I know Dynamixels work in a somewhat similar way, but they have their own individual addresses so to speak.
I don't have one of these drivers yet as I figured I'd ask if it can be used directly with a v4 first. I have seen an old thread on the forum (can't find it now) that talked about using one of these drivers, but that was using an Arduino hooked up to a v4.
Thanks anyway.
Good luck with that board, I have one from a while ago which I was going to use with my V3 but it never went anywhere since I couldn't get the I2C commands to do what was expected.
Plug in to an Arduino, use serial/I2C to control it and it may be a lot easier since the Arduino library exists for it.
I guess thats why there has not been a lot of talk about it on here. Good to know I guess.
Thanks Rich.