Servo

Servo

Сервоприводы подключаются через стандартное трехпроводное соединение:

  • питание: обычно красный провод, который должен быть подключен к источнику питания +5В.
  • земля: обычно черный или коричневый провод, который должен быть подключен к земле платы и источника питания.
  • сигнал: обычно желтый, оранжевый или белый провод, который должен быть подключен к GPIO платы.

Никогда не подключайте провод питания к GPIO, иначе ваша плата может быть повреждена.

Чтобы использовать сервопривод в вашей программе, вам необходимо выполнить следующие действия:

  1. Подключить сервопривод с помощью функции servo.attach(..). Это возвращает экземпляр сервопривода, который вы должны сохранить в переменной.

    -- Attach the servo to GPIO26
    s = servo.attach(pio.GPIO26)
  2. Передавать значения сервоприводу для его перемещения, используя функцию write экземпляра.

    -- Move the servo to the 45º position
    s:write(25)
  3. Отсоединить экземпляр сервопривода, когда он больше не нужен:

    -- Detach the servo
    s:detach()

instance = servo.attach(pin)

Создать новый экземпляр сервопривода.

Аргументы:

  • pin: GPIO для использования сигнала сервопривода. Используйте определенные константы в модуле PIO для этого, например, pio.GPIO126.

Возвращает: экземпляр сервопривода или исключение. Вы должны сохранить этот экземпляр в переменной для дальнейших операций с ним.

-- Attach the servo to GPIO26
s = servo.attach(pio.GPIO26)

instance:detach()

Отсоединить сервопривод и освободить все ресурсы, используемые сервоприводом.

Аргументы: нет.

Возвращает: ничего или исключение.

-- Detach the servo
s:detach()

instance:write(value)

Записать значение в экземпляр сервопривода, управляя движением сервопривода в соответствии с типом сервопривода:

  • Для стандартных сервоприводов: значение — это абсолютное положение сервопривода, выраженное в градусах. Обычно значение варьируется от 0º до 180º. В этом случае запись нового значения перемещает сервопривод из текущего положения в новое положение, после чего он останавливается.

  • Для сервоприводов с непрерывным вращением: значение также выражается в градусах, где 0º — это полная скорость против часовой стрелки, 180º — полная скорость по часовой стрелке, а 90º — отсутствие движения. В этом случае запись нового значения изменяет направление вращения сервопривода или скорость вращения.

Аргументы:

  • value (значение): значение для записи, выраженное в градусах.

Возвращает: ничего или исключение.

-- Attach the servo to GPIO26
s = servo.attach(pio.GPIO26)

-- Move an standard servo to the 45º position
s:write(45)
-- Attach the servo to GPIO26
s = servo.attach(pio.GPIO26)

-- Move a continuous rotation servo clock wise at full-speed
s:write(180)