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

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

Odp: Kontrolery Arduino
« Odpowiedź #30 dnia: Lipca 14, 2016, 18:27:56 »
Wróciłem do poznawania MMJoy2. Zrobiłem pewne założenia dla moich testów. Testuję tylko opcję z rejestrami. Muszę jeszcze dorobić jeden rejestr aby mięć komplet. W układzie moich 3 rejestrów CD4021 zrobiłem kilka testów. Jeszcze jedna ważna uwaga te kontrolki w setup MMJoy2 to tylko wskaźniki działa lub nie. Właściwa obserwacja to w okienku Windows, gdzie widać faktyczne działanie. Przetestowałem hat1 oraz hat2 i jest widziany w Win. Ciekawe są mody, mamy tutaj 4 mody (enkoder nie ma sensu). I tak kolejno switch ON generuje impuls przy załączaniu (przełącznik) lub przy naciśnięciu (przycisk). Switch OFF generuje przy puszczeniu (przycisk) lub wyłączeniu (przełącznik). Soft switch zapala przy załączeniu, gasi przy powtórnym załączeniu. Dla opcji ozn. "-------" impuls jest generowany zarówno przy załączeniu jak i wyłączeniu. Czas trwania można ustalić opcją timera (od 50ms do 500ms). Jutro przewiduję dalsze testy. Nie mam jeszcze wiedzy na temat opcji Shift.

Odp: Kontrolery Arduino
« Odpowiedź #31 dnia: Lipca 15, 2016, 12:33:48 »
Zrobiłem pewien postęp w poznawaniu MMJoy2. Jest w setup bardzo dobre narzędzie do testowania button pod nazwą WBK Button Tester. Nie ma ograniczeń Win do 32 przypisań. Podłączyłem mój dostępny sprzęt i mam matrycę 4x3 oraz 3 rejestry CD4021 co daje 36 pozycji. Zaprogramowałem 2 HAT co razem zajęło 44 button w wirtualnej tabeli Joystick. W końcu zrozumiałem, mam taką nadzieję jak to działa. Mogę wykorzystać 96 pozycji stosując matrycę oraz rejestry przypisując numer button w tabeli Joystick. Tutaj jest widzę ograniczenie do 64 co i tak jest dużo. Mogę przypisać mod oraz timer, pisałem o tym poprzednio.  Nie muszę przypisywać klawiatury do danego button lub hat, ponieważ wystarczy w symulatorze w setup dla danej funkcji np. hamowanie przy kołowaniu nacisnąć odpowiedni przycisk w naszym modelu joysticka. Jedyny problem to zapisać sobie w doc. który button jest za co odpowiedzialny.
Tak jak założyłem nie ruszam opcji Mouse and keyboard. Pozostaje jedna niewiadoma tzw. opcja Shift (1-3). Nie potrafię tego zrozumieć. Piszą:
Cytuj
After defining shifts in the designated section of the MMjoySetup, you can assign different virtual buttons to the same hardware button+shift combination.
Próbowałem przez analogię do Foxy Cougara powiązać ten Shift (1-3) do modyfikatorów w Foxy, które faktycznie zmieniają funkcję np. hat H1 (trymowanie lub widoki) przycisk S3 w drążku. Może tutaj jest coś podobnego, ale jak to sprawdzić. Może ktoś na forum wie co to oznacza i jak to sprawdzić w symulatorze.
Myślę, że teraz mogę zabrać się za analogi.

Offline Sorbifer

  • *
  • OstBlock. Tu i Teraz.
Odp: Kontrolery Arduino
« Odpowiedź #32 dnia: Lipca 15, 2016, 13:08:21 »
To trochę z innej bajki podejście, ale jakby ktoś chciał swojemu cudu do symulacji dodać trochę funkcjonalności, to jest promocja na Orange PI za $8.57 z przesyłką. Tani malutki kompik do (prawie) wszystkiego.

http://www.cnx-software.com/2016/07/15/orange-pi-pc-board-is-now-selling-for-8-57-shipped-promo/
Sorbifer.
OstBlock.
Kiepsky.

