Skocz do zawartości

Wykrywanie dźwięku o danej częstotliwości


kertoiP

Pomocna odpowiedź

Jest to możliwe, wokół odbiornika i nadajnika ustawione były różne przedmioty, one same też były całkiem blisko siebie.

Pod ręką mam jedynie coś takiego, wiem szkoda słów, ale na szybko niczego lepszego nie dostanę:

https://botland.com.pl/moduly-radiowe/3191-modul-radiowy-nadajnik-fs100a-odbiornik-433-mhz.html

Docelowo myślałem o takim module:

http://electropark.pl/radiowa-rf/7596-rfm69hw-868s2-modul-radiowy-868mhz-transceiver.html

Ma stosunkowo małe wymiary i modulacje o których wspominałeś. ATtiny już całkowicie odpada w tej sytuacji - komunikacja w prawie wszystkich modułach odbywa się za pomocą SPI. Wrzucę zamiast niego jakiegoś słabszego STM32.

Nie jestem jeszcze pewien czy to ma być transceiver, czy tylko nadajniki w beaconach i odbiornik w platformie. Okaże się.

Jeżeli są stałe, nie bardzo duże opóźnienia, to powinno to jakoś działać, ale jest tutaj wiele niewiadomych.

Link do komentarza
Share on other sites

Komunikację z RFM69 czy innymi podobnymi robisz po 4 drutach. Jemu jest wszystko jedno czy po stronie procesora będzie sprzętowy SPI czy krótka funkcja machająca pinami. Zadziała z ATtiny, z ATmegą i z STM na pewno, niezależnie od tego czy zrobisz software czy hardware SPI.

No tak, to co masz to już desperacja, ale spróbuj. Trzeba samemu kodować wysłany bitstream (bo w nadajniku jest tylko tranzystor robiący za kluczowany generator) a po drugiej stronie zająć się filtrowaniem śmieci, odszukiwaniem zegara bitów w rozbiegówce, synchronizacją do niego, deserializacją, enkapsulacją danych z ramek, kontrolą błędów itd. Na szczęście są jakieś biblioteki, przynajmniej sprawdzisz ile są warte.. Mam nadzieję że nie okaże się, że zrobili bezdrutowy UART bo tak sobie ktoś wyobrażał komunikację radiową.

Link do komentarza
Share on other sites

Podsumowanie:

1. Nadawanie dźwięku:

Mając pod ręka płytkę z STM nadawałem nią sygnał podobnie jak poprzednio, zmieniając naprzemiennie stany na dwóch pinach z częstotliwością 40kHz. Przy napięciu 3.3V nie był to silny sygnał, ale wystarczający na potrzeby testów.

2. Wykrywanie dźwięku:

Prowizoryczny układ złożony z LM386 ze wzmocnieniem 200 oraz ATtiny13 spisał się lepiej niż się spodziewałem. Przy nadajniku i odbiorniku zwróconymi ku górze i stożku rozpraszającym nad nadajnikiem do odległości 70cm było jeszcze całkiem stabilnie, później sygnał zaczynał przerywać. Układ działał w następujący sposób: najpierw na ADC mierzony był sygnał wychodzący z detektora obwiedni i jeżeli przekroczył dany próg, na jednym z pinów zapalała się dioda. Jak na bazowy układ bez dodatkowego wzmocnienia i filtra, z najprostszym detektorem obwiedni wynik zadowalający. Z racji tego, że sygnał wyjściowy nie jest rozpoznawany od razu, tylko narasta i dopiero osiąga pewien zadany próg detekcji w zależności od jego siły, trzeba będzie uwzględnić ten czynnik w programie, tzn. im dalej jest nadajnik od odbiornika tym dłużej trwa osiągnięcie przez sygnał danego progu (chyba, że zastosuję VGA).

3. Komunikacja radiowa:

Niestety było to najsłabsze ogniwo. Po pierwszych testach straciłem nadzieję, że cokolwiek da się uzyskać z tych modułów, cena adekwatna do jakości. Co prawda były jakieś tam odczyty, ale sygnał tak przerywał i był słaby, że w praktyce nie dało to żadnych rezultatów.

4. Obliczanie odległości:

