Autor Wątek: Mjoy  (Przeczytany 168920 razy)

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

Odp: Mjoy
« Odpowiedź #495 dnia: Kwietnia 09, 2009, 11:13:22 »
damos - ładną sumkę uzbierałeś :) chyba trzeba będzie ogólno światową zbiórkę zrobić hehe

Przy zwiększaniu możliwości MJoy'a (impulsator) jest jeszcze jeden problem - DirectInput czyli obsługa joysticka w Windowsie. Programowałem prostą rzecz do FSX wykorzystując encodery MJoy'a. Z racji programowania tego w .NET miałem sporo zgubionych pakietów (można włączyć buforowanie ale to nie o to chodzi), w natywnych aplikacjach jest lepiej. Jednak szybko kręcąc encoderem nie wszystkie impulsy są wyłapywane przez aplikację, może też przez MJoy'a.

Osobiście uważam, że to co jest i jak działa, w zupełności wystarcza do zwykłego korzystania z MJoy'a. Ale tworzenie kokpitu to już inna bajka. Chyba lepiej w tym przypadku aby układ sam już zajmował się np. zmianą wartości jakiejś zmiennej (przy pomocy encoderów) i te wartości w krótkich odstępach czasu odczytywać przez COM'a. Nie wiem jak to dokładnie działa w przypadku np. OpenCockpits czy FSBUS.

damos

  • Gość
Odp: Mjoy
« Odpowiedź #496 dnia: Kwietnia 09, 2009, 12:24:10 »
damos - ładną sumkę uzbierałeś :) chyba trzeba będzie ogólno światową zbiórkę zrobić hehe
Dziękuję serdecznie, ale sam zarabiam na swoje hobby :P Nie palę, nie piję - to na coś muszę kasę wydawać.

Przy zwiększaniu możliwości MJoy'a (impulsator) jest jeszcze jeden problem - DirectInput czyli obsługa joysticka w Windowsie. Programowałem prostą rzecz do FSX wykorzystując encodery MJoy'a. Z racji programowania tego w .NET miałem sporo zgubionych pakietów (można włączyć buforowanie ale to nie o to chodzi)
Jakiego rodzaju pakietów ?
w natywnych aplikacjach jest lepiej. Jednak szybko kręcąc encoderem nie wszystkie impulsy są wyłapywane przez aplikację, może też przez MJoy'a.
Od początku mówiłem, że część impulsów będzie utracona - mamy pewien minimalny czas "wciśnięcia" przycisku. I wtedy kolejne pokręcenia są gubione. dedykowany układ, podłączony bezpośrednio do USB miałby większe możliwości (cache wewnątrz).

Chyba lepiej w tym przypadku aby [...] te wartości w krótkich odstępach czasu odczytywać przez COM'a.
USB HID ma taki właśnie model pracy.
« Ostatnia zmiana: Kwietnia 09, 2009, 12:32:21 wysłana przez damos »

Odp: Mjoy
« Odpowiedź #497 dnia: Kwietnia 09, 2009, 12:54:17 »
  Jakiego rodzaju pakietów ?
Chodzi mi już o programową obsługę josticków w Windowsie.
Od początku mówiłem, że część impulsów będzie utracona - mamy pewien minimalny czas "wciśnięcia" przycisku. I wtedy kolejne pokręcenia są gubione. dedykowany układ, podłączony bezpośrednio do USB miałby większe możliwości (cache wewnątrz).
Ja nie uważam tego za wadę, dla tych zastosowań, proste panele-kokpity biurkowe są w zupełności wystarczające.
USB HID ma taki właśnie model pracy.
Czyli istnieje możliwość, że jakieś odczyty nie zostaną zgłoszone do Windows'a bo ten nie odczyta w tym czasie tego pakietu ?

Odp: Mjoy
« Odpowiedź #498 dnia: Kwietnia 09, 2009, 13:25:01 »
Damos ładnie to opisałeś.Taka jest prawda.Dodam od siebie,że na początku lat 90-y zniesiono embargo na nowoczesną technologię i od tego momentu mogłem na poważnie zająć się układami PLD o bardzo dużej skali integracji.Zakupienie softu oraz hardware do projektowania na tych układach to było sporo pieniędzy i musiałem mocno argumentować u szefa aby firma to kupiła.Inwestycja się opłaciła ponieważ mogłem konkurować z zachodem przez około 8 lat.Dalsza konkurencja byłaby możliwa,ale wymagałaby sporych nakładów,dlatego moja firma zamiast konkurować zaczęła sprzedawać produkty zachodnie.Podziwiam ludzi w Polsce,którzy pomimo silnej konkurencji nadal projektują i sprzedają swoje pomysły.Na zakończenie dodam,że nasze forum ma duże szczęście,że jest na nim Damos,z którym można konsultować problemy techniczne.









