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

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

Odp: Kontrolery Arduino
« Odpowiedź #195 dnia: Sierpnia 14, 2016, 15:22:36 »
Można powiedzieć, że połączenie SimOUT z pc jest trywialne. MAX232 jest w moim modelu usunięty i jego miejsce zajmuje MX-15. TX modułu MX-15 jest połączone z pin 2 (RXD) układu Attimy 2313. Po stronie pc jest moduł bluetooth połączony do USB. Układy Attimy 2313 mają swoje adresy zapisane w pamięci (programujemy każdy uP z unikatowym adresem ).  Wszystkie uP są na nasłuchu, komunikaty odbiera tylko ten którego adres jest zgodny z adresem w komunikacie. Komunikacja jest tylko w jednym kierunku od pc do Attimy 2313. Czyli bardzo prosty układ.
SimOUT musi pracować z platformą HSC.  Jak widać na zdjęciu ustawiamy w HSC parametry RS232 i tutaj wybrałem port COM12 po którym jest transmisja MX-15. W HSC jest opcja  testowania połączenia RS232. Widać na zdjęciu, że jest komunikat "Błąd połączenia Port CMO12 nie is...". Mnie się wydawało, że program w Attimy 2313 można oszukać zamieniając MAX232 na MX-15. Mogę próbować zapytać twórcę HSC oraz SimOUT czy taka komunikacja jest możliwa.
Próbuję to rozwiązać  dlatego, że na forum jest dużo użytkowników SimOUT. Twórca tego kontrolera codeking tak to zaprojektował, że trzeba zastosować konwerter USB-RS232 na zewnątrz SimOUT. Gdyby udało się zrobić komunikację po bluetooth to można zamienić MAX232 na MX-15 robiąc małą modyfikację na pcb.

Odp: Kontrolery Arduino
« Odpowiedź #196 dnia: Sierpnia 14, 2016, 17:41:41 »
Wg informacji na stronie SimOUT, parametry portu szeregowego do komunikacji to:
Cytuj
Ustawienia połączenia: prędkość 57600, 8 bitów danych, 2 bity stopu, brak bitów parzystości, brak uwierzytelnienia
Czyli XM-15 trzeba przestawić komendą AT:
AT+UART=57600,1,0

Odp: Kontrolery Arduino
« Odpowiedź #197 dnia: Sierpnia 14, 2016, 19:09:47 »
Dzięki, będę próbował. Ja zmieniałem parametry RS232 po stronie HSC na takie jakie są w MegaJoy. Może faktycznie zmienić w MX-15 na takie jakie są w HSC. Dam znać czy się udało.

Odp: Kontrolery Arduino
« Odpowiedź #198 dnia: Sierpnia 14, 2016, 19:19:14 »
Raczej trzeba. UARTy w ATTINY2313 na płytce są programowo na stałe ustawione na tą prędkość i zmiana w programie po stronie PC nic nie da.

Odp: Kontrolery Arduino
« Odpowiedź #199 dnia: Sierpnia 15, 2016, 10:52:24 »
Kolejny gadżet do kolekcji zaczął działać: konwerter enkoder->2 przyciski lewo/prawo.
Oparty na małym i tanim ATTINY25, ma tylko jedno zadanie: poprawnie odczytywać kręcenie enkoderem i symulować przyciśnięcia dwóch przycisków: obrót w lewo lub obrót w prawo. Te wyjścia będzie można podłączyć do dowolnych wejść MCP23017 i używać enkoderów jako przycisków.
Działa na przerwaniach i sprytnym algorytmie (nie mojego autorstwa), który od razu zawiera w sobie dodatkową eliminację drgań styków.
Obsługuje dwa rodzaje enkoderów: pełnokrokowe i półkrokowe, rodzaj wybiera się zworką.
Nie wiem, czy to sprawdzi się w praktyce, ale wpadłem na pomysł jak wyeliminować gubienie kroków (generowanych przyciśnięć). W praktyce odkłócanie przycisków może czasem wymagać stabilnego stanu przez ok. 50ms. To sporo, a stanowczo za dużo, jeśli szybko pokręcimy enkoderem. Rozwiązałem to tak, że generator "kliknięcia" przyciskiem ma stały czas impulsu, procesor zlicza ilość kroków wygenerowanych enkoderem, a potem wyklika sobie w odpowienim tempie tą ilość tak, aby docelowy układ zarejestrował wszystkie.
Zalety: nie gubi kroków.
Wady: przy szybkim kręceniu enkoderem kliknięcia generowane są z opóźnieniem. Przy średnich i wolnych tempach nie ma problemu.



