Teraz jest wtorek, 27 października 2026, 10:58

Strefa czasowa: UTC + 1




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
 Tytuł: Moduł JR PPM2IR
PostNapisane: środa, 9 lutego 2011, 14:41 
Offline
modelarz
Avatar użytkownika

Dołączył(a): wtorek, 4 stycznia 2011, 11:12
Posty: 28
Wiek: 42
Lokalizacja: Kraków
Niedawno dostałem od kolegi do naprawy i pobawienia się helikopterek zdalnie sterowany na podczerwień. Niestety oryginalny nadajnik był w złym modzie ( przyzwyczaiłem się do mode-2 ), co utrudniało mi sterowanie nim. Pewnie bym się przyzwyczaił, ale każdy powód dla nowego projektu jest dobry zabrałem się więc do pracy i tak po niespełna trzech wieczorach już można było polatać za pomocą poniższego wynalazku.

Obrazek
Finalny moduł wsadzony do obudowy po Assanie, oparty na ATTiny25.

W tym wątku będę opisywał kolejne etapy powstawania urządzenia. Jeżeli pojawią się pytania chętnie na nie odpowiem, całość będzie też nieco dokładniej opisana po angielsku na forum serwisu http://dangerousprototypes.com

Kolejno opisywane będą następujące etapy:
1. Odtwarzanie protokołu za pomocą fototranzystora i analizatora logicznego
2. Założenia i projekt układu
3. Oprogramowanie
4. Ostateczna postać, problemy, spostrzeżenia i wnioski na przyszłość

_________________
Pozdrawiam,
Piotr


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: PPM2IR - 1. Odtwarzanie protokołu
PostNapisane: środa, 9 lutego 2011, 15:47 
Offline
modelarz
Avatar użytkownika

Dołączył(a): wtorek, 4 stycznia 2011, 11:12
Posty: 28
Wiek: 42
Lokalizacja: Kraków
1. Odtwarzanie protokołu

Obrazek

Ponieważ nie chciałem ani rozkręcać nadajnika, ani tym bardziej wlutowywać się w niego postanowiłem odtworzyć protokół transmisyjny bezinwazyjnie. W tym celu na płytce stykowej złożyłem bardzo prosty układ z fototranzystorem NPN i rezystorem i podłączyłem do analizatora logicznego ( OpenLogicSniffer ).

Chciałbym jeszcze wspomnieć, że już po zakończeniu fazy analizy znalazłem w internecie udokumentowany protokół. Więc następnym razem pewnie najpierw poszukam,a dopiero później sam będę się bawił w odkodowywanie... Tak czy siak, straconego czasu nie żałuję bo zawsze to ciekawa łamigłówka:)

Obrazek

Rezystor został dobrany tak, aby fototranzystor nie nadążał za nośną 38kHz, a na wyjściu pojawiały się tylko dane zamiast dziesiątek tysięcy impulsów.

Obrazek

Następnie przeprowadziłem szereg "nagrań" zawierających wszystkie możliwe manipulacje wykonywane na oryginalnym pilocie, oraz różne kanały. Format ramki dość łatwo udało się ustalić i przyszedł czas na zrozumienie sensu przesyłanych danych.
Obrazek
Obrazek
Przykładowa ramka przechwycona podczas wstępnej analizy. Ramka zaczyna się od preambuły stan wysoki przez 3,6ms, następnie stan niski 1ms. Dalej mamy 32 bity, gdzie każdy zajmuje 1ms i jest kodowany długością impulsu ( "1" - 0,3ms wysoki i 0,7ms niski, a "0" - 0,7ms wysoki i 0,3ms niski). Jako 33 przesyłany jest bit stopu "1".