Odp: Mjoy
« Odpowiedź #499 dnia: Kwietnia 09, 2009, 14:08:24 »
Cytuj
Nie wiem jak to dokładnie działa w przypadku np. OpenCockpits
W przypaku OpenCockpits rozwiązanie jest podobne do naszego.Enkodery są połączone do uP,który jest peryferialem płyty głównej master.Program zarządzający systemem SIOC reaguje na zdarzenia tzn.przepytuje porty i jeśli stwierdzi zmianę to wykonuje odpowiednią procedurę.Jest to zaleta tego programu.Przepytywanie wymaga czasu i pod tym względem nasz system jest może szybszy od OC.Moim zdaniem gubienie impulsów nie powinno być problemem w symulatorach.Co innego jeśli zastosujemy wielobitowy kod Graya do odczytu precyzyjnego kąta obrotu tarczy.

Odp: Mjoy
« Odpowiedź #500 dnia: Kwietnia 09, 2009, 14:29:20 »
A jak są widziane urządzenia OpenCockpits w systemie ?

damos

  • Gość
Odp: Mjoy
« Odpowiedź #501 dnia: Kwietnia 09, 2009, 15:25:21 »
Nie są.
1 - albo przez port drukarki
2 - albo przez USB (HID)
W obu przypadkach komunikujesz się z dodatkowym softwar'em a nie ze sprzętem.


forum ma duże szczęście,że jest na nim Damos,z którym można konsultować problemy techniczne.
Bez przesady - ja w elektronice siedzę czysto amatorsko - to Ty kiedyś zawodowo się tym parałeś :)
« Ostatnia zmiana: Kwietnia 09, 2009, 15:34:58 wysłana przez damos »

Odp: Mjoy
« Odpowiedź #502 dnia: Kwietnia 09, 2009, 15:56:42 »
Można pobawić się w podłączenie kondensatora i sprawdzić efekty - zaczął bym od 10nF, później 100nF, 1uF, 10uF - więcej nie ma sensu. Im większa pojemność tym większe prawdopodobieństwo, że uP potraktuje przepływ prądu ładowania kondensatora jak zwarcie. Z drugiej ztrony - jeśli kondensator nie naładuje się w czasie jednego próbkowania - to może utrzymać "zwarcie" kilka sekund pomimo puszczenia przycisku... Wtedy masz jeden impuls na kilka sekund i całość wygląda fatalnie

Dzięki za odpowiedź, dzisiaj wieczorem zobaczę z paroma kondensatorami i napiszę czy coś z tego wyszło. Znajomy elektronik poradził też, aby spróbować dołożyć jeszcze jakiś rezystor i zrobić RC-pa, nie wiem o co chodzi, ale też się z tym pobawię.

Zając

p.s. tak przy okazji projektu płytki mjoy+encodery, zrobiłem samego mjoy-a po nowemu / rysunki i piki są już gotowe / a sam czekam na płytki do FSLCD - jak dostanę i uruchomię to dam znać. Prośba do Damosa, aby sprawdził jak będą już płytki do encoderów, czy są ok, ja ostatnio dostałem z Gammy wadliwie wykonane - właśnie te FSLCD - oczywiście po mailu i przesłaniu zdjęć robią jescze raz więc nie ma problemu, ale trzeba sprawdzić
Zapraszam na stronę projektu www.simproject.zajac.waw.pl

damos

  • Gość