Przy tak niskich cenach mikrokontrolerów można pokusić się o system rozproszony z niewielkimi modułami, które  przeznaczone są do pojedynczych zadań i wykonują je dobrze, wyjścia są zunifikowane i kompatybilne z modułem centralnym. Będą też łatwiejsze do użycia dla tych bez dużego zaplecza elektronicznego.
To chyba nie ostatni modulik na Tiny25. Niestety procesor jest za mały, żeby go użyć w środowisku Arduino. Potrzebny będzie programator do AVR (np. USBasp).

Odp: Kontrolery Arduino
« Odpowiedź #200 dnia: Sierpnia 15, 2016, 12:44:27 »
Zmieniłem ustawienia MX-15 na takie jakie są zapisane w  Attiny 2313 i nie ma komunikacji. Może faktycznie jest to temat dla twórcy HSC oraz SimOUT codeking.
SimOUT nie może pracować samodzielnie tylko z platformą HSC. Komunikacja pomiędzy PC (HSC) a płytą SimOUT jest przez konwerter USB-RS232, który w zasadzie jest  przeźroczysty. AtTiny 2313 umieszczone w SimOUT mają taki sam program, różnią się tylko adresem ID. Komunikaty z pc wysyłane są do wszystkich uP, ale odbiera tylko ten z właściwym adresem. Prawdopodobnie odpowiada na wysłaną komendę.
Jeśli zmienimy sposób przesyłania komunikatów wprowadzając moduł bluetooth po stronie pc oraz MX-15 po stronie SimOUT to moduł MX-15 w sensie komunikacji nie jest przeźroczysty musi nawiązać połączenie z modułem w pc dopiero później możliwa będzie komunikacja HSC w pc oraz SimOUT. Może zastąpienie konwertera USB-RS232 oraz MAX232 na moduły bluetooth to za mało. Może trzeba coś zrobić w programie HSC lub Attiny 2313. Pozostaje zapytać codeking.
Co do  ATTINY25 to pomysł jest ciekawy. Faktycznie to będzie działać. Dziwiło mnie w MMJoy2, że jest opcja wyboru 4 enkoderów połączonych do rejestrów. U mnie to nie działało tutaj będzie działać.
Jest jeszcze jedna sprawa związana z przyciskami (nie enkoderami).  Czy MegaJoy ma załączać przy ON czy OFF czy jeszcze inaczej. W MMjoy2 wprowadzono kilka opcji. To tak przy okazji.

Odp: Kontrolery Arduino
« Odpowiedź #201 dnia: Sierpnia 15, 2016, 20:16:13 »
Okazało się, że mam jeszcze jednego ATTINY2313. Zaprogramowałem jednym z programów do LEDów. Udało mi się nawiązać połączenie między HSC, a tiny2313 przy pomocy adaptera USB-UART na FT232. Wygląda na to, że program HSC ma jakiś problem ze współpracą z modułami bluetooth. Nie może otworzyć połączenia, które wiem, że działa, bo do HC-05 ustawionego na 57600,8N2 mogę podłączyć się przy pomocy Termite.

W programie MegaJoy przyciski są wyzwalane stanem niskim, czyli zwarcie do masy. Jeśli chodzi o implementację działania na osi czasowej (astabilne, bistabilne itd.) to jeszcze o tym nie myślałem. Program zajmuje ok. 45% pamięci, jest jeszcze sporo miejsca na dodatkowe funkcje.


