Autor Wątek: Następca Mjoy (Założenia konstrukcyjne)  (Przeczytany 68414 razy)

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

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #180 dnia: Listopada 26, 2011, 18:31:05 »
Jestem już po wstępnych testach DMKeys. Na zdjęciu jest pokazany DMKeys, płyta przejściowa oraz matryca 5x3.


Uploaded with ImageShack.us
Teraz przewiduję testy z inną matrycą, gdzie diody są umieszczone na matrycy.Kolejne testy to enkodery.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #181 dnia: Listopada 26, 2011, 19:35:08 »
Gratulacje! Nie obyło się bez pewnych problemów, jednak udało się je pokonać.
Testy drugiej matrycy powinny przejść bez problemów. Ciekaw jestem testów enkoderów. Raczej nie uda się przetestować wszystkich możliwych (80) jednak dobrze było by podłączyć przynajmniej 20 lub 30... :)

Wygląda na to, że całość zaczyna pracować tak, jak tego oczekujemy :)

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #182 dnia: Listopada 28, 2011, 17:05:51 »
Kolejna matryca sprawdzona. Ma inną organizację 5 kolumn oraz 4 wiersze. Jest tak zaprogramowana, że naciskając jakiś przycisk wysłana jest sekwencja znaków opisująca która kolumna, wiersz oraz położenie w mapie matrycy. Jest to pokazane na załączonym zdjęciu.


Uploaded with ImageShack.us
W czasie testów Damos zrobił kolejne mody do swojego programu. Jest teraz dodana opcja run test. Na zdjęciu widać także ile jest potrzebnej pamięci dla tego przykładu.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #183 dnia: Listopada 29, 2011, 20:22:58 »
Jako, że testy DMKeys idą całkiem sprawnie a prace zbliżają się ku końcowi czas zastanowić się nad funkcjonalnością kolejnej rzeczy: DMJoy.


Bogatszy o nieco doświadczeń z developmentu i zaznajomiony z oczekiwaniami co niektórych użytkowników mam pewną wizję tego urządzenia.
Chciałbym tu podyskutować o ewentualnych nie przewidzianych jeszcze właściwościach.
Ogólne założenia dla pierwszej wersji:
  • płytka ta sama, co DMKeys8
  • brak wymogu posiadania sterowników dla normalnej pracy (po skonfigurowaniu)
  • obsługa 6-osi osi analogowych (z przyciskami trymerów na każdą oś)
  • obsługa do 96 przycisków Joysticka (widziane w systemie jak zwykłe przyciski Joysticka: "JoyButton")
  • obsługa do 48 enkoderów
  • obsługa do 96 przycisków "KeyMapped", którym można przypisać klawisze klawiatury  (tak, jak w DMKeys8 ; inaczej mówiąc - zintegrowany SVmapper)

Osie analogowe: są konfigurowalne - użytkownik ustala, do których pinów podłącza potencjometry i ile ich podłączył.

Trymowanie każdej osi:  to pomysł Sundownera. Polega to na wychyleniu osi w pewne miejsce, wciśnięciu przycisku ustawiania trymu i od tego momentu ta oś przesunie swoje "0" w miejsce, w którym się aktualnie znajduje. Innym przyciskiem można takie ustawienie skasować.

Przyciski "JoyButton":  to przyciski widziane przez grę jako zwykłe przyciski Joysticka. Program konfiguracyjny pozwala skonfigurować - które przyciski fizyczne pracują jako które przyciski Joysticka.

Przyciski "KeyMapped": to przyciski rodem z DMKeys - pod wciśnięcie lub zwolnienie każdego można przypisać jakąś sekwencję klawiszy.


Enkodery - każdy wie :)


Jeśli ktoś ma sugestie lub potrzeby - zapraszam do ekspresji :)

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #184 dnia: Listopada 30, 2011, 00:06:06 »
Damos, czy 6 osi to maksimum dla tego układu? Jeśli nie, to mogłoby być 8 osi jak w MJoy'u.

Dla osi można by zrobić coś takiego, żeby móc przypisać konkretną wartość w  określonym położeniu.
Mogłoby to być przydatne m.in w przepustnicach z zapadkami, ale też do ustawienia zakresów potencjometrów bo zamiast obracać o 270o wystarczyłoby przypisać 100% dla np. 90o

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #185 dnia: Listopada 30, 2011, 09:23:09 »


Damos, czy 6 osi to maksimum dla tego układu? Jeśli nie, to mogłoby być 8 osi jak w MJoy'u.
Mogę dać 8 osi, wtedy ilość maksymalna przycisków spadnie z 96 do 80 (64 w przypadku wykorzystywania trymerów).
Dla osi można by zrobić coś takiego, żeby móc przypisać konkretną wartość w  określonym położeniu.
Mogłoby to być przydatne m.in w przepustnicach z zapadkami, ale też do ustawienia zakresów potencjometrów bo zamiast obracać o 270st wystarczyłoby przypisać 100% dla np. 90st
  Możesz to nieco przybliżyć?

