RoboxКомплект из сервопривода и датчика расстояния
V.4Лабораторный стенд Promobot
RRStudioПростое написание алгоритмов
TestDevicesТестирование оборудования и проверка связи
Настройка WSL2Windows Subsystem for Linux
TelegramНаписать в чат технической поддержки
class Servo_ppm():
"""Класс для работы с ОДНИМ из сервоприводов на плате.
Args:
* addr (int): Адрес устройства. 1-250
* master (ModbusRTU): объект посдеовательного порта
* servo_num номер сервопривода (1 или 2)
* start_pos начальная позиция для сервопривода,
raw-градусы сервопривода (-90 .. 90)
"""
def __init__(self, addr, master, servo_num, start_pos=0):
def set_torque(self, state):
"""Включение(отключение) питания обмоток двигателя
Args:
* state (int):
| 0 - отключение питания обмоток двигателя, обмотки замкнуты, двигатель в торможении.
| 1 - включение питания обмоток двигателя.
Returns:
* True если отправка команды прошла успешно
False если при отправке команды произошла ошибка
Raises:
None
"""
def set_command(self, command):
"""Отправить комманду в сервопривод.
Args:
* command (int(hex)): одна из доступных команд.
Разрешенные комманды: 0xDEAD, 0xAAAA
Returns:
* True если отправка команды прошла успешно
False если при отправке команды произошла ошибка
Raises:
None
"""
def set_point(self, value):
"""Установка угла для сервопривода, градусы
Args:
* value (int): Требуемое значение. от -90 до 90.
Returns:
* True если отправка команды прошла успешно
False если при отправке команды произошла ошибка
Raises:
None
"""
def get_data(self):
"""Чтение данных с сервопривода
Args:
None
Returns:
* Словарь с ключами:
| "Command"
| "Torque"
| "Angle"
| "Errors"
| "Current"
| "Voltage"
или пустой словарь, при ошибке
Raises:
None
"""
def read_touch(self):
"""Чтение данных с датчика
Args:
None
Returns:
Словарь c ключами:
| "Touch_1"
| "Touch_2"
или пустой словарь, при ошибке
Raises:
None
"""
class Main_ppm():
"""Класс для работы с ppm платой, одновременная работа с обоими сервоприводами.
Args:
* addr (int): Адрес устройства. 1-250
* master (ModbusRTU): объект посдеовательного порта.
* start_pos_1 начальная позиция для сервопривода 1
* start_pos_2 начальная позиция для сервопривода 2
"""
def __init__(self, addr, master, start_pos_1=0, start_pos_2=0):
def set_torque(self, state):
"""Включение(отключение) питания обмоток двигателя
Args:
* state (int):
| 0 - отключение питания обмоток двигателя, обмотки замкнуты, двигатель в торможении.
| 1 - включение питания обмоток двигателя.
Returns:
* True если отправка команды прошла успешно
False если при отправке команды произошла ошибка
Raises:
None
"""
def set_command(self, command):
"""Отправить комманду в сервопривод.
Args:
* command (int(hex)): одна из доступных команд.
Разрешенные комманды: 0xDEAD, 0xAAAA
Returns:
* True если отправка команды прошла успешно
False если при отправке команды произошла ошибка
Raises:
None
"""
def set_points(self, pos_1, pos_2):
"""Установка углов сервоприводов.
Args:
* pos_1 (int): Требуемое значение угла для сервопривода 1. от -90 до 90.
* pos_2 (int): Требуемое значение угла для сервопривода 2. от -90 до 90.
Returns:
* True если отправка команды прошла успешно
False если при отправке команды произошла ошибка
Raises:
None
"""
def get_data(self):
"""Чтение данных с сервопривода
Args:
None
Returns:
* Словарь с ключами:
| "Command"
| "Torque"
| "Angle_1"
| "Angle_2"
| "Errors"
| "Current"
| "Voltage"
или пустой, при ошибке
Raises:
None
"""
def read_touch(self):
"""Чтение данных с датчика касания
Args:
None
Returns:
Словарь c ключами:
| "Touch_1"
| "Touch_2"
или пустой, при ошибке
Raises:
None
"""