Servo Shield¶
O Servo Shield (v3) aciona até quatro servos de modelismo padrão diretamente a partir da OpenMV Cam. Seu regulador embarcado aceita uma entrada de 6–36 V no bloco de terminais e fornece 5,6 V a até 5 A — o suficiente para alimentar tanto a câmera quanto os servos a partir de uma única fonte.
Para o datasheet completo, fotos e informações de compra, consulte a página do produto Servo Shield.
Destaques¶
Acione até quatro servos de modelismo via P7 / P8 / P9 / P10
Entrada de 6–36 V no bloco de terminais (tolerante a tensão reversa)
5,6 V a até 5 A em VIN — alimenta a câmera e os servos
Entrada ADC de 0–5 V com proteção contra sobretensão até ±36 V
I/O digital bidirecional de 0–5 V com ajuste de nível de 3,3 V para 5 V
Pinagem¶
Referência de pinos¶
Pino |
Função |
|---|---|
P6 |
Leitura de AIN com nível ajustado (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 |
PWR in |
Entrada ampla de 6–36 V no bloco de terminais (tolerante a tensão reversa) |
AIN in |
Entrada analógica no bloco de terminais |
VIN out |
5,6 V regulados, até 5 A combinados para os servos e a câmera |
Trilho 3.3V |
Alimenta a eletrônica embarcada do shield |
Trilho GND |
Terra comum |
Nota
O AIN é protegido contra sobretensão até ±36 V e, por padrão, é uma entrada de tensão de 0–5 V, reduzida para 0–3,3 V em P6. Faça a ponte do shunt do modo 4–20 mA na parte traseira do shield para alternar o AIN para uma entrada de loop de corrente de 4–20 mA.
Nota
Cada um dos pinos P6–P10 é ligado à câmera através de um resistor de 0 ohm na parte traseira do shield. Remova o resistor de qualquer pino que você queira reaproveitar para uso não relacionado.
Nota
Na versão v2 do shield, P6–P9 são ajustadores de nível unidirecionais de 3,3 V → 5 V (apenas saída). P10 é uma linha digital open-drain, com pull-up de 3,3 V no lado da câmera e 5 V no lado do pino do servo. Por padrão, é uma entrada — o shield ajusta o nível de 0–5 V no pino do servo para 0–3,3 V em P10. Altere o jumper de solda embarcado para inverter P10 em uma saída, ajustando o nível de 0–3,3 V em P10 para 0–5 V no pino do servo.
Uso¶
Acione um servo de modelismo a partir de qualquer um dos pinos P7–P10 com um sinal PWM de 50 Hz. A faixa de largura de pulso varia entre servos, então ajuste MIN_US e MAX_US para corresponder aos seus — valores típicos ficam em torno de 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 AIN do bloco de terminais (o resultado com nível ajustado aparece 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)