Servo
Сервоприводы подключаются через стандартное трехпроводное соединение:
- питание: обычно красный провод, который должен быть подключен к источнику питания +5В.
- земля: обычно черный или коричневый провод, который должен быть подключен к земле платы и источника питания.
- сигнал: обычно желтый, оранжевый или белый провод, который должен быть подключен к GPIO платы.
Никогда не подключайте провод питания к GPIO, иначе ваша плата может быть повреждена.
Чтобы использовать сервопривод в вашей программе, вам необходимо выполнить следующие действия:
-
Подключить сервопривод с помощью функции servo.attach(..). Это возвращает экземпляр сервопривода, который вы должны сохранить в переменной.
-- Attach the servo to GPIO26 s = servo.attach(pio.GPIO26)
-
Передавать значения сервоприводу для его перемещения, используя функцию write экземпляра.
-- Move the servo to the 45º position s:write(25)
-
Отсоединить экземпляр сервопривода, когда он больше не нужен:
-- 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)