W celu analizy danych przyjąłem, jak się później okazało słuszne :), założenia iż ramka zawiera cztery 8-bitowe słowa. Stworzyłem skrypt który przechwycone dane zamieniał na postać zrozumiałą dla arkuszy kalkulacyjnych i zaimportowałem szereg sesji nagraniowych do arkusza Google Docs.
Obrazek
Na powyższym rysunku widać już zidentyfikowany bajt przepustnicy, oraz częściowo obliczoną sumę kontrolną, której ostateczna postać została poznana dopiero później. Sam proces rozszyfrowywania polegał w głównej mierze na obserwacji zależności na wykresach od wykonywanych ruchów na aparaturze oraz oczywiście zgadywaniu :)

Ostatecznie udało się odszyfrować 32 bity danych oraz ich znaczenia:
Kod:
31 bit przesyłany jako pierwszy, 0 jako ostatni
--|--B3--------------
31| 0
30| MSB przepustnicy
29| ...
28| ...
27| ...
26| ...
25| ...
24| LSB przepustnicy
--|--B2--------------
23| MSB obrotu w okół własnej osi
22| ...
21| ...
20| LSB obrotu w okół własnej osi
19| MSB przód/tył
18| ...
17| ...
16| LSB przód/tył
--|--B1--------------
15| FLAGA 1 - obrót w lewo, 0 - obrót w prawo
14| FLAGA 1 - lot do tyłu, 0 - lot do przodu
13| FLAGA 1 - trymowanie w lewo, 0 - trymowanie w prawo
12| MSB trymera
11| ...
10| ...
09| ...
08| LSB trymera
--|--B0--------------
07| MSB KANAŁ, A - 11
06| LSB KANAŁ
05| MSB Sumy kontrolnej
04| ...
03| ... CRC = (0x0F + B3 + B2 + B1) & 0x3F
02| ...
01| ...
00| LSB Sumy kontrolnej
--|------------------

Kolejna część niebawem ( o ile będzie zainteresowanie :) ), a w niej projekt układu, wybór kontrolera i założenia na potrzeby programu.

_________________
Pozdrawiam,
Piotr


Ostatnio edytowano środa, 9 lutego 2011, 15:56 przez pppd, łącznie edytowano 1 raz

Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Moduł JR PPM2IR
PostNapisane: środa, 9 lutego 2011, 15:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): poniedziałek, 22 marca 2010, 09:07
Posty: 1739
Wiek: 59
Lokalizacja: Tarnowskie Góry
No to już masz jednego zainteresowanego, synowi zanabyłem heli sterowane na podczerwień i ...... to lata i to całkiem fajnie, o czym doniosę w stosownym czasie, fotki i filmik pokaże. Heli to sterowane jest małym nadajnikiem na IR i tak się zastanawiałem czy nie dałoby się jakoś tak pomajstrować by ten helik był sterowany normalnym nadajnikiem ( JR-X8310) . Zaznaczam że na elektronice znam się jak świnia na kościelnych dzwonach. Z uwagą i zapewne pełnym brakiem zrozumienia , takoż i oczami szeroko otwartymi czytać będę cóż Waść tu tworzysz.

_________________
..:: Modelarstwo to nie kółko różańcowe - tu trzeba myśleć ::..
Najnowsze nowości u mnie : http://www.motylasty.blogspot.com , no i oczywiście -http://www.motylasty.pl


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: 2. Prototyp układu
PostNapisane: wtorek, 15 lutego 2011, 23:55 
Offline
modelarz
Avatar użytkownika

Dołączył(a): wtorek, 4 stycznia 2011, 11:12
Posty: 28
Wiek: 42
Lokalizacja: Kraków
2. Prototyp

Swoją przygodę z mikrokontrolerami zacząłem dopiero w szkole średniej. Jako uczeń Technikum Łączności w Krakowie miałem między innymi zajęcia w katedrze elektroniki AGH gdzie poznawaliśmy wszelakie układy od zera.. a programowanie procesorów polegało na ręcznym obliczaniu instrukcji na podstawie mnemoników, zamienianiu ich na liczby szesnastkowe, a ostatecznie wprowadzaniu bezpośrednio do pamięci RAM poprzez ręczne przejęcie magistrali, "krokowanie" itd. Było to wyjątkowo upierdliwe w przypadku popełnienia najmniejszego błędu, ale nauczyło pisać jak najprostsze i najkrótsze programy aby osiągnąć dany cel ( niestety nie zawsze najbardziej zrozumiałe :P ). Drugą rzeczą było wykorzystywanie najmniejszych i najtańszych części pozwalających na wykonanie danego zadania.

