Autor Wątek: Kontrolery Arduino  (Przeczytany 53255 razy)

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

Odp: Kontrolery Arduino
« Odpowiedź #300 dnia: Czerwca 24, 2018, 08:35:34 »
Mam zamiar zrealizować nowy projekt związany z moim kokpitem. Do tego celu potrzebuję kontroler gier. Pomyślałem o MegaJoy kolegi Piotra. Tak powstał kontroler przedstawiony w tym wątku. Kontroler ma sterować 2 haty, joystick, potencjometry oraz przyciski.
 Poprosiłem kolegę Piotra 3.14ter aby zrobił dla mnie na bazie MegaJoy uproszczony skrypt na ProMicro. Skrypt pod nazwą Joy2 jest tak pomyślany, że nie wymaga od użytkownika ingerencji w programie (plug and play). Po tym wstępie chciałbym opisać działanie Joy2 na przykładzie mojego kontrolera. Na schemacie ideowym są pokazane elementy oraz ich połączenia. Schemat jest bardzo prosty i łatwy do zrealizowania. ProMicro steruje dwa rejestry MCP 23017 sygnałami SDA, zegarem SCL i przerwaniem INT. Wyjścia rejestrów są wyprowadzone na łączówki ozn. Ł0-Ł4 10 pin.
Sygnały Joy2 są widziane w Windows w kontrolerach gier.
Wyprowadzenia sygnałów:
Łączówka Ł0:
A0 - oś X, A1 - oś Y, A2 - oś Z, A3 - obr. Z, A6 - obr. X, A7 - obr. Y
Łączówka Ł1:
A0 - 1, A1 - 2, A2 - 3, A3 - 4, A4 - 5, A5 - 6, A6 - 7, A7 - 8   
 Łączówka Ł2:
B0 - 9, B1 - 10   , B2 - 11, B3 - 12 ,B4 - 13, B5 - 14, B6 - 15, B7 - 16   
 Łączówka Ł3:
B0 - 17, B1 - 18, B2 - 19, B3 - 20 ,B4 - 21, B5 - 22, B6 - 23, B7 - 24   
Łączówka Ł4:
A0 - Up1, A1 - R1, A2 - Dn1, A3 - L1, A4 - Up2, A5 - R2, A6 - Dn2, A7 - L2              

Sygnały cyfrowe 1-24 możemy łączyć z przyciskami, przełącznikami lub enkoderami. Nie potrzeba stosować diod tak jak w matrycach.
Sygnały analogowe są filtrowane. Osie X oraz Y mają włączone deadzone pozostałe nie mają. Można je włączać lub wyłączać, jest to opisane w języku polskim w skrypcie.
Sprawdziłem działanie skryptu Joy2 z przyciskami, potencjometrami oraz joystickiem. Jest to pokazane na zdjęciu. Realizując mój docelowy projekt sprawdzę kontroler z układami wykonawczymi już w symulatorze. Na tym etapie działa poprawnie tak jak to opisałem. Można zrealizować kontroler w inny sposób umieszczając ProMicro w od dzielnej obudowie a rejestry połączyć z uP za pomocą złącza 5 stykowego PS/2.
Na załączonych zdjęciach jest schemat ideowy, kontroler w obudowie oraz układ do testowania. Pod tym linkiem jest skrypt
http://www.prdevices.pl/rozne/forum/joy2.ino

Schemat ideowy.


Kontroler na druku uniwersalnym.

 
Gotowy prototyp.


Układ do testowania.










Odp: Kontrolery Arduino
« Odpowiedź #301 dnia: Czerwca 24, 2018, 09:52:06 »
A jak z obsługą hallotronów? Będzie opcja? Pozdrawiam 3.14tera ;-)

Odp: Kontrolery Arduino
« Odpowiedź #302 dnia: Czerwca 24, 2018, 12:51:04 »
Małe uzupełnienie do schematu ideowego. Warto podwiesić rezystory 470R-1K do linii sygnałowej SDA oraz zegara SCL jeśli rejestry będą w większej odległości od ProMicro. Jeśli będą w pobliżu to 4K7 - 1K.

Odp: Kontrolery Arduino
« Odpowiedź #303 dnia: Czerwca 24, 2018, 13:03:37 »
A jak przebiega wstępna kalibracja joya? W systemowym kalibratorze?

Odp: Kontrolery Arduino
« Odpowiedź #304 dnia: Czerwca 24, 2018, 16:29:30 »
Sprawdzałem analogi w WB_JoyTester, wygląda to dobrze. Będę sprawdzał możliwości ustawiania strefy martwej w skrypcie. Piotr zastosował filtry programowe dlatego przebiegi wyglądają obiecująco. Mam nadzieję, że autor skryptu powie coś więcej na ten temat.

Odp: Kontrolery Arduino
« Odpowiedź #305 dnia: Lipca 09, 2018, 17:22:59 »
Zrobiłem model dla testowania programu Joy2. Model jest w trakcie rozbudowy, ale można już testować niektóre elementy. Po sprawdzeniu analogów oraz przycisków przyszedł czas na haty.  W tym momencie chciałbym podziękować koledze shopik z forum. Dostałem od niego 2 elementy o nazwie RKJXT1F. Realizują 4 kierunkowy hat, enkoder praz przycisk. Zaletą tego "joysticka" jest długa metalowa ośka. Jest to bardzo istotne gdy chcemy osadzić gałki. W tym momencie znowu pomoc kolegi shopik, który dla mnie zrobił takie gałki pod ten joystick. Na zdjęciu są pokazane 2 RKJXT1F umieszczone na modelu. Sprawdziłem haty oraz przycisk i działają. Przyszła kolej na enkoder. Byłem ciekawy jak to zadziała z Joy2. Przed sprawdzeniem enkodera w RKJXT1F sprawdziłem mój enkoder, który używam dla testów podłączając go do Joy2. Tak jak było do przewidzenia Joy2 nie może pracować z enkoderami. Powód jest prosty. Enkoder generuje na wyjściach kod Graya czyli dla 2 bitów: 00, 01, 11 oraz 10 dla jednego kierunku obrotu oraz 00, 10, 11, 01 dla drugiego kierunku. Sprawdzałem w Win7 oraz w WB_BtnTester wyniki są takie same. Joy2 powtarza to co ma na wejściu rejestrów MCP 2317.
W innym kontrolerze DMKeys8 Damosa konfigurując wybieramy z dostępnych elementów enkoder i jego typ. Dodatkowo Damos przewidział możliwość zmiany 2 parametrów Encoder filter (0-10) oraz Encoder idle time (0-255). Generalnie chodzi o to, że enkodery te tanie są kiepskiej jakości i trudno dekodować zbocze impulsów oraz stwierdzić które zbocze jest dla obrotu w lewo a które dla obrotu w prawo, zbocza czasem na siebie nachodzą. Nawet te dwa parametry nie niwelują całkowicie przekłamań, ale znacznie je ograniczają. W praktyce pojedyncze przekłamania kierunku nie są zauważalne w symulatorze.
W innym znamy kontrolerze MJoy16 były tylko 4 dedykowane wejścia dla enkoderów.
Na koniec sprawdziłem enkoder zaprojektowany przez Piotra 3.14ter. Ten generuje na jednym z wyjść ciąg impulsów przy obrocie w jednym kierunku (na drugim brak impulsów) i podobnie dla  drugiego kierunku obrotu. Na wyjściach nie ma kodu Graya czyli można go stosować z Joy2.
Działa on wolniej i przy szybkim obrocie generuje impulsy po zakończeniu obrotu gałką.
W moim przypadku rezygnuję z enkoderów w RKJXT1F, ale mogę zastosować enkoder Piotra.
Gdy zakończę montaż mojego modelu oraz wykonam testy w symulatorze opiszę w tym wątku swoje wioski.

Na załączonym zdjęciu jest Joy2 oraz mój model.

Odp: Kontrolery Arduino
« Odpowiedź #306 dnia: Lipca 14, 2018, 08:20:51 »
 Mam już sprawdzony mój panel w Win7 oraz VKB_BtnTester i VKB_JoyTester jest ok. Panel ma analogowy joystick oś X oraz oś Y, 4 potencjometry obrót X, Y, Z oraz oś Z enkoder Piotra oraz 3 przełączniki. Jest jeszcze wolnych 16 wejść cyfrowych w Joy2. Moim celem jest latanie w symulatorze BMS4 w uproszczonej konfiguracji sprzętowej tzn. bez kokpitu korzystając z biurka. Panel ma wspomagać joystick Logitech 3D. Takie są założenia.Przy pierwszych testach pojawiły się problemy o których mogłem się domyślać.
