Don't ad-block us - support your favorite websites. We have safe, unobstrusive, robotics related ads that you actually want to see - see here for more.
0 Members and 1 Guest are viewing this topic.
the axon is resetting with or without the servos being connected to it. The voltage of the power supply is dropping to 1.8V.
That statement seems to show your problem. Are you saying when you connect the Axon to the power supply, the voltage indicator on the power supply goes from 6V to 1.8V? If so, something in your Axon is shorting out.
Since the servos are all initialised then they are ALL being sent a signal (default would be speed=0 ie stop ie 1.5ms pulse by default) under interrupts.ieact_setSpeed(&servo1, speed);delays_ms(two weeks);means that the delay will wait for two weeks but during the delay ALL of the servos are still being sent signals based on their last act_setSpeed setting (or 0).If you want to truly discount the load from a servo then unplug it.So disconnect all servos - does it reset?How many do you have to reconnect before it resets?If the supply is really dropping to 1.8v with all servos unplugged then as madsci has said then you probably have a short somewhere
Tell us more about your power supply.Do you *only* have servos connected?In code, how do you define 'delay' and 'speed' . . . for example, an int or?Measure current draw both with the battery and with the power supply connected and report back.
4) I measured the current draw when using the battery. The maximum I got is about 2.6A (When i move the servos). However, the axon resets at different values of current draw. So, it sometimes resets at 1.5A, 1.8A, 2.3A,2.5A. And at sometimes it draws that much current but it does not reset. i.e. At 1.5A current draw axon sometimes resets and sometimes not.
int speed=50int delay=20 //
DRIVE_SPEED speed=50;uint32_t delay=2000; //I think you can use TICK_COUNT here, right Webbot? manual didn't say
I'm a bit confused by your code - the MAKE_SERVO commands are missing and you appear to be initialising the servos outside of your appInitHardware/Software functions - which are missing.ie it doesn't compile.
2.6A is a lot for two unloaded servos! With no servos connected, how much current is drawn? What servos are you using?The link to your psu says "In Mode B it operates as a true single output PSU of 0 to 75V at 0 to 4A", so you must be in Mode B as the other modes max out at 2A.What battery are you using? (whats the current draw rating)As for your code, this is wrong:Code: [Select]int speed=50int delay=20 //It should be:Code: [Select]DRIVE_SPEED speed=50;uint32_t delay=2000; //I think you can use TICK_COUNT here, right Webbot? manual didn't say
1) When no servos are connected, the current drawn is 0.2-0.3 A.
3) The battery I am using (Actually, two batteries connected in parallel (capacity 2300mAh each) ) are of this type: TENERGY NiMH Rechargable Battery 6v 2300mAh. This is a link for the battery:http://www.trossenrobotics.com/store/p/5916-NiMH-Rechargable-Battery-6v-2300mAh.aspx
4) As for the code, I dont think it does make a difference, does it? The code compiles with no problems. I have tried not using them, but axon still resets. i.e :act_setSpeed(&Leg1_servo_1,50); delay_ms(20);
The servos are of this type: JR SERVO DS8911.
Have any LEDs turned on? This seems a bit high, otherwise.The batteries should work fine. Sure they are fully charged?Its very easy to reset a microcontroller with bad/buggy code. Try our fixes.
3) I'll try the code. But what i was saying is that before using int speed and int delay, i used to directly put the value in the command itself (I Did not use integers at all). act_setSpeed(&Leg1_servo_1,50); delay_ms(20);Axon used to and still resets.
Can you 'bear with me' - and try putting your servos into say 2 bank of 9. My train of thought is that you are currently using all of the 16 timers for servos. Should be ok but just humour me!Finally: How do you know the Axon is resetting? Are you getting the "Axon Initiated....Awaiting command\n" msg over and over. - ie is resetting or just hanging?
Thats 'cause, as Webbot pointed out in the very beginning, you are asking the motor to invert its direction every 20ms or so. With a digital servo, that'll cause massive current draw, and as such, a major voltage drop - and therefore a reset.Just fix the code and don't make me grab you through the computer screen!!!
, Ok I'll fix the code, but as i said there is no voltage drop, at least the voltage is not dropping below 6.4V.
How are you measuring this? The drop might be too quick for you to see it on a multimeter.
Even a min value storing multimeter can be way to slow to see voltage drops from sudden current surges. Multimeters do average the measured voltage to a response time of many msec.The proper instrument is an Oscilloscope and is the only way to see a voltage with usec duration.
Thanks for the information. I'll try to measure it using an oscilloscope, but wont the reading be analog, it doesn't matter, right ?.
Hi,Quote from: bilals on April 08, 2010, 10:29:36 AMThanks for the information. I'll try to measure it using an oscilloscope, but wont the reading be analog, it doesn't matter, right ?.Actually, all voltages are analog if you look at them in detail.Analog voltages is not static however and a dip to 0V in say 1ms (which is a very long time in some electronics) will not even register on a multimeter.On a 'scope, you can set the trigger to fire at a dip in voltage, so it will be very visible.If you have access to a digital storage 'scope (DSO) you can set it up to catch single events and just let it listen until a dip happens, then come back and study it later.