• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
da una i arrivano elaborare dati camera che

Elaborare i dati che arrivano da una camera
#1
Buonasera a tutti.
Sto cercando info su l'elaborazione dei dati dai sensori e telecamere CCD e CMOS per provare a realizzare il software per Autoguida di un telescopio.
Il concetto è di istallare un sensore sul cercatore e centrare la stella o il pianeta sul reticolo del cercatore e start il programma. Quando la stella si allontana da centro il sistema comanda dei motori per riportarla in posizione.
per il collegamento dei motori non vi sono problemi, ma non ho idea come gestire i dati dei pixel inviati dal sensore.
Qualunque info è ben accetta
Franco
Risposta
#2
stai cercando di creare un sistema a inseguimento.
credo ci siano molti sistemi, dall'utilizzo di software dedicato (che non conosco), a analizzare l'immagine e comprenderne lo spostamento, a usare usare la IA.

Qui un progetto che usa un software dedicato (Stellarium)

oppure, quel che era venuto in mente a me, forse più semplice per certi versi, è usare la libreria OpenCV
ammettendo di avere un Raspberry Pi e un camera module dedicato, l'approccio migliore è dividere il problema in due fasi: individuazione del centroide e correzione dell'errore.. mi sono fatto aiutare dalla AI per avere una pianificazione del progetto a scopo didattico:

1. Individuazione della stella (Computer Vision)
Invece di algoritmi complessi, usa la libreria OpenCV in Python. Il metodo più lineare è il seguente:
  • Grayscale & Blur: Converti l'immagine in bianco e nero e applica un leggero filtro Gaussian Blur per eliminare il rumore del sensore.
  • Thresholding (Soglia): Applica una soglia per isolare solo i pixel più luminosi (la stella).
  • Momenti dell'immagine: Usa la funzione cv2.moments() per calcolare il baricentro (centroide) della macchia bianca.
    • Il centro della stella sarà alle coordinate $(x, y)$.
    • L'errore sarà $E_x = x_{centro\_immagine} - x_{stella}$ e $E_y = y_{centro\_immagine} - y_{stella}$.


2. Algoritmo di Controllo: Il "P" di PID
Per muovere i servomotori in modo fluido, non basta un comando "acceso/spento". L'approccio più semplice ed efficace è un Controllo Proporzionale (P):
  • Calcoli l'errore (quanti pixel mancano al centro).
  • Moltiplichi l'errore per una costante $K$ (guadagno).
  • Muovi il servo di un angolo proporzionale al risultato.
Esempio: Se la stella è spostata di 10 pixel e $K = 0.1$, il servo si muoverà di 1 grado. Se è spostata di 2 pixel, si muoverà di 0.2 gradi. Questo evita oscillazioni violente.

3. Struttura del Software (Pseudo-codice)
Codice:
mport cv2
import time

# Inizializzazione camera e servi
center_x, center_y = (320, 240) # Esempio per risoluzione 640x480
k_prop = 0.05 # Costante di guadagno da calibrare

while True:
    frame = camera.capture()
    # 1. Pre-processamento
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    _, thresh = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY)
    
    # 2. Trova il centroide
    M = cv2.moments(thresh)
    if M["m00"] != 0:
        cX = int(M["m10"] / M["m00"])
        cY = int(M["m01"] / M["m00"])
        
        # 3. Calcola l'errore e muovi i servi
        error_x = center_x - cX
        error_y = center_y - cY
        
        move_servo_pan(error_x * k_prop)
        move_servo_tilt(error_y * k_prop)

Considerazioni critiche
  • FPS e Esposizione: Le stelle sono deboli. Dovrai impostare un tempo di esposizione lungo nella Pi Camera, il che ridurrà i frame al secondo (FPS). Il software deve essere in grado di gestire un aggiornamento lento (es. 1 correzione al secondo).
  • Backlash (Gioco meccanico): I servomotori economici hanno spesso dei giochi meccanici. Se il telescopio è pesante, considera l'uso di motori passo-passo (stepper) con riduzione, che offrono molta più precisione per l'astronomia.
  • Rotazione di campo: Se usi una montatura altazimutale (su/giù, destra/sinistra), ricorda che per esposizioni molto lunghe le stelle sembreranno ruotare su se stesse, ma per un semplice puntamento al centro il sistema descritto sopra funzionerà perfettamente.
Risposta
#3
Ah, su Raspberry Pi Official Magazine di Febbraio, c'è uno speciale dedicato all'osservazione delle stelle.
Lo stiamo traducendo ora.
L'originale in inglese è qui
Per la nostra traduzione occorre aspettare ancora una settimana o due.
Risposta
#4
Buongiorno,
Comunque l'idea è molto interessante.
Spero che tu abbia pensato alla pubblicazione del progetto.
Saluti
LaPa
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect