Forum Miłośników Symulatorów Lotniczych
Zaplecze => Software & Hardware => Sprzęt wykonany samodzielnie => Wątek zaczęty przez: piotrva w Lutego 05, 2017, 00:01:41
-
Witam wszystkich pasjonatów lotnictwa wirtualnego i nie tylko.
Jestem z zawodu elektronikiem i jakiś czas temu stanąłem przed problemem konstrukcji własnego joysticka (a konkretniej ożywienia starszego sprzętu z dobrą mechaniką ale przestarzałą elektroniką).
Na drodze ewolucji powstał projekt STM-JOY - oparty o tanią (dostępna na zagranicznym serwisie aukcyjnym za 2-3 USD) płytkę z mikrokontrolerem STM32F103C8T6.
Obecnie wersja podstawowa układu pozwala na obsługę 10 osi oraz 17 przycisków.
Jeśli projekt będzie cieszył się pewnym zainteresowaniem - możliwe że będę realizować jego dalszy rozwój i dodanie dodatkowych funkcji.
Od strony elektronicznej projekt opisałem na forum elektronicznym elektroda: http://www.elektroda.pl/rtvforum/viewtopic.php?p=16253291#16253291
Źródła oraz instrukcje jak powielić projekt zamieszczam w repozytorium: https://gitlab.com/piotrva/STM-JOY
Jeśli czujecie się na siłach można w dowolny sposób zmodyfikować działanie urządzenia.
Nadmienię, że osobiście dodałem obsługę enkodera, dodatkowego joysticka do rozglądania się oraz pedałów (dzięki odrobinie obliczeń ze standardowych 2-osiowych pedałów od kierownicy osiągnąłem ster kierunku oraz hamulce różnicowe). Całość kosztowała mnie: Joystick 1 zł, płytka 9 zł, pedały 20 zł = 30 zł + trochę pracy.
Czekam na Wasze opinie o projekcie i sugestie co można by dodać - mam nadzieję, że moja praca komuś się przyda!
-
Witam na forum, przejrzałem linki o których wspomniałeś oraz korespondencję z kolegą 3.14ter. Cieszę się, że pojawił się na forum elektronik programista. Z tego co napisałeś wynika, że masz dużą wiedzę w dziedzinie elektroniki i nie tylko. Temat joysticka był i będzie zawsze aktualny. Na naszym forum w różnych wątkach jest na ten temat trochę informacji. Generalnie korzystamy do sterowania naszych kokpitów oraz paneli z różnych sterowników w tym także sterowników joysticków.
Twój projekt jest ciekawy i ma jedną ważna zaletę, jest stosunkowo tani. Można ma jego bazie modernizować joysticki. Jeśli chcemy budować własne joysticki to potrzebujemy trochę więcej np. 4 Haty. Z enkoderami nie ma problemu, ponieważ można to zrealizować na innym sterowniku np. DMKeys8.
Kolega 3.14ter projektuje swój sterownik, który będzie dużo droższy, ale będzie miał więcej możliwości w tym możliwość zastąpienia kontrolera dla Cougara. Nie jestem programistą i raczej starszej daty elektronikiem, dlatego proszę o wyrozumiałość jeśli piszę coś nie na temat lub nieprecyzyjnie. Mnie też interesują sterowniki ale raczej jako hobby. W kilku wątkach napisałem o swoich doświadczeniach.
Reasumując masz na naszym forum godnego partnera mam na myśli 3.14ter, który ma dużą wiedzę i jest także entuzjastą. Co do nas pozostałych to będziemy kibicować i jeśli to możliwe to coś sugerować.
Na koniec jeszcze jedna sprawa związana z rozpoznawaniem sterowników. Tak jak wspomniałem nie jestem programistą, ale można to zrobić na kilka sposobów. Dla użytkownika jest istotne aby przy mapowaniu wiedział jaki element przypisuje do jakiego sterownika. W DMKeys8 jest to realizowane na etapie konfigurowania sterownika, można zmienić nazwę, vendor ID oraz product ID. Z tego co zrozumiałem to w projekcie 3.14ter są na płycie zworki A, B, C, D (system ID), co powinno odróżnić sterowniki przy mapowaniu. Mam nadzieję, że koledzy z forum także wyrażą swoje uwagi.
-
Ja również mogę li tylko kibicować. Sprawdź tylko jakość sygnału analogowego. Swój projekt oparłem o arduino i z tym właśnie miałem problemy - szumy i zakłócenia. Mój joystick w połączeniu z przedwzmacniaczami Piotra działa sprawnie, jednak jest to takie "łatanie dziur". Dlatego z niecierpliwością czekam na projekt Piotra. Ale każdy może iść własną drogą, dlatego z pewnością będę obserwował twoje działania. Powodzenia!
-
@vito_zm
Dzięki za miłe słowa!
Co do funkcjonalności układu i dodania np. dodatkowych hatów zamiast przycisków - to kwestia zmiany kilku linijek w oprogramowaniu. Podobnie można dodać więcej przycisków w połączeniu matrycowym. Udostępniam kody źródłowe oprogramowania, tak że każdy może zmodyfikować je tak, jak potrzebuje.
Oczywiście jeśli będą jakieś konkretne modyfikacje, które przydadzą się większej ilości osób - w ramach wolnego czasu wprowadzę takowe i udostępnię jako gotowe pliki binarne do zaprogramowania układu.
Co do zmiany nazwy układu mogę bez problemu dodać taką funkcję. Co więcej myślałem nawet nad tym, aby po programowaniu była możliwość przesłania komendy do urządzenia aby nadać mu dowolną nazwę (nie tylko ABCD, ale np. JOY-Przepustnice, JOY-Pedaly, JOY-Wolant).
Haha, też mam na imię Piotr i też w niektórych miejscach występuję z nickiem piotr314 :D Ale się dobraliśmy - jakby kiedyś powstało coś wspólnego to będzie Piotr & Piotr :D
@shopiK
Z zakłóceniami to w wypadku potencjometrów są ich 2 źródła: sam przetwornik ADC oraz sam potencjometr (wraz z kablami). Na szczęście zasilanie nie stanowi problemu, ponieważ o ile takie same zakłócenia dostaną się na zasilanie ADC (konkretnie napięcie referencyjne) i zasilanie potencjometru to... Same się wyeliminują.
Dodatkowo im większa wartość potencjometru - tym większe jego szumy. Z kolei za mała wartość będzie wydzielała sporo mocy i pobierała dużo prądu. Osobiście stosuję potencjometry 4.7-10 kOhm
Kolejna sprawa to jakość potencjometrów - nie oczekujmy od najtańszych za ok. 1 zł szałowej jakości.
Na pewno w przypadku mojego projektu można wprowadzić filtrowanie cyfrowe - układ pracuje na tyle szybko, że można wykonywać wiele pomiarów na jednej osi po czym uśredniać ich wyniki. Swego czasu dzięki takiemu rozwiązaniu na przetworniku 10-bitów osiągnąłem rozdzielczość 12 bitów z szumami na poziomie 1 LSB
Szczerze mówiąc charakterystyk szumów nie badałem na swoim rozwiązaniu - macie jakiś program, który czyta takie rzeczy z joysticka? Bo jak nie to będę musiał dopisać trochę linijek, żeby to wysłać do komputera i obrobić. Powie tylko, ze jakość którą mam na swoim sprzęcie mnie zadowala ;)
------
Co do dalszych modyfikacji na pewno największa motywacją będzie to, ze ktoś ze Społeczności wykorzysta projekt i będzie miał konkretne potrzeby - bo pisanie programu sztuka-dla-sztuki nie daje tyle frajdy, a swój cel - ożywienie swojego "staruszka" osiągnąłem.
-
Zrobiłem szybki test i szumy są w granicach 1LSB przy 8 bitach. Przy próbkowaniu 120 kHz...
-
Wspomniałeś w którymś linku, że zajmowałeś się MMJoy. Czy miałeś na myśli MMJoy2.
Mnie zainteresował Arduino dopiero w 2016 i swoje problemy opisałem tutaj http://il2forum.pl/index.php/topic,17749.30.html
W tym wątku opisuję także moje testy z MMJoy2, który jest bardzo ciekawym rozwiązaniem i jest bardzo popularny. Są tam też dołączone w setup programy do testowania analogów oraz układów cyfrowych podłączonych do kontrolera. Jest to ciekawe rozwiązanie i łatwe w konfigurowaniu, ale w moim przypadku niektóre opisane funkcje nie działały. Nie chcę w to wnikać, ponieważ ja sobie ten kontroler odpuściłem. Można wykorzystać osie analogowe oraz niektóre układy cyfrowe, ale nie wszystkie.
Jeśli chodzi o Twoje rozwiązanie to prawdopodobnie za jakiś czas poproszę o szczegóły i wykonam model do testów. Tak jak wspomniałem jestem hobbistą i ciekawią mnie nowe rozwiązania. Tak jak wspomniałem każdy nowy projekt musi mieć jakiś cel. W przypadku sterowników dla joysticków to generalnie można założyć 3 cele: modyfikacja starego kontrolera (Twój przypadek), budowa własnego joysticka lub wymiana uszkodzonej elektroniki np sterownik do Cougara (nie do zdobycia na rynku). Niektórzy stosują kontrolery do joysticków np MMJoy2 do sterowanie paneli w kokpicie.
Wspomniałem o enkoderach. Zrobienie oprogramowania dla enkoderów dostępnych na naszym rynku (tych tańszych) nie jest łatwe ale możliwe, zrobił to Piotr i działa bardzo dobrze. To co zrobiono w MMJoy2 jest atrakcyjne, ale moim zdaniem ryzykowne, ponieważ prostą elektroniką dokładnie uP chcą załatwić wszystko (analogi, układy cyfrowe w tym matryce, haty oraz enkodery). Tak się nie da co widać w projekcie Piotra, który ma bardziej zaawansowany uP oraz elektronikę. Trochę się rozpisałem ale myślę , wyraziłem w ogólny sposób mój pogląd. Tak jak wspomniałem Twój układ jest bardzo tani, dlatego warto go zrobić i testować. Dam znać gdy będę na tym etapie i poproszę o pomoc.
-
Miałem na myśli stary MJOY.
Co do projektu 3.14ter'a to aktualnie pracuję nad całym systemem cyfrowo-analogowym do symulacji lotniczych.
(https://scontent.fwaw3-1.fna.fbcdn.net/v/t31.0-8/r270/16179718_1543685002327195_4035811560798887728_o.jpg?oh=bb0a010b6c158bc962974fe5a17ada0e&oe=590252AB)
Całość ma 28 wejść/wyjść cyfrowych możliwych do połączenia w różnych konfiguracjach (także do zasilania elementów bardziej prądożernych) z czego 16 może służyć jako wejścia analogowe.
Dodatkowo do dyspozycji pozostaje 8 linii dedykowanych do sterowania wyświetlaczami (LCD alfanumeryczne, LED, ...) - te będą umieszczane na osobnych mini-modułach.
Prowadziłem już też testy obsługi nawet tanich enkoderów (generujących dużo szumów) - oprogramowanie daje ze wszystkim radę.
System docelowo nie będzie widoczny jako joystick, ale będzie integrował się z oprogramowaniem do symulacji (na razie pracujemy na FSX), dzięki czemu dane będą mogły być wymieniane w obu kierunkach.
Dodatkowo całe połączenie systemu odbywać się będzie za pomocą magistrali CAN odpornej na zakłócenia.
Wkrótce założę o tym projekcie osobny wątek.
PS. Jak coś to te płytki z Chin idą czasem nawet do miesiąca.
-
Ciekawy projekt! Gratulacje!
Koncepcyjnie różni się sporo od mojego podejścia, i bardzo dobrze. Im więcej opcji i alternatyw, tym lepiej dla użytkowników.
W moim projekcie nacisk postawiłem głównie na to, żeby był prosty i intuicyjny w użytkowaniu, typu plug&play, bez konieczności używania dodatkowego programu po stronie PC. Tam ma być widoczny jako standardowy joystick HID. Konfiguracje i ustawienia przerzucone bedą na stronę sprzętową, ewentualnie wspomagane niewielkimi modułami spełniającymi dodatkowe funkcje.
Kto wie, może kiedyś otworzymy pomost pomiędzy projektami. W sumie na płytce mam wyprowadzony UART, SPI i I2C. Podłączenie CAN pod piny portu szeregowego nie stanowi żadnego problemu.
-
Żeby nie mieszać projektów: http://il2forum.pl/index.php/topic,18060.msg348474.html#msg348474
-
System docelowo nie będzie widoczny jako joystick, ale będzie integrował się z oprogramowaniem do symulacji (na razie pracujemy na FSX), dzięki czemu dane będą mogły być wymieniane w obu kierunkach.
Zaczyna to ciekawie wyglądać. Wspomnę tylko, że taka próba integracji soft, hardware oraz różne symulatory już zrobił codeking. Program ma nazwę HSC a sterowniki to SimOUT oraz SimIN.
Tak jak wspomniał Piotr im więcej pomysłów tym lepsze rozwiązania. Życzę sukcesów i żałuję, że nie mam wystarczającej wiedzy aby pomóc.
-
Mały update - zgodnie z sugestiami PIter'a pracuję nad joystickiem 16 bitowym.
-
Na razie testowo z samymi tylko modyfikacjami programowymi udało się osiągnąć stabilne 10 bitów bez szumów.
Zastanawiam się nad kwestią konfiguracji urządzenia (zmiana nazwy, możliwość przełączenia między funkcjonowaniem pinów jako przyciski a enkodery, itp.) - przyszedł mi taki pomysł, aby za pomocą tej samej drogi, którą go programujemy (port szeregowy) udostępnić prosty "wiersz poleceń" i tam móc dokonać zmiany o których mowa.
Potem zawsze można napisać na to na komputer jakiś interface graficzny ;)
-
Opublikowana wersja z danymi 12 bitowymi. Szumy zmierzone na poziomie 2LSB przy nieekranowanych kablach (10cm) do potencjometrów 10k.
-
a na długości 50cm?
A Najfajniej jakbyś pokazał wykres np. z tego (bo liczby to mi nic nie mówią, oprócz tego, że jest dobrze :-) ):
www.mcd.ayz.pl/rozne/joy_zdjecia/VKB_JoyTester.zip
-
Fajna apka, niestety nie widzę nigdzie żadnej opcji analizy szumów np.
(https://lh4.googleusercontent.com/JtwD7IFsAPATAA6felo6OHDCgxP464oHR_Dx67YTx8qcrX6QPXxgTKRfr_CSRcEINYMtZ5zC-YSk6QY=w1920-h1014-rw)
-
A nie no. Pokręć potkiem i pokaż jak wykres wygląda, bom ciekaw :-)
-
Przecież jest wykres. Poruszane są osie przepustnicy i X-Y (odpowiednio - niebieska, czarna, czerwona).
Chyba, że obrazek się źle wyświetla...
-
Chyba, że obrazek się źle wyświetla...
Nic nie widać niestety.
Jeszcze znalazłem link do czegoś takiego:
(http://abload.de/img/msff2r3r2d.png)
https://riseofflight.com/forum/topic/39554-all-you-wanted-know-about-joysticks/
-
(http://obrazki.elektroda.pl/3211576500_1486506742_thumb.jpg) (http://obrazki.elektroda.pl/3211576500_1486506742.png)