ORFA Servo driver — различия между версиями
=DeaD= (обсуждение | вклад) (Новая страница: «== Драйвер сервоприводов == Драйвер позволяющий управлять сервоприводами, подключенными к ...») |
=DeaD= (обсуждение | вклад) (→Драйвер сервоприводов) |
||
Строка 3: | Строка 3: | ||
В этом драйвере всегда 2 регистра. Далее будем считать, что начальный регистр этого драйвера - XX, второй регистр YY. | В этом драйвере всегда 2 регистра. Далее будем считать, что начальный регистр этого драйвера - XX, второй регистр YY. | ||
+ | |||
+ | Количество управляемых сервоприводов - 16 для драйвера с UID=0x31, 32 для драйвера с UID=0x30. | ||
Типы запросов (регистр, данные…): | Типы запросов (регистр, данные…): | ||
− | # <code>XX M1 M2</code> — с помощью побайтовой маски M1 M2 установить, какие сервоприводы включить, а какие выключить. (для драйвера 0x31) | + | # <code>XX M1 M2</code> — с помощью побайтовой маски M1 M2 установить, какие сервоприводы включить, а какие выключить. (для драйвера с UID=0x31, а для драйвера с UID=0x30 все порты сервоприводов всегда включены). |
# <code>YY [{aa} {bb} {cc}]*</code> — установить положения сервоприводов (сервопривод {aa} в положение 0x{cc}{bb}). | # <code>YY [{aa} {bb} {cc}]*</code> — установить положения сервоприводов (сервопривод {aa} в положение 0x{cc}{bb}). | ||
Версия 16:35, 23 июня 2009
Содержание
Драйвер сервоприводов
Драйвер позволяющий управлять сервоприводами, подключенными к портам RoboGPIO или RoboServo, в зависимости от контроллера.
В этом драйвере всегда 2 регистра. Далее будем считать, что начальный регистр этого драйвера - XX, второй регистр YY.
Количество управляемых сервоприводов - 16 для драйвера с UID=0x31, 32 для драйвера с UID=0x30.
Типы запросов (регистр, данные…):
XX M1 M2
— с помощью побайтовой маски M1 M2 установить, какие сервоприводы включить, а какие выключить. (для драйвера с UID=0x31, а для драйвера с UID=0x30 все порты сервоприводов всегда включены).YY [{aa} {bb} {cc}]*
— установить положения сервоприводов (сервопривод {aa} в положение 0x{cc}{bb}).
Примеры
Определяем сколько драйверов в устройстве
Запрос:
L40 S40 00 00 S41 01 P
Ответ:
L40 SWAASR06P
Разбор:
- Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее).
- Второй запрос - S40 00 00 - отправим в устройство 0x40 номер регистра 00 и тип запроса 00 - получить количество драйверов, S41 01 - получить ответ 1 байт, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SR - начали получать ответ от устройства, 06 - получили 1 байт ответа (количество драйверов), P - конец ответа.
Определяем информацию об одном из драйверов
Запрос:
L40 S40 00 02 S41 06 P
Ответ:
L40 SWAASR003101001002P
Разбор:
- Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее).
- Второй запрос - S40 00 02 - отправим в устройство 0x40 номер регистра 00 и тип запроса 02 - получить информацию о драйвере 0x02, S41 01 - получить ответ 6 байт, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SR - начали получать ответ от устройства, 003101001002 - получили 6 байт ответа (информация о драйвере - 0x0031 - идентификатор тип драйвера, 0x01.0x00 - версия драйвера, 0x10 - номер первого регистра драйвера, 0x02 - количество регистров драйвера), P - конец ответа.