Docelowy mikrokontroler będzie taktowany co najmniej 72MHz, co daje możliwość zliczenia czasu z w miarę dużą dokładnością, a prawdopodobnie i tak największy błąd będzie stał po stronie ukłądu nadajnik ultradźwiękowy - odbiornik, więc nie powinien to być problem.

Do zrobienia:

1. Kupić nadajnik i odbiornik o większej średnicy (obecnie 10mm) w celu zwiększenia mocy i wykrywalności sygnału.

2. Zrobić lepszy wzmacniacz zasilany napięciem symetrycznym o większym, regulowanym ręcznie (za pomocą potencjometru) wzmocnieniem i filtrem środkowoprzepustowym. Najtrudniejsze zadanie.

3. Zrobić lepszy detektor obwiedni, np. na dedykowanym układzie.

4. Dodać driver do nadajnika np. taki jak w HC-SR04 (MAX232).

5. Zaopatrzyć się w lepsze moduły radiowe. Czy do bliskich dystansów takich jak np. 3m

potrzebna będzie do nich antena?

6. Wymienić ATtiny w stacji odbiorczej na mocniejszy mikrokontroler, aby móc przetestować różne warianty systemu.

Link do komentarza
Share on other sites

Akurat profesjonalne VGA mają swoje wymagania co do zasilania, ale Ty masz jeszcze pewne koła ratunkowe. Jeżeli założysz sobie tor analogowy zasilany asymetrycznie, to wciąż nie musi to być jakaś chała. Pokazałem Ci pewną możliwość, ale a) są VGA zasilane z +5V, b) pomyśl o regulacji wzmocnienia potencjometrem cyfrowym. Uzupełniając zwykły stopień wzmacniacza operacyjnego takim potencjometrem o powiedzmy 256 krokach masz dużo lepszą gradację niż przy PGA z 5 czy 8 różnymi wzmocnieniami. Dając dwa takie stopnie szeregowo i odpowiednio wymyślając algorytm "przestrajania" potencjometrów możesz uzyskać całkiem płynną zmianę wzmocnienia w bardzo szerokim zakresie. Trzeba co prawda wysyłać dużo liczb przez SPI, ale to jest ten koszt. Jeden podwójny potencjometr np taki:

http://www.microchip.com/wwwproducts/en/MCP42010

i jeden podwójny wzmacniacz operacyjny powinny załatwić problem wzmocnienia toru. Nawet jeśli nie od razu zrobisz odpowiednią automatykę sterowaną upływem czasu, to regulacja programowa jest dużo fajniejsza niż kręcenie wkrętaczkiem. W końcu, analizując poziomy sygnału dla różnych położeń stacji sam znajdziesz krzywą wg której powinno się zmieniać wzmocnienie w zależności od odległości/czasu by pewnie wykrywać impuls.

Antena jest elementem toru, im jest lepsza tym mniej mocy musisz wypromieniować i tym więcej sygnału dostaje się do wejścia odbiornika. Jakaś zawsze być musi, nawet kawałek ścieżki. Przy większych mocach brak anteny skutkuje uszkodzeniem nadajnika bo przecież po odbiciu od końca kabelka niewypromieniowany sygnał wraca i grzeje tranzystory. Energia nie znika. Na małych odległościach wystarczą często dosłownie kawałki drucika choć najlepiej, gdy antena jest jakoś policzona i dopasowana do reszty. Wtedy "za darmo" masz dużo lepsze połączenie. W przypadku modułów 2.4GHz (a czasem i 868MHz) anteny są na tyle małe (krótka fala) że są wykonywane w postaci pętli lub meandra na PCB. Im dłuższa fala tym wymiary rosną a zmniejszanie anteny powoduje spadek efektywności promieniowania i zawężanie pasma. Zainteresuj się tematem tzw. chip antenna - na Twoje potrzeby powinny starczyć, albo modułami z anteną wbudowaną. Wtedy przynajmniej masz gwarancję, że ktoś nad tym pomyślał i zrobił ją najlepszą przy danych ograniczeniach:

http://www.tme.eu/pl/details/rfant5220110a0t/anteny-wifibluetooth/walsin/

http://www.tme.eu/pl/details/1513431-1/anteny-wifibluetooth/te-connectivity/