Offline Sundowner

  • *
  • Chasing the sunset
Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #186 dnia: Listopada 30, 2011, 10:25:29 »
Vikerowi chodzi o to o czym Tobie kiedyś wspominałem - czyli ustawieniu funkcji według której wartość wejścia jest modyfikowana do uzyskania odpowiedniej wartości wyjścia. W gruncie rzeczy przy zintegrowaniu trymu coś takiego też można by od razu dorzucić, z jednym zapewne zastrzeżeniem - zasobożernością.


8 osi i mniej przycisków dla DMjoy to lepsze rozwiązanie, idealnie gdyby można było sobie zdefiniować ilość jednych i drugich.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #187 dnia: Listopada 30, 2011, 12:29:51 »
Nie znam się zbyt dobrze na stosowaniu analogów, dlatego mam zaufanie do Sundownera. Mogę tylko wyrazić opinię na temat pozostałych elementów DMJoya. Po pierwsze DMKeys spełnia wymagania dotyczące przycisków, przełączników oraz enkoderów. Ma nowe możliwości w porównaniu do MJoya. To co ograniczało liczbę enkoderów oraz przełączników tutaj nie istnieje. Następna cecha, która wyróżnia ten program oraz sterownik to definiowanie przełączników z pozycji programowania klawiatury. Można było zwiększyć liczę przełączników w MJoy, ale pisząc skrypt w HSC, tutaj tego nie ma.
Reasumując ponieważ DMKeys realizuje potrzebne funkcje to można w DMJoy skupić się na pozostałych potrzebnych funkcjach. Jeszcze jedna uwaga, nie ma ograniczenia na liczbę DMKeys oraz DMJoy zastosowaną w panelach. Sterowniki nie są drogie i są bardzo małe. Tyle moich wstępnych uwag.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #188 dnia: Listopada 30, 2011, 14:39:41 »
8 osi i mniej przycisków dla DMjoy to lepsze rozwiązanie, idealnie gdyby można było sobie zdefiniować ilość jednych i drugich.
Reasumując ponieważ DMKeys realizuje potrzebne funkcje to można w DMJoy skupić się na pozostałych potrzebnych funkcjach.

Zgadzam się z przedmówcami :002:  DMJoy raczej powinien skupiać się na osiach, w razie czego zawsze jest DMKeys.

Moja poprzednia sugestia dotyczyła tego, by można było w określonym położeniu ustawić wartość wyjściową. Przykład: Wychylając oś o 20o chciałbym aby w tym położeniu miała 40% wartości maksymalnego wychylenia, gdzie normalnie bez przypisania miałaby np. 30 %.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #189 dnia: Listopada 30, 2011, 16:14:42 »
Zgadzam się z przedmówcami :002:  DMJoy raczej powinien skupiać się na osiach, w razie czego zawsze jest DMKeys.
Rozumiem :) To nawet ułatwia mi zadanie, choć Sundowner oczekiwał DMKeys i DMJoy w jednym :)


Moja poprzednia sugestia dotyczyła tego, by można było w określonym położeniu ustawić wartość wyjściową. Przykład: Wychylając oś o 20o chciałbym aby w tym położeniu miała 40% wartości maksymalnego wychylenia, gdzie normalnie bez przypisania miałaby np. 30 %.
Chodzi więc o interpolację liniową dla 3 punktów z clampowaniem danych przy przekroczeniu zakresu?
Jak na obrazku:




Oczywiście - wiąże się to z utratą rozdzielczości osi analogowej, szczególnie w obszarze między czerwoną a żółtą kreską. Jeśli normalnie dla zakresu zakresu mamy 1024 punkty,  od 50% do 100% mamy 512 punktów to w tym układzie dla PC zakres 50% do 100% będzie miał ich jedynie 256 a zakres 0%-50% jakieś 400 punktów. W sumie cała oś redukuje się do ok. 700 różnych wartości.


jednak - oczywiście jest to do zrobienia.










Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #190 dnia: Listopada 30, 2011, 17:12:10 »
Cytuj
Oczywiście - wiąże się to z utratą rozdzielczości osi analogowej,
To nie ma sensu mam na myśli utratę rozdzielczości.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #191 dnia: Listopada 30, 2011, 18:24:33 »
Cytuj
To nawet ułatwia mi zadanie, choć Sundowner oczekiwał DMKeys i DMJoy w jednym
Chciałbym rozwinąć tę myśl. DMKey lub DMJoy ma ograniczenia wynikające z możliwości uP. Na zdjęciu w moim post widać wyraźnie ile pamięci potrzebuje ten projekt (zielony pasek z lewej strony, jest to 98%). Jest to mała matryca 5x4, ale ma dużo przypisań klawiaturowych, średnio 15 na przycisk. Dla ostatnich pozycji musiałem zmiejszyć liczbę przypisać dla przycisków. Jaki z tego wniosek, musimy rozsądnie gospodarować zasobami i do tego program Damosa jest bardzo dobry.
W moim kokpicie mam 2 MJoye, sinIN oraz zestaw z OC. Musimy założyć, że DMKeys oraz DMJoy będą realizowały tylko część zadań w kokpicie. Ja myślę, czy nie próbować zastosować DMJoy tylko do sterowania np. jakiegoś protoptypu drążek, przepustnica.
Reasumując sterowniki Damosa są uniwersalne, łatwe do programowania, ale mają ograniczenia związane z pamięcią uP.
Jeszcze jedna sprawa związana z DMJoy. Porównujemy go z MJoy w sensie możliwości ilość wejść analogowych, przycisków, przełączników, enkoderów. W sensie ilościowym to może te dwa sterowniki będą podobne, ale w sensie jakości rozwiązania oraz elastyczności konfiguracji przewaga DMJoy jest zdecydowana.
Porównując te dwa sterowniki przypomniałem sobie o tzw. hat. Czy w DMjoy ma sens to zrealizować?

