Odczyt enkodera na platwormie arduinoDue

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC
Awatar użytkownika

Autor tematu
kwarc
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 14
Posty: 882
Rejestracja: 06 sty 2007, 18:13
Lokalizacja: Mgławica Andromedy

Odczyt enkodera na platwormie arduinoDue

#1

Post napisał: kwarc » 23 lip 2019, 18:58

Ostatnio to próbuje zrobić ,ktoś ma jakieś doświadczenia którymi może się podzielić ?
Oczywiście chodzi o enkoder pozycjonujący oś.
Warto wspomnieć iż płytka/platworma Arduino Due to nie jest płytka z mikroprocesorem 8 bitowym .
Tam jest już wysoko wyspecjalizowany procesor 32 bitowy ,to pisze żeby ktoś
nie mylił z podstawowym Arduino Uno.
Podzespoły użyte - Plytka zgodna z ArduinoDue pytka z wyświetlaczem
8xpozycja cyfrowa z komunikacją szeregową ...oraz enkoder 36000 działek na 1/obr .w kwesti tego enkodera ,daje 144 000 rozdzielczości na jeden obrót .
Na takim sprzęcie testuje układ.

Dodane 23 minuty 28 sekundy:
fotka z testow:
Obrazek



Awatar użytkownika

SylwekK
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 7
Posty: 18
Rejestracja: 13 maja 2019, 12:37

Re: Odczyt enkodera na platwormie arduinoDue

#2

Post napisał: SylwekK » 23 lip 2019, 19:15

Enkoder inkrementalny?

Awatar użytkownika

Autor tematu
kwarc
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 14
Posty: 882
Rejestracja: 06 sty 2007, 18:13
Lokalizacja: Mgławica Andromedy

Re: Odczyt enkodera na platwormie arduinoDue

#3

Post napisał: kwarc » 23 lip 2019, 19:20

SylwekK pisze:
23 lip 2019, 19:15
Enkoder inkrementalny?
oczywiste że tak .


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1090
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

Re: Odczyt enkodera na platwormie arduinoDue

#4

Post napisał: tomcat65 » 24 lip 2019, 13:05

Nie wyszło z CPLD ? :twisted:

Awatar użytkownika

SylwekK
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 7
Posty: 18
Rejestracja: 13 maja 2019, 12:37

Re: Odczyt enkodera na platwormie arduinoDue

#5

Post napisał: SylwekK » 24 lip 2019, 14:42

Zrobiłem kiedyś własną bibliotekę do odczytu enkodera na dowolnych pinach (w obrębie tego samego portu) tyle, że w C i na rodzinę AVR. Nie miałem okazji sprawdzić na tak dużej rozdzielczości jak twój enkoder, ale radzi sobie całkiem nieźle i po przystosowaniu może byś ją jakoś wykorzystał.
Jeśli nie ma przeciwwskazań admina to link:
https://forum.atnel.pl/topic18208.html

Awatar użytkownika

Autor tematu
kwarc
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 14
Posty: 882
Rejestracja: 06 sty 2007, 18:13
Lokalizacja: Mgławica Andromedy

Re: Odczyt enkodera na platwormie arduinoDue

#6

Post napisał: kwarc » 25 lip 2019, 17:36

