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

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

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #120 dnia: Stycznia 13, 2011, 21:37:34 »
Tak na szybko z tego co widzę.Enkodery,które nie dają przesunięcia fazowego sa nie do przyjęcia.Trochę tego nie rozumiem,ponieważ kod Graya powinien zapewnić prawidlowe przebiegi sygnałów.Pytanie jak to zmierzyć kręcąc gałką (oscyloskop z pamięcią?).
Co do jitera to rzeczywiście albo filtr cyfrowy albo analogowy (całkowanie).Wygląda to tak jak styki przekaźnika.
Moim zdaniem to ograniczenie liczby enkoderów oraz zrobienie filtu cyfrowego jest dobrym pomysłem.Dodatkowo ograniczenie szybkości obracania gałką.Nie ma sensu żyłowania układu po to aby osiągnąć maximum możliwości.Lepiej mieć ukłd stabilny.Jeśli będzie brakowało enkoderów można zastosować kilka sterowników.W MJoyu niektóre tanie enkodery także dawały przekłamania.Co innego w przemyśle,gdzie enkodery są precyzyjne i wielobitowe,ale są bardzo drogie.
Z tego co napisałeś wynika,że chcesz się także zabezpieczyć przed drganiem zestyków dla przycisków,czy mam rację?

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #121 dnia: Stycznia 13, 2011, 22:46:26 »
Tak na szybko z tego co widzę.Enkodery,które nie dają przesunięcia fazowego sa nie do przyjęcia.
Niestety - w takim układzie odpada 99% towaru na rynku :) Te Enkodery z załączonych oscylogramów są już obsługiwane :)

Trochę tego nie rozumiem,ponieważ kod Graya powinien zapewnić prawidlowe przebiegi sygnałów.
To raczej enkoder powinien zapewnić kod Gray'a z prawidłowymi przebiegami. Obawiam się, ze tanie, czysto mechaniczne konstrukcje mogą nie być w stanie tego zrobić.

Pytanie jak to zmierzyć kręcąc gałką (oscyloskop z pamięcią?).
Dokładnie tak to zrobiłem. Układ nie działał zgodnie z założeniem i w końcu sięgnąłem po oscyloskop cyfrowy.

Co do jitera to rzeczywiście albo filtr cyfrowy albo analogowy (całkowanie).Wygląda to tak jak styki przekaźnika.
Całkowanie analogowe za pomocą pojemności wymagało by rezystora rozładowującego dla każdego PIN'a, który mógłby powodować problemy z matrycą. Dla zmniejszenia ilości elementów nie używam żadnych zewnętrznych rezystorów ( w przeciwieństwie do MJoy'a ). Ponadto sam "burst" odczytania stanów matrycy to seria sygnałów o częstotliwości ok 1MHz - a tam pojemności zaczynają grać rolę. Sama długość kabli zrobi już swoje.

