Серво-привод нового поколения K-POWER с цифровым управлением по последовательной шине - настоящий прорыв в роботостроении! Максимальные для своего размера и класса характеристики и возможность подключения большого количества сервоприводов только одной шиной. Отличительная особенность цифровых серво-приводов - возможность не только задать положение вала но и наличие обратной связи по положению, текущему усилию удержания, напряжению питания, потребляемому току, температуре привода. Звучит неплохо но как заставить работать ?
Сперва для проверки нужен TTL/USB адаптер для управления цифровым сервоприводом. И тут сразу выскакивает нюанс, желательно брать TTL/USB адаптер на 1000000 бод (и тут K-POWER такой и продает), поскольку на такой скорости работают серво.
BusLinker не подойдет, хотя и можно сменить скорость работы серво на 115200 и тогда его использовать, но стабильность работы не гарантирую.
Дальше качаем DYNAMIXEL Wizard 2.0 и тестируем. Там все просто, нажали скан, подключили и поехали. Но что делать, если управлять нужно с Arduino, а преобразователя нету?
И так что делать ?
1. Устанавливаем библиотеку
2. Подключаем серво к Arduino по схеме:
GND ---> GND
VDD ---> VDD
DATA ---> Tx pin of Arduino
3. Загружаем код
#include <AX12A.h>
#define DirectionPin (10u)
#define BaudRate (1000000ul)
#define ID (1u)
void setup() {
ax12a.begin(BaudRate, DirectionPin, &Serial);
ax12a.setEndless(ID, ON);
}
void loop() {
ax12a.ledStatus(ID, ON);
ax12a.turn(ID, LEFT, 100);
delay(5000); ax12a.ledStatus(ID, OFF);
ax12a.turn(ID, RIGHT, 500);
delay(5000);
}
Вуаля, все работает!)
Комментарии
Отправить комментарий