Offline Sundowner

  • *
  • Chasing the sunset
Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #192 dnia: Listopada 30, 2011, 18:53:06 »
Oczywiście - wiąże się to z utratą rozdzielczości osi analogowej, szczególnie w obszarze między czerwoną a żółtą kreską. Jeśli normalnie dla zakresu zakresu mamy 1024 punkty,  od 50% do 100% mamy 512 punktów to w tym układzie dla PC zakres 50% do 100% będzie miał ich jedynie 256 a zakres 0%-50% jakieś 400 punktów. W sumie cała oś redukuje się do ok. 700 różnych wartości.
Tak jak rozmawialiśmy o trymie - utrata sumarycznej ilości wartości wcale nie musi nastąpić, jeżeli zakres wartości na wyjściu będzie większy niż na wejściu. Konkretnie - jeżeli mamy dajmy na to 10bit ADC w układzie, a układ do Direct input wysyła wartość 16 bit, to mamy spore pole do wykorzystania.


[edit]
Ups, mój błąd, faktycznie będzie, bo przecież w tym co chce Viker nie jest wykorzystywany cały zakres wartości wejścia.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #193 dnia: Listopada 30, 2011, 19:13:02 »
Tak jak rozmawialiśmy o trymie - utrata sumarycznej ilości wartości wcale nie musi nastąpić, jeżeli zakres wartości na wyjściu będzie większy niż na wejściu. Konkretnie - jeżeli mamy dajmy na to 10bit ADC w układzie, a układ do Direct input wysyła wartość 16 bit, to mamy spore pole do wykorzystania.
Sun - my jednak rozmawialiśmy jedynie o trymowaniu - wtedy możemy tak zrobić. O tym z resztą napisałem wspominając o przyciskach trymujących.
Jednak "żeby móc przypisać konkretną wartość w  określonym położeniu" więc minimum, centrum, maximum - wtedy się nie da bez utraty jakości.
Jednak Viker chciał, żeby przepustnica w położeniu 30% wskazywała 40% i jednocześnie mogła dojść do 0% i do 100% przy maksymalnych wychyleniach.
W rozwiązaniu, o którym rozmawialiśmy nigdy nie osiągniesz w skrajnych położeniach 0% oraz 100%


[edit]
Skoro już się dogadaliśmy to może poruszymy sprawę hat'a ?
Potrzebny, czy nie ?


[edit2]
ma dużo przypisań klawiaturowych, średnio 15 na przycisk.

:) tam, gdzie masz długie przypisania - masz po 17 klawiszy na kontrolkę :) Normalnie przypisuje się 1 klawisz + modyfikator typu Prawy lub lewy ALT, prawy lub lewy CTRL, prawy lub lewy Shift.  Taki zestaw zajmuje 5 bajtów, układ obsłuży ich 160 a kombinacji na klawiaturze jest wtedy ok 600.

Offline Sundowner

  • *
  • Chasing the sunset
Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #194 dnia: Listopada 30, 2011, 19:20:23 »

Jak dla mnie potrzebny, ale gdzie z nim dokładnie leży problem ?

Rozumiem :) To nawet ułatwia mi zadanie, choć Sundowner oczekiwał DMKeys i DMJoy w jednym :)
O co mi konkretnie chodziło to możliwość by przyciski np. joysticka mogły z miejsca również być widoczne jako naciśniecie przycisku klawiatury, normalnie, lub w trybie "alernatywnym" pracy.

Przykład: W joysticku Hat w trybie normalnym jest widziany jako hat kontrolera gier, ale po wciśnięciu zdefiniowanego innego przycisku służącego jako'shift' operując hatem wysyłamy wciśnięcia klawiszy kierunkowych klawiatury (np. operując trymem w simie). Zważywszy, że taka funkcja będzie wykorzystywana tylko w wypadku kontrolerów lotu, nie będziemy mieć specjalnie dużej ilości kombinacji, a oprogramowanie ładnie pokazuje ile jeszcze możemy z kości wycisnąć.


Dla przykładu, jeżeli ktoś sobie zrobi drążek - replikę z AH-64D, to będzie miał dwie analogowe osie + funkcje trymu do nich, 22 przyciski (n), oraz opcjonalnie ich funkcję alternatywną (n-1). Z kolei w wypadku dźwigni skoku ogólnego tej maszyny mamy 3 osie, bez udziwnień, 36 przycisków i ich opcjonalną funkcję alternatywną.


To są dwa najgorsze scenariusze, nie ma bardziej skomplikowanych sterów :)