Odp: Mjoy
« Odpowiedź #503 dnia: Kwietnia 09, 2009, 17:04:00 »
Prośba do Damosa, aby sprawdził jak będą już płytki do encoderów, czy są ok, ja ostatnio dostałem z Gammy wadliwie wykonane - właśnie te FSLCD - oczywiście po mailu i przesłaniu zdjęć robią jescze raz więc nie ma problemu, ale trzeba sprawdzić
Oo ! To nie dobrze... Płytki będę mieć podobno w przyszłym tygodniu (MJoy'e i Encodery). Na czym polegały wady wykonania?

Odp: Mjoy
« Odpowiedź #504 dnia: Kwietnia 09, 2009, 17:19:07 »
Cytuj
cytat Damosa
Cytuj
Enkoder, to takie zwierzę, które ma jedno wejście (pin C) i dwa wyjścia (pin B oraz pin A). podajemy coś na wejście - i w miarę obracania ta wartość pojawia się na obu wyjściach. Jednak zależnie od kierunku obrotu na jednym z wyjść pojawia się wcześniej. Trywialny problem polega na detekcji, gdzie wartość pojawiła się wcześniej
Jest to prosty opis enkodera.,który można połączyć na odpowiednie piny MJoya zgodnie z mapą.
Z rys. przełącznika obrotowo-impulsowego PS1010 można się domyślić,że przy obrocie w jednym kierunku następuje zwieranie i rozwieranie  styku 1 z 2 a przy obrocie w kierunku przeciwnym 3 z 4.Pytanie czy rzeczywiście przy aktywnym np.styku 1-2 styk 3-4 jest w tym czasie bierny i odwrotnie?Łatwo to sprawdzić podłączając LED,ale to wymaga trochę pracy.
Nie wiem jak zareaguje MJoy jeśli go "oszukamy" i podłączymy w miejsce enkoderów wspomniany przełącznik.
Co do kondensatora oraz rezystora to jest to układ całkujący,który powoduje opóźnienie,ale każdy kij ma dwa końce.Kondensator musi się także rozładować i tu pytanie czy się zdąży rozładować do następnego zwarcia styków.
Ja mam pytanie podstawowe,dlaczego robisz eksperymenty z tym przełącznikiem jeśli masz do dyspozycji 15 szt.enkoderów zakupionych na Allegro?

damos

  • Gość
Odp: Mjoy
« Odpowiedź #505 dnia: Kwietnia 09, 2009, 17:28:43 »
Pytanie czy rzeczywiście przy aktywnym np.styku 1-2 styk 3-4 jest w tym czasie bierny i odwrotnie?
Teoretycznie tak powinno być.

Nie wiem jak zareaguje MJoy jeśli go "oszukamy" i podłączymy w miejsce enkoderów wspomniany przełącznik.
sztuczka polega na podłączeniu go zamiast 2 przycisków a nie zamiast enkoderów.

Co do kondensatora oraz rezystora to jest to układ całkujący,który powoduje opóźnienie,ale każdy kij ma dwa końce.Kondensator musi się także rozładować i tu pytanie czy się zdąży rozładować do następnego zwarcia styków.
On właśnie ma się rozładować podczas ZWARCIA styków. Po rozwarciu ma nadal, przez pewien czas udawać zwarcie ładując się podczas testów zwarcia robionych przez uP (uP podaje wtedy napięcie i to napięcie ma ładować kondensator oszukując tym samym uP, że prad płynie i jest zwarcie na przycisku).

Ja mam pytanie podstawowe,dlaczego robisz eksperymenty z tym przełącznikiem jeśli masz do dyspozycji 15 szt.enkoderów zakupionych na Allegro?
Wtedy nie trzeba płytki enkoderów - wystarczy sam impulsator obrotowy + MJoy.
Obawiam się jednak, że ze względu na ograniczenia czasowe MJoy'a, drgania styków itd - układ nie sprawdzi się w praktyce.

Odp: Mjoy
« Odpowiedź #506 dnia: Kwietnia 09, 2009, 18:35:54 »
Nie są.
1 - albo przez port drukarki
2 - albo przez USB (HID)
W obu przypadkach komunikujesz się z dodatkowym softwar'em a nie ze sprzętem.

Czyli bardzo możliwe, że to uC w OpenCockpits robi trochę więcej niż MJoy jako zwykły joystick. Mam na myśli coś takiego: mamy ustawienie HDG w autopilocie, można sprawdzać programowania stany przycisków i odpowiednio zwiększać tą wartość lub zmniejszach na komputerze - lub przekazać tą wartość do uC i to on już będzie sprawdzał przyciski i odpowiednio zmieniał jej wartość. My natomiast tylko co jakiś czas odczytamy tą wartość (przez lpt, serial czy usb - nieważne) i wrzucamy ją odrazu do symulatora. Nie bawimy się w obsługę joysticka - odciążamy komputer - w niewielkim stopniu ale zawsze :)

To tylko takie moje dywagacje jak można podejść do tematu z symulatorami gdzie nie musimy operować tylko przyciskami joysticka i klawiatury, ale również bezpośrednio na danych wartościach, które chcemy zmieniać.

