Autor Wątek: Mjoy  (Przeczytany 169254 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Odp: Mjoy
« Odpowiedź #315 dnia: Lutego 04, 2009, 08:24:05 »
Bardzo się ciesze,że na naszym forum ujawnił się programista.Tak jak wspomniałem jest to sprawa programu.Karta Master OpenCockpits jest tak zaprojektowana,że rodzaj wejścia trzeba zadeklarować.Może to być przycisk,przełącznik lub enkoder.W MJoyu jest ograniczenie,ale można to programowo zmienić.Z tego co wiem to jest dostępny kod źródłowy do MJoya i można zrobić modyfikację.
Myślę,że następnym moim projektem będzie prosty panel dla FSX i tutaj zmodyfikowany MJoy byłby pomocny.

damos

  • Gość
Odp: Mjoy
« Odpowiedź #316 dnia: Lutego 04, 2009, 14:17:27 »
Kod źródłowy do MJoya jest dostępny, ale tylko w pierwszej wersji. Druga (aktualna) już nie została upubliczniona. Chyba, że coś się ostatnio zmieniło. W MJoyu problemem jest software'owy stack USB, który w kilku miejscach wymaga dośc precyzyjnego timingu co odbija się zarówno na prędkości transmisji danych jak i czasu mikrokontrolera, który pozostał do wykorzystania :( Istnieje alternatywny stack USB (opublikowany przez niemiecką firmę), ale tamten znów niemal uniemożliwia korzystanie z przerwań (bo sam na nich bazuje w obsłudze USB) więc nadaje się do implementacji karty wyjść (co sobie zrobiłem) a dużo słabiej do wejść. Dużo lepiej pod tym względem wyglądają kontrolery AT9USB128* (sprzętowe USB, więcej pamięci) ale obudowy i cena nie zadowolą przeciętnego użytkownika. W styczniu pojawiły się zapowiedzi Atmegi (!) ze sprzętowym USB (Atmega16U4 i Atmego32U4) w obudowach TQFP44, ale w Polsce nikt tego nie ma.

Gładki

  • Gość
Odp: Mjoy
« Odpowiedź #317 dnia: Lutego 04, 2009, 16:41:00 »
Z tym, że ja nie zamierzam ingerować w samego mjoy'a, tylko zrobić przystawkę umożliwiającą podłączenie enkoderów w miejsce przycisków, więc sam mjoy pozostanie niezmieniony.

Odp: Mjoy
« Odpowiedź #318 dnia: Lutego 04, 2009, 17:08:53 »
Dziękuję bardzo za odpowiedzi, Gładki - trzymam kciuki za powodzenie projektu :) Tak się uparłem na te enkodery, bo myślałem o zrobieniu bardzo prostego panelu w postaci np. 4 gałek do radia + dodatkowego pokrętła do zmiany COM/NAV/ADF/XPDR do użytku w FSie. Jako że niestety kompletnie nie mam doświadczenia, najprostszy wydał mi się Mjoy - układ ten jest dosyć tani, może być używany nie tylko w FSie, a dzięki popularności mógłbym się konsultować z doświadczonymi użytkownikami ;)

Odp: Mjoy
« Odpowiedź #319 dnia: Lutego 04, 2009, 17:55:46 »
Gładki możesz napisać coś więcej na temat twojego pomysłu.Ja też o czymś takim pomyślałem.Może wspólnie coś wymyślimy.

damos

  • Gość
Odp: Mjoy
« Odpowiedź #320 dnia: Lutego 04, 2009, 18:22:26 »
Z tym, że ja nie zamierzam ingerować w samego mjoy'a, tylko zrobić przystawkę umożliwiającą podłączenie enkoderów w miejsce przycisków, więc sam mjoy pozostanie niezmieniony.
A to jak najbardziej! Byle tylko impuls z enkodera był na tyle długi, żeby MJoy zdążył go przechwycić na przerwaniu i odpytać porty - wtedy wszystko zadziała.

Odp: Mjoy
« Odpowiedź #321 dnia: Lutego 05, 2009, 17:51:05 »
Myślę,że można zrealizować dodatkowo 16 enkoderów.Postaram się do końca lutego zrobić model i przetestować.Będzie to dodatkowy układ zewnętrzny.Myślałem o rozwiązaniu pogramowym,ale po wypowiedzi Damosa ten wariant odpada.Dam znać po wykonaniu testów.

