🧪 Stanno arrivando nuovi tutorial — dal braccio robotico al sensore
Vai al contenuto
Acquista questo prodottoNegozio ufficialeSito ufficiale

Camera gimbal 2-DOF

Acquista nel negozio

Presentazione

Piattaforma di stabilizzazione camera open source 2-DOF. Controllo Python, tracking colore, rilevamento volto e tracking automatico del target.

Caratteristiche

  • 2 DOF (Pitch/Yaw) servo
  • Tracking colore, volto, QR code
  • Python puro, facile da estendere
  • Camera USB + servo seriali
  • Open source: GitHub

Specifiche

ParametroSpec
DOF2 (Pitch + Yaw)
ServoServo bus seriali (SCS)
InterfacciaUSB seriale
CameraUSB UVC
TrackingColore/volto/QR
LinguaggioPython 3

Guida rapida

Collegamento hardware

  1. Collegare il servo all'interfaccia del bus seriale
  2. Collegare il modulo USB-seriale a computer/Jetson/Raspberry Pi
  3. Montare la camera sul supporto del gimbal
  4. Collegare la camera USB

Installare le dipendenze

bash
pip install -r requirements.txt
# Oppure installazione manuale
pip install opencv-python pyserial numpy

Controllo base

python
from sc_servo import SCServo, Gimbal
servo = SCServo("COM3")  # Linux: /dev/ttyUSB0
servo.connect()
gimbal = Gimbal(servo)
gimbal.enable_all()
gimbal.set_angle(0, 30)   # yaw
time.sleep(1)
gimbal.set_angle(1, -20)  # pitch

Tracking colore

python
import cv2, sys
sys.path.append('../src')
from sc_servo import SCServo, Gimbal

cap = cv2.VideoCapture(0)
servo = SCServo("COM3"); servo.connect()
gimbal = Gimbal(servo); gimbal.enable_all()

while True:
    ret, frame = cap.read()
    if not ret: break
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    mask = cv2.inRange(hsv, (0,100,100), (10,255,255))
    contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    if contours:
        largest = max(contours, key=cv2.contourArea)
        x,y,w,h = cv2.boundingRect(largest)
        cx, cy = x+w//2, y+h//2
        fh, fw = frame.shape[:2]
        yaw = int((cx/fw - 0.5) * 180)
        pitch = int((0.5 - cy/fh) * 90)
        gimbal.set_angle(0, max(-90, min(90, yaw)))
        gimbal.set_angle(1, max(-45, min(45, pitch)))
    cv2.imshow('Color Tracking', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'): break

Funzionalità avanzate

Rilevamento del volto

Il file src/detectors/face_detector.py del repository fornisce un rilevatore di volti basato su OpenCV DNN, utilizzabile per il tracciamento automatico del volto.

Tracking automatico

L'esempio examples/auto_tracking_demo.py del repository implementa un flusso di tracking automatico completo, che include selezione del target, controllo PID e inseguimento fluido.

FAQ

Q: La connessione seriale fallisce?

A: Verificare la porta. Windows COMx, Linux /dev/ttyUSBx.

Q: Il servo non risponde?

A: Verificare l'alimentazione (SCS: 6-8.4V esterna).

Q: Tracking instabile?

A: Regolare PID, ridurre la risoluzione.

Supporto