A pokaż może jeszcze jak zrobiłeś ten swój link radiowy. Bez doświadczenia i wyczucia tematu RF można to skopać w wielu miejscach. Nawet takie badziewie na 10-30m w otwartej przestrzeni powinno działać. Jednak położenie modułu, kabelek, antena (to nie tylko sam drucik) i jej najbliższe otoczenie są bardzo ważne dla poprawnego działania radia. Może poczytaj coś, tu masz trochę dla początkujących:

http://www.hoperf.com/upload/rf/ANTENNAS_MODULE.pdf

Zaopatrz się w kabel koncentryczny 50Ω, weź trochę drutu, blachy i popróbuj. Jeśli robisz coś bardzo niezgodnie ze sztuką, to szkoda pieniędzy na kupowanie czegoś lepszego podczas gdy niewielki ruch mógłby 100x poprawić to co masz.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Czyli dobrze rozumiem, że na przykładzie obecnego schematu wystarczyłoby dodać potencjometr cyfrowy, zamiast dzielnika napięcia (R1 i R2)?

Wzmocnienie wynosiłoby w tym przypadku 1+R2/R1.

Tutaj znalazłem jak myślę równoważny schemat z wykorzystaniem potencjometru cyfrowego do sterowania wzmocnieniem:

Widzę też fajne potencjometry z komunikacją przez I2C co mi odpowiada z tego względu, że docelowy mikrokontroler ma jeden SPI i nie będę musiał pisać drugiego softwerowego. Przykładowo taki:

https://datasheets.maximintegrated.com/en/ds/MAX5387.pdf

Dzięki za ciekawy link odnośnie anten.

Bez przekonania podszedłem do tych modułów, między innymi dlatego, że i tak niedługo zacznę testować nowe docelowe układy komunikując się z nimi przez SPI i szkoda mi czasu na bawienie się z tym sprzętem. W przyszłości dodam do nich anteny (jak będę wiedział jakie) i wtedy się pobawię, mogą się przydać do jakiś budżetowych konstrukcji. Póki co muszę się sporo douczyć odnośnie komunikacji radiowej i wybrać docelowe moduły do testów, zastanawiam się nad wspomnianym wcześniej RFM69 i RFM73. Ten drugi ma już wytrawioną na płytce antenę i odpowiednią modulację.

http://electropark.pl/radiowa-rf/3071-rfm73-d-modul-radiowy-2-4ghz-transceiver.html

Biorę się za projektowanie docelowego schematu nadajnika, odbiornika, wzmacniacza i detektora obwiedni, wrzucę za pewien czas na forum schematy wstępnych rozwiązań.

Link do komentarza
Share on other sites

Rzeczywiście, to trochę zmienia postać rzeczy. Podesłany przeze mnie potencjometr jest do 400kHz, a ten od Marka do 10MHz. Oby tylko zmiana urządzenia z potencjometru na transceiver była wystarczająca szybka.

Link do komentarza
Share on other sites

Zaproponowałem SPI właśnie ze względu na szybkość.

Zmiana urządzeń trwa tyle co deaktywacja sygnału CS jednego i wybranie drugiego - poniżej 1us jak dobrze pójdzie. Jeśli urządzenia posługują się innymi formatami lub prędkościami to wtedy trzeba w międzyczasie zmienić tryb pracy SPI - dodatkowy zapis do rejestru.

Chcąc żyłować transfery, zawsze trzeba doczytać jakie są wymagania czasowe interfejsu dla każdego podłączonego scalaka. Max. częstotliwość zegara SCK jest oczywista, ale np. są także ograniczenia na czas ustalania sygnałów przed i po zmianie CS.

I zacznij używać normalnych wzmacniaczy operacyjnych, bo LM386 nim nie jest. Owszem, na schemacie wygląda podobnie i możesz się nim bawić w podstawowym układzie aplikacyjnym, ale jego parametry są marne, bo nie muszą być lepsze. Popatrz na żałosną impedancję wejściową a offset nawet nie jest specyfikowany. Jeśli trafisz na coś mającego np. 20mV to przy wzmocnieniu x100 dostaniesz na wyjściu błąd napięcia stałego rzędu 2V i taki wzmacniacz w żaden sposób nie będzie mógł pracować przy 5V zasilaniu. Czekamy na jakieś schematy toru odbiornika 🙂