W moich założeniach dwa haty w panelu miały realizować funkcje hatów w sticku Cougara DMS oraz TMS. Analogowy joystick miał przejąć sterowanie kursorami w MFD, które realizował joystick w przepustnicy Cougara. Pozostałe elementy w panelu miały tylko wspomagać np. trymowanie itp.
W setup BMS4 muszę wybrać jako kontroler Logitech Extreme 3D i tutaj mogę przypisać wszystkie klawisze, potencjometr oraz hat z Logitech. Niestety z panelu nie mogę mapować moich dwóch hatów, pozostałe elementy są dostępne w setup. Haty z panelu są widziane w setup BMS 4 tylko jeśli wybiorę w kontrolerze setup  Arduino Leonardo zamiast Logitech.
Reasumując musiałbym mieć jeden program pod Logitecha oraz panel sterowany przez program Joy2 (Arduino Leonardo) co jest nie możliwe. Jest oczywiście możliwość zastąpienia kontrolera z Logitech 3D kontrolerem Joy2, ale tutaj też jest ograniczenie z liczbą dostępnych Hatów potrzeba trzech. Czyli albo program MegaJoystick albo np. MMJoy2.
Jest możliwe dla Joy2 rozwiązanie problemu z Hat 1 oraz Hat 2 dla mojej konfiguracji z Logitech 3D. Haty połączyłem do innej łączówki gdzie są traktowane jako przyciski. Łączówka z Hat 1 oraz Hat 2 zostanie nie połączona. Jest to rozwiązanie zastępcze ale działa. Teraz muszę optymalnie mapować Logitech 3D oraz mój wspomagający go panel.

Na zdjęciu jest pokazany mój zestaw oraz w tle kokpit.



Odp: Kontrolery Arduino
« Odpowiedź #307 dnia: Lipca 14, 2018, 16:23:20 »
Niedługo trzeba ci będzie jakiś ładny panel wygrawerować :-)

Odp: Kontrolery Arduino
« Odpowiedź #308 dnia: Lipca 14, 2018, 21:19:26 »
Dzięki za propozycję. Teraz testy z BMS4 co jest związane z mapowaniem czyli plikiem .key. Sam jestem ciekawy jak to będzie działać. Może powstanie na podstawie wniosków z testów coś jeszcze.

Odp: Kontrolery Arduino
« Odpowiedź #309 dnia: Stycznia 23, 2020, 13:16:32 »
Mam pytanie dotyczące programowania uP Atmega32u4 . Fabrycznie nowy uP ma wgrany do pamięci Flash bootloader ~ 4 KB ATM32U4DFU. Jeśli połączymy "płytkę" z fabrycznie nowym Atmega32u4 z pc przez USB to możemy np. za pomocą programu Flip wgrać nasz program .hex oraz .eep. Przez "płytkę" rozumiem płytkę z uP, kwarcem, USB i innymi potrzebnymi elementami.
Pytanie jest następujące. Co zrobić jeśli mamy płytkę komercyjną np. ProMicro, która ma już inny bootloader i jest widziana jako Leonardo. Chcemy wgrać przez Flip nasz program .hex oraz .eep, ale Flip nie widzi ATmega32U4. Czy jest jakiś sposób aby odzyskać oryginał bootloadera ATM32U4DFU.
Wspomnę tylko, że MMJoy2 poradził sobie z tym problemem. Wystarczy zrobić zwarcie RST z GND, odczytać nr COM i go wpisać w konfiguracji MMJoy2, wybrać ATmega32U4 i to w zasadzie wszystko. Program konfiguracyjny wgra do uP firmware. Od tego momentu płytka jest widziana jako MMJoy2.
Na koniec pytanie czy bootloadery fabryczne uP są kasowane przy wgraniu nowych przez producentów płytek np. Leonardo czy ProMicro.

