Spisu treści:

Analizator antenowy HF z modułem Arduino i DDS: 6 kroków (ze zdjęciami)
Analizator antenowy HF z modułem Arduino i DDS: 6 kroków (ze zdjęciami)

Wideo: Analizator antenowy HF z modułem Arduino i DDS: 6 kroków (ze zdjęciami)

Wideo: Analizator antenowy HF z modułem Arduino i DDS: 6 kroków (ze zdjęciami)
Wideo: Синтезатор с Aliexpress на AD9850. 2024, Lipiec
Anonim
Analizator anten HF z modułem Arduino i DDS
Analizator anten HF z modułem Arduino i DDS
Analizator anten HF z modułem Arduino i DDS
Analizator anten HF z modułem Arduino i DDS

Cześć

W tej instrukcji pokażę, jak zbudowałem tani analizator anten, który może mierzyć antenę i wyświetlać jej VSWR w dowolnym lub wszystkich pasmach częstotliwości HF. Znajdzie minimalny VSWR i odpowiednią częstotliwość dla każdego pasma, ale również wyświetli VSWR w czasie rzeczywistym dla wybranej przez użytkownika częstotliwości, aby ułatwić regulację anteny. W przypadku przeszukiwania pojedynczego pasma częstotliwości, wyświetli wykres VSWR w funkcji częstotliwości. Posiada również port USB z tyłu do wysyłania danych częstotliwości i VSWR, aby umożliwić bardziej wyrafinowane kreślenie wykresów na komputerze. Port USB może być również używany do aktualizacji oprogramowania układowego w razie potrzeby.

Niedawno zainteresowałem się krótkofalówką (ponieważ podobał mi się pomysł komunikacji peer-to-peer na ogromne odległości bez infrastruktury) i szybko dokonałem następujących obserwacji:

1. Cała światowa komunikacja, która mnie interesowała, odbywa się na pasmach HF (3-30 MHz)

2. Transceivery HF są bardzo drogie i zepsują się, jeśli nie wprowadzisz ich do dość dobrze dopasowanej anteny

3. Generalnie oczekuje się, że będziesz montować własną antenę HF z kawałków drutu rozciągniętych w ogrodzie (chyba że chcesz wydać więcej pieniędzy niż wydałeś w 2).

4. Twoja antena może być źle dopasowana, ale nie będziesz wiedział, dopóki jej nie spróbujesz.

