roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 фев 2025, 05:31

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Сервоприводы Feetech SCS
СообщениеДобавлено: 01 июл 2017, 19:16 
Не в сети

Зарегистрирован: 19 июн 2016, 14:48
Сообщения: 53
Кто-нибудь имел дело с сервами Feetech серии SCS?

я пытаюсь запустить в связке с ArduinoDue.
Пока что использую тестовую программу с последовательностью команд для 2 сервоприводов:

Код:
SERVO.WritePos(1, 1023, 2000);
SERVO.WritePos(2, 1023, 2000);
delay(3000);
SERVO.WritePos(1, 20, 2000);
SERVO.WritePos(2, 20, 2000);
delay(3000);


и это работает глючно: работает только первый привод, второй не работает
если же добавить делей между командами

Код:
SERVO.WritePos(1, 1023, 2000);
delay(10);
SERVO.WritePos(2, 1023, 2000);
delay(3000);
SERVO.WritePos(1, 20, 2000);
delay(10);
SERVO.WritePos(2, 20, 2000);
delay(3000);


то все работает как надо: обе привода синхронно двигаются (ну естественно с делеем 10 милисекунд, который на глаз не заметен)

если поставить delay от 1 до 9 милисекунд, то в принципе тоже работает, но чем он меньше, тем больше вероятность того, что какой-то из приводов пропустит свое движение


соединение у меня 1000000 бод

вопрос: можно ли заставить все команды выполняться без делея между ними? или хотя бы с минимально возможным?
например такой код не помогает:
Код:
while (!Serial2.available()) {
         delay(1);
      }



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сервоприводы Feetech SCS
СообщениеДобавлено: 05 мар 2018, 19:56 
Не в сети

Зарегистрирован: 05 мар 2018, 19:45
Сообщения: 3
В ардуине (с точки зрения систем реального времени), всё сделано через одно место.
Поэтому когда Вы хотите послать сразу 2 посылки без разделения времени - происходит эпик фейл.
Что можно сделать?
1. Написать свою библиотеку для посылки сообщений из прерывания (в этом случае промежуток между 2-мя командами будет равен времен обмена с одной сервой)
2. Использовать 2 порта uart - для посылки одновременно (опять же требуется переделка библиотеки).
3. Таки прочитать документацию к серве и поменять заводские ID серв, чтобы в одной посылке посылать команды сразу всем. Тут я не уверен, что штатная библиотека может объединять посылки, но собрать самому посылки не сложно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO