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.