Odp: Kontrolery Arduino
« Odpowiedź #310 dnia: Stycznia 24, 2020, 11:42:49 »
Małe wyjaśnienie, dlaczego pytałem o wgrywaniu firmware do Atmega32u4 . Praktycznie jest nie do zdobycia kontroler Damosa DMKeys8 pomyślałem o zrobieniu z ProMicro mniejszej wersji DMKeys8. Zrobiłem analizę schematów płytki Damosa oraz ProMicro i doszedłem do wniosku, że można zrobić matrycę dla 66 punktów. Nie jest to dużo, ale jest to jakieś rozwiązanie. Największą zaletą projektu Damosa jest jego program konfiguracyjny i dlatego próbuję znaleźć gotową płytkę np. ProMicro do której można wgrać pliki .hex oraz .eep programu Damosa.
Po kilku próbach  Flip z ProMicro oraz DMKeys8 doszedłem do wniosku, że nie jestem w stanie nic zrobić. Flip komunikuje się z pc na innej zasadzie w porównaniu z np.  programem MMJoy2. Jeśli nie mam oryginału bootloadera ATM32U4DFU w uP Atmega32u4 to mogę zapomnieć o Flip. Pozostaje napisać program podobny do MMJoy2, który umożliwia wgrywanie do Atmega32u4  firmware Damosa.
Pomysł wydaje się dobry, ale realizacja jest dla mnie za trudna.

Odp: Kontrolery Arduino
« Odpowiedź #311 dnia: Lutego 05, 2020, 16:57:30 »
Mam dobre wieści dotyczące płytek DMKeys8. Będzie można za jakiś czas zamawiać u Damosa te kontrolery. W związku z czym nie ma potrzeby szukać rozwiązań zastępczych polegających na zastępowaniu DMKeys8 płytkami np. ProMicro. Ponieważ ten temat poruszyłem to chcę wyjaśnić do czego doszedłem. Damos stosuje u siebie uP Atmega32U4, ale z wgranym fabrycznie DFU. To umożliwia wgrywanie firmware .hex oraz .eep z programu Flip. W ProMicro uP Atmega32U4 nie posiadają DFU, dlatego wymyśliłem prosty sposób wgrywania pliku .hex za pomocą programu MMJoy2, który to umożliwia. Pozostał problem z plikiem .eep. Kupiłem w Internecie programator
https://allegro.pl/oferta/programator-isp-usbasp-atmel-avr-tasma-win7-x64-5191261063?utm_source=notification&utm_medium=buyerCart&utm_campaign=transaction-notifications-buyercart&snapshot=MjAyMC0wMi0wM1QxODowNzo1MS41MjdaO2J1eWVyO2Q1ZWQzZDJlN2VjMDgzNWNjYTg4YTBhMDUwOGY4ZjQzMmEyMDMxMTIzNzNlNzc1MWZmZmZiZjBiODY0OTRhY2U%3D
który to umożliwia. Jestem na etapie szukania do niego sterowników mam nadzieję, że coś znajdę.
Pomysł z zastępczym DMKeys8 zrealizowanym na ProMicro umożliwiał wersję ubogą matrycy 12x6, ale tak jak wspomniałem jest szansa na zamówienie oryginału DMKeys8, który realizuje matrycę 16x10. Mam nadzieję, że wyjaśniłem poruszony temat.

Odp: Kontrolery Arduino
« Odpowiedź #312 dnia: Lutego 22, 2020, 13:48:07 »
Może się komuś przydać. Zrobiłem prosty interfejs dla programowania ProMicro oraz NANO. Wkładamy do podstawek albo ProMicro albo NANO. Połączenie z programatorem USBasp jest standardowe ISP KANDA. Można wypalać bootloader korzystając z IDE lub wgrywając firmware przy pomocy Avrdudess. Dziękuję koledze Piotrowi (3.14ter) za konsultacje.

Schemat


Odp: Kontrolery Arduino
« Odpowiedź #313 dnia: Kwietnia 18, 2020, 21:57:21 »
Vito_zm dzięki za pomysł. Ja z niego skorzystam. Jak to fajnie, że "korona..."  tych pomysłów nie zeżarła!
Pozdrawiam i życzę nowych pomysłów.
zbyszek
« Ostatnia zmiana: Kwietnia 19, 2020, 13:48:21 wysłana przez KosiMazaki »
Pozdrawiam.

Offline sjx

  • *
Odp: Kontrolery Arduino
« Odpowiedź #314 dnia: Sierpnia 16, 2020, 14:03:53 »
Witam, czy można prosić o konkretne porady w budowie panela z przyciskami typu "on-off", przełącznikami obrotowymi np. do wyboru uzbrojenia w migu 21, oraz potencjometrami do np. regulacji oświetlenia kokpitu? Chodzi mi o wykaz cześci potrzebnych do budowy tego (dostępnych w Polsce), oraz samą konfigurację od podstaw? Domyślam się że zapewne musi być to oparte na chociażby Arduino i Dcs - bios, ale jestem "zielony" w tych tematach dlatego potrzebuje instrukcji od podstaw.