tomcat65 pisze:
24 lip 2019, 13:05
Nie wyszło z CPLD ? :twisted:
A wyszło i to super jeśli idzie np. o szybkość zliczania oraz brak gubienia zboczy .Sprawdzałem do 5 MHz .
---------------------------------------------------
Ale dopadają mnie typowe problemy np. ograniczony czas ,ciągle jest coś ważniejszego do zrobienia itp. Tamten temat czeka na lepsze czasy.
W tym przypadku po prostu mam stary liniał optyczny 0,001mm i chce to zamontować na szlifierke do płaszczyzn w osi Y .
Często jest potrzeba np. szlifowania do konkretnego wymiaru w Y .
Więc to jest próba zrobienia takiego minimalistycznego układu .
Plusem wydaje się być możliwość rozwojowa ,dodawanie dodatkowych funkcji
.Tu na fotce enkoder obrotowy jest podłączony ponieważ jest wygodniejszy do testów .
-------------------------------------------
Na tą chwile działa zliczanie zboczy sygnału w oba kierunki z rozdzielczością
144000/1obr. Działa enkoder zasilany z 5V z Płytą Due 3,6V .
Działa komunikacja z tą płytką z wyświetlaczem i klawiaturą .
Czy zliczanie działa poprawnie nie wiem. Musze uruchomić sygnał indeksu
z przetwornika .Wtedy będzie wiadomo na 100%.
Ale wydaje sie że jest OK przy ręcznym pokręcaniu enkoderem czyli tak do
300 obr/min. To i tak już są wyższe czestotliwości niż te które wyjdą z liniału na maszynie .
W każdym razie działa to na tyle zachęcająco iż zamówiłem pozostałe podzespoly do konstrukcji ,obudowę itp.

Dodane 6 minuty 27 sekundy:
SylwekK pisze:
24 lip 2019, 14:42
Zrobiłem kiedyś własną bibliotekę do odczytu enkodera na dowolnych pinach (w obrębie tego samego portu) tyle, że w C i na rodzinę AVR. Nie miałem okazji sprawdzić na tak dużej rozdzielczości jak twój enkoder, ale radzi sobie całkiem nieźle i po przystosowaniu może byś ją jakoś wykorzystał.
Jeśli nie ma przeciwwskazań admina to link:
https://forum.atnel.pl/topic18208.html
Dziękuje koledze za wpis .Dostałeś plusika .
Ale dobrze się domyślasz , w tym przypadku chodzi o wiele większą szybkość
działania układu .Co do samego języka to jest to napisane w C którego opornie ucze się od niedawna :).Też kiedyś robiłem odczyty enkoderów realizowane
programowo ,domyślam się iż w tym "stylu" to zrealizowałeś .
Ale tu chodzi o coś innego . Samo zliczanie "kroków" z enkodera jest realizowane całkowicie sprzętowo .Czyli działa zupełnie w tle programu mikroprocesora. Poza tą kwestią wydaje się iż do jednego worka wrzuciłeś dwa
różne typy enkoderów .
Temat dotyczy enkoderów pomiarowych a ty wydaje mi się iz piszesz o tak zwanych impulsatorach do ręcznego wprowadzania danych .To są zupełnie
inne kategorie sprzętu .


oprawcafotografii
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4809
Rejestracja: 29 kwie 2009, 10:11
Lokalizacja: Kraków / Jaworzno / Kopanka

Re: Odczyt enkodera na platwormie arduinoDue

#7

Post napisał: oprawcafotografii » 25 lip 2019, 20:05

kwarc pisze:
25 lip 2019, 18:17
...Samo zliczanie "kroków" z enkodera jest realizowane całkowicie sprzętowo .Czyli działa zupełnie w tle programu mikroprocesora....

Możesz ze dwa zdania więcej? Chodzi o wykorzystanie przerwania czy cóś innego?

q

Awatar użytkownika

SylwekK
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 7
Posty: 18
Rejestracja: 13 maja 2019, 12:37

Re: Odczyt enkodera na platwormie arduinoDue

#8

Post napisał: SylwekK » 25 lip 2019, 20:26

kwarc pisze:Poza tą kwestią wydaje się iż do jednego worka wrzuciłeś dwa
różne typy enkoderów .
Temat dotyczy enkoderów pomiarowych a ty wydaje mi się iz piszesz o tak zwanych impulsatorach do ręcznego wprowadzania danych .To są zupełnie
inne kategorie sprzętu .


