Servo Shield

O Servo Shield (v3) permite controlar até quatro servos de hobby padrão diretamente a partir da OpenMV Cam. O seu regulador integrado aceita uma tensão de entrada de 6–36 V no bloco de terminais e fornece 5,6 V com até 5 A — suficiente para alimentar simultaneamente a câmara e os servos a partir de uma única fonte.

Servo Shield

Para consultar a folha de dados completa, fotografias e informações de encomenda, visite a página do produto Servo Shield.

Destaques

  • Controlo de até quatro servos de hobby via P7 / P8 / P9 / P10

  • Entrada de 6–36 V no bloco de terminais (tolerante a inversão de polaridade)

  • 5,6 V com até 5 A em VIN — alimenta a câmara e os servos

  • Entrada ADC de 0–5 V com proteção contra sobretensão até ±36 V

  • E/S digital bidirecional de 0–5 V com adaptação de nível de 3,3 V para 5 V

Esquema de pinos

Servo Shield Pinout

Referência de pinos

Pino

Função

P6

Leitura AIN com adaptação de nível (0–3,3 V em P6)

P7

Servo 1 — GPIO bidirecional 3,3 V ↔ 5 V

P8

Servo 2 — GPIO bidirecional 3,3 V ↔ 5 V

P9

Servo 3 — GPIO bidirecional 3,3 V ↔ 5 V

P10

Servo 4 — GPIO bidirecional 3,3 V ↔ 5 V

Entrada PWR

Entrada larga de 6–36 V no bloco de terminais (tolerante a inversão de polaridade)

Entrada AIN

Entrada analógica no bloco de terminais

Saída VIN

5,6 V regulados, até 5 A combinados para servos e câmara

Linha 3,3V

Alimenta a eletrónica integrada do shield

Linha GND

Terra comum

Nota

A entrada AIN tem proteção contra sobretensão até ±36 V e aceita por defeito uma tensão de 0–5 V, que é reduzida para 0–3,3 V em P6. Ligue o shunt do modo 4–20 mA na parte posterior do shield para mudar AIN para uma entrada de corrente de 4–20 mA.

Nota

Cada pino de P6 a P10 está ligado à câmara através de um resistor de 0 ohm na parte posterior do shield. Retire o resistor de qualquer pino que pretenda utilizar para outra finalidade.

Nota

Na versão v2 do shield, os pinos P6–P9 são adaptadores de nível unidirecionais de 3,3 V → 5 V (apenas saída). P10 é uma linha digital de dreno aberto, com pull-up para 3,3 V no lado da câmara e 5 V no lado do pino do servo. Por defeito funciona como entrada — o shield adapta o nível de 0–5 V no pino do servo para 0–3,3 V em P10. Altere o jumper de solda integrado para configurar P10 como saída, adaptando o nível de 0–3,3 V em P10 para 0–5 V no pino do servo.

Utilização

Controle um servo de hobby a partir de qualquer pino de P7 a P10 com um sinal PWM de 50 Hz. O intervalo de largura de pulso varia consoante o servo, pelo que deve ajustar MIN_US e MAX_US ao seu modelo — os valores típicos rondam os 1000–2000 µs:

from machine import Pin, PWM
import time

MIN_US = 1000  # full-left pulse width (microseconds)
MAX_US = 2000  # full-right pulse width

servo = PWM(Pin("P7"), freq=50)

def angle(deg):
    pulse_us = MIN_US + (deg * (MAX_US - MIN_US)) // 180
    servo.duty_ns(pulse_us * 1000)

while True:
    angle(0)
    time.sleep(1)
    angle(90)
    time.sleep(1)
    angle(180)
    time.sleep(1)

Leia a entrada do bloco de terminais AIN (o resultado com adaptação de nível surge em P6):

from machine import ADC
import time

ain = ADC("P6")

while True:
    # 0–5 V on the AIN terminal scaled to 0–3.3 V on P6
    v = ain.read_u16() * 3.3 / 65535
    print("AIN:", v * (5.0 / 3.3), "V")
    time.sleep_ms(100)