Odp: Kontrolery Arduino
« Odpowiedź #202 dnia: Sierpnia 15, 2016, 20:29:26 »
Dzięki za testy, to się zgadza z tym co zauważyłem u siebie. Napisałe na pw do codeking, może coś wymyśli.
Cytuj
Czy MegaJoy ma załączać przy ON czy OFF czy jeszcze inaczej.
Ta moja uwaga jest niepotrzebna, ponieważ MegaJoy trzyma stan ON  tak długo jak długo naciskamy przycisk oraz OFF gdy go puścimy tak wynika z testu WKB Tester
Tak myślę, że jestem za bardzo "skażony" różnymi kontrolerami i dlatego ciągłe porównywanie, co nie ma sensu. Każdy kontroler powinien spełniać swoje założenia i w jakimś sensie wyróżniać się w niektórych parametrach. Nie ma sensu robić uniwersalnego kontrolera, ponieważ tracimy na jakości. Jako przykład mogę podać DMKeys8, który został zaprojektowany tak aby realizował sekwencje kombinacji klawiaturowych z możliwością różnych opcji typu ON, OFF. Kontroler typu joystick nie ma możliwości realizacji tych funkcji. Z drugiej strony DMKeys8 nie ma opcji kontroli analogów. Mógłbym jeszcze wymienić SimOUT oraz MMJoy2, które też mają swoje specjalizacje.
Z tego co napisał 3,14ter to MegaJoy będzie w pewnym sensie uniwersalny, ale ważną jego cechą będzie schemat oraz pcb kontrolera oraz tzw. córek, współpracujących z płytą matką. MMJoy2 też ma cechy uniwersalności, ale na moje wyczucie jest "przedobrzony" tzn. za dużo tej uniwersalności i pewne funkcje mogą pracować wadliwie (w moich testach enkodery). Schemat oraz pcb autor pozostawił do rozwiązania użytkownikom.
Trochę się rozpisuję, ale wynika to z tego, że mam u siebie różne kontrolery i ciągle je porównuję. Jeśli  3.14ter  zrealizuje swój projekt to będziemy mieli bardzo dobry kontroler.


Odp: Kontrolery Arduino
« Odpowiedź #203 dnia: Sierpnia 15, 2016, 22:43:09 »
https://github.com/MMjoy/mmjoy_en/tree/master/PCB - tutaj masz PCBki jak i w folderze po rozpakowaniu archiwum - do przeglądania służy http://www.abacom-online.de/updates/Sprint-Layout60_Viewer.exe

Odp: Kontrolery Arduino
« Odpowiedź #204 dnia: Sierpnia 16, 2016, 09:24:23 »
Dzięki golas za linki. Przejrzałem i faktycznie temat MMJoy2 wydaje się dopracowany, jeśli powstało aż tyle pcb dla peryferiali oraz Arduino w tym dla wersji ProMicro. Na ile testowałeś MMJoy2 tzn. jakie jego opcje. Mam na uwadze nie tylko analogi ale przyciski, przełączniki, modyfikatory oraz enkodery. Próbowałem na początku tego wątku wciągnąć do dyskusji posiadaczy MMJoy2, ale się nie udało. Moje testy są nie pełne, ponieważ trafiłem na problemy np. z enkoderami i musiałbym wejść na forum MMJoy2 i tam pytać jak rozwiązać problemy. Jeśli ktoś ma pełniejszą praktyczną (testy na modelu) wiedzę na temat MMJoy2 to może się nią podzieli. Ma to o tyle sens, że może być przydatne przy projekcie MegaJoy.

Odp: Kontrolery Arduino
« Odpowiedź #205 dnia: Sierpnia 20, 2016, 11:54:50 »
Płytka modułu do enkoderów wyszła niewiele większa niż sam enkoder. Zaprojektowana jest pod enkodery ALPS serii STEC11. Myślę, że te tanie chińskie są kompatybilne (jadą, sprawdzę wkrótce).

Nie miałem akurat modelu 3D enkodera ALSP i użyłem innego z takim samym rozstawm pinów oprócz tych montażowych.
Wyjście wbudowanego przycisku enkodera jest odkłócane małym filtrem RC i wyprowadzone na dwa dodatkowe piny (BTN).
H/F to zworka do wyboru rodzaju enkodera, pełnokrokowy/półkrokowy.

Sprawdziłem też działanie prototypu przedwzmacniacza/kalibratora do wejść analogwych z czujnikiem SS495 zamontowanym metodą "na długopis" i z wykorzytaniem części oryginalnego potencjometru:


