Nuovo Thread creato per continuare una discussione iniziata QUI
Si vuole creare tramite trasmissione e ricezione di ultasuoni una rilevazione di distanza, per definire la posizione di un robot in modo da farlo rimanere all'interno di uno spazio definito.
Sensore a ultrasuoni
0
voti
g.schgor ha scritto:In realtà la mia proposta è (concettualmente) più semplice.
Penserei a un suono poco sopra la soglia di udibilità,
per poter sfruttare altoparlanti e microfoni convenzionali.
In estrema sintesi un altoparlante fisso emette un impulso di
ultrasuono (qualche decimo di secondo), che viene rilevato
da un microfono posto sul mezzo mobile che rileva e rettifica
il segnale riducendolo ad impulso.
Alla fine di questo impulso un altoparlante sul mezzo mobile
emette un eco (stessa frequenza, con durata di 1-2 decimi di secondo)
che vine ricevuto da un microfono della postazione fissa,
rilevato e rettificato, per produrre un impulso di risposta.
Ora se il tutto è governato da un microcontrollore che genera
l'impulso da trasformare in suono e riceve l'impulso di risposta,
è facile calcolare il ritardo fra la fine dell'impulso trasmesso
e l'inizio di quello ricevuto, ritardo proporzionale al tempo
impiegato dal suono in andata e ritorno.
Misurando questo intervallo di tempo con una definizione di
1/3 di ms, si dovrebbe ottenere ad es. su una distanza di 100m,
una precisione attorno ai 5cm (salvo variazioni della velocità
del suono con la temperatura).
Su questo concetto è allora fattibile un rilievo di posizione
del mezzo mobile, mettendo a distanza nota due trasmettitori/ricevitori
attivati in sequenza (utilizzando così la medesima frequenza)
e rilevando le 2 distanze del mezzo mobile.
Da queste due misure è quindi facilmente ricavabile la posizione
rispetto ad un'origine fissa.
Forse stiamo pensando alla stessa cosa ma in modo leggermente diverso
Quello che pensavo io è:
il robot manda un impulso di qualche ms ad una data frequenza (oltre i 22Khz quindi ultrasuoni) che viene ricevuta da delle stazioni periferiche che invieranno al robot una sequenza di impulsi alla stessa frequenza.
Questa sequenza deve essere diversa per ogni stazione,come un nome, per permettere al robot di rilevare, oltre alla distanza ottenuta dal tempo di risposta, da quale delle stazioni,di cui conosce l'ubicazione, ha ricevuto tale dato in modo da poter effettuare un calcolo trigonometrico sulla sua posizione all'interno del giardino.
Devo sapere da quale "ripetitore" arriva la distanza che desidero misurare.
Oppure si può fare al contrario, cioè il robot manda la sequenza e solo il ripetitore che la riconosce manda un impulso di risposta.
forse è piu semplice per la programmazione del robot demandando il riconoscimento della sequenza di impusi ad ogni singolo ripetitore.
0
voti
forse non mi sono espresso bene...
il micro(nel caso arduino) invierà impulsi con una data frequenza a un generatore che li trasformerà in ultrasuoni
Dal momento in cui finisce di "inviarli" si mette a contare quanto tempo ci mette a ricevere una risposta, quindi come da lei definito prima può calcolarne la distanza dal ripetitore.
Il ripetitore dovrà rilevare questa frequenza di impulsi, che sarà la chiave di riconoscimento,e inviare un impulso di risposta.
Ogni ripetitore dovrà quindi essere tarato per "rispondere" solo a una data frequenza, che sarà diversa per ogni ripetitore.
faccio un esempio:
Arduino genera tramite PWM una frequenza ipotetica di 10Hz per 500ms, e si mette in ascolto per calcolare il tempo di risposta, il ton del PWM alimenta un generatore a 24Khz collegato ad un emettitore piezoelettrico.
Ogni ripetitore riceverà questo segnale, ma solo quello che sarà tarato a 10Hz si attiverà generando in risposta 24Khz per 50ms .
Arduino ripeterà la stessa procedura ma questa volta a 15Hz e solo il ripetitore tarato per attivarsi con 15hz risponderà, e cosi via per ogni ripetitore.
Rilevata la distanza da almeno due ripetitori e conoscendo tramite memoria la distanza tra di loro puo calcolare trigonometricamente la posizione in cui si trova.
Tramite programmazione appropriata potra quindi decidere quale ripetitore interpellare al momento e comparare i risultati ottenuti per poter escludere un'eventuale errore generato da oggetti che possono falsificare una rilevazione deviandone le onde sonore.
Spero di essermi spiegato...
il micro(nel caso arduino) invierà impulsi con una data frequenza a un generatore che li trasformerà in ultrasuoni
Dal momento in cui finisce di "inviarli" si mette a contare quanto tempo ci mette a ricevere una risposta, quindi come da lei definito prima può calcolarne la distanza dal ripetitore.
Il ripetitore dovrà rilevare questa frequenza di impulsi, che sarà la chiave di riconoscimento,e inviare un impulso di risposta.
Ogni ripetitore dovrà quindi essere tarato per "rispondere" solo a una data frequenza, che sarà diversa per ogni ripetitore.
faccio un esempio:
Arduino genera tramite PWM una frequenza ipotetica di 10Hz per 500ms, e si mette in ascolto per calcolare il tempo di risposta, il ton del PWM alimenta un generatore a 24Khz collegato ad un emettitore piezoelettrico.
Ogni ripetitore riceverà questo segnale, ma solo quello che sarà tarato a 10Hz si attiverà generando in risposta 24Khz per 50ms .
Arduino ripeterà la stessa procedura ma questa volta a 15Hz e solo il ripetitore tarato per attivarsi con 15hz risponderà, e cosi via per ogni ripetitore.
Rilevata la distanza da almeno due ripetitori e conoscendo tramite memoria la distanza tra di loro puo calcolare trigonometricamente la posizione in cui si trova.
Tramite programmazione appropriata potra quindi decidere quale ripetitore interpellare al momento e comparare i risultati ottenuti per poter escludere un'eventuale errore generato da oggetti che possono falsificare una rilevazione deviandone le onde sonore.
Spero di essermi spiegato...
0
voti
A me adesso servirebbe un generatore per fare qualche prova a banco.
Qualche consiglio? Le mie risorse in fatto di componenti sono limitate.
I mie dubbi sono la portata di un emettitore piezoelettrico, riesce ad arrivare ad almeno 70m, che è la lunghezza del mio giardino?
e come ricevitore basta un microfono o serve qualcosa di specifico?
Vorrei cominciare col generare gli ultrasuoni e a riceverli con arduino in modo da avere qualche dato su cui lavorare...
Grazie della pazienza e dell'aiuto datomi.
Qualche consiglio? Le mie risorse in fatto di componenti sono limitate.
I mie dubbi sono la portata di un emettitore piezoelettrico, riesce ad arrivare ad almeno 70m, che è la lunghezza del mio giardino?
e come ricevitore basta un microfono o serve qualcosa di specifico?
Vorrei cominciare col generare gli ultrasuoni e a riceverli con arduino in modo da avere qualche dato su cui lavorare...
Grazie della pazienza e dell'aiuto datomi.
1
voti
Mi sembra più complicato ripeto, per le seguenti ragioni:
- non metterei il micro sul mezzo mobile
- l'uso di più frequenze costringe ad un range allargato,
con filtri molto selettivi per distinguerle
- i ricetrasmettitori piezolettrici hanno portata limitata,
oltre a maggiori costi rispetto a quelli di banda acustica (allargata)
- la necessità di codifica e decodifica, complica la soluzione
che invece è semplicissima con l'emissione di un solo impulso
dal posto fisso ed uno da quello mobile (alla stessa frequenza).
PS. vedo ora il tuo ultimo post.
Suggerirei di cominciare dal programma di rilevazione tempi,
per vedere se in effetti con Arduino è possibile raggiungere
la necessaria precisione (basterebbe un circuito di prova con
555 interfaciato ad Arduino)
- non metterei il micro sul mezzo mobile
- l'uso di più frequenze costringe ad un range allargato,
con filtri molto selettivi per distinguerle
- i ricetrasmettitori piezolettrici hanno portata limitata,
oltre a maggiori costi rispetto a quelli di banda acustica (allargata)
- la necessità di codifica e decodifica, complica la soluzione
che invece è semplicissima con l'emissione di un solo impulso
dal posto fisso ed uno da quello mobile (alla stessa frequenza).
PS. vedo ora il tuo ultimo post.
Suggerirei di cominciare dal programma di rilevazione tempi,
per vedere se in effetti con Arduino è possibile raggiungere
la necessaria precisione (basterebbe un circuito di prova con
555 interfaciato ad Arduino)
2
voti
Al di là della scelta della frequenza ti propongo un'altra possibiltà...
Tre trasmettitori (collegati tra loro via cavo) fissi che trasmettono ciascuno un impulso, tutti alla stessa frequenza, niente codici, solo si deve poter distingure il primo, ad esempio con una pausa più lunga Tp rispetto alle pause "standard" T (vedi disegno)...
Il ricevitore (mobile) misura la diffrenza di tempo di arrivo tra gli impulsi... e -noto T- calcola d2-d1 e d3-d1... queste due informazioni, insieme a le posizioni (note) dei trasmettitori fissi ed al fatto che comunque il robot si trova sulla terra (un piano) sono sufficienti a calcolare la posizione incognita
secondo me hai i vantaggi che:
non ti serve un trasmettirotre sul robot (anche più di uno potrebbero poi sfruttare la rete di trasmettitori...)
non hai codici da eleborare o circuiti a banda stretta che ritardano i fronti...
poi però i problemi... ne vedo due -comunque comuni a tutti i sistemi ad ultasuoni- le riflessioni.... e la velocità di propagazione che dipende dalla temperatura e pressione dell'aria....
per il primo problema, considerata la velocità moderata del robot credo potresti fare delle finestre temporali di maschera...
per il secondo non saprei, magari documentati sull'entità del problema...
Tre trasmettitori (collegati tra loro via cavo) fissi che trasmettono ciascuno un impulso, tutti alla stessa frequenza, niente codici, solo si deve poter distingure il primo, ad esempio con una pausa più lunga Tp rispetto alle pause "standard" T (vedi disegno)...
Il ricevitore (mobile) misura la diffrenza di tempo di arrivo tra gli impulsi... e -noto T- calcola d2-d1 e d3-d1... queste due informazioni, insieme a le posizioni (note) dei trasmettitori fissi ed al fatto che comunque il robot si trova sulla terra (un piano) sono sufficienti a calcolare la posizione incognita
secondo me hai i vantaggi che:
non ti serve un trasmettirotre sul robot (anche più di uno potrebbero poi sfruttare la rete di trasmettitori...)
non hai codici da eleborare o circuiti a banda stretta che ritardano i fronti...
poi però i problemi... ne vedo due -comunque comuni a tutti i sistemi ad ultasuoni- le riflessioni.... e la velocità di propagazione che dipende dalla temperatura e pressione dell'aria....
per il primo problema, considerata la velocità moderata del robot credo potresti fare delle finestre temporali di maschera...
per il secondo non saprei, magari documentati sull'entità del problema...
Se ti serve il valore di beta: hai sbagliato il progetto!
0
voti
g.schgor ha scritto:- non metterei il micro sul mezzo mobile
ok ho capito che non ho capito niente....
e come trasmetto alla stazione mobile l'informazione di chi invia l'impulso e a che distanza si trova?
Forse mi sto perdendo qualche passaggio o non riesco a capire.
g.schgor ha scritto:- la necessità di codifica e decodifica, complica la soluzione
che invece è semplicissima con l'emissione di un solo impulso
dal posto fisso ed uno da quello mobile (alla stessa frequenza).
ma come faccio a distinguere i vari ripetitori uno dall'altro?
0
voti
Slomo ha scritto:ma come faccio a distinguere i vari ripetitori uno dall'altro?
ma infatti nella mia soluzione l'unico ripetitore sarebbe il mezzo mobile
e non vi sarebbe confusione nei 2 dispositivi fissi, poiché verrebbero
abilitati alternativamente dal micro (pure fisso).
0
voti
Mi intrometto...
sto seguendo con molto interesse questa discussione. Gli ultrasuoni mi intrippano parecchio ma credo che per gli animali da giardino non siano il massimo. Siamo sicuri che sia la via più breve? io ho sempre usato il filo perché ho copiato da "ambrogio" & co. nella speranza che loro abbiano già fatto queste prove (scusate se sono molto semplificativo...)
Mi baso sulla mia esperienza e sul mio giardino: infatti ci sono una moltitudine di cose che credo limitino il sistema degli ultrasuoni. Per esempio degli avvallamenti, piante, piccole aiuole, il pallone dimenticato dal bimbo, la cariola o un ingresso di sassi del piave
voluto dalla moglie, dovre fra un ciotolo e l'altro ci sono delle voragini che inghiottono la ruota davanti, tanto da abbassare la lama e bloccarla mandando il robot in modalità INKAZZATURA!
Nei miei primi ragionamenti ero arrivato a studiare una specie di mappa che il robot poteva farsi sapendo di quanto avanzava e di quanti gradi girava... follia pura!!! nella vita reale del giardino, basta un'erbaccia che già cambia il modo di tagliare e devia la traiettoria.
Credo però che gli ultrasuoni possano servire come sensori per ostacoli o per poter aiutare il robot nel rientro in cuccia (cosa che per il momento non ho neanche vagliato).
Correggetemi se invece lo scopo era diverso...
sto seguendo con molto interesse questa discussione. Gli ultrasuoni mi intrippano parecchio ma credo che per gli animali da giardino non siano il massimo. Siamo sicuri che sia la via più breve? io ho sempre usato il filo perché ho copiato da "ambrogio" & co. nella speranza che loro abbiano già fatto queste prove (scusate se sono molto semplificativo...)
Mi baso sulla mia esperienza e sul mio giardino: infatti ci sono una moltitudine di cose che credo limitino il sistema degli ultrasuoni. Per esempio degli avvallamenti, piante, piccole aiuole, il pallone dimenticato dal bimbo, la cariola o un ingresso di sassi del piave
Nei miei primi ragionamenti ero arrivato a studiare una specie di mappa che il robot poteva farsi sapendo di quanto avanzava e di quanti gradi girava... follia pura!!! nella vita reale del giardino, basta un'erbaccia che già cambia il modo di tagliare e devia la traiettoria.
Credo però che gli ultrasuoni possano servire come sensori per ostacoli o per poter aiutare il robot nel rientro in cuccia (cosa che per il momento non ho neanche vagliato).
Correggetemi se invece lo scopo era diverso...
Chi c’è in linea
Visitano il forum: Nessuno e 25 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





