Skip to content
/ gservo Public

Simple arduino project to work with dynamixel mx-12w servos using g-codes

License

Notifications You must be signed in to change notification settings

Unril/gservo

Repository files navigation

Инструкция

[TOC]

Изменение названия Bluetooth-модуля

  • Открыть скетч changeBtName.
  • В самом начале будут строки
static const char* name = "CAM-016"; // Max 20 characters!
static const char* pin = "1234"; // Strict 4 digits!
  • В первой строке вместо CAM-016 ввести нужное имя латиницей, не больше 20 символов.
  • При необходимости, во второй строке вместо 1234 ввести нужный пинкод, ровно 4 символа.
  • Подключить Arduino-Nano с отключенный Bluetooth-модулем к компьютеру.
  • Прошить её этим скетчем.
  • Отключить от компьютера и подключить Bluetooth-модуль.
  • Перезагрузить Arduino-Nano.
  • Светодиод должен загореться на несколько секунд, после чего мигнуть и потухнуть. После этого название и пин Bluetooth-модуля будут изменены.

Прошивка

  • Открыть скетч gservo.
  • В начале будут строки со значениями по умолчанию
Set defSettings()
{
    return {
            0.0f,                       // homing pull off, deg
            FVec{15000.0f, 15000.0f},   // speed, {x,y}, deg/min
            FVec{2000.0f, 2000.0f},     // acceleration, {x,y}, deg/sec^2
            FVec{0.0f, 0.0f},           // zero position, {x,y}, deg
            FVec::ofConst(0.05f),       // proportional gain
            FVec::ofConst(0.0f),        // integral gain 
            FVec::ofConst(0.01f),       // derivative gain
            FVec::ofConst(0.0f),        // punch
            FVec::ofConst(1.0f),        // torque
    };
}

Они соответствуют тому, что можно установить через $$. Их можно менять, чтобы не конфигурировать новые устройства вручную.

  • Прошить её этим скетчем.
  • Отключить от компьютера и подключить Bluetooth-модуль и сервоприводы.
  • Перезагрузить Arduino-Nano.
  • Светодиоды на обоих сервоприводах должны мигнуть один раз.
  • Подключить только серву для x координаты.
  • Ввести %0 254 1
  • Подключить только серву для y координаты.
  • Ввести %0 254 2
  • Подключить обе сервы.
  • Проверить, введя %1 1 1,%1 1 0,%1 2 1,%1 2 0. Это должно включить и выключить светодиод в начале на x серве, потом на y серве.

Настройка

Команда Назначение
Движение. Синтакс близок к g-кодам.
$H Передвинуться в нулевое положение.
g0 x1.2 y3.45 Быстрое движение в заданную позицию. Позиция задаётся в градусах. Используется скорость из настроек.
g1 x10 y20.3 f1000.0 Движение с заданной скоростью. Скрость задаётся через f. в гдадусах в минуту.
g0 x10 m2 Если в конце присутствует m2, то после окончания движение будет выведена текущая позиция.
x100 Передвинуть только ось x.
? Вывести текущее положение. Можно вызывать во время движения.
Работа напрямую с сервами. id является идентификатором сервы, которой будет подана команда. Если использовать id=254, то команда будет подана всем сервам.
%0 id newId Установить id сервы в новое значение newId.
%1 id val Переключить светодиод, где val принимает значения 0 или 1.
%2 id val Прочитать значение в регистре val.
%% Вывести справку.
Настройки, сохраняющиеся после отключения питания.
$$ Показать все настройки и их значения.
$1=255 Включить удержание обоих осей, если подано 255, отключить при любом другом значение. Не сохраняется при отключении.
$27=0 Сдвиг после хоуминга, градусы.
$110=15000.0 Скорость по x, градус в минуту. Установить в 0 для отключения ограничения по скорости.
$111=15000.0 Скорость по y, градус в минуту. Установить в 0 для отключения ограничения по скорости.
$120=2000.0 Ускорение по x, градус в секунду за секунду. Установить в 0 для отключения ограничения по ускорению.
$121=2000.0 Ускорение по y, градус в секунду за секунду. Установить в 0 для отключения ограничения по ускорению.
$140=0 Нулевое положение по x, градусы.
$141=0 Нулевое положение по y, градусы.
$200=0.05 Установить proportional gain для оси x, значение от 0 до 1.
$201=00.05 Установить proportional gain для оси y, значение от 0 до 1.
$210=0 Установить integral gain для оси x, значение от 0 до 1.
$211=0 Установить integral gain для оси y, значение от 0 до 1.
$220=0.01 Установить derivative gain для оси x, значение от 0 до 1.
$221=0.01 Установить derivative gain для оси y, значение от 0 до 1.
$230=0 Установить punch для оси x, значение от 0 до 1.
$231=0 Установить punch для оси y, значение от 0 до 1.
$240=1 Установить torque для оси x, значение от 0 до 1.
$241=1 Установить torque для оси y, значение от 0 до 1.
$250=1 Включить удержание для оси x, 0 или 1.
$251=1 Включить удержание для оси y, 0 или 1.

About

Simple arduino project to work with dynamixel mx-12w servos using g-codes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published