Link do komentarza
Share on other sites

Nadajnik:

W międzyczasie zrobiłem płytkę wg tego schematu i wyniki są naprawdę zadowalające. W stosunku do sterowania samymi pinami zasięg skuteczny (dla którego napięcie na wyjściu detektora przekraczało daną wartość bez przerywania) wzrósł trzykrotnie. Temat nadajnika wydaje się być zamknięty, wystarczy jeszcze dodać jakiś porządny element rozpraszający.

Odbiornik:

Wzmacniacz operacyjny:

http://www.analog.com/media/en/technical-documentation/data-sheets/AD8613_8617_8619.pdf

Offset wynosi 0.4mV, więc powinno być ok, a jak nie to są z tej samej rodziny o jeszcze mniejszym.

Dodatkowo podobnie jak mikrokontroler, potencjometr cyfrowy i moduł radiowy, może być zasilany z 3.3V, więc wystarczy jeden stabilizator.

Potencjometr cyfrowy:

http://www.mouser.com/ds/2/268/22060a-53835.pdf

Póki co zostawiam detektor obwiedni na elementach pasywnych, zmienię tylko diodę na taką o bardzo niskim spadku napięcia. Jeżeli zajdzie taka potrzeba zastosuję rozwiązanie opierające się na wzmacniaczu operacyjnym.

Link do komentarza
Share on other sites

Ten "odbiornik" to jakoś bardzo poglądowo zrobiłeś. Przecież to nie jest schemat działającego układu. AD8617 to dwa gołe wzmacniacze operacyjne a nie gotowy bloczek. Zrób z nich tor analogowy (2-stopniowy?) i narysuj to jakoś porządnie (wzmacniacze to trójkąty z wejściami +/- a potencjometry - to wiadomo jak) jeśli chcesz żeby to ktoś zrozumiał (i Ty sam także). Brakuje wszystkiego: układu analogowej masy odniesienia, elementów kompensacji częstotliwościowej, elementów ograniczających zakres regulacji wzmocnienia itd.. Tego co pokazałeś to nawet trudno oceniać. Zrób schemat ideowy, nie montażowy a sam zobaczysz ile tu brakuje.

Link do komentarza
Share on other sites

Ech, ciężka sprawa z tymi wzmacniaczami. Zrobiłem go w topologii Sallena-Keya. Wg obliczeń częstotliwość środkowa wypada dla 40.808kHz. Na pewno coś jest nie tak, ale ta ilość parametrów do ogarnięcia mnie przytłacza i już nie wiem czego się spodziewać i od czego zacząć.

Link do komentarza
Share on other sites

Początki są trudne, widzimy, układ jest kompletnie bez sensu 🙁

Hm, to może tak: zacznijmy od zera choć od razu przestrzegam, że to będzie trochę długa droga. Narysuj jeden, kanoniczny stopnień wzmacniacza nieodwracającego z tym swoim potencjometrem regulacji wzmocnienia, przetwornikiem na wejściu i separacją przez kondensator. To oczywiście nie ma szans działać (dlaczego?), więc mamy problem nr. 1:

Jak umożliwić wzmacniaczowi zasilanemu napięciem niesymetrycznym 0..+5V pracę "w obie strony" tj. jak trzeba spolaryzować jego wejścia i zmodyfikować cały układ by na wyjściu składowa stała wynosiła Vcc/2 niezależnie od wzmocnienia. Nie szukaj gotowców tylko myśl.

Link do komentarza
Share on other sites

Wymyśliłem coś takiego:

Rozumiem to tak: na wejściu nieodwracającym będzie 1.65V, więc odwracające też będzie dążyło do ustalenia się na nim 1.65 V, i nawet zmieniając potencjometrem wzmocnienie na wyjściu będzie sygnał w odniesienie do właśnie tego napięcia.

Link do komentarza
Share on other sites

Tak, to prawda, ale miałeś zrobić wzmacniacz nieodwracający. Na które wejście podajesz sygnał? Na odwracające? To chyba źle, prawda?