Moim zdaniem to ograniczenie liczby enkoderów oraz zrobienie filtu cyfrowego jest dobrym pomysłem.Dodatkowo ograniczenie szybkości obracania gałką.
Problem w tym, że wielkość czasu przesunięcia sygnałów nie zależy liniowo od szybkości kręcenia :( Nawet kręcąc powoli mamy dość mały delay.

Z tego co napisałeś wynika,że chcesz się także zabezpieczyć przed drganiem zestyków dla przycisków,czy mam rację?
Oczywiście! Przełączniki mają potężne drgania na stykach i tam bezwzględnie należy się przed nimi chronić. Inaczej po jednym wciśnięciu przycisku dostał byś kilka(naście) sekwencji klawiszy. Sprawa przycisków i przełączników jest już załatwiona i problem drgania styków nam nie grozi (ten wsad, który wysłałem ci poprzedni już miał filtr cyfrowy na wejściu, obecnie jedynie przerobiłem go na wersję konfigurowalną za pomocą zewnętrznego programu).
Enkoder jest większym problemem, bo czas na wygaszenie styków musiał by być czasem większy niż odstęp między kolejnymi sygnałami w innym przypadku.
« Ostatnia zmiana: Stycznia 13, 2011, 22:56:25 wysłana przez damos »

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #122 dnia: Stycznia 14, 2011, 08:30:47 »
Cytuj
Enkoder jest większym problemem, bo czas na wygaszenie styków musiał by być czasem większy niż odstęp między kolejnymi sygnałami w innym przypadku.
Można zrobić ograniczenie w założeniach projektu dotyczące szybkości manipulowania gałka.
Zastanawiam się nad tymi wykresami.Nie mam oscyloskopu z pamięcią,dlatego nie mogę tego przebadać.Z tego co pamiętam to po stwierdzeniu,że niektóre enkodery przekłamują zrobiłem prosty układ do testowania tzn.2 LED podłączone do styków.Obracając oś w lewo i w prawo testowałem kolejność zapalania LED (powinny zapalać wg.kodu Graya).Dla tych tańszych enkoderów zdarzały się przekłamania kodu,ale be droższe były stabilne.Oczywiście był to prymitywny test,ale można było zauważyć,że niektóre enkodery przekłamują.Tutaj uwaga,przekłamanie było chwilowe tzn.w momencie przejścia z jednego stanu (kodu Graya) do drugiego.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #123 dnia: Stycznia 14, 2011, 12:18:40 »
Można zrobić ograniczenie w założeniach projektu dotyczące szybkości manipulowania gałka.
Dodałem w nocy filtr cyfrowy na generowany output (ograniczenie na prędkość generowanych na wyjściu impulsów) podeślę Ci firmware do przetestowania na twoich enkoderach. (będzie działać na płytce, którą masz)

Zastanawiam się nad tymi wykresami.Nie mam oscyloskopu z pamięcią,dlatego nie mogę tego przebadać.Z tego co pamiętam to po stwierdzeniu,że niektóre enkodery przekłamują zrobiłem prosty układ do testowania tzn.2 LED podłączone do styków.Obracając oś w lewo i w prawo testowałem kolejność zapalania LED (powinny zapalać wg.kodu Graya).
W tym przypadku oko ludzkie ma zbyt dużą bezwładność aby wykryć drgania styków

Dla tych tańszych enkoderów zdarzały się przekłamania kodu,ale be droższe były stabilne. Oczywiście był to prymitywny test,ale można było zauważyć,że niektóre enkodery przekłamują.
Możesz podać linka do pozycji w jakimś sklepie z tymi "poprawnymi" enkoderami ? Chętnie kupię i zobaczę, jak działają.

Oczywiście był to prymitywny test,ale można było zauważyć,że niektóre enkodery przekłamują.Tutaj uwaga,przekłamanie było chwilowe tzn.w momencie przejścia z jednego stanu (kodu Graya) do drugiego.
Oczywiście. Stan "spoczynkowy" to rozłączenie obu wyjść i tam nie ma co przekłamywać :)

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #124 dnia: Stycznia 14, 2011, 17:16:31 »
Cytuj
W tym przypadku oko ludzkie ma zbyt dużą bezwładność aby wykryć drgania styków
Masz rację,dlatego mam wątpliwości czy moje uwagi dotyczące lepszych lub gorszych enkoderów są słuszne.Kupilem je 2 razy na Allegro oprócz różnicy w cenie jedne miały dodatkowy przycisk i przy przeskodu było "kliknięcie" te drugie były bez przycisku i zmiana pozycji była "niewyczuwalna" tak jakby był mechanizm ślizgowy??
Myślę teraz o czym innym.Test o którym napisałem zrobiłem po uwadze jednego z kolegów na forum,że enkoder przekłamuje.Pytanie podstawowe jak wykonać obiektywny test w domowych warunkach.W symulatorze można przekłamania nie zauważyć.Gdybym był programistą to napisałbym prosty program w którym na wyjściu licznika rewersyjnego podłączyłbym wyświetlacze.Impulsy "dodatnie" obrót w prawo sterowałby wejście dodające a impulsy "ujemne" wejście odejmujace.Obrót w prawo powinien zwiększać wyświetlaną liczbę obrót w lewo zmniejszać.Oczywiście brak rozróżnienia czy drgania czy jitter.
Dochodzę do wniosku,że trzeba założyć to co pomierzył Damos,że dostępne na rynku enkodery przekłamują (drgania,jitter) i zabezpieczyć się programowym filtrem,nic innego nie przychodzi mi do głowy.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #125 dnia: Stycznia 15, 2011, 15:26:00 »
Witam,
zrobiłem wstępne testy układu Damosa.Testowałem przyciski oraz enkodery.Wyniki są pozytywne.Damos wprowadził nowe opcje dla przycisków.Można np.emulować przycisk bistabilny.Zastanawiam się jak to będzie można wykorzystać w kokpicie.Na zdjęciu jest pokazany sterownik oraz panel z enkoderami.