Odp: Kontrolery Arduino
« Odpowiedź #33 dnia: Lipca 19, 2016, 14:23:04 »
Mały postęp w temacie MMJoy2. Zrobiłem model joysticka z elementów dostępnych w moich śmieciach. Model realizuje 12 przycisków podłączonych do matrycy diodowej, do 3 rejestrów CD4021 mam dostęp do 8 przycisków. Analogi są realizowane za pomocą 4 potencjometrów oraz joysticka. Widać całość na zdjęciu oraz połączenie na schemacie. Analogi dopiero rozpocząłem testować poznając przy okazji setup MMJoy2. Informacje są pod tym linkiem
http://simhq.com/forum/ubbthreads.php/topics/3899105/89 , gdzie twórca mega-mozg-13 odpowiada na pytania. Jest tego dużo i są poruszane różne problemy. Nie należę do tego forum, dlatego nie pytam, ale zapytam tutaj. Czy ktoś już poznał możliwości MMJoy2, łatwiejsza byłaby dyskusja. Mam zamiar poznać jego możliwości, ale na tyle na ile to jest możliwe na moim modelu.
Kolejny logiczny krok to wymiana uszkodzonej elektroniki w  jakimś starym joysticku i zastosowanie sensorów. Możliwości MMJoy2 wydają się zrealizować tę modyfikację. 
Jedna sprawa nie daje mnie spokoju to zastosowanie enkoderów w ProMicro oraz MMJoy2. Z tego co zauważyłem na forum ludzie stosują enkodery, pytanie dlaczego u mnie są błędy, chociaż mam u siebie  ten lepszy enkoder.



« Ostatnia zmiana: Lipca 19, 2016, 17:31:07 wysłana przez KosiMazaki »

Odp: Kontrolery Arduino
« Odpowiedź #34 dnia: Lipca 19, 2016, 18:26:54 »
Chciałbym uzupełnić ostatni wpis. Rozpocząłem wątek Kontrolery Arduino a piszę ostatnio o aplikacji MMJoy2. Ta aplikacja to tylko jeden z przykładów. Zainteresowałem się tą aplikacją z kilku powodów. Maciej z forum ma uszkodzony kontroler do Cougara i musi zbudować zastępczy, wybór padł na Arduino.  Zastosował w drążku rejestry MCP23017 z możliwością pullup, której nie mają CD4021. MMJoy2 obsługuje tylko CD4021 lub 74HC165, dlatego musiał napisać swój skrypt. Musi jeszcze dopisać obsługę analogów. Mógłby zastosować MMJoy2 i pozbyć się problemu pisania skryptu.
Drugi powód to zastosowanie ProMicro przez golasa w swoim kokpicie. MMJoy2 nie musi się ograniczyć tylko do mapowania fizycznego joysticka. Można go zastosować do sterowania paneli. I tak zrozumiałem ideę zastosowania golasa. Można połączyć szeregowo połączone rejestry do np. ProUno lub Leonardo i do nich podłączać przyciski lub przełączniki z paneli kokpitu. Sterownik będzie widziany w symulatorze np. BMS4 jako joystick i w setup można  go mapować.  Jest to kuszące, ponieważ nie potrzeba diodowej matrycy i oszczędzamy na przewodach. Jeśli zastosujemy np. DMKeys8 to musimy budować diodową matrycę.
Nie mogę porównać tych dwóch kontrolerów mam na myśli DMKeys8 oraz ten z aplikacji MMJoy2, ponieważ mam u siebie tylko ten Damosa. Jeszcze jedna różnica DMKeys8 jest widziany przez pc jako klawiatura na natomiast MMJoy2 jako joystick. Jeszcze jedno porównanie MMJoy2 do MJoy16, który był na forum bardzo popularny. MJoy16 był mapowany w SWMapper i pracował z tym programem.
Piszę dosyć dużo na temat MMJoy2, ponieważ może on być atrakcyjny dla osób, które nie lubią pisać skryptów i zagłębiać się w Arduino a chcą jakoś rozwiązać sterowanie swoich paneli. Jedyny problem, który u mnie wystąpił z MMJoy2 to błędy przy podłączeniu enkoderów. Celowo w moim modelu stosuję matrycę , rejestry, pots oraz joystick z zestawu UNO, aby lepiej testować zarówno program jak i Arduino. Apelowałem do naszego forum, ponieważ sądziłem, że ta aplikacja jest już u nas stosowana. Na forum rosyjskim ta aplikacja sądząc po wpisach jest popularna.
Mam w dalszych  planach rozeznać możliwości zastosowania Aruino w moim symulatorze BMS4. Tak jak napisał Marcin_B nie ma problemu w DCS, ale jest problem w BMS4. Jeśli będzie zainteresowanie tym wątkiem to go pociągnę. Myślę, że wyjaśniłem swoją ideę.

