El programa requiere tener instalada la Biblioteca Dynamixel que he publicado anteriormente.
Descargar Biblioteca Dynamixel
La siguiente forma de reiniciar un servo es un poco más difícil. El primer paso será abrir el servomotor hasta llegar al chip, no es necesario abrir la parte de los engranes, basta con abrir la tapa de atrás que da acceso a este.
El siguiente paso será soldar cables a los pines VCC, GND, RESET, SCK, MISO y MOSI que son los pines de programación de este chip (AVR ATmega8 - 16MHz), los puedes soldar directamente al circuito como yo lo he hecho o al puerto que se encuentra en el extremo derecho, no olvides alimentar el servo al programar y que vcc es 5v no los 10v con los que se alimenta el servo.


Ya soldados los cables solo hay que conectarlos a nuestro programador de AVR (AVRISP, DRAGON, etc. ) y grabar los archivos Dynamixel_Flash.hex, Dynamixel_EEPROM.hex y Dynamixel_elf.elf, los fuses son: High: 0xC8 Low: 0x1F y LockBits: 0xEC.
Yo he utilizado el AVR Studio 4 para hacer esto pero puedes usar cualquier otra interfaz como AVRDUDE etc.
Espero tus comentarios. :P
25 Comentarios, Dejar un Comentario:
You are the man! Great tutorial. Could you post the firmware becouse I can't seem to find it anywhere on the web. BDW it seems that the files you uploadad are corrupt. When I unzip them the files have no extension and are empty.
Hi, I have already check and download the files and they seem to be ok, check your unzip program.
http://www.megaupload.com/?d=EKL5SQN0
Hi. Seems that I found my problem. After trying everything else I came to the conclusion that I probably fried the Atmea8 inside my motor. :-( I supose that I connected it the wrong way. The thing that led me to belive this is when I run avrdude I get this message:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA8 is 1E 93 07
So it seems that my chip is totaly unresponsive. Ah well....
Anyway I apreciate your help with this problem. I wouldn't have figured it out without you. Best wishes and if you ever come to Croatia I'm buying you a beer. In fact several. :-)
Dont worry that also can be fix, does chips are cheap. Thanks about the beer but i don't see me going there, :D well good luck with your projects, greetings from Mexico. :p
hola, he perdido comunicación con el dynamixel, solo presenta el led encendido, y RoboPlus no encuentra al dynamixel.
Ya has intentado grabar el Atmega8 con los archivos de este post? Si es un Ax-12?
Este programa en el arduino Reinicia el servo a los valores de fabrica sin importar el ID o Baud Rate:
#include "DynamixelSerial.h"
long BaudRates[] = {1000000,666667,500000,400000,333333,285714,250000,222222,
200000,181818,166667,153846,142857,133333,125000,117647,111111,105263,100000,
95238,90909,86957,83333,80000,76923,74074,71429,68966,66667,64516,62500,60606,
58824,57143,55556,54054,52632,51282,50000,48780,47619,46512,45455,44444,43478,
42553,41667,40816,40000,39216,38462,37736,37037,36364,35714,35088,34483,33898,
33333,32787,32258,31746,31250,30769,30303,29851,29412,28986,28571,28169,27778,
27397,27027,26667,26316,25974,25641,25316,25000,24691,24390,24096,23810,23529,
23256,22989,22727,22472,22222,21978,21739,21505,21277,21053,20833,20619,20408,
20202,20000,19802,19608,19417,19231,19048,18868,18692,18519,18349,18182,18018,
17857,17699,17544,17391,17241,17094,16949,16807,16667,16529,16393,16260,16129,
16000,15873,15748,15625,15504,15385,15267,15152,15038,14925,14815,14706,14599,
14493,14388,14286,14184,14085,13986,13889,13793,13699,13605,13514,13423,13333,
13245,13158,13072,12987,12903,12821,12739,12658,12579,12500,12422,12346,12270,
12195,12121,12048,11976,11905,11834,11765,11696,11628,11561,11494,11429,11364,
11299,11236,11173,11111,11050,10989,10929,10870,10811,10753,10695,10638,10582,
10526,10471,10417,10363,10309,10256,10204,10152,10101,10050,10000,9950,9901,
9852,9804,9756,9709,9662,9615,9569,9524,9479,9434,9390,9346,9302,9259,9217,
9174,9132,9091,9050,9009,8969,8929,8889,8850,8811,8772,8734,8696,8658,8621,
8584,8547,8511,8475,8439,8403,8368,8333,8299,8264,8230,8197,8163,8130,8097,
8065,8032,8000,7968,7937,7905,7874,7843};
void setup(){
pinMode(13,OUTPUT);
for ( int i = 0; i <= 254;i++ ){
Dynamixel.begin(BaudRates[i],2); // inicializa la comunicacion.
Dynamixel.reset(254); // Cambia el Baud a 1000000 ( 1Mbps )
}
Dynamixel.begin(1000000,2); // Comprobacion.
}
void loop(){
digitalWrite(13,ON);
Dynamixel.move(1,random(200,800));
delay(1000);
}
Hola que tal? Disculpa amigo, lo que pasa es que ya cargue el programa de reset, pero después de ejecutar el programa el servo ya no funciona, ¿Tengo que volver a configurarlo?
Hola, al realizar un reset el servo vuelve a sus valores de fabrica como ID 0 BaudRate 1Mbps etc.
que tal amigo, soldé los cables a mi servo, y cuando quise descargar los archivos para programarlo, éstos ya no están en linea, podrías subirlos a otro server? o mandarlos a mi correo porfavor? te agradeceré infinitamente.
Por cierto, mi correo es jpablotellezv@gmail.com
ojalá puedas ayudarme
Hola, una disculpa ya no tengo esos archivos, ya he buscado por ellos y no los tengo mas, estos archivos se pueden extraer de cualquier otro Servo en buen estado con ayuda del AVR studio y un programador, solo se extraen los archivos de programación. y esos pueden ser programado en otros servos. Saludos
Hola! Josue
Veras tengo un problema con un servomotor AX-12A el led rojo se queda encendido todo el tiempo y no recibe ninguna información, ya intente con el código que nos compartes y quería preguntarte si tu sabes cual es la razón o como solucionarlo, de antemano gracias.
Hola Andres, el LED se prende cuando se le indica que así lo haga y cuando hay un error, el error seguramente es sobre la alimentación ya que desde el principio se mantiene encendido, verifica que estés enviando el suficiente voltaje para alimentar el motor y que tampoco sobrepase los limites de alimentación. Te recomiendo verificar con el Datasheet del Motor.
http://www.electronickits.com/robot/BioloidAX-12(english).pdf
hola josue mire la verdad tengo el mismo problema que andres y le estoy enviando 9.3 V al motor y siempre a funcionado con ese voltaje entonces no se como hacer para reiniciar el motor ya que el led se queda prendido y en el pc no me lo reconoce.
Hola, Con que lo estas alimentando? con una fuente o una batería? Hace lo mismo si solo lo energizas? Saludos.
con una fuente y si, si solo lo energizo hace lo mismo es probable que se haya dañado??
Yo tengo el mismo problema, el led rojo de del ax-12a (ID=12) se queda encendido. No lo detecta el CM-530.
la verdad he intentado muchas cosas pero nada, Alejandro si puedes solucionar el problema te agradecería me colaboraras con la solución.
Saludos, se uede utilizar tu librería para setear el servo a un ID, o solo se puede reseter los servos a su configuración original??
Hola! Josue
Veras tengo un problema con un servomotor AX-12A el led rojo se queda encendido todo el tiempo y no recibe ninguna información, en si el mismo problemas de Andres, por fa ayuda alguien ya encontro la solución.
Hola, si se puede reiniciar el Motor a sus configuración de fabrica original, el problema del led rojo es probablemente debido a un problema de alimentación, te recomiendo vuelvas a verificar que estés usando el voltaje correcto. Saludos
Hola.
Por favor, en donde podria encontrar los archivos Dynamixel_Flash.hex, Dynamixel_EEPROM.hex y Dynamixel_elf.elf ???
Me hacen mucha falta para reprogramar un servo que tengo frito y al que he cambiado el Atmega8.
Muchas gracias.
top7chip@gmail.com
hola me podrían decir como controlar el Dynamixel AX-12 mediante el uso de solo comando no necesito usar la librería ya que por medio de comunicación poner el motor a un cierto grado ejemplo: letra"A" +10 grados letra "B"-10 grados place help angelito310390@hotmail.com
Hello sir: Thank you for the Arduino Library Dynamixel AX-12 I am a college student, a novice in programming
Can you help me to solve my problem
I have three types of dynamixel servomotors (RX-24F, AX-18A, MX-12W
How can I use (TX, 1,2,3) and (RX, & 2,3) for arduino méga at the same time
to control the three servomotors
When I use DynamixelSerial this means that I use (RX0 / TX0)
When I want to use DynamixelSerial1 and DynamixelSerial2 and DynamixSerial3 a problem occurs what I do
I will be happy if you give me a helping hand, Sir
If you do not mind this is my email: razi.ihab@yahoo.fr
Hello sir
Is there a way to retrieve id after I forgot it?
Publicar un comentario