Gestione segnali

ciao a tutti.... sto lavorando ad un progetto, che consiste in un idrofono collegato ad un arduino che riceve il segnale da un pinger subacqueo. Il segnale che arriva dal pinger serve a ricavare la posizione di un ipotetico sub o rov. Avevo intenzione di collegare ad arduino un lettore di sd card, dove registro i segnali in arrivo dal pinger e poi (in qualche modo) ne converto la posizione. Qualcuno mi potrebbe aiutare...

No; non mi é minimamente chiaro come un idrofono potrebbe rilevare una distanza ne cosa ha che fare con un sub. Ciao Uwe

c'è un sub che è equipaggiato con un pinger (se lo porta dietro nei suoi movimentu) che invia un segnale costantemente sempre uguale. Mentre un idrofono fisso, posto al di sotto di una boa riceve il segnale dal pinger e ne calcola la posizione. io dovrei registrare il segnale in qualche modo cosi da ricavarne la posizione. Ora spero si capisca meglio...

Un ricevitore non puó calcoare la distanza da un trasmettitore se non sono altri fattori conosciuti. La distanza si misura misurando il tempo di percorrenza del suono nell acqua. Se non sai quando viene emesso il segnale non sai quanto tempo é trascorso finche lo ricevi.

Devi conoscere o il momento di emisione segnale oppure avere piú ricevitori per tramite la differenza di tempo del arrivo del segnale poter calcolare (triangolare) la distanza. Visto che parliamo una distanza nello spazio servono almeno 3 ricevitori posizionati in punti diversi e interfacciati tra di loro.

Ciao Uwe

Tra l'altro i geofoni dovrebbero essere direzionali per poter fare la triangolazione.

cyberhs: Tra l'altro i geofoni dovrebbero essere direzionali per poter fare la triangolazione.

Perché?

Il mio problema non è la posizione. il mio problema è come registrare i suoni per poter elaborarli. Nel post iniziale ho parlato di idrofono, ma in realtà io possiedo tre idrofoni posti su tre boe differenti e disposte in formazione triangolare. Il mio problema è registrare questo suono proveniente dal pinger per poterlo elaborare. Ho visto per fortuna che ci sono alcune shield che permettono la registrazione dei suoni, ma non so quale sia più adatta ai miei scopi.

Uwe, immagina 3 geofoni ominidirezionali che ricevono il ping: le uniche informazione che possiamo desumere sono l'intensità del suono ricevuto da ciascun idrofono ed il ritardo di ricezione.

Come giustamente hai detto, il ritardo ci fornisce l'informazione di quanto è distante la sorgente da ciascun idrofono e, conoscendo le distanza tra i tre ricevitori, si riesce da fare il punto di triangolazione.

E la profondità della sorgente rispetto a quella dei ricevitori?

Su questo non abbiamo nessuna informazione o sbaglio?

la sorgente (pinger) deve essere distante al massimo 50m dai ricevitori (idrofoni). Per gli idrofoni si è ipotizzato di usare degli Aquarian H2a, mentre il pinger si ipotizza di usare un Sonitron SP7. L idea era di collegare gli idrofoni ad una shield audio per arduino (da definire) in modo da registrarne il suono e poi ricavarne la posizione.

cyberhs: Su questo non abbiamo nessuna informazione o sbaglio?

Infatti con solo tre boe non puoi calcolare un punto in uno spazio tridimensionale senza disporre di almeno un riferimento sul momento di invio del segnale dal beacon, basta pensare al caso in cui il beacon si trova equidistante dalle boe e la differenza tra i tempi di volo è zero :)

A me la profondità non interessa, restringendo il campo due dimensioni. Inoltre quando sarà equidistante e avrò il valore zero vorrà dire che le boe sono perfettamente sopra al sub e dovranno smettere di inseguire il sub. Detto questo, la posizione per me non problema. Il mio problema è come registrare i suoni in arrivo dal pinger per poter elaborarli.

Il problema probabilmente sara' "e poterli elaborare" ... Arduino ci sta dietro ad elaborare in tempo reale i ritardi di ricezione di 3 diversi ricevitori ? ... parliamo di suono in acqua, che viaggia a velocita' diversa che in aria (circa 1.4Km/s, invece dei circa 330m/s dell'aria)(edit: e che per di piu varia in funzione della profondita' e quindi della pressione), e quindi di possibili frazioni di millisecondo ...

Jason_Nathan: Inoltre quando sarà equidistante e avrò il valore zero vorrà dire che le boe sono perfettamente sopra al sub e dovranno smettere di inseguire il sub.