Czujnik zamontowany jest na niewielkiej kratownicy lutowanej z 1mm srebrzanki. Całość trzyma się na oryginalnych pinach potencometru. Jest dość sztywna, ale i na tyle elastyczna, że po montażu udało mi się niemal idealnie wycentrować oś lekko naginając płytkę z czujnikiem. Przy takim ustawieniu i magnesach niewiadomego pochodzenia zakres wychylenia drążka generował +/- 1.4V wokół osi 2.5V. Układ wzmocnił to do pełnego zakresu wejścia ADC. Ewentualne nieliniowości górnej i dolnej połówki można sobie dokładnie wytrymować.
« Ostatnia zmiana: Sierpnia 20, 2016, 21:41:00 wysłana przez KosiMazaki »

Odp: Kontrolery Arduino
« Odpowiedź #206 dnia: Sierpnia 20, 2016, 14:07:21 »
Jestem pewny jeśli chodzi o enkodery, że będzie ok. Bardzo pomysłowy prototyp widać, że masz praktykę, gratulacje.

Odp: Kontrolery Arduino
« Odpowiedź #207 dnia: Sierpnia 20, 2016, 16:21:41 »
Hmm odnośnie samego czujnika i mocowania to ja planuję zmajstrować coś takiego (planuję bo póki co mam mały przestój z pracami wszelakimi)

http://il2forum.pl/index.php/topic,17724.msg341240.html#msg341240

Odp: Kontrolery Arduino
« Odpowiedź #208 dnia: Sierpnia 22, 2016, 11:11:17 »
Cytuj
Kolejny gadżet do kolekcji zaczął działać: konwerter enkoder->2 przyciski lewo/prawo.
Oparty na małym i tanim ATTINY25, ma tylko jedno zadanie: poprawnie odczytywać kręcenie enkoderem i symulować przyciśnięcia dwóch przycisków: obrót w lewo lub obrót w prawo. Te wyjścia będzie można podłączyć do dowolnych wejść MCP23017 i używać enkoderów jako przycisków.
Dodam tylko, że będzie także działać w MMJoy2, gdzie są inne rejestry CD4021. Nie będzie działać z matrycą diodową, ale to nas nie interesuje.
Problem z enkoderami był od zawsze czyli od MJoy16, gdzie Damos zaprojektował dodatkową płytę aby zwiększyc liczbę enkoderów. Rozwiązanie 3.14ter jest bardzo dobrym pomysłem, ponieważ rozwiązuje wszystkie problemy na poziomie płytki córki, której wymiary są tak małe, że nie stanowią problemu w instalacji.
Z ciekawostek to koncepcja X-Plane oparta na Arduino pod tym linkiem http://b58.svglobe.com/ oraz ciekawy sposób komunikacji https://www.b4x.com/b4r.html

Odp: Kontrolery Arduino
« Odpowiedź #209 dnia: Sierpnia 24, 2016, 20:16:47 »
Po kilku dniach powróciłem do testów MegaJoystick oraz MMJoy2 testując analogi. Na zdjeciu jest pokazany mój zestaw do testów dla ProMicro (MMJoy2) oraz Leonardo (MegaJoystick). Potencjometry są wspólne (przekładam sznur). Testy wykonałem programem VKB_JoyTester. Dla MegaJoystick wykresy wypadły źle widać to na zdjęciu. Jestem pewny, że kilka dni wcześniej były inne wygładzone z przejściem nieliniowym przez środek charakterystyki. Sprawdziłem jak to wyglada w MMJoy2 i tam przebiegi są wygładzone.
Zastanawiam się co się mogło uszkodzić. W MMJoy2 są opcje ustawiania parametrów dla osi joysticka. U mnie jest step 63, bez filtru oraz precision 10 (wybór zakresy 8-14).
W MegaJoystick dla ustawienia potencjometrów na środku mam oś X 32749 step 1, oś Y 32695 step 2, oś Z 32447 step 64 oraz oś rZ 32766 step 1.  Pozostałe dwie osie rX oraz rY nie reagują (A4, A5).
Zastanawiam się czy mogę jakoś znaleźć przyczynę moich problemów tzn. jakiś uproszczony program np. dla jednej osi czy coś podobnego.