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

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

Kubald 04 Sep 2012 22:55 9117 3
Altium Designer Computer Controls
  • 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.

    Code: c
    Log in, to see the code


    Źródło

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    Kubald
    Level 15  
    Offline 
    Has specialization in: spektroskopia exafs/xanes, uc, it
    Kubald wrote 188 posts with rating 96, helped 0 times. Live in city Kraków. Been with us since 2004 year.
  • Altium Designer Computer Controls
  • #2
    Tomi127pol
    Level 11  
    otapi wrote:
    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."
  • Altium Designer Computer Controls
  • #3
    Freddy
    Level 43  
    otapi wrote:
    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
    Level 10  
    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.