Teraz purysta pewnie powiedziałby, że należy najpierw przetestować antenę na bardzo małej mocy na interesującej nas częstotliwości i sprawdzić VSWR na mierniku platformy, aby ocenić jakość dopasowania. Tak naprawdę nie mam czasu na grzebanie w tego typu rzeczach dla każdej częstotliwości, której mógłbym chcieć użyć. To, czego naprawdę chciałem, to analizator antenowy. Urządzenia te mogą testować jakość dopasowania anteny na dowolnej częstotliwości w pasmach HF. Niestety są też bardzo drogie, więc zastanowiłem się, czy mógłbym zrobić własne. Natknąłem się na znakomitą pracę wykonaną przez K6BEZ (patrz https://www.hamstack.com/project_antenna_analyzer.html), który badał użycie Arduino do sterowania tanim bezpośrednim modułem syntezatora cyfrowego (DDS). Wkrótce porzucił Arduino ze względu na koszty, woląc używać PIC. Cóż, w 2017 roku można kupić Arduino Nano za około 3,50 funta, więc pomyślałem, że nadszedł czas, aby ponownie przyjrzeć się jego pracy, wznowić tam, gdzie skończył i zobaczyć, co mogę wymyślić (zauważ, że nie jestem jedyny kto to zrobił: w Internecie można znaleźć kilka bardzo fajnych przykładów).

Aktualizacja (29.07.2018) - ta praca została w znacznym stopniu zbudowana przez bi3qwq z Chin, który wprowadził kilka naprawdę fajnych ulepszeń w interfejsie użytkownika, którymi uprzejmie się podzielił. Zaprojektował bardzo profesjonalną płytkę drukowaną (ze świetnym rezystorem kalibracyjnym) i wykonał naprawdę dobrze wyglądającą konstrukcję. Na domiar wszystkiego przygotował schemat, który, jak wiem, zachwyci wielu z tych, którzy wcześniej komentowali. Więcej informacji można znaleźć w sekcji komentarzy.

Aktualizacja - Ostatnio wchodzę na 60 m, których nie obejmował oryginalny szkic. Więc teraz wgrałem firmware w wersji 7, który dodaje pasma 160m i 60m. To nie są dodatki; są w pełni zintegrowane z działaniem analizatora. Całe szczęście, że udało mi się znaleźć czcionkę u8glib, która była nadal czytelna, ale pozwalała mi wyświetlić jednocześnie dziesięć pasm na tym małym ekranie (chociaż nie była to monospace, co spowodowało pewien smutek). Oszacowałem wartości kalibracyjne dla nowych pasm na podstawie interpolacji/ekstrapolacji istniejących wartości kalibracyjnych. Następnie sprawdziłem je ze stałymi rezystorami i dają całkiem dobre wyniki.

Aktualizacja - ponieważ kilka osób pytało o schematy, podstawowy obwód mostka Arduino / DDS / VSWR jest w dużej mierze niezmieniony z oryginalnej pracy K6BEZ. Proszę sprawdzić powyższy adres URL jego oryginalnego schematu, na którym oparłem ten projekt. Dodałem koder, ekran OLED i w pełni rozwinięte oprogramowanie układowe, aby zapewnić bezproblemową obsługę.

Aktualizacja - ten system wykorzystuje bardzo niskonapięciowe źródło sygnału DDS w połączeniu z mostkiem rezystancyjnym zawierającym detektory diodowe. W ten sposób diody działają w swoich nieliniowych obszarach, a moja pierwsza wersja tego systemu miała tendencję do niedoczytania VSWR. Na przykład obciążenie o impedancji 16 omów lub 160 omów powinno wykazywać VSWR około 3 w systemie 50 omów; miernik ten wskazywał VSWR bliższy 2 w tej sytuacji. Dlatego przeprowadziłem kalibrację oprogramowania przy użyciu znanych obciążeń, co wydaje się być skutecznym rozwiązaniem tego problemu. Jest to opisane w przedostatnim kroku tej instrukcji, a poprawiony szkic został przesłany.

Aktualizacja - wbudowana funkcja wykresów dodana do pojedynczych przemiatań, ponieważ była zbyt przydatna, aby ją pominąć, szczególnie podczas dostrajania długości anteny do minimalnego VSWR: wykres daje natychmiast widoczny trend.

Krok 1: Kup swoje rzeczy

Będziesz potrzebować następujących przedmiotów. Większość z nich można tanio kupić w serwisie eBay. Najdroższym pojedynczym przedmiotem było pudełko, blisko 10 funtów! Być może da się zastąpić niektóre przedmioty (na przykład użyłem 47 R zamiast 50 R). Diody były dość nietypowe (musiałem kupić 5 z Włoch) i warto byłoby je zastąpić łatwiej dostępnymi przedmiotami, jeśli wiesz, co robisz.

  • Arduino Nano
  • Moduł DDS (moduł generatora sygnału DDS AD9850 HC-SR08 sygnał sinusoidalny fala prostokątna 0-40 MHz)
  • 1,3-calowy wyświetlacz OLED i2c
  • Wzmacniacz operacyjny MCP6002 (8 pinów)
  • 2 diody AA143
  • Kondensatory ceramiczne: 2 wył. 100 nF, 3 wył. 10 nF
  • Kondensator elektrolityczny 1 uF
  • Rezystory: 3 szt. 50 R, 2 szt. 10 K, 2 szt. 100 K, 2 szt. 5 K, 2 szt. 648 R
  • Zaciski śrubowe o rastrze 2,54 mm: 3 szt. 2-stykowe, 2 szt. 4-stykowe
  • Jednożyłowy przewód przyłączeniowy
  • 702 lub podobny przewód przyłączeniowy
  • Stripboard
  • Kwadratowa listwa nagłówkowa (żeńska) do podłączenia Arduino i DDS - nie kupuj przez pomyłkę okrągłych gniazd!
  • SO-239 gniazdo do montażu na podwoziu
  • Enkoder obrotowy (15 impulsów, 30 zapadków) z przełącznikiem wciskanym i pokrętłem
  • Tani „moduł” enkodera obrotowego (opcjonalnie)
  • Pudełko projektu
  • Przełącznik
  • Prostokątny przewód do montażu na grodzi mini-usb na USB B (50 cm)
  • PP3 i klips / uchwyt baterii
  • Samoprzylepne słupki / wsporniki do montażu PCB

Będziesz także potrzebować lutownicy i narzędzi elektronicznych. W obudowie pomocna jest drukarka 3D i wiertarka kolumnowa, choć gdybyście chcieli, prawdopodobnie można by całość zmontować na stripboardzie i nie zawracać sobie głowy pudełkiem.

Oczywiście podejmujesz się tej pracy i wykorzystujesz uzyskane wyniki na własne ryzyko.

Krok 2: Rozłóż stripboard

Rozłóż stripboard
Rozłóż stripboard
Rozłóż stripboard
Rozłóż stripboard

Zaplanuj, jak zamierzasz ułożyć elementy na stripboardzie. Możesz zrobić to sam, odwołując się do oryginalnego schematu K6BEZ (który nie ma enkodera ani ekranu - patrz strona 7 z https://www.hamstack.com/hs_projects/antenna_analyzer_docs.pdf) lub możesz zaoszczędzić mnóstwo czasu i skopiuj mój układ.

Układy te wykonuję w prosty sposób, używając papieru w kratkę i ołówka. Każde skrzyżowanie reprezentuje otwór na stripboard. Miedziane szyny biegną poziomo. Krzyżyk oznacza zepsuty tor (użyj wiertła 6 mm lub odpowiedniego narzędzia, jeśli je posiadasz). Linie kół z ramką wokół nich reprezentują nagłówki. Duże pudełka ze śrubami oznaczają bloki złączy. Zauważ, że na moim schemacie jest dodatkowa linia biegnąca poziomo przez środek planszy. Pomiń to, gdy składasz go razem (jest oznaczony jako „pomiń tę linię”).

Niektóre elementy mogą wydawać się dziwnie ułożone. Dzieje się tak, ponieważ projekt ewoluował, gdy zacząłem działać podstawowy sprzęt (szczególnie, gdy zdałem sobie sprawę, że koder potrzebuje na przykład przerwań sprzętowych).

Podczas lutowania elementów na płytce używam Blu-Taka, aby utrzymać je w miejscu, podczas gdy odwracam płytkę, aby przylutować nogi.

Próbowałem zminimalizować ilość użytego przewodu, wyrównując Arduino i moduł DDS i po prostu używając stripboardu do podłączenia kluczowych pinów. Nie zdawałem sobie wtedy sprawy, że przerwania sprzętowe potrzebne do odczytu enkodera działają tylko na pinach D2 i D3, więc musiałem przenieść DDS RESET z oryginalnego połączenia D3 za pomocą kawałka drutu:

RESET DDS - Arduino D7

DDS SDAT - Arduino D4

DDS FQ. UD - Arduino D5

DDS SCLK - Arduino D6

Arduino D2 i D3 są używane dla wejść enkodera A i B. D11 jest używane jako wejście przełącznika enkodera. D12 nie jest używany, ale pomyślałem, że i tak zrobię dla niego zacisk śrubowy, do przyszłej rozbudowy.

Arduino A4 i A5 dostarczają sygnały SDA i SCL (I2C) dla ekranu OLED.

Arduino A0 i A1 pobierają wejścia z mostka VSWR (poprzez OPAMP).

Krok 3: Zainstaluj moduły, podłącz urządzenia peryferyjne i sflashuj kod

Zainstaluj moduły, podłącz urządzenia peryferyjne i sflashuj kod
Zainstaluj moduły, podłącz urządzenia peryferyjne i sflashuj kod

Warto przetestować płytkę przed przystąpieniem do trudu zamontowania jej w obudowie. Przymocuj następujące elementy za pomocą elastycznego przewodu do płytki za pomocą bloków zacisków śrubowych:

  • Wyświetlacz OLED 1,3" (SDA i SCL są podłączone odpowiednio do pinów Arduino A4 i A5; masa i Vcc idą oczywiście do Arduino GND i +5V)
  • Enkoder obrotowy (wymaga to masy, dwóch linii sygnałowych i linii przełącznika - może być konieczne odwrócenie linii przełącznika, jeśli enkoder działa niewłaściwie - podłącz je odpowiednio do masy Arduino, D2, D3 i D11). Zauważ, że do mojej pracy prototypowej zamontowałem enkoder 15/30 na płytce modułu enkodera KH-XXX, ponieważ piny na gołych enkoderach są bardzo cienkie. Do ostatniej pracy przylutowałem przewody prosto do enkodera.
  • Bateria 9V
  • Gniazdo SO-239 - przylutuj środkowy pin do linii sygnałowej anteny i użyj zacisku pierścieniowego M3 i śruby do masy anteny

Prześlij poniższy szkic do Arduino. Upewnij się również, że dołączyłeś bardzo dobrą bibliotekę sterowników OLED od Oli Kraus, w przeciwnym razie kompilacja ulegnie awarii i spali się:

Jeśli Twój wyświetlacz OLED jest nieco inny, możesz potrzebować innych ustawień konfiguracji w u8glib; jest to dobrze udokumentowane w przykładowym kodzie Oli.

Krok 4: Włóż wszystko do ładnego pudełka (opcjonalnie)

Umieść wszystko w ładnym pudełku (opcjonalnie)
Umieść wszystko w ładnym pudełku (opcjonalnie)
Umieść wszystko w ładnym pudełku (opcjonalnie)
Umieść wszystko w ładnym pudełku (opcjonalnie)
Umieść wszystko w ładnym pudełku (opcjonalnie)
Umieść wszystko w ładnym pudełku (opcjonalnie)
Umieść wszystko w ładnym pudełku (opcjonalnie)
Umieść wszystko w ładnym pudełku (opcjonalnie)

Poważnie rozważałem pozostawienie analizatora jako czystej płytki, ponieważ prawdopodobnie był używany tylko okazjonalnie. Po namyśle pomyślałem jednak, że jeśli wykonywałem dużo pracy nad pojedynczą anteną, może się to skończyć uszkodzeniem. Więc wszystko poszło do pudełka. Nie ma sensu wchodzić w szczegóły, jak to zostało zrobione, ponieważ twoje pudełko prawdopodobnie będzie inne, ale warto wspomnieć o kilku kluczowych funkcjach:

1. Do montażu stripboardu użyj samoprzylepnych wsporników PCB. Ułatwiają życie.

2. Użyj krótkiego przewodu adaptera USB, aby wyprowadzić port Arduino USB z tyłu obudowy. Następnie można łatwo uzyskać dostęp do portu szeregowego, aby uzyskać dane częstotliwości w porównaniu do VSWR, a także przeładować Arduino bez zdejmowania pokrywy.

3. Opracowałem niestandardową część wydrukowaną w 3D do obsługi wyświetlacza OLED, ponieważ nie mogłem znaleźć niczego w Internecie. Ma wgłębienie umożliwiające włożenie 2 mm kawałka akrylu, aby chronić delikatny ekran. Można go zamontować za pomocą taśmy dwustronnej lub wkrętów samogwintujących (z wypustkami po obu stronach). Po zamontowaniu wyświetlacza możesz użyć gorącego drutu (pomyśl spinacz do papieru i żarówkę), aby stopić szpilki PLA z tyłu płytki drukowanej, aby zabezpieczyć wszystko. Oto plik STL dla wszystkich zainteresowanych:

Krok 5: Kalibracja

Kalibrowanie
Kalibrowanie

Początkowo nie wykonywałem żadnej kalibracji, ale odkryłem, że miernik VSWR stale odczytuje niski poziom. Oznaczało to, że chociaż antena wydawała się być w porządku, autotuner mojego urządzenia nie był w stanie jej dopasować. Ten problem pojawia się, ponieważ moduł DDS daje sygnał o bardzo niskiej amplitudzie (około 0,5 Vpp przy 3,5 MHz, spada wraz ze wzrostem częstotliwości). Diody detekcyjne w mostku VSWR działają zatem w obszarze nieliniowym.

Istnieją dwa możliwe rozwiązania tego problemu. Pierwszym z nich jest dopasowanie wzmacniacza szerokopasmowego do wyjścia DDS. Potencjalnie odpowiednie urządzenia są dostępne tanio z Chin i zwiększą moc wyjściową do około 2 V pp. Zamówiłem jedno z nich, ale jeszcze go nie wypróbowałem. Mam wrażenie, że nawet ta amplituda będzie nieco marginalna i pozostanie pewna nieliniowość. Drugą metodą jest umieszczenie znanych obciążeń na wyjściu istniejącego miernika i zapisanie wyświetlanego VSWR w każdym paśmie częstotliwości. Pozwala to na skonstruowanie krzywych korekcji dla rzeczywistego w porównaniu z raportowanym VSWR, które można następnie umieścić w szkicu Arduino, aby zastosować korektę w locie.

Przyjąłem drugą metodę, ponieważ była łatwa do zrobienia. Po prostu zdobądź następujące rezystory: 50, 100, 150 i 200 omów. Na tym 50-omowym instrumencie będą one z definicji odpowiadać VSWR 1, 2, 3 i 4. W szkicu znajduje się przełącznik 'use_calibration'. Ustaw to na LOW i prześlij szkic (co spowoduje wyświetlenie ostrzeżenia na ekranie powitalnym). Następnie wykonaj pomiary w środku każdego pasma częstotliwości dla każdego rezystora. Użyj arkusza kalkulacyjnego, aby wykreślić oczekiwane vs wyświetlane VSWR. Następnie można wykonać dopasowanie krzywej logarytmicznej dla każdego pasma częstotliwości, co daje mnożnik i przecięcie w postaci TrueVSWR=m.ln(MeasuredVSWR)+c. Te wartości powinny zostać załadowane do tablicy swr_results w ostatnich dwóch kolumnach (patrz poprzedni komentarz w szkicu). To dziwne miejsce, w którym można je umieścić, ale spieszyłem się, a ponieważ te sklepy z tablicami pływają, wydawało się to rozsądnym wyborem w tamtym czasie. Następnie ustaw przełącznik use_calibration z powrotem na HIGH, przeładuj Arduino i gotowe.

Należy zauważyć, że podczas wykonywania pomiarów częstotliwości punktowej kalibracja jest stosowana do początkowego wyboru pasma. Nie zostanie to zaktualizowane, jeśli wprowadzisz poważne zmiany częstotliwości.

Teraz miernik odczytuje zgodnie z oczekiwaniami dla stałych obciążeń i wydaje się, że ma sens przy pomiarach moich anten! Podejrzewam, że mogę nie zawracać sobie głowy próbowaniem tego szerokopasmowego wzmacniacza, kiedy nadejdzie…

Krok 6: Korzystanie z analizatora

Korzystanie z analizatora
Korzystanie z analizatora
Korzystanie z analizatora
Korzystanie z analizatora

Podłącz antenę za pomocą przewodu PL-259 i włącz urządzenie. Wyświetli ekran powitalny, a następnie automatycznie wykona przemiatanie wszystkich głównych pasm HF. Wyświetlacz pokazuje badaną częstotliwość, aktualny odczyt VSWR, minimalny odczyt VSWR i częstotliwość, przy której wystąpił. W celu zmniejszenia szumu pomiarowego wykonuje się pięć pomiarów VSWR w każdym punkcie częstotliwości; średnia wartość tych pięciu odczytów jest następnie przepuszczana przez dziewięciopunktowy filtr średniej ruchomej w odniesieniu do częstotliwości, zanim zostanie wyświetlona końcowa wartość.

Jeśli chcesz zatrzymać przemiatanie we wszystkich pasmach, po prostu naciśnij pokrętło enkodera. Przeszukiwanie zostanie zatrzymane i wyświetlone zostanie podsumowanie wszystkich zebranych danych o pasmach (z wartościami zerowymi dla pasm, które nie zostały jeszcze przeszukane). Drugie naciśnięcie spowoduje wyświetlenie menu głównego. Wyborów dokonuje się poprzez obrócenie enkodera, a następnie wciśnięcie go w odpowiednim miejscu. W menu głównym dostępne są trzy opcje:

Przemiatanie we wszystkich pasmach ponownie rozpocznie przeszukiwanie wszystkich głównych pasm KF. Po zakończeniu wyświetli ekran podsumowania opisany powyżej. Zapisz to lub zrób zdjęcie, jeśli chcesz je zachować.

Sweep single band pozwoli Ci wybrać pojedyncze pasmo za pomocą enkodera, a następnie je przeczesać. Podczas dokonywania wyboru wyświetlane są zarówno długość fali, jak i zakres częstotliwości. Kiedy przemiatanie się zakończy, drugie naciśnięcie enkodera wyświetli prosty wykres VSWR w funkcji częstotliwości dla właśnie przemiatanego pasma, z liczbowym wskazaniem minimalnego VSWR i częstotliwości, z jaką wystąpiło. Jest to bardzo przydatne, jeśli chcesz wiedzieć, czy skrócić lub wydłużyć ramiona dipola, ponieważ pokazuje trend VSWR z częstotliwością; to jest tracone z prostym raportem numerycznym.

Pojedyncza częstotliwość pozwala wybrać jedną stałą częstotliwość, a następnie stale aktualizować pomiar VSWR na żywo, w celu strojenia anteny w czasie rzeczywistym. Najpierw wybierz odpowiednie pasmo częstotliwości; wyświetlacz pokaże wtedy środkową częstotliwość wybranego pasma i bieżący odczyt VSWR. W tym momencie stosowana jest odpowiednia kalibracja pasma. Jedna z cyfr częstotliwości zostanie podkreślona. Można go przesuwać w lewo iw prawo za pomocą enkodera. Naciśnięcie enkodera rozświetla linię; następnie obrócenie enkodera zmniejszy lub zwiększy cyfrę (0-9 bez zawijania lub przenoszenia). Naciśnij enkoder ponownie, aby naprawić cyfrę, a następnie przejdź do następnej. Korzystając z tej funkcji, możesz uzyskać dostęp do prawie każdej częstotliwości w całym spektrum HF - wybór pasma na początku pomaga zbliżyć się do miejsca, w którym prawdopodobnie chcesz być. Jest jednak zastrzeżenie: kalibracja dla wybranego pasma jest ładowana na początku. Jeśli oddalisz się zbyt daleko od wybranego pasma, zmieniając cyfry, kalibracja stanie się mniej ważna, więc staraj się pozostać w wybranym paśmie. Kiedy skończysz z tym trybem, przesuń podkreślenie do końca w prawo, aż znajdzie się pod 'exit', a następnie wciśnij enkoder, aby powrócić do menu głównego.

Jeśli podłączysz swój komputer do gniazda USB z tyłu analizatora (tj. do Arduino), możesz użyć monitora szeregowego Arduino do zbierania wartości częstotliwości w funkcji VSWR podczas dowolnej operacji przemiatania (obecnie jest ustawiony na 9600, ale możesz to zmienić łatwo edytując mój szkic). Wartości można następnie umieścić w arkuszu kalkulacyjnym, dzięki czemu można wykreślić bardziej trwałe wykresy itp.

Zrzut ekranu pokazuje podsumowanie VSWR dla mojej pionowej anteny wędkarskiej 7,6 m z UNUN 9:1. Mój zestaw może pomieścić SWR maks. 3:1 z wewnętrzną jednostką automatycznego dostrajania. Widać, że będę mógł go dostroić na wszystkich pasmach z wyjątkiem 80m i 17m. Więc teraz mogę się zrelaksować ze świadomością, że mam przejezdną antenę wielopasmową i nie zamierzam zepsuć niczego drogiego podczas nadawania na większości pasm.

Powodzenia i mam nadzieję, że okaże się to przydatne.

Zalecana: