Witajcie!
Mam podstawy do tego aby sądzić, że uzyskanie milimetrowej dokładności w mierzeniu odległości przy pomocy ultradźwięków to fikcja. Przy odseparowanym nadajniku i odbiorniku, gdy wysyłam paczki 5 impulsów sygnału 40kHz co równe odstępy czasu, odbieram, w zależności od odległości interwały różniące się od siebie o 25us czyli dokładnie tyle ile trwa jeden okres sygnału. Wnioskuję, że w miarę zwiększania odległości odbiornik wychwytuje nie pierwszy ale dopiero drugi i dalsze okresy sygnału- pierwsze są za słabe i odbiornik wzmacnia kolejne przez rezonans. Zatem z danych, które uzyskałem wynikałoby, że w odległości 1m jest wychwytywany dopiero 4 i 5 okres (przy konkretnym wzmocnieniu, przy innym będzie to np 1 i 2) czyli dokładność najwyżej 3cm. Należałoby wziąć poprawkę na te 8mm (jeden okres 40kHz) w zależności od mierzonej odległości. Lecz to jest chyba niewykonalne bo granice są strasznie rozmyte.
Pomysłu, że da się uzyskać taką dokładność broni fakt, że nawet przy minimalnej odległości komparator do którego jest podłączony układ odbiorczy łapał a to pierwszy z okresów a to drugi. Zdaje się, że skoro zasięgu mam prawie 3m to bez problemu przy 5cm powinien odbierać już pierwszy okres. Nigdzie też nie napotkałem na wyjaśnienie tego problemu ani w przedstawionych projektach nie był omówiony.
Mam nadzieję, że przedstawiłem zrozumiale problem. Czy ktoś z forumowiczów natknął się wcześniej na coś takiego?
Układ odbiorczy z wyjściem do komparatora Atmega162 (do ain1)(ain0 do 2,5V- połowy zasilania):
Nadajnik jest zasilany 20V.
Program to po prostu przerwanie od komparatora . Przepisuje wtedy stan 32bitowego licznika (zrealizowanego dzięki przerwaniu overflow) i wysyłam przez usart do PC.
Badam różnice w odebranych stanach licznika. Stany różnią się od siebie o 500, 1000(przypadkowo), przy częstotliwości taktowania procesora 20Mhz.
Paczka 5 impulsów jest wysyłana 20, 40, 80, 120, razy na sekundę. Problem pojawia się zawsze.
Skoro w projektach na jakie trafiłem jest określony zazwyczaj zasięg maksymalny to uważam, że duże znaczenie ma właśnie to podbijanie kolejnych okresów przez rezonans. A w takim razie jak stwierdzi, który został wychwycony?
Czy układ odbiorczy wymaga przerobienia?
Czy nie jest to wina czegoś innego?
Mam podstawy do tego aby sądzić, że uzyskanie milimetrowej dokładności w mierzeniu odległości przy pomocy ultradźwięków to fikcja. Przy odseparowanym nadajniku i odbiorniku, gdy wysyłam paczki 5 impulsów sygnału 40kHz co równe odstępy czasu, odbieram, w zależności od odległości interwały różniące się od siebie o 25us czyli dokładnie tyle ile trwa jeden okres sygnału. Wnioskuję, że w miarę zwiększania odległości odbiornik wychwytuje nie pierwszy ale dopiero drugi i dalsze okresy sygnału- pierwsze są za słabe i odbiornik wzmacnia kolejne przez rezonans. Zatem z danych, które uzyskałem wynikałoby, że w odległości 1m jest wychwytywany dopiero 4 i 5 okres (przy konkretnym wzmocnieniu, przy innym będzie to np 1 i 2) czyli dokładność najwyżej 3cm. Należałoby wziąć poprawkę na te 8mm (jeden okres 40kHz) w zależności od mierzonej odległości. Lecz to jest chyba niewykonalne bo granice są strasznie rozmyte.
Pomysłu, że da się uzyskać taką dokładność broni fakt, że nawet przy minimalnej odległości komparator do którego jest podłączony układ odbiorczy łapał a to pierwszy z okresów a to drugi. Zdaje się, że skoro zasięgu mam prawie 3m to bez problemu przy 5cm powinien odbierać już pierwszy okres. Nigdzie też nie napotkałem na wyjaśnienie tego problemu ani w przedstawionych projektach nie był omówiony.
Mam nadzieję, że przedstawiłem zrozumiale problem. Czy ktoś z forumowiczów natknął się wcześniej na coś takiego?
Układ odbiorczy z wyjściem do komparatora Atmega162 (do ain1)(ain0 do 2,5V- połowy zasilania):
Nadajnik jest zasilany 20V.
Program to po prostu przerwanie od komparatora . Przepisuje wtedy stan 32bitowego licznika (zrealizowanego dzięki przerwaniu overflow) i wysyłam przez usart do PC.
Badam różnice w odebranych stanach licznika. Stany różnią się od siebie o 500, 1000(przypadkowo), przy częstotliwości taktowania procesora 20Mhz.
Paczka 5 impulsów jest wysyłana 20, 40, 80, 120, razy na sekundę. Problem pojawia się zawsze.
Skoro w projektach na jakie trafiłem jest określony zazwyczaj zasięg maksymalny to uważam, że duże znaczenie ma właśnie to podbijanie kolejnych okresów przez rezonans. A w takim razie jak stwierdzi, który został wychwycony?
Czy układ odbiorczy wymaga przerobienia?
Czy nie jest to wina czegoś innego?