Hi Everyone,
My Nybble is working after carefully following all the instructions and watching the assembly videos. It's just that it seems that my cat has a bit of a shake as he is walking and performing behaviours some of the servos seem to stutter a bit causing his movements to be shakey. I am using the recommended 14500 3.7v 800mAh batteries.
I have tried the following with limited or no success:-
1. Dialing up the power a bit from the nyboards potentiometer
2. Tried Adding a 220 / 1000 / 2200 micro Farad capacitor accross the power connectors.
3. Added ferite rings arround sevo leads
If any one has had a similar problem or sugestions for a working solution please let me know.
Absolutly love this project, thanks Rongzhong!
Cheers
Chris G
Great discussion on an important topic. Just wanted to cross-link to a comment that @Rongzhong Li posted here about how Tower Pro servos (in the original Nybble that I have) are commonly cloned and counterfeited so it is difficult to get genuine Tower Pro servo.
Hi all, I with purchase I received some servos that are not marked with any brand, in plastic casing and I am considering replacing them and servo arms as well. Namely after 3 min. Kitty legs are unscrewed and I have to mount them again. I wanted to replace servo arms with alu that are stronger and hold much better. I have some quesitons for you:
Did anyone tried this and is it really helping?
Did anyone mounted better servos such as Savos or similar?
For Alu arm how many tooth have your recommended servos that is which servo spline is used? I think you said somewhere 25 teeth which should be then B1 mini spline. - is that correct?
Best regards,
Alex
@eric.chanussot
Thank you, I will try this and get back to you.
Cheers
Chris Gomersall
@eric.chanussot
You were right my PWM ranges were initialy wrong I got them from some documentation on a site that sells the servo. But I don't trust them to be correct. It says they use standard PWM range. The Sketch program via the Arduino UNO works well and the servos moved, and responded to the inputs. After following the text prompts from the serial window, The program reported these PWM ranges for the 2 servos. As in my above post.
I'm still not there, I think I have the PWM ranges correct NOW, but the Nybble moves so SLOWLY and the movements are REDUCED in there range. For example in the WAVE or HI behavior. I can see Nybble attempting to wave and his left paw moves up and down but the shoulder position is not moving far enough, and the paw is not moving up and down enough. it just wiggles up and down a small amount.
It looks like I need to increase the range of movement and speed up the movement.
Can I increase the amount of movement per position say in 6 degree increments instead of 5 degree? I'm not sure how to achieve this.
Kind Regards
Chris Gomersall
@Rongzhong Li
@eric.chanussot
Hi There,
I used the Sketch code you provided with my Arduino UNO to get the PWM ranges of the two servos:
Shouldder servos K-Power DMC809 = 283 - 2080 replaces MG92B
Knee Servos Power-HD HD-1810MG = 490 - 3100 replaces MG90D
Uploaded modified sketch code to cat.
Then recalibrated.
Cat performs all behaviors VERY SLOWLY and with LIMITED RANGE OF MOTION
Should I change the constant in the code ?
#define MG92B_RANGE 150 to #define MG92B_RANGE 180
#define MG90D_RANGE 150 to #define MG90D_RANGE 180
Is there a way to speed up the servo movement? at the moment it is very slow?
Thanks for your support and help.
Kind Regards
Chris Gomersall
@Chris Gomersall
Hello,
Have you calculated the minimum and maximum pulse values of your DMC809 yourself? or did you find them somewhere?
In your October 12 message, you say you use the values: 1000µS at 1500µS.
It seems that the right values are: 900µS at 2100µS.
Source:
https://french.alibaba.com/product-detail/k-power-dmc809-coreless-servo-high-speed-3kg-torque-micro-digital-servo-for-450-rc-helicopter-60778400736.html
Maybe your problem is there?
Good cordiality
Yes, imagine you are the cat and the joints are arranged as clockwise spiral from body to limbs.
@Rongzhong Li
The index of the servos is the same as that of the representation below?
@Chris Gomersall
If you own an Arduino UNO.
Try this test sketch with the Servo library to see how your
servo responds to different settings, type a position
(0 to 180) or if you type a number greater than 200 it will be
interpreted as microseconds(544 to 2400), in the top of serial
monitor and hit [ENTER], start at 90 (or 1472) and work your
way toward zero (544) 5 degrees (or 50 micros) at a time, then
toward 180 (2400).
#include <Servo.h>
Servo servo;
void setup() {
// initialize serial:
Serial.begin(9600); //set serial monitor baud rate to match
servo.write(90);
servo.attach(9);
prntIt();
}
void loop() {
// if there's any serial available, read it:
while (Serial.available() > 0) {
// look for the next valid integer in the incoming serial stream:
int pos = Serial.parseInt();
pos = constrain(pos, 0, 2400);
servo.write(pos);
prntIt();
}
}
void prntIt()
{
Serial.print(" degrees = ");
Serial.print(servo.read());
Serial.print("\t");
Serial.print("microseconds = ");
Serial.println(servo.readMicroseconds());
}
then use the corresponding servo index after the ‘m’
That is a good idea, however I still have the Original servos' for the Head pan and tilt and the Tail.
I change the servos over for some testing.
On the cat, try to use the ‘m’ token to check the angle range. For example, “m0 -45” and “m0 45” should make the cat pan it’s head by 90 degrees. You can also use it to check the max angle ranges on Botha sides.
I've uploaded the altered code, and the cat is performing the behaviours strangely. The movements are shortened and the limbs don't extend fully
The wave for example. Nybble doesn't sit properly, and her front legs don't extend fully.
Maybe I need to alter the angle range of the servo's for the shoulder and for the knees?
Unfortunately I don't have any servo range testing equipment.
I must admit I feel a bit out of my depth here. Any further help is appreciated.
Cheers
Chris G
It’s the angle range of the servo. The tolerance is actually quite wide.
@Rongzhong Li
What is the value of 150 (MG92B_RANGE) located in: OpenCat.h \ // servo constants?
A small sketch usable with a simple UNO that can help to find the minimum and maximum values.
Rename .txt.en .pde