Uploaded with ImageShack.us
Przy testach enkoderów okazuje się,że jakość kodu generowana przez te elementy jest nienajlepsza delikatnie mówiąc.Można to zauważyć na wykresach,które zamieścił Damos.Aż nie chce się wierzyć,że był w stanie programowo to skorygować.Wszystko wskazuje na to,że będziemy mieli godnego następce MJoya.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #126 dnia: Stycznia 15, 2011, 15:44:51 »
No Panowie szacuneczek i ukłon w Waszą stronę. Miałem powoli kompletować zamówienie na płytki MJoya v1,bo się wyczerpały, ale jak to widzę to jednak zaczekam na następnę.

z wypiekami na twarzy
noker
MJoy16.googlepages.com
... in the air.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #127 dnia: Stycznia 15, 2011, 19:34:38 »
Chciałbym uzupełnić informację o następcy MJoya.Dzisiejszy dzień poświęciliśmy z Damosem na testy.W czasie testów enkoderów mieliśmy różne wyniki.Wynikało to z tego,że mieliśmy różne typy enkoderów.Przyznam się szczerze,że nie miałem o tym pojęcia.Dobrze,że to wyszło na etapie testów.Jeszcze jeden wniosek.Kupując enkoder trzeba wiedzieć jaki to jest typ,ponieważ w programie konfiguracyjnym Damosa będzie opcja wyboru typu.W MJoyu tej opcji nie było.Muszę sprawdzić jak jest w SIOC.Przy okazji podziękowanie dla Damosa za jego pracę.
Jeszcze jedna myśl.Te różnice można było zauważyć w programie testowym.Taka sugestia dla Damosa.Czy można zrobić opcję testującą typ enkodera?W sklepie mogą nie znać jego typu.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #128 dnia: Stycznia 15, 2011, 20:19:38 »
Taka sugestia dla Damosa.Czy można zrobić opcję testującą typ enkodera?W sklepie mogą nie znać jego typu.
EGHI też o to pytał, widocznie trzeba będzie coś takiego dodać.
Chodzi ci o opcję w programie, czy możliwość podłączenia i sprawdzenia enkodera w sklepie ? (4 paluszki i układ robi się mobilny...)
« Ostatnia zmiana: Stycznia 15, 2011, 20:24:39 wysłana przez damos »

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #129 dnia: Stycznia 15, 2011, 20:41:15 »
Cytuj
Chodzi ci o opcję w programie, czy możliwość podłączenia i sprawdzenia enkodera w sklepie ?
Najlepiej obie opcje, ja często kupuję online, więc opcja w programie będzie przydatna.
 Proponuje, żeby wyjaśnić po co taki test? I czym różnią się enkodery typu 1:1, 1:2, 1:4.
Damos,  zrobisz to najlepiej. :)

Pozdrawiam.


Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #130 dnia: Stycznia 15, 2011, 21:36:30 »
Cytuj
Jaki jest tego efekt?
Otóż:
program przystosowany do enkodera 1:1 będzie w przypadku enkodera 1:2 emitował impuls co drugi krok (tak jest u ciebie) a w przypadku enkodera 1:4 impuls będzie emitowany co czwarty krok !
Jeśli zaś program przeznaczony do obsługi enkodera 1:4 zastosujemy do obsługiwania enkodera 1:1 to na jeden "krok" zostaną wygenerowane 4 impulsy !
Tak więc muszę dodać do swojego programu kolejne opcje uwzględniające typ enkodera :)
Pozwoliłem sobie załączyć cytat z korespondencji z Damosem.Ja mam enkoder 1:2 i tak to działa jak w cytacie.
Myślę,że większość z nas kupuje w internecie,dlatego opcja testu w programie jest właściwa.Generalnie w programie powinno być sprawdzenie czy element działa i gdzie jest podłączony.W MJoy jest to pokazane graficznie u Codeking można także sprawdzić wyjścia.Podobnie jest w OC.U nas będą przyciski,przełączniki oraz enkodery.Co do enkoderów to można zaprogramować np.wersję 1:1 i sprawdzić w panelu symulatora.Jeśli będzie widziany efekt po 2 lub 4 "krokach" to będzie wiadomo jaki mamy typ enkodera.Jeśli inny niż 1:1 to programujemy kość jeszcze raz z właściwym typem.W ten sposób możemy zrezygnować z identyfikacji typu enkodera w programie Damosa.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #131 dnia: Stycznia 15, 2011, 23:43:11 »
Proponuje, żeby wyjaśnić po co taki test? I czym różnią się enkodery typu 1:1, 1:2, 1:4.
Damos,  zrobisz to najlepiej. :)
OK, w takim razie lecimy:

  Enkoder inkrementalny ma dwa wyjścia A i B, na których w miarę obracania pojawia się zmienny sygnał w kodzie Graya: http://pl.wikipedia.org/wiki/Kod_Graya . Na każdej "nóżce" pojawia się naprzemiennie 0-1-0-1-0-1-0-1-... itd
