Biblioteca de Arduino para AX-12

El Dinamyxel AX-12+ es un un servo digital “inteligente”, fabricado por la empresa coreana Robotis e incluido en sus kits robóticos Bioloid (que cuando pueda me voy a comprar uno); es lo que podríamos llamar un “superservo”.

Algunas de sus características, que me vienen a la mente ahora:

  • soporta rotación continua y modo servo standard, este último con un radio de giro de 300 grados
  • velocidad y torque ajustables
  • velocidad máxima: 300 grados/seg. Torque máximo: 16Kg/cm
  • comunicación serial a 1Mb/s, half duplex. Se pueden conectar varios motores en cadena a un mismo bus.
  • usa un microcontrolador ATmega8 (vale decir que adentro de cada motor hay una Arduino de las viejas)
  • 10 bits de resolución en todos los parámetros (0-1023)
  • alimentación de 7-10V (los servos standard funcionan entre 4,5-6V)
  • feedback de todo tipo de información: posición angular, temperatura, voltaje, fuerza, velocidad, sobrecarga, errores, etc.  a través del bus serial, y posee además un led de notificación.
  • y lo que más me gusta: viene con los famosos “brackets” en forma de “U”, de un plástico muy resistente, tornillos, y otras piezas mecánicas de gran interés, por sólo 45 dólares.

Cuando me enteré de la existencia de tan maravilloso actuador, comencé a buscar información sobre su control mediante Arduino. Dado que el propio motor implementa un ATmega8 y que el microcontrolador central de los Bioloid es un ATmega128, pensé que tenía que ser más que posible dicha combinación.

Afortunadamente encontré este proyecto, el ArbotiX RoboController, que es justamente una placa controladora de robots capaz de manejar los AX-12, basada en ATmega644 y de código abierto. La ArbotiX está basada en Sanguino, y no en la Arduino propiamente dicha. La principal diferencia es que estas placas, al igual que la CM-5 del Bioloid, tienen dos puertos USART, mientras que la Arduino “clásica” tiene solamente uno.

Si usamos los AX-12 en un proyecto, siempre nos va a convenir tener un segundo puerto serial, para comunicar con la PC u otro hardware “superior”. En el caso de la Arduino clásica, esto se resuelve usando la biblioteca SoftwareSerial, que fue lo que yo hice en el video de más abajo. Hay que tener en cuenta que la SoftwareSerial está limitada a 9600 baudios, y que consume memoria y tiempo del procesador, pero en muchos casos esto no representa mayor problema.

En resumen, la adaptación de la biblioteca de ArbotiX a una Arduino clásica consistió simplemente en cambiar el nombre de algunos registros. Una vez que probé que esto funcionaba, aproveché para ampliar y mejorar la funcionalidad de la librería, y actualmente estoy trabajando con mi propia versión, que pueden descargar aquí.

En el video de prueba, el setup es el siguiente:

  • los pines 0 y 1 (RX y TX) van unidos entre sí y conectados al pin de datos del AX-12
  • la alimentación del AX-12 se extrae de los mismos 9V que alimentan a la tarjeta
  • los pines 2 y 3 se utilizan con la “software serial”, y van conectados a un convertidor serial-USB (FTDI) el cual a su vez se conecta al PC y es monitoreado con el Putty. No es posible usar para esto el propio convertidor serial-USB incluido en la Arduino, ya que el mismo se encuentra físicamente soldado a los pines 0 y 1.

Bueno, aquí les dejo el video. Saludos!

Imagen de previsualización de YouTube

Be Sociable, Share!