Odp: Kontrolery Arduino
« Odpowiedź #35 dnia: Lipca 19, 2016, 20:35:24 »
Vito - dla mnie właśnie bardzo dużą zaletą właśnie jest jak pisałem system modularny bo do połączenia kolejnych rejestrów przesuwnych wystarczy 5 kabelków :)
Ja póki co mam przestój dość spory w budowie ze względu na brak czasu i środków - niestety po równo :)

Odp: Kontrolery Arduino
« Odpowiedź #36 dnia: Lipca 21, 2016, 15:07:57 »
Czas na krótkie podsumowanie MMJoy2. Jest to wspaniała platforma, która może pracować z tanim ProMicro (23 zł). Można zrealizować 8 analogów na pots lub sensorach. Jest możliwość podłączenia przetwornika zewnętrznego. Komunikacja z rejestrami jest po SPI. Można realizować przyciski oraz przełączniki z różnymi modami oraz timerami. Jest to dobre rozwiązanie dla osób, które mają problemy z pisaniem skryptów. Niestety jest to tylko uzupełnienie innych kontrolerów np. DMKeys8 do którego można podłączyć enkodery. Podobnie platforma HSC oraz SimOut jest bezkonkurencyjna, ponieważ może sterować LED, LCD oraz 7segLED. Reasumując MMJoy2 jest bardzo dobrym uzupełnieniem wspomnianych kontrolerów.
Co do mnie to mam zamiar poznać dokładnie projekt macieja i dorobić do niego analogi.

Odp: Kontrolery Arduino
« Odpowiedź #37 dnia: Lipca 23, 2016, 20:03:20 »
Dorobienie osi analogowych to kwestia podłączenia potencjometrów pod odpowiednie wejścia Arduino i dopisanie kilku linijek kodu - odczyt wartości z osi analogowej (jest to w przykładach z Arduino) a następnie wysłanie jej do komputera za pomocą polecenia
Joystick.setXAxis(byte value).

Odp: Kontrolery Arduino
« Odpowiedź #38 dnia: Lipca 27, 2016, 08:20:12 »
Zrobiłem model dla testów projektu joysticka macieja, jest na zdjęciu. Do 2 układów MCP 23017 mogę podłączyć 16 przycisków.


 Zrobiłem kompilację i wgrałem skrypt (szkic) macieja do Leonardo i jest ok. Mam tylko problem z monitorowaniem. Leonardo jest na COM7 i po wgraniu skryptu jest tak jak na zdjęciu error-1 (nie jest zaznaczony COM7).



 Włączam monitor portu szeregowego i otrzymuję komunikat error-2 (dlaczego COM5 ??). Mam dostępny tylko COM7.



 Po włączeniu COM7 i ponownym włączeniu monitora portu szeregowego otrzymuję to co na obrazku error-3.



Nie miałem problemów z UNO oraz monitoringu portu szeregowego w poprzednich projektach. Nie rozumiem gdzie jest błąd.

Odp: Kontrolery Arduino
« Odpowiedź #39 dnia: Lipca 27, 2016, 09:00:43 »
Jeszcze w kwestii enkoderów do mmjoy2:

Czekam teraz na paczkę z chin z TLE5011 bo cena w polsce zabójcza oraz kilkoma innymi 'gratami' w tym enkodery :) popatrzymy popróbujemy :)

Odp: Kontrolery Arduino
« Odpowiedź #40 dnia: Lipca 27, 2016, 11:20:17 »
Coś u mnie ruszyło trzeba to dokładnie sprawdzić musi pracować w modzie portu szeregowego a nie w modzie monitora portu szeregowego. Mam zamiar sprawdzić jak to wygląda z układami I2C, chcę zrobić coś podobnego jak w MMJoy2 może się uda.
Już teraz widać, że MMJoy2 jest właściwym narzędziem ze względu na platformę. Mam nadzieję golas, że wejdziesz w temat i będzie można podyskutować. Jest opcja zapisania się na forum i pytania między innymi o enkodery. Może to trzeba zrobić ale na początek chciałbym potwierdzenia moich testów i tutaj są potrzebne testy golasa.