Nie, nie, ja wiem o co chodzi :) Faktem jest, że chciałem napisać bibliotekę, która nie będzie głupieć przy enkoderach ręcznych co udało mi się w 100%, bo to co można znaleźć w sieci to w większości lipa. Chciałem też w niej połączyć niezawodność z szybkością odczytu. Dla możliwości AVR jest wystarczająca, ale spokojnie można ją przeportować na wszystkie inne platformy związane z uC jeśli jest potrzeba programowej obsługi.
I nie, nie... nie pomyliłem się proponując Ci ten programik :) Ja akurat wykorzystuję enkodery 400imp/obr i obsługuję je w trybie każdej zmiany co daje mi 1600imp/obr. W moim najnowszym sterowniku na amtega32 (taktowana 16MHz) oprócz oczywistej obsługi w przerwaniach różnorodnych timerów i generatorów (realizowanych programowo!) obsługuję też łącznie 5 enkoderów - 2x1600imp/obr z max prędkością około 16 obr/s, 2x10imp/obr z prędkością około 110obr/s, i jeden 20imp/obr do obsługi sterownika też z jakąś absurdalną dla niego prędkością :) Piszę to aby dać obraz ile biblioteka może, gdyby ktoś chciał z niej skorzystać, a jak wiadomo przy pomiarach tokarkowo-frezarkowych prędkości są raczej skromne i nawet duża rozdzielczość enkodera tak naprawdę odczytywana jest lajtowo :)
Jestem tu nowy na forum jak można zauważyć po ilości wpisów i jestem raczej elektronikiem chociaż obróbka skrawaniem nie jest mi obca (amatorsko), a że ostatnio frezarkę "Zosię" dostałem to teraz bardziej się chcę w forum wgryźć :)
Moje niektóre projekty i kombinacje można zobaczyć na kanale YT, a ostatni, o którym wcześniej pisałem (ten z pięcioma enkoderami) tak na szybko poniżej...

i efekt działania w praktyce...



Enkodery "1600" służą do odczytu pozycji wysięgnika, a te "110" do kontroli i stabilizacji obrotów silnika.

Awatar użytkownika

Autor tematu
kwarc
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 14
Posty: 882
Rejestracja: 06 sty 2007, 18:13
Lokalizacja: Mgławica Andromedy

Re: Odczyt enkodera na platwormie arduinoDue

#9

Post napisał: kwarc » 27 lip 2019, 04:42

SylwekK pisze:Moje niektóre projekty i kombinacje można zobaczyć na kanale YT

To Twoje filmiki i twoje konstrukcje w akcji?
Jeśli tak to gratuluje .Fajnie to działa .
W moim przypadku jest trochę inaczej . Tu chodzi o to aby nie zgubić podczas ruchu żadnego z impulsów z enkodera a jest ich mnóstwo .
Wiem jakie możliwości mają AVRy te starszej generacji .Nie nadają się do moich celów .TZN. nadadzą się przy niskich prędkościach i stabilnych przebiegach ale to i tak mija się z profesjonalnymi zastosowaniami w kategorii kontroli enkodera w real time .
Takim najlepszym osiągnieciem dla AVRa jest słynny serwosterownik UHU.
Może i dałoby się zrealizować taki odczyt z liniału jaki robie na Atmedze ale odpuszczam to .Przerabiałem to .Nie chce do tego wracać .
Bardzo fajnie piszesz o swojej konstrukcji i rozwiązaniach ale to nie dla mnie .
Da rade na Xmegach ale znowu jest problem z tanimi gotowymi PCB z tymi prockami .Są bardzo fajne ale przegrywają na samym starcie z prockami 32bitowymi .
Dlatego wybrałem Arduino Due .
Ale bardzo wartościowe że rozmawiamy i przedstawiasz tu co zrobiłeś ,Super.
Jestem pod wrażeniem .
---------------------------
Tak z innej strony ,wyspałem się w dzień i o 1 w nocy stwierdziłem iż popracuje nad układem ,stwierdzam pomimo wielu lat na karku ciągle kreci mnie elektronika i ciągle sprawia przyjemność ….
Więc siedzie i dopieszczam program na gotowo .

