Текущие результаты:
===============================================================================================================
Разработана прошивка ORC-32 для контроллера OR-AVR-M128-S совместимая по основным командам с SSC-32 которая с адаптированным Phoenix Excel Program (PEP) позволяет управлять шестиногом.
Видео одного из последних результатов от milkpower:
Видео одного из моих последних результатов:
Файл прошивки: download/file.php?id=15770
Чего адаптировать в PEP:
1. убрать все подстроки "3000 -" и вроде всё - не надо больше ничего инвертировать
Это всё в функции CalculateAllPWM()
2. для нормальной работы "Play Sequence" поправить функцию WaitForSSCReady(), а именно - проверку на ответ "." - было строгое сравнение с ".", а я сделал поиск подстроки заменив в последней строки тела функции
If strData<>"." Then GoTo SSCWait
на
If InStr(strData, ".") = 0 Then GoTo SSCWait
Где взять PEP:
Еще есть LynxTerm, там работает прямое управление сервами и макросы, скачать его можно тут:
===============================================================================================================
Исходный первый пост темы:
===============================================================================================================
Итак приступим!
Дока по SSC-32 по командам:
Репо проекта будет тут:
Общий порядок действий:
1. Берем ORFA;
2. Оставляем инициализацию;
3. Отрезаем обработку команд;
4. Вешаем таймер (срабатывание каждые 20мс), который будет обеспечивать движения с нужной скоростью;
5. Делаем структуру данных под обработку команд с заданной скоростью\временем выполнения;
6. Вешаем свой обработчик команд;
7. Работаем с сервами, вызывая
- Код: Выделить всё
void s4017_set_position(uint8_t n, uint16_t pos)
Обрабатывать будем для начала только команды:
# <ch> P <pw> S <spd> ... # <ch> P <pw> S <spd> T <time> <cr>
- пачка команд на сервы, <ch> - Номер сервы, <pw> - положение в какое хотим встать, <spd> - с какой скоростью в него идём, <time> - за сколько это надо выполнить. Как я понял S и T одновременно не используют, при этом T надо только одно - оно будет действовать на все сервы в этой команде.