Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

Kubald 04 Wrz 2012 22:55 8682 3
  • Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Swego czasu autor kupił dla syna zdalnie sterowany (podczerwienią) helikopter Syma S107G. Taka niewielka zabawka jest niesamowita – nie tylko ruch jest bardzo stabilny, ale także prędkość silnika, lot w przód i w tył i obrót może być precyzyjnie kontrolowany. Autor stwierdził, że ciekawe może być zbadanie, w jaki sposób przebiega sterowanie zabawki. Na końcu oryginalnego artykułu można obejrzeć nagranie, na którym autor steruje S107G używając „rozpracowanego” zdalnego sterowania.

    Przed przestąpieniem do dekodowania protokołu IR, autor stwierdził, że nieco użytecznych informacji można znaleźć, analizując płytkę drukowaną pilota.


    Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Okazało się, że S107G używa procesora do wykonywania kodowania sygnału, więc bez przeanalizowania sygnałów sterujących nie można wiele powiedzieć na podstawie samej budowy płytki. Niestety, oznaczenie procesora było zatarte (co jest dość powszechną praktyką w komercyjnych urządzeniach), więc trudno było stwierdzić, jaki rodzaj procesora zamontowany w pilocie.

    Analizując opisy na płytce, autor stwierdził, że nadajnik IR pracuje z częstotliwością 38 albo 57 kHz, co odpowiada kanałowi A lub B pracy transmitera. Do sterowania kierunkiem i przepustnicą zostały użyte trzy potencjometry – zapewne są one podłączone do wejść konwertera A/D procesora.

    Autor postanowił zbadać sprawę głębiej, analizując sygnały podczerwieni. Pierwszym krokiem było podejrzenie sygnału nadawanego przez pilota. Może być to zrealizowane na kilka sposobów, np. przez podejrzenie sygnału podawanego na diodę IR lub poprzez zbudowanie prostego odbiornika IR. W prezentowanym opisie zostało wykorzystane rozwiązanie drugie. Poniższy schemat pokazuje budowę prostego odbiornika IR.

    Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Do „obejrzenia” modulowanego sygnału IR została wykorzystana zwykła fotodioda podłączona do wejścia oscyloskopu. Na poniższym oscylogramie można zobaczyć, że komendy sterujące powtarzane są co 184 ms. Powiększenie każdego impulsu danych pokazuje modulowany sygnał IR – jak w przypadku drugiego obrazu.

    Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Nadawany sygnał ma częstotliwość 38 kHz i wypełnienie wynoszące ok. 50%.

    Do demodulacji sygnału wykorzystano typowy odbiornik podczerwieni. Poniżej można zobaczyć zdemodulowany sygnał.

    Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Ponieważ nadawany sygnał zależy od położenia kontrolerów ruchu helikoptera, autor zarejestrował kilka przebiegów odpowiadających różnym położeniom. Porównując je można określić, w którym miejscu są przekazywane odpowiednie dane.

    Poniższe przebiegi zarejestrowano dla różnych położeń kontrolerów pozycji helikoptera i przepustnicy. Jak można odczytać z zarejestrowanych przebiegów, każdy sygnał składa się z 34 impulsów, które razem dają komendę składającą się z 4 bajtów danych i dwóch bajtów nagłówka. Na stronie projektu można poznać dokładne wartości zdekodowanych sygnałów i sposób ich przesyłania.

    Inżynieria wsteczna pilota na podczerwień do zdalnie sterowanego helikoptera

    Aby potwierdzić, że odczyt protokołu powiódł się, autor stworzył własny sterownik w oparciu o Arduino. Poniżej można znaleźć pełny program procesora. W skrócie, Timer1 używany jest do odliczania 180-milisekundowych interwałów, a Timer2 generuje nośną o częstotliwości 38 kHz i wypełnieniu 50%. „Zera” i „jedynki” są generowanie przez zatrzymywanie generowania sygnału 38 kHz na czas określony w zmiennej delayMictroseconds Trzy potencjometry sterują ruchami helikoptera.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Źródło

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Kubald
    Poziom 15  
    Offline 
    Specjalizuje się w: spektroskopia exafs/xanes, uc, it
    Kubald napisał 188 postów o ocenie 76, pomógł 0 razy. Mieszka w mieście Kraków. Jest z nami od 2004 roku.
  • Computer ControlsComputer Controls
  • #2
    Tomi127pol
    Poziom 10  
    otapi napisał:
    hahaha... a ja miałem kiedyś taki program co potrzebował klucz więc postanowiłem zajrzeć do środka aby zobaczyć jaki klucz by pasował i to bynajmniej nie nazywała się "inżynieria wsteczna" ;]


    "Technika odwracania, inżynieria odwrotna, inżynieria wsteczna, programowanie zwrotne (ang. reverse engineering) to proces badania produktu (urządzenia, programu komputerowego) w celu ustalenia jak on dokładnie działa, a także w jaki sposób i jakim kosztem został wykonany. Zazwyczaj prowadzony w celu zdobycia informacji niezbędnych do skonstruowania odpowiednika."
  • Computer ControlsComputer Controls
  • #3
    Freddy
    Poziom 43  
    otapi napisał:
    hahaha... a ja miałem kiedyś taki program co potrzebował klucz więc postanowiłem zajrzeć do środka aby zobaczyć jaki klucz by pasował i to bynajmniej nie nazywała się "inżynieria wsteczna" ;]

    Reverse engineering opisano powyżej, a to o czym Ty mówisz kolego, to zwykłe hackerstwo, czyli przestępstwo !
  • #4
    tek467
    Poziom 9  
    Witaj Kubald, czy Twoim zdaniem można zastosować podany program w C do sterowania heli SYMA S107G laptopem z portem IR? Programowanie w C to nie moja bajka, kiedyś czyniłem w asemblerze i w kochanym Basic. Gdybyś miał dla mnie jakieś wskazówki byłbym wdzięczny. tek467.