A prosiłem o taki nie bez powodu. Wzmacniacz odwracający ma tę wadę, że jego impedancja wejściowa jest mała a w Twoim przypadku wręcz różna w zależności od ustawienia potencjometru. Stopień współpracujący bezpośrednio z przetwornikiem piezo musi mieć wejście wysokoomowe. Możesz sobie wtedy bocznikować odbiornik jakimś rezystorem w razie potrzeby zmiany ch-ki rezonansowej, ale wzmacniacz na to nie nie wpływa. Tak więc układ nieodwracający jest w takim wypadku pierwszym wyborem.

Tak więc jeszcze raz, wzmacniacz nieodwracający, czyli:

- przetwornik piezo podłączony przez kondensator do wejścia (+),
- od wyjścia potencjometr stojący na masie,
- jego ślizgacz do wejścia (-).

To podstawowy układ. A teraz zmiany, bo układ ma co prawda setki MΩ impedancji wejściowej, ale niestety nie działa:

- polaryzujesz wejście (+) dzielnikiem np. 2x220k co daje impedancję wejściową 110k (wiesz dlaczego?), możesz też zrobić np. 2x510k - Twój wybór, wejściowe prądy polaryzacji nowoczesnych wzmacniaczy są tak małe, że można prawie dowolnie wybrać impedancję wejściową stopnia nawet z tak prymitywnym układem polaryzacji,
- taki układ będzie wzmacniał składową stałą z dzielnika a tego nie chcemy więc odcinamy potencjometr od dołu (od masy) kondensatorem. Teraz układ - po wstępnym naładowaniu kondensatora - ma stabilny punkt pracy na Vcc/2.

Takie coś będzie już działało, ale ma pewną wadę, która wyjdzie w rzeczywistym układzie pracy. Narysuj to, pokaż nam i zastanów się czy ją widzisz. Oczywiście bez napinania się, to nie szkoła 🙂

Acha i wyznacz w wolnej chwili wzmocnienia układu (pomijając na razie wpływ kondensatorów, potem się nimi zajmiemy) dla skrajnych położeń potencjometru: 0, 1, 255 i 256 oraz gdzieś w połowie a najlepiej pokaż wzór na wzmocnienie w zależności od skwantowanego położenia potencjometru 256-elementowego (który ma tych położeń 257). Dla jednego z położeń skrajnych wzór się degeneruje a wzmacniacz się nasyca, prawda?

Link do komentarza
Share on other sites

Czyli teraz schemat powinien wyglądać tak?

Nie wiem dlaczego wychodzi akurat 110k. Równoległe połączenie dwóch 220k daje właśnie tyle, ale nie widzę tego.

Co do kondensatora odcinającego, rozumiem to tak: dla prądu stałego kondensator tworzy przerwę w obwodzie i wtedy pętla sprzężenia zwrotnego upraszcza się do samego rezystora, co tworzy wtórnik napięciowy. Na wejściu jest połowa Vcc, więc na wyjściu też będzie tyle samo. Dopiero sygnał zmienny będzie w stanie przejść i pojawi się wzmocnienie, ale tylko dla sygnału zmiennego. Próbuję sobie jakoś wyrobić intuicję do tego, stąd te rozważania, możliwe że całkowicie błędne.

Nie widzę tej wady, może to będzie coś z rzeczywistymi parametrami wzmacniaczy?

Posiłkując się datasheetem wrzuconego wcześniej potencjometru MCP42x2 udało się dojść do następujących wyników:

Schemat z uwzględnieniem Rw - czyli oporu "wycieraczki", który średnio wynosi 75ohm.

Ogólny wzór na wzmocnienie:

Tabelka dla Rab = 50kohm i Rw = 75ohm:

Wykres wzmocnienia od n:

Rzeczywiście, gdyby nie Rw to dla n = 0, wzmocnienie wynosiłoby teoretycznie nieskończoność i wzmacniacz by się nasycił. Na początku myślałem, że dowolna wartość rezystancji potencjometru będzie dobra do tego zastosowania, a okazuje się, że w rzeczywistości od jego wartości zależy wzmocnienie, a nie tylko prąd.

Z wykresu widać, że wzmocnienie nie narasta liniowo, a bardziej kwadratowo, co z jednej strony ma swoje plusy, bo siła dźwięku maleje kwadratowo ze wzrostem odległości, ale z drugiej strony trudniej będzie dobrać odpowiednie sterowanie.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.