Kierunek obrotu można ustalić za pomocą analizy przesunięcia fazowego - po ludzku mówiąc: sprawdzając, na której nóżce sygnał zmienił się najpierw.
Enkoder, o którym mówimy (bo nie każdy) obraca się skokowo a nie płynnie, to znaczy, że ma pewną ilość ustalonych pozycji, na których chce się zatrzymać podczas obracania (czuć wtedy po palcami delikatny opór). Takich pozycji jest najczęściej 8 lub 16.
Pomiędzy jedną pozycją a druga powinna zajść jakieś zmiany "na nóżkach" enkodera, aby obsługujący go program poznał, że użytkownik obraca. Zmiana może być jedna lub kilka - i tu właśnie wpadamy w klasyfikację 1:1, 1:2, 1:4.
Otóż - na pełen cykl zmian na obu wyjściach, tzn kiedy A o B przejdą przez stany 0-1-0 enkoder może mieć 1 krok, 2 kroki lub 4 kroki. Jeżeli program obsługujący enkoder ma generować jeden impuls na każdy krok - musi wiedzieć, ile kroków przypada na jeden cykl.
Algorytm dla 1:1 dokonuje detekcji zbocza opadającego lub wznoszącego jednego z sygnałów i sprawdza, czy to nastąpiło po zmianie na zero lub 1 drugiego sygnału - zależnie od tego obrót jest w lewo lub w prawo
Algorytm dla 1:2 dokonuje detekcji obu zboczy jednego sygnału i konfrontuje ten moment ze stanem drugiego sygnału - to pozwala mu określić kierunek
Algorytm dla 1:4 reaguje na zbocza opadające i rosnące obu sygnałów i w każdym z tych momentów musi określić przesunięcie fazowe względem drugiego sygnału dla detekcji kierunku obrotu.

Oto graficzne przedstawienie przebiegów czasowych idealnego enkodera w 3 wariantach: 1:1, 1:2 i 1:4. Na każdym diagramie pokazałem:
- szary obszar zawierający jeden cykl zmian
- fioletowe, pionowe linie symbolizujące - kiedy zatrzymało się pokrętło w każdym kroku (punkty zatrzymania pokrętła enkodera) pomiędzy tymi liniami jest właśnie krok obrotu enkodera
- poziome, zielone linie symbolizujące 3 odrębne algorytmy programu - najwyższa dla enkodera 1:1, niższa dla 1:2 i najniższa dla 1:4, na nich zaznaczam, kiedy "wyłapują" krok enkodera
- czerwone kropki pokazujące, na jakie zdarzenie reaguje jaki algorytm (wtedy generuje informację o obrocie o jeden krok)
- czarne "iksy" (X) pokazujące, w których krokach dany algorytm nie wygeneruje impulsu, ponieważ nie wystąpiły warunki właściwe dla danego algorytmu

Oto działanie 3 algorytmów na enkoderze 1:1

widać, że:
 algorytm 1:1 wygeneruje w trakcie jednego kroku jeden impuls
 algorytm 1:2 wygeneruje w trakcie jednego kroku dwa impulsy (dwa impulsy na jeden skok gałki - jeden impuls nadmiarowy)
 algorytm 1:4 wygeneruje w trakcie jednego kroku cztery impulsy (cztery impulsy na jeden skok gałki - trzy impulsy nadmiarowe)

następny przypadek: 3 algorytmy i enkoder typu 1:2 (dwa skoki gałki na pełną cyrkulację sygnału)

widać, że:
 algorytm 1:1 nie wygeneruje w trakcie pierwszego kroku impulsu, wygeneruje za to w kolejnym kroku - mamy więc impuls co drugie zatrzymanie gałki (jeden impuls zgubiony)
  algorytm 1:2 wygeneruje w trakcie jednego kroku jeden impuls (czyli mniej niż poprzednio i akurat tyle, ile trzeba)
  algorytm 1:4 wygeneruje w trakcie jednego kroku dwa impulsy (dwa impulsy na jeden skok gałki - jeden impuls nadmiarowy)
