DGJOHNSON9044
Good Morning Everyone,
I came across a couple pieces of hardware I am going to utilize in my R2-D2 Project. I was wondering if anyone has seen these, and if there was any scripts written with ARC for this hardware. I am going to use the Arduino DUE & UNO Hardware:
FIRST: 16-Channel 12-bit PWM servo shield I2C interface PCA9685 Adafruit-Compatible
16-Channel servo Shield
Using only two pins, control 16 free-running PWM outputs! You can even chain up 62 breakouts to control up to 992 PWM outputs
It's an i2c-controlled PWM driver with a built in clock. That means that, unlike the TLC5940 family, you do not need to continuously send it signal tying up your microcontroller, its completely free running!
It is 5V compliant, which means you can control it from a 3.3V microcontroller and still safely drive up to 6V outputs (this is good for when you want to control white or blue LEDs with 3.4+ forward voltages)
6 address select pins so you can wire up to 62 of these on a single i2c bus, a total of 992 outputs - that's a lot of servos or LEDs
Adjustable frequency PWM up to about 1.6 KHz
SECOND:
1PC 8 Channel Obstacle Avoidance Infrared Detector Tracked Sensor Module NN
8 Channel Infrared Detector Shield
8 Channel Infrared Detector Tracked Photoelectricity Sensor
Applications: A smart car or robot hunt (including black and white lines), walking along the path of the black line, also known as tracing. Smart car to avoid the cliff, anti-drop. Smart car for obstacle avoidance
Sincerely,
Dave Johnson
I tried a similar 16-Channel 12-bit PWM servo shield with very little success, the documentation was that bad it wasn't worth the hassle. Not to mention the extra work required to have it work in ARC. You're better off using a second (or third) EZ-B and receiving native controls and support.
You don't need a servo controller or shield.... You can drive up to 24 servos directly from the EZB4 board... Actually the beauty of the EZB is it can replace everything you mentioned above(except the IR sensors), including the Arduino boards... All you Need for your project is an EZB4 or two and sensors of any kind you wish... IR, ping, analog sensor, etc...
I don't have an EZB4 yet but because it uses pass through for power . you may need to have some type of power module to control a 5v or 3v output to connect some sensors too.
Thanks for the quick reply, I have a voltage regulator today to have the power available and correct.
Dave
Richard R. - Can you give me a high level idea of how to connect say 10 servos to EZB v4 as I thought the EZB will brown out with that much power drain from the servos. With that said, how to I separate the power and still connect them to EZB? Do I apply 7.4vdc to an external board that the servos connect two wires to and the third control wire goes to the EZB?
The EZ-B V4 wont brown out with only 10 servos, they can run 24 servos.
The servos can be run off of the power provided to the V4 as long as you dont exceed the number of amps that can be provided by your power source and you don't exceed 20 amps through the V4. Some are running 20+ servos through the V4 without any issue. It all really depends on how many servos you want to start up at the same time. When a servo first starts to move, you will have a spike to the number of amps that it needs. If you were to move say 20 servos at the same time, yes, you would probably exceed the load that the V4 or any other controller could handle. As a rule of thumb, I would expect there to be about a 3 amp spike per servo when the servos first start to move. They then quickly drop down to say 1 amp or so. If your power source can provide 15 amps as a peak draw, you could move about 3-4 of them at a time. 3x3 = 9 and 3x4 = 12. Large lead acid batteries used for electric wheelchairs and computer power supplies would be able to do this. Lipo batteries can handle much higher peaks of draw from them. It would maybe allow you to move 6 at the same time. 6x3 = 18 amps. Once these 6 started moving, you would be able to continue moving these 6 (6x1=6) and move maybe 3 more (3x3 = 9 so 6+9 = 15). Once these started moving, you would be able to kick in the other one
If you want to start moving 10 servos at the same time, it would probably be best to provide some of them with a separate power feed. If you can start moving 3-4 of them, then start a couple more, then a couple more, you could easily handle this by connecting them directly to the V4. I don't know of a robot out there that has to start 10 motors at the same time, until you get into walking robots and they don't have to start 10 motors at the same time, but it could be possible I guess. I would seriously doubt that an R2 would need to do this, but I guess it is possible.
If you wanted to provide separate power feeds, This could be done from the same power source, but by bypassing the V4 if you are using a power source that can provide enough amps to move all 10 servos + whatever load that there is for other components you are operating.
If you are running an external power source for the servos, you must have a common ground (black or brown wire normally) to the ez-b and the device. This could be done by running the black wire from the V4 to the device. You also have to have a signal (white or yellow wire normally) to the white port on the EZ-B. The red wire from the servo would be connected to the power source's red wire or positive terminal. If you are using one power source for everything, you would have a common ground and you would be able to run the white or yellow wire from the servo to the EZ-B's white digital port and the red and black (or brown) wires to the power source.
So if I have an external power supply that has 12vdc...I would want to regulate that power to 7.4Vdc BEFORE attaching it to the EZB and then the servos would be good? I think I have 7.4vdc servos...
What is the maximum amount of amps the EZB v4 would be able to handle from the external power supply? I think mine is a 12vdc - 12.5amp supply.
The digital ports are not regulated, so if you wanted to use 7.4v servos, you could either regulate the power to 7.4 before going into the v4 or use regulators from the digital ports to the servos.
The v4 can be powered by 200 amps if you want. It can only draw 20 amps before the fuse in the power base blows or the polyfuse flips. If you had a need for a lot of amps, I would recommend bypassing the V4 for power to these devices.
The other consideration in your scenario is the amps allowed by the regulator(s). They have a limited number of amps that they can provide. Linear regulators waste a lot of power. Digital or bec/ubec regulators can provide far more efficient power.
See post 103 in this thread for some really good digital regualtors
https://synthiam.com/Community/Questions/7398&page=11
Thanks Dave for the great advice. The project is EXACTLY what you have already begun...I am learning how to power an InMOOV hand that I 3D printed so I can learn how servos work for my BIGGER project of building the B9 robot. Davis S has been a great help to me as well. I had purchased Gael's nervo boards but I am not familiar with how to wire them or connect them...his tutorial is hard to follow for me. I think he is using Arduino and I can either use that or the EZB which I think the EZB will be much easier. Splitting out the power seemed to be what I was struggling with and understanding what makes a servo actually move...it needs a control signal...unlike a regular dc motor.
Bob, most of us are using 6v batteries - that way you do not need to regulate the voltage. I would recommend a 6 volt high amp battery. Get them at your local home alarm store or even auto motive stores.
Maybe Richard R can chime in on where he got his? I have his old battery so I don't know where it originated. But they're great and last a long time.
Voltage regulators are too high maintenance and generate a lot of heat.
I am working on a project that has several servos that are about 36 inches from the EZB4. what I want to do is use the Adafruit i2c 16-channel servo controller. I think I need to use the I2CWrite command. I think that the format of the command should I2CWrite(0,0x40,servo#,PWM Fz). But that is not working. I saw in the forum that DJ was looking into this board. Is there any information in how to make these work with the EZB4, i2c network? confused
Looked into it but the controller datasheet and documentation is lacking. It refers to LED's and not servos throughout the examples. It's not a popular enough controller to add native support for. I would recommend the SSC-32 servo controller because it has proper documentation and has native supporte by ez-robot.