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.
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¶
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)