376 Comentarios »

  1. avatar pabloxid Dice:

    Of course you cannot upload anything to Arduino if you have TX and RX connected together.

    Also, for Arduino Uno there is no hardwareSerial.cpp change needed at all.

    Try to understand how the AX12-Arduino Library works, all information is here on the forum and in the manual. It has been tested many times, so it’s virtually free of errors at this time.

    Sorry, I can’t help you more than this.

  2. avatar marcel nijssen Dice:

    Ok thank you for your pattions for the help , am greatful that the are working , i change the hardware back to normal , i try to what i am doing wrong if i know whats i am doing wrong i post it here ,maybe because i change the hardware.ccp , is that the problem , thanks for the help so far .

  3. avatar marcel nijssen Dice:

    Hi pabloxid gives only the error that he can not communicate whit the pc , i think i blow him up when uploading whit the rx and tx together connected , but i have connect my adruino mega 1260 ,and now i can see that id in the serail screen and your write , the id wash changed but whit the program to move the motor 1 turn to the opposite of the other he reacts sometimes good but sometimes motor 2 spins around ,
    how can i make that , the motor 1 , turns from 100-1000 and at the same time motor 2 turns from 1000-100 , because a have reed the setmultipos but whit this function you can set them both on the same position and not 1 to the opposit position at the same time , thanks for the help so far the problem of my id was it was changed but i could see .

  4. avatar marcel nijssen Dice:

    Hello can some explain how to use the .
    setMultiPosVel function to use , i try but i cant get it done .
    i want to control them by my rc receiver , but they must both turn to the opposite ,
    if i use a for loop then they move not exactly the same ,and they must, because the two motors turn something up and down , 1 motor left of the canon and 1 motor right,
    can someone help me whit this.
    thanks .

  5. avatar g. Dice:

    Querido pabloxid,

    thanks for your library. Nice job. I would like to bother with an info request.

    I successfull made an AX12+ motor move with Arduino UNO. It might be usefull to the readers to know that I had a problem with the autodetection of the ID, I finally solved by reading the ID with the Bioloid software and giving it as constant in the Arduino code.

    Btw, now I would like to connect the PC to the Arduino (and an acelerometer too) and I would like to ask your adive on the USB-serial converter (I’m a newby…).

    It seems to me that I can not take whatever converter right? it is to naive to take the GND, RX, TX pins of the serial port (I do not know chip and brand…) and use them?

    In case a specific brand is required I read that the FTDI chip is appropriate. Do you have any schematics or photograph on how to connect the serial part to the Arduino? I do not have any idea…

    hola,
    g.

  6. avatar pabloxid Dice:

    Dear g.:

    Your problem with autodetection is probably due to TX and RX do not short.

    Regarding the USB-serial adapter, it must be used in combination with Arduino NewSoftSerial library. My preference is to use the USB-serial that is already in the Arduino board, disconnecting it from pins 1-2 and and then connecting to pins 3-4, for example, as shown in the picture.

    hacked arduino

  7. avatar g. Dice:

    Thanks a lot for your kind reply.

    Based on various considerations I took a FTDI-based USB/serial converter.

    Feliz navidad,
    g.

  8. avatar Akshay Dice:

    Hello Pablo,

    Thank you for the amazing AX-12 library. I set it up on my Arduino Mega and it works perfectly.

    I need some help with some code to control multiple servos in a daisy chain. I want to set different positions for different motor (from ID=1 to ID=7).

  9. avatar pabloxid Dice:

    //define an array of motors
    AX12 motor [7];

    //setup static members
    AX12::init (1000000);

    //you initialize each motor
    motor [i] = AX12(_id);
    motor [i].SRL = RETURN_ALL;
    motor [i].torqueOn;

    //and then you send pos/vel commands to any motor as you wish

  10. avatar jaycon Dice:
  11. avatar Akshay Dice:

    Hi Pablo. Thanks for the example. I have a problem when I connect 7 servo motor in a daisy chain. the first 3 motors respond, and then the next ones only respond sometimes. I am using a 12V 5.2A supply.

    This is my sample code:

    //define an array of motors
    AX12 motor [7];

    //setup static members
    AX12::init (1000000);

    //initialize each motor – I do this for all 7 servos.

    motor [0].id = 1;
    motor [0].SRL = RETURN_ALL;
    motor [0].torqueOn;

    motor [1].id = 2;
    motor [1].SRL = RETURN_ALL;
    motor [1].torqueOn;

    motor [2].id = 3;
    motor [2].SRL = RETURN_ALL;
    motor [2].torqueOn;

    motor [3].id = 4;
    motor [3].SRL = RETURN_ALL;
    motor [3].torqueOn;

    motor [4].id = 5;
    motor [4].SRL = RETURN_ALL;
    motor [4].torqueOn;

    motor [5].id = 6;
    motor [5].SRL = RETURN_ALL;
    motor [5].torqueOn;

    motor [6].id = 7;
    motor [6].SRL = RETURN_ALL;
    motor [6].torqueOn;

    void loop() {

    motor [0].setVel (100);
    motor [0].setPos (random (500, 750));

    motor [1].setVel (100);
    motor [1].setPos (random (500, 750));

    motor [2].setVel (100);
    motor [2].setPos (random (500, 750));

    motor [3].setVel (100);
    motor [3].setPos (random (500, 750));

    motor [4].setVel (100);
    motor [4].setPos (random (500, 750));

    motor [5].setVel (100);
    motor [5].setPos (random (500, 750));

    motor [6].setVel (100);
    motor [6].setPos (random (500, 750));
    }

    Servo 4 and 5 do not move sometimes for almost 30s. Could the servos be spoilt?

    thanks for your help

  12. avatar pabloxid Dice:

    Seems to be a hardware problem. Determine whether, when the motor stop moving, the led begins to flash indicating an error.

  13. avatar Akshay Dice:

    The motors don’t flash, so it doesn’t seem to be an error. The motors connected after these motors work perfectly. So it could be a hardware fault but like I said, the led does not flash so I am not sure what the problem is. Thanks anyway.

  14. avatar pabloxid Dice:

    Well, I don’t know what’s going on.

    BTW, try to put some delay() inside the loop() section, I see you are sending too many messages continously…

  15. avatar cleo Dice:

    Pessoal,
    Acesse o site da EMPRETECNET, eles fabricam um KIT com uma placa compatível com arduino duemilanove, uma placa de rele, de potenciômetro, de sensor de luz, de sensor de luminosidade, de buzzer, de botão e demais componentes que podem ser realizados vários experimentos sem a necessidade de solda. Qualidade excelente!!

  16. avatar lentin Dice:

    Hi Pablo
           This site is very useful for me .I have some query related to dynamixel module for arduino .I am using arduino 1.0 and board is Arduino Mega.I need to interface a sabertooth and dynamixel with arduino .I got sabertooth module for arduino from there site and dynamixel module from ur site .This module is perfectly working in Arduino 017 .I tested it ,but the issue is sabertooth module only work in new arduino software .So how can i port your module to new arduino software edition ??and i need to interface RX series servo instead of AX  .So pls help me if you get time 

    Regards
    Lentin

  17. avatar pabloxid Dice:

    Hi lentin, cute gravatar.
     
    I guess the problem is Arduino Serial library, send me more details and I try to solve it.
     
    With regard to control RX series, first of all you need to connect things like this: http://www.pablogindel.com/images/rx28.png

  18. avatar César Dice:

    Hi Pablo,
    Amazing knowledge from you and even best you sharing it for us all to learn through our own projects. BIG THANKS
    I can't compile and it seems related to working with arduino 1.01:
    1.- HardwareSerial.cpp is found in C:\Program Files\arduino-1.0.1\hardware\arduino\cores\arduino (changed path)
    2.- Text to be commented in HardwareSerial.cpp is not found anymore
    3.- Compiling errors:
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:28:76: error: wiring.h: No such file or directory
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In static member function 'static void AX12::setTX()':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:44: error: 'bitClear' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:46: error: 'bitSet' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In static member function 'static void AX12::setRX()':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:61: error: 'bitClear' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:63: error: 'bitSet' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In static member function 'static void AX12::setNone()':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:81: error: 'bitClear' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:84: error: 'bitSet' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In static member function 'static void AX12::init(long int)':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:135: error: 'bitSet' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In member function 'int AX12::writeData(byte, byte, byte*, boolean)':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:319: error: 'delay' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In member function 'int AX12::writeInfo(byte, int, boolean)':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:366: error: 'lowByte' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:367: error: 'highByte' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In static member function 'static void AX12::syncInfo(byte, byte, byte*, int*)':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:378: error: 'lowByte' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:379: error: 'highByte' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In member function 'void AX12::endlessTurn(int)':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:402: error: 'abs' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In member function 'int AX12::setPosVel(int, int)':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:429: error: 'lowByte' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:430: error: 'highByte' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp: In static member function 'static void AX12::setMultiPosVel(byte, byte*, int*, int*)':
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:440: error: 'lowByte' was not declared in this scope
    C:\Program Files\arduino-1.0.1\libraries\ax12\ax12.cpp:441: error: 'highByte' was not declared in this scope
    Is it hard to adapt to new ide or are you planning on it or should I stick to previous versions?
    Thanks again
    César
     

  19. avatar pabloxid Dice:

    Hola César, te contesto en español. Para usar la biblioteca AX12 en Arduino 1.01, sigue los siguientes pasos:

    1) utiliza la versión 2.3 de la biblioteca AX12

    2) sustituye #include <Wiring.h> por #include <Arduino.h> (en AX12.cpp)

    3) en HardwareSerial.cpp, localiza el siguiente texto y coméntalo con /* */

    SIGNAL(USART1_RX_vect)
    {
    unsigned char c = UDR1;
    store_char(c, &rx_buffer1);
    }

    4) eso es todo

  20. avatar César Dice:

    Genial Pablo!!
    Esta noche lo pruebo.
    gracias de nuevo

  21. avatar Concepcion Dice:

    Pretty great post. I just stumbled upon your blog and wanted to say that I’ve truly loved browsing your weblog posts. After all I’ll be subscribing to your feed and I hope you write again very soon!

  22. avatar alonso martinez Dice:

     

    Hi Pablo,


    I'm having trouble connecting my uino to my mx-28 servo and I don't know what I'm doing wrong.


    Here are the components I'm using:


    MX-28T servo 
    Arduino Mega 1280 
    Arduino 1.0.1 IDE 
    Dynamixel AX-12+ Arduino Library, v2.3 


    I modified the "ax12.cpp" and "HardwareSerial.cpp" like the instructions said.


    In the example file I changed the baud rate and motor ID since to match the default for the MX-28t servo using these lines:


    AX12::init (57600); 
    motor.id = 1; 


    This is how I set up the wiring:


    For the power pin  I connected a couple of batteries in series to give me a voltage of 12.71


    For ground pin I connected the ground from the arduino, the ground of the battery


    For the data pin I connected Tx1 and Rx1 


    Here are some images:


    https://dl.dropbox.com/u/46736930/IMG_1790.JPG
    https://dl.dropbox.com/u/46736930/IMG_1796.JPG


    https://dl.dropbox.com/u/46736930/IMG_1791.JPG


    Any idea of what's going on?

  23. avatar alonso martinez Dice:

    Oops sorry por el formato tan extraño de texto!

  24. avatar pabloxid Dice:

     
    1) qué versión de la biblioteca AX12 usas?
    2) qué modificación hiciste en AX12.cpp?
    3) prueba inicializar así: 
    AX12::init (57142);

  25. avatar pabloxid Dice:

    4) la fuente de alimentación no es apropiada. Utiliza una fuente de 12V /2A

  26. avatar alonso martinez Dice:

    Muchisimas gracias Pablo! voy a comprar una bateria adequada y luego te mando un mensaje si jalo!
    Saludos,
    -Alonso

  27. avatar alonso martinez Dice:

    Hola Pablo,
    Ya me llego mi bateria LiPo y un USB2Dynamixel para probar todo y jala genial con el USB2Dynamixel pero todavia no con el Arduino! Todavia me esta dando este mensaje:
    deteccion: 0
    ID detectado: 1
    delay: 0
    error lectura: 1920
     
    Usando el Dynamixel Wizard de USB2Dynamixel puedo ver el baud rate (57142) y el motor ID (1) que los trate de usar en ax12_test.pde cambiando la lineas:
    void setup() {
     
      motor = AX12();
      Serial.begin (115200);  // inicializa el Serial a 115,2 Kb/s
      AX12::init (57142); //cambiando el baud rate para que sea el mismo de el MX28T
      byte detect = 1; //forzando que el motor ID sea 1
      motor.id = detect; // asigna las ID detectadas a los motores definidos previamente
      motor.SRL = RETURN_ALL;
     
      Serial.print (" ID detectado: ");
      Serial.println (detect, DEC);
      Serial.print (" delay: ");
      AX12info test = motor.readInfo (RETURN_DELAY_TIME);
      Serial.println (test.value, DEC);
      Serial.print (" error lectura: ");
      Serial.println (test.error, DEC);
    }
    En el archivo ax12.cpp cambie "Wriring.h" por "Arduino.h" por que estoy usando un Arduino IDE nuevo.
    El archivo HardwareSerial.cpp cambie:
    /*SIGNAL(USART1_RX_vect)
    {
        unsigned char c = UDR1;

    store_char(c, &rx_buffer1);
    }*/
     

  28. avatar alonso martinez Dice:

    Estoy usando el Rx1 y Tx1 (pin 18 y 19) en mi Arduino 1280 Mega.
    connecto esos dos pines a la misma linea en el breadboard que el data pin de Dynamixel. Eso es todo lo que tengo que hacer no?
    Muchisimas gracias Pablo!!
    -Alonso

  29. avatar pabloxid Dice:

    Mi sugerencia es que dejes la rutina de autodetección como estaba en el ejemplo, por si la ID del motor no es efectivamente la 1.
    Prueba enviar comandos de movimiento al motor, dado que el error 1920 lo que indica es que no se está recibiendo absolutamente nada del motor, pero eso no quiere decir que no funcione.
    Las conexiones son las correctas, en teoría, pero revisa que no estén fallando en la práctica.
     

  30. avatar alonso martinez Dice:

    Hola Pablo,
    Si tambien tratre originalmente el codigo sin tratar de forzar el motor ID, pero tampoco no jalo.
    Estaba mandando mensajes de movimento usando tu ejemplo ax12_test.pde pero no escribi todo el codigo en mi ultimo mensaje.
    Voy a tratar de mandar paquetes de serial escritos manual mente a ver si me puedo connectar con el servo.
    Te aviso como me va!
    Muchas gracias por todo!
    -Alonso Martinez

  31. avatar alonso martinez Dice:

    Buenos dias Pablo!
    Se me hace que tiene que ver con mi version nueva de arduino. Estoy usando Arduino 1.0.1 que creo el archivo HardwareSeria.cpp es un poquito diferente a los anteriores.
    Aqui esta el archivo que modifique para que lo puedas ver.
    https://dl.dropbox.com/u/46736930/HardwareSerial.cpp
    Como siempre muchas gracias =)
    -Alonso

  32. avatar alonso martinez Dice:

    Es mejor darle clic derecho y "Save Target As" que seguir el link =)
    -Alonso

  33. avatar pabloxid Dice:

    Yo he movido los MX28 con Arduino 1.01 sin problemas. No obstante, la cantidad de variables en juego es tan grande que se hace difícil resolver este problema por este medio. Búscame en Skype y vemos qué se puede hacer.
     
    Saludos.

  34. avatar alonso martinez Dice:

    Ya te agregue!
    Saludos
    -Alonso

  35. avatar Daniel Dice:

    Hello Pablo,
    I'm sorry to bother after all the hard work that you have done. But I am new to Arduino and I don't know what to do.
    I have an Arduino UNO and I want to control two Dynamixel MX-28T motors using a Wii Nunchuck.
    I have the code to have the Wii Nunchuck move two normal servo motors with PMW output.
    But when I plugged in the Dynamixel motors, nothing happened.
    So I tried to update my library with the example you showed us, but my arduino environment version 1.0.1 doesn't have a HardwareSerial.cpp file.
    Also, I heard from some people that the Arduino UNO has only one TX and RX port and thus it's hard to control the Dynamixel motor with it.
    But that is all I have and I don't even know what TX and RX is. Please help me.
    Thank you so much.
    -Daniel

  36. avatar pabloxid Dice:

    Los MX-28T requieren una pequeña modificación en el código, que ya tengo implementada.. En estos dias la voy a subir.

  37. avatar Daniel Dice:

    And as an update, I downloaded the previous version of the arduino environment, version 1.0, which does have a HardwareSerial.cpp. I udpated that file and the ax12.cpp file as according to http://arduino.cc/forum/index.php/topic,116011.0.html, but I keep getting the error that AX12 does not name a type. Please help soon.
    Thanks,
    Daniel

  38. avatar WesternCape Dice:

    You are an excessively skilled blogger. I’ve joined your feed and look ahead to in the hunt for more of your fantastic posts. Also, I have shared your web site in my social networks

  39. avatar pabloxid Dice:

    MX-28T users should download this library version.

  40. avatar Ravi Dice:

    Hi Pablo
     
    I am very appreciative of the libraries you have provided and all of the intructions in the comments are very helpful. I'm using some RX-24f servos for my final year honours project (electronic engineering), and am having difficulties.
     
    I am struggling to get the Dynamixel rx-24f servos working with your library, and any help would be very useful.
     
    I'm using an arduino mega 2560, ax12_v2.3 library, Arduino 1.0.1 IDE and RS485 breakout from sparkfun. I have closely followed all the instructions I could find. I have correctly wired it all up (http://www.pablogindel.com/images/rx28.png) and have ensured there is plenty of power from a 12V, 3A desktop power supply. The grounds are all connected.
     

    I have tried running the example provided in the library, also initializing to 57142 baud rate, with no success. I can't even get a simple ping to work. Attached are some scope shots of the loop part of the example. Hopefully they are helpful.
       
    void loop() {
       
        motor.setVel (random (100, 300));
        motor.setPos (random (200, 800));
       
        delay (100);
       
        int pos = motor.ping();
        int vel = motor.getSpeed();
        int load = motor.getLoad();
        Serial.println (" ");
        Serial.print (" posicion: ");
        Serial.println (pos, DEC);
       Serial.print (" velocidad: ");
       Serial.println (vel, DEC);
        Serial.print (" carga: ");
       Serial.println (load, DEC);
           
        delay (1100);
     
    }

    Scope shot 1: http://imageshack.us/photo/my-images/42/undq.png/
    Scope shot 2: http://imageshack.us/photo/my-images/822/15uq.png/
     
    Thank you very much for any additional help you provide.
     
    Regards
    Ravi

  41. avatar andres Dice:

    Hola amigo tengo un problema con la libreria de AX12 como puedo utilizarla, tengo Windows 8, afecta n algo… 

  42. avatar pabloxid Dice:

    No creo que el windows 8 afecte… ¿Cuál es el problema?

  43. avatar andres Dice:

    Hola pabloxid, ya arregle mi problema pero tengo otro, creo q qme un ax12, como comprobaria su funcionamiento, o q podria pasar. gracias

  44. avatar pabloxid Dice:

    Si al conectarle la alimentación, el LED del motor se prende durante medio segundo y luego se apaga, significa que el motor está “vivo”.

  45. avatar diego Dice:

    hola que tal queria preguntarte crees que funcione con un arduino mega 2560?? que tendria que modificar para hacerlo funcionar??

  46. avatar pabloxid Dice:

    Funciona sí. Lamentablemente no puedo ayudarte ahora, estoy sin tiempo, pero buscá la info en este mismo foro que está.

    Saludos,
    P.G.

  47. avatar jk Dice:

    Hola pablo estoy trabajando 3 servos AX-12 con un arduino uno, me gustaría saber cual de tus librerías me podría servir y como deberia ser la conexión entre el dynamixel y el arduino si necesito algo a diferencia de una fuente de poder para los servos

  48. avatar pabloxid Dice:

    La cualquiera de las librerías funciona. Tenés que unir TX, RX y el pin de datos de tu motor. Depende de qué Arduino uses, y qué versión del IDE, hay que modificar unas cosas en HardwareSerial.cpp. La info está toda en este foro. Hace más de 2 años que no mantengo esta librería.

    Saludos.

RSS alimentación de los comentarios de esta entrada. TrackBack URL

Dejar un comentario