Mi sa tanto che hai le idee un pochino confuse su quello che puoi fare con tre misure di cui l'unica informazione utile è la differenza temporale tra queste. Quello che ti serve realmente è il vettore delle misure e senza un riferimento temporale, ovvero l'istante di partenza del ping, non lo puoi ottenere.

Il posizionamento è una parte che non mi compete. Il mio compito, come ho cercato di spiegare, è poter registrare il segnale in arrivo dal pinger per poterlo elaborare. Volevo un semplice consiglio, se ad esempio esiste una shield o qualcos'altro che registri il segnale e mi permetta di elaboralo.

Jason_Nathan: Il mio compito, come ho cercato di spiegare, è poter registrare il segnale in arrivo dal pinger per poterlo elaborare.

Dato che ti servirà avere i tre segnali perfettamente correlati tra loro unica soluzione possibile è usare un data recoder a tre canali in gradi di registrare segnali audio senza distorcerli, ovvero con Arduino non ci fai nulla.

Astro: ci sono sistemi, ma decisamente molto piu evoluti di una MCU (:P), che lo fanno con due soli ricevitori ... come ad esempio quelli della Teledyne-Benthos ... i cui sensori sono ognuno in grado di rilevare sia la direzione del segnale sul piano verticale (copertura di 360 gradi, dichiarati dal produttore) che l'elevazione rispetto alla verticale (azimuth da +90 a -50 gradi, sempre dichiarati dal produttore) ... ma a parte i sensori in se (dei quali pare non esista uno schema interno accessibile al pubblico), il fatto che sembrano funzionare contemporaneamente con 3 diverse frequenze (9-14KHZ + 16-21KHz + 22-26KHz, dai pochi dati tecnici disponibili), che non si limitano ad emettere "ping" ma trasmettono stringhe complesse di dati (sono definiti "modem acustici" , e la ridondanza dati e' dichiarata "1/2 rate convolutional coding mulitpath guard period selection MFSK and PSK modulation schemes" , qualsiasi cosa intendesse chi ha scritto il manuale con quella frase :P), e che utilizzano un sistema DSP ad alta velocita' specificamente costruito per quell'uso, per il resto non sembrano troppo difficili da riprodurre ... :grin: :grin: :grin:

Comunque mi sa che e' meglio non chiedergli il prezzo del sistema completo, se non si e' seduti e con un flacone di cardiotonico in mano :P :D :D :D

Piu seriamente, per quanto riguarda il non avere un dato di inizio della trasmissione, sarebbe in teoria possibile eseguire una stima di massima (ma probabilmente non con soli tre ricevitori) senza il dato della profondita', calcolando i ritardi a partire dal primo dei segnali ricevuti ed effettuando poi delle medie ... ma resterebbe una stima di massima ... potrebbe giusto servire per quello che vuole fare lui, cioe' sapere quando le tre boe si trovano equidistanti dal sub, ma solo in quel caso darebbero un risultato relativamente preciso, per il resto no ... e comunque rimango dubbioso sul fatto che arduino sia in grado di maneggiare in tempo reale dati del genere ... non servirebbe una potenza di calcolo maggiore di quella disponibile, per avere una precisione decente ?

Etemenanki:

Astro: ci sono sistemi, ma decisamente molto piu evoluti di una MCU

So che esiste roba simile, però non usano due idrofoni come sensori :) Come hai detto meglio non chiedere il prezzo se non si dispone di un budget molto, ma molto, alto :D

il segnale è uno soltanto, proveniente da un solo pinger. Mentre i ricevitori sono tre e hanno un tempo comune. Tramite la differenza di tempo dell' arrivo del segnale posso calcolare (triangolare) la distanza. Il ritardo ci fornisce l'informazione di quanto è distante la sorgente da ciascun idrofono e, conoscendo le distanza tra i tre ricevitori, si riesce da fare il punto di triangolazione. Io vorrei sapere se arduino con qualche shield o accrocchio ha la possibilità di registrare ed elaborare questi segnali.

Jason_Nathan: Il ritardo ci fornisce l'informazione di quanto è distante la sorgente da ciascun idrofono e, conoscendo le distanza tra i tre ricevitori, si riesce da fare il punto di triangolazione.

Non ci siamo, senza conoscere l'esatta distanza tra il trasmettitore e i ricevitori non vai da nessuna parte, solo con i ritardi tra i segnali non puoi sapere la distanza con la sorgente, sai solo che rispetto al primo segnale ricevuto gli altri due provengono da una distanza maggiore, ma questo non basta per risolvere una piramide triangolare visto che ti manca il dato base, la distanza ZERO.

Ma questi segnali come sono? Un segnale analogico? Un segnale digitale? Varia tra 0V e 5V, 12V, 24V? Oppure può assumere anche valori negativi? Oppure siamo nell’ordine dei mV?