Odp: Mjoy
« Odpowiedź #322 dnia: Lutego 10, 2009, 09:26:59 »
Zgodnie z obietnicą zrobiłem rozeznanie tematu związanego z zwiększeniem liczby enkoderów podłączonych do MJoya.Można to zrealizować przy pomocy układów dyskretnych,ale jest to nieopłacalne.
Enkoder zakupiony przez Nokera będzie działał,ale po pewnej modyfikacji.MJoy jest zaprojektowany pod układy bierne typu przycisk,przełącznik,enkoder z wyjątkiem wejść analogowych.Modyfikacja enkodera Nokera polegałaby na podłączeniu do jego wyjść transoptorów,których wyjścia udawałaby przyciski.Wyjścia transoptorów są odseparowane od jego wejść.Oporność złącza kolektor emiter z stanie przewodzenia nie powinna być problemem dla procesora MJoya.Ponieważ na wyjściu enkodera impulsy są zanegowane to trzeba umieścić pomiędzy wyjście enkodera a wejście transoptora inwerter.
Drugie rozwiązanie czyli BU 0836 jest idealne,można podłączyć 16 enkoderów.Cena tego kontrolera wynosi 45$ z przesyłką.Można kupić tylko chip za 17$ plus 10$ przesyłka.

Odp: Mjoy
« Odpowiedź #323 dnia: Lutego 14, 2009, 13:07:53 »
Witam,zadano mi pytanie na PW na które nie potrafię odpowiedzieć,dlatego przeniosłem je do tego wątku.
Cytuj
Mam pytanie. Jaka jest rozdzielczość Mjoya?
Z tego co wyczytałem to sygnał na wejściach analogowych jest kodowany liniowo za pomocą 10 bitowego przetwornika,co daje 1024 poziomy kwantyzacji.Czyli dokładność kodowania można wyliczyć dzieląc maksymalny sygnał na wejściu przez 1024.Można oczywiście zastosować MJoy do sterownia joystika.
Teraz pytanie o rozdzielczość MJoya,jak to interpretować?

damos

  • Gość
Odp: Mjoy
« Odpowiedź #324 dnia: Lutego 15, 2009, 12:22:03 »
Ok. Przetwornik A/C w Atmega jest 10-cio bitowy. Oznacza to, że powinien potrafić na wyjściu oddać 1024 różne wartości. Jednak dopuszczalny błąd wynosi 2 jednostki kwantyzacji co daje nam rzeczywistą dokładność 9 bitów (512 różnych stanów). W dodatku w niektórych Atmegach możliwe jest włączenie wzmocnienia na wejściu ADC (10x lub 200x) a wtedy rozdzielczość spada nam odpowiednio do 8 i 7 bitów. Kolejną rzeczą jest częstość pobierania próbek. ADC pracuje tam w układzie sukcesywnej aproksymacji i dla zachowania minimum dokładności ilość pomiarów nie powinna przekraczać 15 tys na sekundę. A nawet wewnątrz tego zakresu -  im większa częstość pomiarów - tym mniejsza dokładność. Aby dopełnić obrazu chaosu - na czas przetwarzania sygnału z analogowego w cyfrowy (kwantyzacja) zaleca się wprowadzenie kontrolera w tryb uśpienia - w celu minimalizacji szumów z wnętrza kontrolera - i włącza ukłąd redukcji szumów (noise canceller). Ustawia się przedtem dodatkowo kilka rejestrów (znacznik ADIE w rejestrze ADCSRA, znacznik I w rejestrze SREG i inne, których już nie pamiętam), układ ADC przełącza w tryb konwersji jednorazowych i po wywołaniu sleep'a rdzeń Atmegi zamiera a pracuje jedynie przetwornik. Kolejnym sposobem jest uśrednianie kilku pomiarów wykonanych po sobie.
Niestety - nie jest mi wiadome, z czego korzysta ostatni soft MJoya :)

Odpowiedź na pytanie:
teoretyczna rozdzielczość MJoya to 1024 punkty (różne wartości)
prawdopodobna to 512 punktów (różnych wartości)
faktyczna - nieznana :) - można wyznaczyć empirycznie indywidualnie dla każdego układu (jakość ADC ATMEL uzależnia nawet od typu obudowy - układy SMD mają lepszą dokładność)

Odp: Mjoy
« Odpowiedź #325 dnia: Lutego 15, 2009, 17:22:20 »
Należy podziwiać twórców program MJoy ,że potrafili stworzyć program,który realizuje tyle funkcji.Dodam tylko,że w latach 70-ych realizowano przetworniki dla mowy oraz muzyki za pomocą układów dyskretnych tzn.tranzystorów oraz układów hybrydowyh.Przetworniki były duże,ale bardzo szybkie.Później pojawiły się układy scalone realizujące przetwarzanie analog-cyfra i odwrotnie.Oczywiście dla mowy i muzyki przetwarzanie musi być nieliniowe ze względu na stosunek sygnał szum.
Można oczywiście zaprojektować od nowa sterownik podobny do MJoya np.z zew.przetwornikiem analog-cyfra z duża rozdzielczością,ale czy to miałoby sens.
Przy okazji pytanie dotyczące enkodera.Czy jest jakiś pomysł na jego realizację za pomocą dodatkowego układu.

