MicroPython:Библиотеки/pyb/Класс Servo: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[]</ref>= <syntaxhighlight lang="python"...»)
 
Нет описания правки
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=<ref>[]</ref>=
=Класс Servo – драйвер для 3-проводного сервомотора<ref>[http://docs.micropython.org/en/latest/library/pyb.Servo.html docs.micropython.org - class Servo – 3-wire hobby servo driver]</ref>=
 
В классе Servo реализовано управление стандартными любительскими сервомоторами с 3 проводами (для заземления, питания и передачи сигнала). На PyBoard есть 4 позиции для подключения сервомоторов: контакты с X1 по X4 – это сигнальные контакты, а рядом с ними находятся 4 группы контактов для питания и заземления.
 
Пример использования:
 
import pyb
 
s1 = pyb.Servo(1)  # создаем объект «s1» на позиции X1
s2 = pyb.Servo(2)  # создаем объект «s1» на позиции X2
 
s1.angle(45)        # двигаем мотор 1 на 45-градусную позицию
s2.angle(0)        # двигаем мотор 2 на 0-градусную позицию
 
# двигаем моторы 1 и 2 синхронно в течение 1500 миллисекунд:
s1.angle(-60, 1500)
s2.angle(30, 1500)
 
{{Спойлер|'''Примечание:''' ''Объекты Servo'' генерируют [[ШИМ]] при помощи ''таймера 5''. Его можно использовать и для управления [[сервомотор]]ами, и для других целей, но ни для того и другого одновременно.}}
 
== Конструкторы ==
 
* [[MicroPython:Библиотеки/pyb/Класс Servo/pyb.Servo()|pyb.Servo(id)]]
 
• Класс pyb.Servo(id) – создает объект Servo. В аргументе id можно задать число в диапазоне между «1» и «4» (для контактов с X1 по X4 соответственно).
 
== Методы ==
 
* [[MicroPython:Библиотеки/pyb/Класс Servo/Servo.angle()|Servo.angle([angle, time=0])]]
* [[MicroPython:Библиотеки/pyb/Класс Servo/Servo.speed()|Servo.speed([speed, time=0])]]
* [[MicroPython:Библиотеки/pyb/Класс Servo/Servo.pulse_width()|Servo.pulse_width([value])]]
* [[MicroPython:Библиотеки/pyb/Класс Servo/Servo.calibration()|Servo.calibration([pulse_min, pulse_max, pulse_centre[, pulse_angle_90, pulse_speed_100]])]]
* [[MicroPython:Библиотеки/pyb/Класс Servo/
 
• Servo.angle([angle, time=0]) – если не задать в этом методе никаких аргументов, он вернет позицию (в градусах), в которой данный момент стоит сервомотор. И, соответственно, если задать здесь аргументы, этот метод выставит сервомотор в нужную позицию:
o angle – позиция, в которую нужно выставить сервомотор (в градусах).
o time – количество миллисекунд, за которые сервомотор нужно переместить в заданную позицию. Если не задать этого аргумента, сервомотор переместится на заданную позицию с максимально возможной скоростью.
• Servo.speed([speed, time=0]) – если не задать никаких аргументов, этот метод вернет текущую скорость. А если задать аргументы, он задаст скорость перемещения сервомотора:
o speed – скорость, которую надо задать (между «-100» и «100»).
o time – количество миллисекунд, за которые сервомотор достигнет заданной скорости. Если не задать этот аргумент, сервомотор будет использовать максимально возможное ускорение.
• Servo.pulse_width([value]) – если не задать никаких аргументов, этот метод вернет текущее неформатированное ШИМ-значение. А если задать аргумент value, он задаст неформатированное ШИМ-значение.
• Servo.calibration([pulse_min, pulse_max, pulse_centre[, pulse_angle_90, pulse_speed_100]]) – если не задать никаких аргументов, этот метод вернет текущее калибровочное значение (в виде 5-элементного кортежа). А если задать аргументы, он, наоборот, задаст калибровку ШИМ:
o pulse_min – минимально допустимая ШИМ.
o pulse_max – максимально допустимая ШИМ.
o pulse_centre – значение ШИМ, соответствующее центральной/нулевой позиции.
o pulse_angle_90 – значение ШИМ, соответствующее 90-градусной позиции.
o pulse_speed_100 – значение ШИМ, соответствующее скорости 100.





Версия от 12:20, 11 октября 2020

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс Servo – драйвер для 3-проводного сервомотора[1]

В классе Servo реализовано управление стандартными любительскими сервомоторами с 3 проводами (для заземления, питания и передачи сигнала). На PyBoard есть 4 позиции для подключения сервомоторов: контакты с X1 по X4 – это сигнальные контакты, а рядом с ними находятся 4 группы контактов для питания и заземления.

Пример использования:

import pyb

s1 = pyb.Servo(1) # создаем объект «s1» на позиции X1 s2 = pyb.Servo(2) # создаем объект «s1» на позиции X2

s1.angle(45) # двигаем мотор 1 на 45-градусную позицию s2.angle(0) # двигаем мотор 2 на 0-градусную позицию

  1. двигаем моторы 1 и 2 синхронно в течение 1500 миллисекунд:

s1.angle(-60, 1500) s2.angle(30, 1500)

Примечание: Объекты Servo генерируют ШИМ при помощи таймера 5. Его можно использовать и для управления сервомоторами, и для других целей, но ни для того и другого одновременно.


Конструкторы

• Класс pyb.Servo(id) – создает объект Servo. В аргументе id можно задать число в диапазоне между «1» и «4» (для контактов с X1 по X4 соответственно).

Методы

• Servo.angle([angle, time=0]) – если не задать в этом методе никаких аргументов, он вернет позицию (в градусах), в которой данный момент стоит сервомотор. И, соответственно, если задать здесь аргументы, этот метод выставит сервомотор в нужную позицию: o angle – позиция, в которую нужно выставить сервомотор (в градусах). o time – количество миллисекунд, за которые сервомотор нужно переместить в заданную позицию. Если не задать этого аргумента, сервомотор переместится на заданную позицию с максимально возможной скоростью. • Servo.speed([speed, time=0]) – если не задать никаких аргументов, этот метод вернет текущую скорость. А если задать аргументы, он задаст скорость перемещения сервомотора: o speed – скорость, которую надо задать (между «-100» и «100»). o time – количество миллисекунд, за которые сервомотор достигнет заданной скорости. Если не задать этот аргумент, сервомотор будет использовать максимально возможное ускорение. • Servo.pulse_width([value]) – если не задать никаких аргументов, этот метод вернет текущее неформатированное ШИМ-значение. А если задать аргумент value, он задаст неформатированное ШИМ-значение. • Servo.calibration([pulse_min, pulse_max, pulse_centre[, pulse_angle_90, pulse_speed_100]]) – если не задать никаких аргументов, этот метод вернет текущее калибровочное значение (в виде 5-элементного кортежа). А если задать аргументы, он, наоборот, задаст калибровку ШИМ: o pulse_min – минимально допустимая ШИМ. o pulse_max – максимально допустимая ШИМ. o pulse_centre – значение ШИМ, соответствующее центральной/нулевой позиции. o pulse_angle_90 – значение ШИМ, соответствующее 90-градусной позиции. o pulse_speed_100 – значение ШИМ, соответствующее скорости 100.


<syntaxhighlight lang="python" enclose="div">

См.также

Внешние ссылки