Odp: Kontrolery Arduino
« Odpowiedź #41 dnia: Lipca 27, 2016, 12:12:03 »
Hehe to daj mi miesiąc minimum jak paczka przyjdzie :) Chyba, że uda mi się w niskiej cenie jakieś w miarę normalne enkodery w naszym kraju znaleźć :)

Odp: Kontrolery Arduino
« Odpowiedź #42 dnia: Lipca 27, 2016, 18:21:30 »
Mam nadzieję, że opanuję moje Arduino Leonardo oraz  opcję monitor szeregowy. Problem dotyczy numeracji COM. Po wgraniu programu w platformie Arduino potrafi się zmienić numeracja COM np. z 7 na 5, gdzie COM7 jest w menadżer urządzeń. Była też zmiana z Arduino Leonardo na Arduino Yun. Mam nadzieję, że ustabilizuję system i zajmę się skryptem macieja. Co do enkoderów to apel do golasa. Można kupić enkoder za kilka zł w miarę dobry. Warto połączyć tylko jeden enkoder i sprawdzić czy daje błędy. Jeśli tak to pozostaje zapisać się na forum i przedstawić problem. Oni tam stosują enkodery do łączności radiowej. Będę jeszcze szukał funkcji, może znajdę, które realizują działanie enkoderów w Arduino. Może jest w jakiejś bibliotece.

Odp: Kontrolery Arduino
« Odpowiedź #43 dnia: Lipca 27, 2016, 19:57:26 »
Problem z portem szeregowym w mikrokontrolerach z wbudowanym USB, jakim jest ATMEGA32U4 polega na tym, że jest on w pewnym sensie wirtualny, jest częścią drivera USB w bootloaderze i potem w głównym programie też. Stąd po wgraniu programu, resecie procesora port ten na chwilę znika, pojawia się po chwili, a system po ponownym wykryciu nadaje mu inny numer. Niezbyt wygodne rozwiązanie jeśli używamy portu do debuggowania programu. Z drugiej strony zaletą jest możliwość użycia go do symulacji joysticka lub klawiatury.
O wiele lepszym wyjściem, jakie stosuję w takich wypadkach jest użycie sprzętowego portu szeregowego. ATMEGA32U4 ma właściwie dwa. Jeden dostępny poprzez USB i drugi, "normalny" dostępny poprzez piny TX i RX. W Uno te piny podłączone są do zewnętrznego translatora UART<-->USB.
W Leonardo inicjacja portu przez
Serial.begin(baudrate);uruchamia ten pierwszy port na USB. Dostęp do tego drugiego realizuje się poprzez Serial1, np.:
Serial1.begin(baudrate);Oczywiście, żeby podłączyć drugi port do PC potrzebujemy jeszcze jakiś moduł UART-USB. Przestrzegam przed kupowaniem modułów opartzch na FT232 w Chinach. Jest cała masa podróbek, a jakiś czas temu było ogólne poruszenie gdy f-ma FT wypuściła nowe sterowniki wykrywające podróbki i nawet je uszkadzające. Tanie Arduino z Chin przestawały nagle działać. Oczywiście Chiny zareagowały dość szybko zastępując układ FT własnym, tańszym i działającym równie dobrze (CH340 o ile się nie mylę).
Polecam za to moduły Bluetooth-UART serii HC-06 lub HC-05. Działają w porządku, a do tego z telefonu albo tabletu można zrobić sobie dedykowany terminal.
Serial1 będzie pozbawiony "czkawki" jaką powoduje reset i przeprogramowanie procesora.
Jeszcze innym rozwiązaniem, którego osobiście nie sprawdzałem, ale poleca go strona Arduino jest dodanie podczas inicjalizacji pętli czekającej na otworzenie się portu szeregowego:
Serial.begin(9600);
   // while the serial stream is not open, do nothing:
   while (!Serial) ;

Mam nadzieję, że moje wypociny wniosły co nieco do tematu. Na codzień zajmuję się mikrokontrolerami, być może będę w stanie pomóc w kilku kwestiach.

Odp: Kontrolery Arduino
« Odpowiedź #44 dnia: Lipca 27, 2016, 20:56:38 »
Bardzo dziękuję za wyjaśnienia. Nie mogłem zrozumieć zachowania się Leonardo. Faktycznie UNO ma inny procesor a właściwie dwa i może dlatego nie miałem z tym problemu. Generalnie Arduino jest dla mnie nowością, ale jestem pod wrażeniem jako praktyk w tzw. hardware. Nie będąc programistą można sobie ułatwić życie.