Co prawda ten wstęp nie wnosi zbyt wiele do projektu, ale chciałem uzasadnić dlaczego wybór padł na taki, a nie inny mikrokontroler :-)

W tym projekcie planowałem wykorzystać ATtiny13 jeden z najmniejszych kontrolerów AVR oraz timer NE555 do generowania nośnej częstotliwości 38kHz. Ponieważ nie miałem już wolnej 13'tki wybrałem ATtiny25 który również posiada tylko 8 pinów ( włączając zasilanie/masę/reset ) ale ma więcej pamięci RAM 128B, FLASH 2kB oraz dwa liczniki dzięki czemu mogłem zrezygnować z timera NE555 do generowania nośnej. Większa ilość pamięci flash pozwoliła także zastosować bootloader i uniknąć przyłączania 6 przewodów za każdym razem kiedy wgrywałem nową wersję oprogramowania a wystarczyły tylko 3.

Obrazek

Sam układ jest dość prosty, można wręcz rzec prymitywny. Niestety nie jestem specjalistą w projektowaniu układów. Pomimo uczęszczania do takiej, a nie innej szkoły średniej poszedłem zdecydowanie w kierunku oprogramowania. Tak, teraz pluję sobie w brodę, że nie uważałem na lekcjach :/ ale cóż, pozostaje samemu nadrabiać braki i liczyć na reinkarnację.

Aparatura Turnigy 9X podaje tylko napięcie ~12V więc musiałem zastosować regulator napięcia 7805 aby zasilić procesor i diodę sygnalizacyjną. Diody nadawcze natomiast, są zasilane z 12V i kontrolowane przez tranzystor NPN.

Obrazek

Prototyp został wykonany na płytce stykowej. Całość zasiliłem pakietem 1S pozostałym z uszkodzonego 3S i wykorzystałem tylko jedną diodę IR. Na potrzeby testów było to wystarczające. W finalnym układzie umieściłem 3 diody w szeregu, ale o tym następnym razem.

_________________
Pozdrawiam,
Piotr


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Moduł JR PPM2IR
PostNapisane: piątek, 18 lutego 2011, 00:54 
Offline
modelarz
Avatar użytkownika

Dołączył(a): wtorek, 4 stycznia 2011, 11:12
Posty: 28
Wiek: 42
Lokalizacja: Kraków
Przez weekend dokończę opis projektu. Jeżeli ktoś chce przeczytać go już teraz, to po angielsku projekt został już w pełni opisany na forum Dangerous Prototypes PPM2IR Transmitter Module

_________________
Pozdrawiam,
Piotr


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Moduł JR PPM2IR
PostNapisane: piątek, 18 lutego 2011, 01:35 
fajny masz komputer ;) jak się tak nauczyć rzeczy przerabiać :D


Góra
  
 
 Tytuł: Re: Moduł JR PPM2IR
PostNapisane: piątek, 18 lutego 2011, 09:34 
Offline
modelarz
Avatar użytkownika

Dołączył(a): wtorek, 4 stycznia 2011, 11:12
Posty: 28
Wiek: 42
Lokalizacja: Kraków
komputer jak komputer :) hmm, a jak się nauczyć.. trzeba najpierw popsuć kilka rzeczy.. no i w końcu zacząć zabawę. Programowanie AVR jest na prawdę proste o ile wcześniej cokolwiek się kodowało. Kolega w przeciągu kilku tygodni nauczył się na tyle dobrze, że z pomocą internetu i moją był w stanie wykonać proste 4 kanałowe diversity :)

_________________
Pozdrawiam,
Piotr


Góra
 Zobacz profil Wyślij e-mail  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron

140,398,933 Wyświetlone Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL