Promobot Education

Logo

Платформы

RoboxКомплект из сервопривода и датчика расстояния

RookyРука-манипулятор

V.4Лабораторный стенд Promobot

Программное обеспечение

RRStudioПростое написание алгоритмов

TestDevicesТестирование оборудования и проверка связи

Настройка WSL2Windows Subsystem for Linux

Поддержка

TelegramНаписать в чат технической поддержки


Перейти в профиль на GitHub

Библиотека для работы с ppm платой (кисть, пальцы, датчик касания).

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

        """