class Servo – 3-tråds hobbyservodrivrutin

Servo-objekt styr standardhobbyservomotorer med 3 trådar (jord, ström, signal).

Exempelanvändning:

import pyb

s1 = pyb.Servo(1)   # create a servo object on position P7
s2 = pyb.Servo(2)   # create a servo object on position P8

s1.angle(45)        # move servo 1 to 45 degrees
s2.angle(0)         # move servo 2 to 0 degrees

# move servo1 and servo2 synchronously, taking 1500ms
s1.angle(-60, 1500)
s2.angle(30, 1500)

Anteckning

Servo-objekten använder Timer(5) för att producera PWM-utgången. Du kan använda Timer(5) för servostyrning, eller för dina egna ändamål, men inte båda samtidigt.

Konstruktorer

class pyb.Servo(id: int)

Skapa ett servo-objekt. id är det 1-baserade servokanalsnumret; varje kanal är kopplad till ett fast header-stift och antalet kanaler beror på OpenMV Cam:

Kamera

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

pyb.Servo är inte tillgänglig på OpenMV Cam N6.

Metoder

angle(angle: int | None = None, time: int = 0) int | None

Om inga argument anges returnerar denna funktion den aktuella vinkeln.

Om argument anges ställer denna funktion in servons vinkel:

  • angle är vinkeln att flytta till i grader.

  • time är antalet millisekunder som ska tas för att nå den angivna vinkeln. Om det utelämnas flyttas servon så snabbt som möjligt till sin nya position.

speed(speed: int | None = None, time: int = 0) int | None

Om inga argument anges returnerar denna funktion den aktuella hastigheten.

Om argument anges ställer denna funktion in servons hastighet:

  • speed är hastigheten att ändra till, mellan -100 och 100.

  • time är antalet millisekunder som ska tas för att nå den angivna hastigheten. Om det utelämnas accelererar servon så snabbt som möjligt.

pulse_width(value: int | None = None) int | None

Om inga argument anges returnerar denna funktion det aktuella råa pulsbreddsvärdet.

Om ett argument anges ställer denna funktion in det råa pulsbreddsvärdet.

calibration(pulse_min: int | None = None, pulse_max: int | None = None, pulse_centre: int | None = None, pulse_angle_90: int | None = None, pulse_speed_100: int | None = None) Tuple[int, int, int, int, int] | None

Om inga argument anges returnerar denna funktion de aktuella kalibreringsdata, som en 5-tupel.

Om argument anges ställer denna funktion in tidskalibreringen:

  • pulse_min är den minsta tillåtna pulsbredden.

  • pulse_max är den största tillåtna pulsbredden.

  • pulse_centre är den pulsbredd som motsvarar mitten-/nollpositionen.

  • pulse_angle_90 är den pulsbredd som motsvarar 90 grader.

  • pulse_speed_100 är den pulsbredd som motsvarar en hastighet av 100.