Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach

zackass1 19 Jun 2019 21:59 22062 4
Nazwa.pl
  • Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach
    Kilka słów wprowadzenia w związku z tytułem, który zapewne niewiele mówi niewtajemniczonym.
    Wśród strzelców wiatrówkowych lubiących strzelać w nocy lub w złych warunkach oświetleniowym dominują dwa obozy, lunetowi oraz bezlunetowi (scopeless).
    Aby osiągnąć możliwość strzelania w ciemności, miłośnicy systemu lunetowego, dokładają do swojej lunety adapter do kamery, kamerę, jakiś wyświetlacz i oświetlacz IR. Rozwiązanie to ma dwie podstawowe wady: konieczność posiadania lunety oraz bardzo duży rozmiar instalacji.
    Zwolennicy systemu scopeless postanowili wyeliminować je pozbywając się lunety. Do powiększania obrazu stosowana jest soczewka do kamer przemysłowych, która jest o wiele mniejsza i tańsza.
    Pojawia się natomiast problem z generowaniem krzyża celowniczego. Zwykle rozwiązywano go dobierając kamerę ccd 1/3" z funkcją ustawiania stref prywatności. Strefy ustawiano tak, żeby miały szerokość jednego pixela i tworzyły krzyż. Jest to rozwiązanie mało eleganckie, a do tego mocno ogranicza wybór kamery.
    Tutaj dochodzimy do mojego generatora krzyża. Po prostu wpinamy go między kamerę, a wyświetlacz i cieszymy się regulowanym krzyżem.

    Założenia projektu:
    -łatwo dostępne elementy
    -możliwie tanie elementy
    -możliwie prosta budowa niewymagająca wyszukanych narzędzi
    -monitorowanie poziomu baterii
    -zmiana pozycji krzyża z dokładnością do 1 pixela z zapisem do eeprom.

    Udało się spełnić wszystkie, więc chyba postawiłem sobie mało ambitne cele :)

    Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach
    Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach
    Do menu wchodzimy klikając środkowy przycisk krzyżaka.
    "Pozycja" służy do ustawienia pozycji w dwóch etapach. Wartości współrzędnych wyświetlane są w rogu ekranu, gdyby ktoś chciał sobie je spisać na wszelki wypadek. Najpierw ustawiamy pozycję zgrubną - krzyż przesuwa się o odległość 1 znaku.
    Po potwierdzeniu pozycji środkowym przyciskiem przechodzimy do ustawień dokładnych - cały ekran przesuwa się o odległość 1 pixela.
    Potwierdzając środkowym klawiszem wracamy do menu. Przesuwania co do pixela nie da się zrealizować w inny sposób niż zmieniając offset całego ekranu.

    "Czarny" służy do zmiany koloru wyświetlania z białego na czarny. 0 - biały, 1- czarny. Wartość zmieniana jest środkowym przyciskiem.

    "Ilość cel" służy do ustawienia ilości szeregowo połączonych cel akumulatora. Możemy wybrać 1-4 cel w szeregu za pomocą klawiszy kierunkowych -lewo, prawo. Na podstawie tej wartości działa alarm niskiego stanu baterii. Założyłem użycie akumulatorów li-ion. Jako puste traktuję je przy 3V na ogniwo. Alarm włącza się przy 3,15V na ogniwo i polega na tym, że wartość napięcia miga.
    Do monitorowania napięcia baterii służy wejście BAT1. Jeśli używamy baterii 1S lub 2S z przetwornicą step-up, do wejścia BAT1 oczywiście należy podłączyć przewód wyprowadzony z wejścia przetwornicy.

    "Stan baterii" pozwala nam wybrać wyświetlanie napięcia w formacie xx,xxV lub xx%

    "Wyjście" zapisuje wartości zmiennych do pamięci eeprom jeśli różnią się od zapisanych wcześniej i wychodzi z menu.


    Na początku myślałem nad zaprojektowaniem własnej płytki, jednak podczas poszukiwań układów mogących generować OSD trafiłem na używaną przez droniarzy płytkę minimOSD opartą na układzie MAX7456 sterowanym przez Atmegę328. Był to strzał w dziesiątkę.
    Płytka istnieje w dwóch wersjach, większej-mini i mniejszej-micro. Koszt 4-7$ u Chińczyków. Większa wersja ma wbudowaną przetwornicę napięcia, dzięki czemu można ją zasilić z 12V tak jak kamerę i wyświetlacz.
    Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach
    Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach

    Jedyna fizyczna modyfikacja jaką trzeba wykonać to usunięcie dzielnika napięcia z wejścia BAT2 służącego pierwotnie do monitorowania stanu baterii na porcie PC0 mikrokontrolera. Wejście to posłuży do obsługi przełącznika kierunkowego. Wybrałem akurat to wejście z uwagi na położenie dzielnika. Z tego miejsca łatwiej je usunąć i idę o zakład, że dałoby się to zrobić lutownicą transformatorową.
    Na zdjęciu widać płytkę po modyfikacji. W miejscu zwory był rezystor 15k, a w miejscu pustym 1k.
    Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach

    Do interakcji z układem służy 4 kierunkowy joystick, który jest złożony z 5 mikroprzycisków w jednej obudowie. Przyciski (na razie pojedyncze) połączyłem za pomocą drabinki rezystorowej dzięki czemu używam tylko jednego wejścia atmegi.
    Rezystory dobrałem tak, aby uzyskać zakres jak najbliższy pełnemu, przy zastosowaniu wewnętrznego napięcia odniesienia 1,1V.
    Wyszło 120k od zasilania + drabinka złożona z 7 oporników 4,7k.
    Celownik OSD na MAX7456 do systemów bezlunetowych w wiatrówkach

    Układ MAX7456 potrafi wyświetlać jedynie tekst. Dlatego aby wyświetlić krzyż celowniczy musiałem przygotować zestaw znaków.
    Użyłem do tego celu edytora dostarczonego przez producenta scalaka.
    Zaskakującym problemem okazało się wgranie tablicy symboli do pamięci MAXa. Nie działały szkice dostarczone z biblioteką, nie działały również wersje polecane na różnych forach. Przez soft do konfiguracji osd pod drony, wgrywanie fontów działało losowo.
    W końcu znalazłem niezawodny sposób.
    Należy ściągnąć i wypakować archiwum ze strony mwosd.com ,następnie wejść do folderu MW_OSD i usunąć plik fontB.h
    Teraz na jego miejsce wkleić własny zestaw znaków i zmienić jego nazwę na fontB.h
    Otwieramy w arduinoIDE plik MW_OSD.ino, przechodzimy do zakładki config, wybieramy odpowiednią płytkę i w końcu odkomentowujemy linię
    Code: c
    Log in, to see the code

    Kompilujemy, wgrywamy i czekamy. Jeśli płytka jest podłączona do jakiegoś wyświetlacza to wyświetlą nam się wszystkie dostępne symbole.

    Bibliotekę konieczną do obsługi MAX7456 znalazłem TU
    W końcu można wypalić szkic z celownikiem.


    W czasie tego projektu uczyłem się programować, do tej pory nie potrafiłem wyjść poza mruganie ledem. Dlatego kod jest chaotyczny i mało czytelny.
    Układ został przetestowany na sucho, podłączony do starej kamery na kasety i telewizora. Nie mam ani żadnego małego ekranu, ani kamerki żeby przetestować wszystko na żywym organizmie. Dlatego na razie projekt uważam za zakończony. W przyszłości mooooże dodam kilka slotów pamięci do wyboru do przechowywania ustawień krzyża przystrzelonego na różne odległości, kilka siatek do wyboru oraz dodatkową belkę horyzontalną ustawianą indywidualnie.

    Efekt wygląda tak:





    W paczce są: szkic programu, fonty i hexy.
    Dodaję skompilowane hexy ale polecam raczej kompilować samodzielnie, gdyż połączenia w mojej testowej klawiaturce mogą nie odpowiadać wyprowadzeniom krzyżaka, przez co może wystąpić konieczność zamienienia miejscami wartości w linii
    Code: c
    Log in, to see the code

    Obecnie wartości reprezentują przyciski kolejno od lewej: Prawy, Góra, Dół, Lewy, Środkowy

    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    zackass1
    Level 16  
    Offline 
    Has specialization in: majsterkowanie
    zackass1 wrote 235 posts with rating 51, helped 6 times. Been with us since 2008 year.
  • Nazwa.pl
  • #2
    rdt
    Level 25  
    podoba mi się.
    Jakich obiektywów się używa najczęściej ?? czy jest to na zasadzie "im dłuższa ogniskowa tym lepiej" ?
    Rozumiem że po zamocowaniu takiej kamery i skalibrowaniu z lufą już się ognikowej nie dotykamy?
  • Nazwa.pl
  • #3
    zackass1
    Level 16  
    Z tego co czytam zagraniczne fora to soczewki od kamer przemysłowych 50mm F1.2-F1.3 są chyba najpopularniejsze.
    Standard montażu M12, C, CS. Zależy co kto ma.
    I tak, po zamontowaniu kamery i ustawieniu zera już nic nie grzebiemy przy soczewce.
    Jest jeszcze ważny drobiazg, zero może się nieznacznie różnić przy świetle dziennym i przy oświetlaczu IR.
  • #4
    Duch__
    Level 31  
    Ja takie coś zrobiłem kilka lat temu do kamery obserwującej proces spawania, dla jednego z klientów. Zdjęć niestety nie mam, ale wiem że działa i jest wykorzystywane do dzisiaj. Kamera miała naniesiony wzór krzyża wyświetlany na monitorze. Był to swego rodzaju punkt odniesienia. Operator reagował od razu jak mu punkt odniesienia odjeżdżał od spawu.
  • #5
    gradek83
    Level 42  
    Jak to jest montowane na wiatrówce i jak obraz jest wyświetlany na jakimś małym monitorku czy podpinane są jakieś google MPV i czy przy strzelaniu nocą stosuje się jakiś oświetlacz IR a pomiędzy soczewką ( obiektywem) a matrycą jest jakiś IR CUT Filter ?