damos

  • Gość
Odp: Mjoy
« Odpowiedź #326 dnia: Lutego 15, 2009, 20:22:13 »
Należy podziwiać twórców program MJoy ,że potrafili stworzyć program,który realizuje tyle funkcji.
No właśnie - nie wiadomo, czy robi wszystko, co możliwe w celu zmniejszenia szumów. On ciągle musi być gotowy na porcję danych z USB... :) Ale i tak zrobili kawał porządnej roboty !
Czy jest jakiś pomysł na jego realizację za pomocą dodatkowego układu.
IMHO najlepiej było by podpiąć encoder to ATTiny a ten do MJoya... tanie, małe i można prosto oprogramować. Można by do tego jeszcze demultiplexer zastosować i wtedy podłączyć duuużo encoderów (ale mjoy już tego "nie łyknie").
« Ostatnia zmiana: Lutego 15, 2009, 20:31:01 wysłana przez damos »

Odp: Mjoy
« Odpowiedź #327 dnia: Lutego 16, 2009, 08:51:23 »
Ja skończyłem zabawę z uP jednoukładowymi na poziomie asemblera parę lat temu,dlatego nie podejmuję się realizacji enkodera.Enkoder zakupiony przez Nokera powinien działać,ale musi mieć separację np.transoptory.Jest to wada,poza tym realizuje tylko jeden enkoder.
Drugie rozwiązanie czyli BU 0836 rozwiązuje problem.
W naszym przypadku można zrobić prostą wersję np.BU 0836 realizującą tylko enkodery i podpiąć do MJoja do styków realizujących przyciski.Myślę jednak,że musi być układ pośredniczący (udający przyciski np.transoptory) pomiędzy MJoyem a sterownikiem .
Jeśli Damos lub Gładki zrobią prosty sterownik do podpięcia enkoderów oraz MJoya to mogę zrobić interfejs z transoptorów i przebadać z MJoyem.Można jeszcze rozpatrzyć zastosowanie układów PLD zamiast uP.Co o tym sądzicie?
Jeszcze jedno przyszło mi do głowy.Trzeba przebadać czy oporność kolektor-emiter transoptora w stanie przewodzenia nie jest za duża i nie zakłóci pracy MJoya.

Gładki

  • Gość
Odp: Mjoy
« Odpowiedź #328 dnia: Lutego 17, 2009, 22:48:09 »
Można zastosować PLD, ale będzie to raczej droższe rozwiązanie.

Odp: Mjoy
« Odpowiedź #329 dnia: Lutego 23, 2009, 10:44:17 »
Witam,zgodnie z obietnicą zrobiłem projekt układu cyfrowego do podłączenia enkodera do MJoya.Z analizy tego rozwiązania wynika kilka wniosków.
1.Realizacja układu za pomocą elementów dyskretnych wymaga zastosowania kilku układów scalonych,paru rezystorów,2 kondensatorów oraz dwóch transoptorów lub alternatywnie 2 miniaturowych przekaźników np.A-5W-K.
2.Można zastosować zamiast LS układy CMOS redukując pobór mocy,ale nie jestem pewien czy nie potrzeba dodatkowego zasilania 5 V.
3.Stała czasowa 1uF,10K daje impulsy około 10ms.Trzeba sprawdzić czy dla MJoya to wystarczy,jeśli nie to trzeba zwiększyć wartość stałej.
4.Na wyjściu umieściłem dwa rozwiązania albo transoptor albo przekaźnik zależy od wejść uP,trzeba to sprawdzić.
Wniosek ogólny jest taki,że prościej jest zbudować MJoy z możliwością podłączenia 4 enkoderów niż powielać 4 razy moje rozwiązanie,nie wspominając o zasilaniu.
Ponieważ na naszym forum są studenci uczelni technicznych to umieściłem drugi rysunek objaśniający działanie mojego układu.Gdybym był programistą to zamieniłbym automat Mealego na synchroniczny Moora.Na tej podstawie zrobiłbym algorytm oraz program.Długość impulsów można ustawić timerem.Pozostaje nadal problem interface uP z MJoyem.
Pozostałem na etapie schematu ideowego,ponieważ nie widzę sensu realizacji tego projektu w technice dyskretnej.Nadal pozostaje możliwość realizacji za pomocą układów PLD lub uP.Ja nie mam obecnie możliwości projektowania PLD oraz uP.Może ktoś inny z forum zrealizuje ten temat za pomocą wymienionych powyżej układów.
Jeśli zrobiłem jakieś błędy projektowe to proszę o wyrozumiałość, zajmowałem się technika cyfrową dawno temu i dużo zapominałem.