Dodane 9 minuty 48 sekundy:
PS. SylwekK gdybyś chciał pogadać właśnie precyzyjnie o tych różnicach w podejściu do odczytu wartości albo bardziej do śledzenia wskazań enkoderów
to jasne że można .

Dodane 16 minuty 15 sekundy:
oprawcafotografii pisze:Możesz ze dwa zdania więcej? Chodzi o wykorzystanie przerwania czy cóś innego?

jasne kolego , to żadne wielkie tajemnice choć często ludzie nie chcą udzielać tego typu jasnych info ,ale ja nie z takich ludzi.
Otóż już od przynajmniej 30 lat konstruktorzy mikroprocesorów zauważyli iż są
potrzebne pewne funkcje dodatkowe aby skutecznie i szybko rozwiązać potrzeby innych konstruktorów czyli tych co wdrażają dany układ w docelowe rozwiązania .Zwykła możliwość wprowadzenia przerwania w do programu nie spełniała oczekiwań .Takim przykładem jest odczyt sygnałów z ekoderów
przemysłowych przyrostowych .
Mikroprocesor na płytce Arduino Due właśnie posiada takie struktury które
po skonfigurowaniu pracują samodzielnie całkowicie poza siatką przerwań oraz programem głównym .O to pytałeś :).
Odczyt danych z rejestrów nie powoduje zawieszenia pracy tego modułu ,wstrzymania itp.
Czyli mamy real time moduł plus dostęp do niego z programu głównego w chwili jaką wybieramy.

Dodane 59 minuty 33 sekundy:
=====================
Materiały żródłowe .
Dotyczące płytki z klawiaturą i wyświetlaczem .
https://github.com/rjbatista/tm1638-library
Dotyczące "śledzenia" enkodera .
"Topic: Using the Hardware Quadrature Encoder Channel on the DUE "
https://forum.arduino.cc/index.php?topic=140205.0

Awatar użytkownika

Autor tematu
kwarc
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 14
Posty: 882
Rejestracja: 06 sty 2007, 18:13
Lokalizacja: Mgławica Andromedy

Re: Odczyt enkodera na platwormie arduinoDue

#10

Post napisał: kwarc » 30 lip 2019, 18:51

SylwekK pisze:Jeśli nie ma przeciwwskazań admina to link:
https://forum.atnel.pl/topic18208.html

masz kolego ponad tysiąc wpisów dokładniej około 1600 na tamtym forum .
Tu dodam ,na tamtym forum nie wolno dać linka np. do CNC.Info !
Przyszedłeś tu pisać na forum CNC Sylwku czy ściągać userów ta tamto mocno dziwne forum?
Na prawde mam takie pytanie .Dotarło to do mnie po jakimś czasie .
Wiec się wypowiem w tym temacie .Nie polecam Nikomu tamtego miejsca .
Panuje tam zasada chłosty i jedynego Pana Forum .NIE POLECAM -ODRADZAM.

Dodane 12 minuty 18 sekundy:
Jeśli ktoś chce startować w jezyk C i mikroprocesory jestem za Arduino .Choć
prywatnie też bardzo wysoko oceniam Bascom .Ale Bascom mając wielkie zalety niestety tu musze przyznać jest sciśle ograniczony do pewnej rodziny mikroprocesorów .Pozatym nie jest jezykiem C lecz starym za***istym Basiciem Co w niczym nie przeszkadza w docenieniu tej platwormy.
Natomiast odradzam nauke C na platwormie forum Atnela …...Najgorsze miejsce w systemie słonecznym dla nauki .

Dodane 24 minuty 33 sekundy:
===============
Być może zupełnie niepotrzebnie to napisałem ale ku przestrodze oraz nauce .
Napisałem Te teksty ponieważ Sam dopiero wchodzę w świat jezyka C ale już zauważyłem gdzie są śmierdzące dziury do omijania .gdzie panuje jedynie doktryna nietolerancyjnego Mistrza i jego przybocznej milicji.
==========================================
Polecam Arduino. Odradzam toksyczne środowisko ludzi z forum Atnel.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”