jak widać, algorytm dla 1:1 zaczyna "gubić" impulsy a algorytm 1:4 jeszcze generuje więcej niż powinien

przejdźmy do trzeciego przypadku:
 3 algorytmy i enkoder typu 1:4 (4 skoki gałki na pełną cyrkulację sygnału)

widać, że:
 algorytm 1:1 nie wygeneruje w trakcie pierwszych 3 kroków ani jednego impulsu, wygeneruje za to w czwartym kroku - mamy więc impuls co cztery zatrzymania gałki (3 impulsy zgubione)
  algorytm 1:2 nie wygeneruje w trakcie pierwszego i trzeciego kroku żadnego impulsu  (generuje za to dwa impulsy w krokach 2 i 4) - mamy więc impuls co drugie zatrzymanie gałki (dwa impulsy zgubione)
  algorytm 1:4 wygeneruje w trakcie każdego kroku jeden impuls (mamy więc jeden impuls na jeden skok gałki)
 

Wszystkie moje enkodery (mimo, iż są różne) są typu 1:1. Vito_zm ma natomiast 1:2. Ciekaw jestem, czy ktoś ma 1:4 ? Te powinny być najlepszej jakości.

BTW - a teraz powiedzcie mi, jak algorytm 1:4 ma ustalić, który przebieg urósł jako pierwszy w takim przypadku: :)  :118: :karpik


To tyle w ramach wyjaśnień - jeśli są pytania - proszę śmiało.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #132 dnia: Stycznia 16, 2011, 10:52:13 »
Bardzo profesjonalnie to wyjaśniłeś.Zrobiłem testy z nowym wsadem dla mojego przypadku tzn.enkoderów 1:2.Testy wyszły pomyślnie.Teraz moje enkodery wysyłają "sekwencję testową" przy każdym "kroku".Tak jak to wyjaśnił Damos krok jest wyczuwalny przy obrotach gałką.Jeszcze jedno wyjaśnienie związane z "sekwencję testową".Damos zrobił program testujący w którym przy obrotach osi enkodera są wysyłane sekwencje znaków w programie Notatnika.Jest to bardzo przydatny program do testowania enkoderów oraz przycisków.

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #133 dnia: Stycznia 16, 2011, 15:42:39 »
Okres istnienia przesunięcia fazowego jest czasem bardzo mały: 240 uS, co wymagało by odpytywania z częstotliwością ponad 8000 razy na sekundę, co w naszym przypadku nie jest możliwe.

Przepraszam że się wcinam, ale może by spróbować "załatwić to" w obsłudze przerwania od zbocza na wejściach zamiast męczyć uP poolingiem ?

Nie wiem jaką kostką to obsługujecie, więc być może moja propozycja nie jest zbyt mądra ?

Odp: Następca Mjoy (Założenia konstrukcyjne)
« Odpowiedź #134 dnia: Stycznia 16, 2011, 16:43:51 »
Przepraszam że się wcinam, ale może by spróbować "załatwić to" w obsłudze przerwania od zbocza na wejściach zamiast męczyć uP poolingiem ?
Nie wiem jaką kostką to obsługujecie, więc być może moja propozycja nie jest zbyt mądra ?
Uwaga jak najbardziej celna i słuszna :010: :)
Tylko, że możliwości techniczne ATmega32U4 są zbyt małe :( Jedynie13 pinów może generować przerwania (wystarczy na 6 enkoderów). W dodatku używam trybu matrycowego, co skutecznie eliminuje możliwość używania przerwań (cała idea matrycy to jeden wielki pooling).  Założenie jest takie, że za pomocą odpowiedniego programu w PC konfigurujesz sobie, jakie peryferia są obsługiwane przez układ. Stąd maksymalizacja możliwości i tryb matrycowy na 160 wejść cyfrowych.
Do trybu w pełni przerwaniowego można by wykorzystać układ bazujący na AT32UC3B (ma indywidualne przerwanie na każdym pinie) - ale on wymaga już dużo elementów "dodatkowych" (kondensatory blokujące itp.), zasilania 3.3V i ma obudowę z "gęstymi" pinami:

Obecny układ bazuje na ATMega32U4, jest mały i tani:

ale ma swoje ograniczenia.  Jak na razie pracuje całkiem dobrze z 70-ma enkoderami lub 24-ma enkoderami i 80-cioma przyciskami. (Samych przycisków obsłuży 160, jedynie enkodery są wrażliwe na ilość podłączonych elementów). IMHO ma potencjał bycia niezłą alternatywą dla MJoy'a.