damos

  • Gość
Odp: Mjoy
« Odpowiedź #507 dnia: Kwietnia 09, 2009, 20:13:24 »
Czyli bardzo możliwe, że to uC w OpenCockpits robi trochę więcej niż MJoy jako zwykły joystick.
Nie tak, jak myslisz. w OC nie ma uC. Tam jest elektronika dyskretna sterowana przez PC. Jedyne zapamiętanie stanów (jeśli jest) przycisków/pokręteł itd. jest w dodatkowym sofcie, z jakim się komunikujesz.
« Ostatnia zmiana: Kwietnia 09, 2009, 20:20:15 wysłana przez damos »

Odp: Mjoy
« Odpowiedź #508 dnia: Kwietnia 09, 2009, 22:10:07 »
Oo ! To nie dobrze... Płytki będę mieć podobno w przyszłym tygodniu (MJoy'e i Encodery). Na czym polegały wady wykonania?

W sumie wada była od razu widoczna, po prostu nie było ścieżek na jednej stronie płytek / w mailu napisali, że był to błąd softu, na którym pracują, czasami się zdarza ale rzadko i robią jescze raz wszystko, tylko trochę dłużej to potrwa /. W załączeniu zdjęcie wadliwej płytki. Co do reszty to bardzo dobrze zrobione.



Ja mam pytanie podstawowe,dlaczego robisz eksperymenty z tym przełącznikiem jeśli masz do dyspozycji 15 szt.enkoderów zakupionych na Allegro?
Przełączniki impulsowe wykorzystam razem z encoderami. Trochę tego potrzeba np do panelu pedestal, do tej pory doliczyłem się 16 szt. Zestaw mjoy + encoder daje 12 szt. Resztę zrobię tymi przełącznikiami. Druga sprawa, że są takie elementy kokpitu, gdzie potrzebne są pojedyncze impulsy do przełączania np. zmiana zasięgu wyświetlania i do tego takie przełączniki nadają się lepiej od encoderów. Za chwilę biorę sie za testy z kondensatorami - jutro napiszę czy to działa.

Zając
Zapraszam na stronę projektu www.simproject.zajac.waw.pl

Odp: Mjoy
« Odpowiedź #509 dnia: Kwietnia 10, 2009, 08:07:16 »
Cytuj
Nie tak, jak myślisz. w OC nie ma uC. Tam jest elektronika dyskretna sterowana przez PC. Jedyne zapamiętanie stanów (jeśli jest) przycisków/pokręteł itd. jest w dodatkowym sofcie, z jakim się komunikujesz.
Jest tak jak napisał Damos.Zaletą rozwiązania OC jest to,że hardware jest zrobione w technice dyskretnej.W związku z czym jest proste i brak opóźnień związanych z wykonywaniem np.instrukcji.System jest rozwojowy,dlatego wprowadzono uP,które wspierają peryferiale np.sterowanie kilkoma LED 7-seg. lub sterowanie silnikami krokowymi itp.Można oczywiście sterować 7-seg.w technice dyskretnej bez uP(ja tak robię,ponieważ nie jestem programistą).
Inną zaletą systemu jest to,że program SIOC zarządzający hardware reaguje na zdarzenia tzn.jeśli wystąpiła zmiana na jakimś wejściu to uruchamia odpowiednią procedurę.Twórcą systemu jest Hiszpan Manolo Velez.
System jest uniwersalny tzn. można go stosować do różnych symulatorów stosując dodatkowe programy,które są interfejsem programowym pomiędzy SIOC a np.Falconem.W moim przypadku jest to program FAST.Wszedłem w OC rok temu dzięki Intruderowi (szkoda,że nie ma go na naszym forum).
W środowisku viperpits jest teraz na tapecie system PHCC,który jest systemem otwartym i dostępnym.Niektórzy członkowie tego forum piszą programy pod ten system i go udostępniają innym.Ja pozostaję przy OC z myślą,że pod koniec tego roku zajmę się FSX.
Cytuj
Wtedy nie trzeba płytki enkoderów - wystarczy sam impulsator obrotowy + MJoy.
Teraz rozumiem dlaczego ten typ przełącznika jest zastosowany.Faktycznie przy budowie kilku paneli jeden MJoy nie wystarczy.Ja stosuję kilka sterowników.W Falconie brakuje głównie przełączników (w MJoy jest ich tylko 16),ale można to jakoś obejść.