Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Karetka drukarki - przykład wykorzystania.

Radzio M. 12 Gru 2014 21:51 7266 15
  • Karetka drukarki - przykład wykorzystania.
    1. Ogólny schemat blokowy projektu :
    Karetka drukarki - przykład wykorzystania.
    2. Etapy pracy :
    - Obsługa enkodera,
    - Zapoznanie się z sposobem sterowania silnika DC, przez układ scalony L293D,
    - Symulacja regulatora w Matlab/Simulink, wygenerowanie kodu, język C,
    - Przeniesienie kodu regulatora na język ST w programie CPDev,
    - Zaimplementowanie wirtualnej maszyny CPDev dla ATMega128,
    - Zrobienie aplikacji ładującej kod binarny do ATMega128

    3. Na uC ATMega128 jest zaimplementowana wirtualna maszyna oprogramowania CPDev. Dzięki temu jest możliwość napisania głównego programu sterowania w językach normy, tak jak PLC. Regulator został zaprojektowany w simulinku, następnie wygenerowałem kod za jego pomocą, którego to odpowiednio przerobiłem.
    Karetka drukarki - przykład wykorzystania.

    Tutaj aplikacja ładująca kod maszynowy wytworzony przez CPDev:
    Karetka drukarki - przykład wykorzystania.
    4. Cykl pracy regulatora wynosi 10ms, dobierany doświadczalnie.

    5. Wyniki pracy :
    -Identyfikacja obiektu:
    Karetka drukarki - przykład wykorzystania.

    -Zamknięta pętla regulacji:
    Karetka drukarki - przykład wykorzystania. Karetka drukarki - przykład wykorzystania.

    Film z działania (pisk silnika jest wynikiem 7kHz sygnału pwm):

    Link


    - Stosując niższe czasy cyklu sterownika można osiągnąć szybciej wartość ustaloną. Kolejne testy będą robione na zestawach DISCOVERY. Dodam, że jest tu dość duża dokładność ( około 7200 impulsów na 32cm ).

    Przykładów zastosowania jest jak wiadomo mnóstwo....
    Kodów nie mogę udostępnić.


    Fajne!
  • #2 12 Gru 2014 22:44
    maxxim
    Poziom 15  

    Tragicznie napisany opis! Napisz do czego to służy, opis działania, więcej opisów - nie tylko sztywna techniczna gadanina!

  • #3 12 Gru 2014 22:53
    treker
    Poziom 25  

    Mógłbyś napisać coś więcej o łączeniu pracy w Matlab/Simulinku z rzeczywistymi, samodzielnie konstruowanymi urządzeniami. Z jakich materiałów korzystałeś?

    Często wiedza Matlabowa na uczelniach przekazywana jest w sposób, który nie pozwala niestety później na wykorzystanie tego na osobnym urządzeniu.

  • #4 12 Gru 2014 23:51
    tehaceole
    Poziom 28  

    Możesz dokładnie opisać jak wyglądają kwestie licencyjne CPDev i na jakie AVR powstał Runtime? Jak wygląda kwestia dostosowania runtime do własnych potrzeb?

  • #6 13 Gru 2014 01:22
    Pittt
    Poziom 29  

    Na filmie widać że działanie jest takie jak opis.
    Nie wiadomo co i nie wiadomo po co.
    Na razie "słabe".

  • #7 13 Gru 2014 03:09
    tplewa
    Poziom 36  

    Projekt z jednej strony ciekawy, a z drugiej strony IMHO mocno przekombinowany...
    Tez nie wiem po co tam az dwa procki... mozna to bylo zrobic na jednym i dzialalo by tak samo :) Chyba ze byl w projekcie jeszcze jakis inny cel :)

    Dla mnie generowanie kodu do C i potem jego konwersja jest troche bez sensu... mozna bylo to zrobic bez tego - jak sie wie co sie robi, a w symulinku czy matlabie ewentualnie sobie przesymulowac rozwiazanie. Choc chyba lepiej wybrac prywatnie Octave do takich spraw (a dlaczego o tym bedzie dalej) :)

    Uzywanie enkoderow z drukarek nie jest tez nowoscia - mozna znalezc torche w internecie na ten temat.. Nawet na forum CNC byl poruszany podobny temat tzn. uzycie enkoderow z drukarki... z tym ze z tego co pamietam akurat nie liniowego, a celem bylo polaczenie z silnikiem krokowym i budowa "pseudo" serw...

    Uzywanie discovery tez nie wiem czy jest optymalne bo do realizacji napedu sa lepsze do tego procki... natomiast inne sprawy zwiazane z cnc tez tak srednio bo nawet taki Cortex M4F jest za slaby by zrobic obsluge niektorych gcodow...

    Wiem ze ludzie robia takie rozwiazania i na AVR-ach ale obarczone sa one wieloma wadami poprzez stosowane uproszenia by nie zajechac procka.

    Te enkodery sa fajne, tanie i latwo dostepne ze zlomowanego sprzetu, ale niestety maja tez pewne ograniczenia, trudno je zastosowac w maszynach gdzie niestety dosc latwo moga zostac uszkodzone czy zabrudzone...

    Kwestie Matlaba i Simulinka uzywanych toolboxow pomijam - o licencje juz nawet nie pytam :) zwlaszcza Embedded Coder-a, Simulink Coder, Matlab Coder - znasz chyba ich ceny i raczej watpie bys mial je zakupione komercyjnie bo to chyba jedne z najdrozszych modolow ;) Natomiast wiesz ze na trialu czy oprogramowaniu uczelni raczej komercyjnych rozwiazan nie mozesz tworzyc - a nie udostepnianie kodu raczej to sugeruje jak i twoja stopka.

    @treker

    Proponuje zerknac na strone dystrybutora Matlaba na Polske - dosc czesto organizuja darmowe webminaria i roznego rodzaju seminaria na ktore mozna sie zapisac.

  • #8 13 Gru 2014 09:38
    Radzio M.
    Poziom 31  

    maxxim napisał:
    Tragicznie napisany opis!!!! Napisz do czego to służy , opis działania, więcej opisów - nie tylko sztywna techniczna gadanina !

    Przykładów zastosowania jest wiele, głównie w automatyce czy robotyce, np. na podstawie 2 osi można spokojnie zrobić ploter XY ( nawet w celach laboratoryjnych dla uczelni wyższych czy też techników). Na podstawie tego można zrobić wszelkiego typu podajniki, czy też mały „taśmociąg”.

    treker napisał:
    Mógłbyś napisać coś więcej o łączeniu pracy w Matlab/Simulinku z rzeczywistymi, samodzielnie konstruowanymi urządzeniami. Z jakich materiałów korzystałeś?

    Często wiedza Matlabowa na uczelniach przekazywana jest w sposób, który nie pozwala niestety później na wykorzystanie tego na osobnym urządzeniu.

    Jednym z Toolboxow Matlaba jest embedded coder. Np. mogę polecić system wbudowany „MicroDaq”, który ma możliwość pracy rzeczywistej z Silmulinkiem. Co do wykresów. W matlabie jest możliwość obsługi serial port. Ja jednak korzystałem z RS232 Data Logger, gdzie tworzyłem sobie log wartości przed upłynięciem każdego cyklu. Na uczelni jak to na uczelni mogą Ci wskazać możliwości jakie to ma….

    tehaceole napisał:
    Możesz dokładnie opisać jak wyglądają kwestie licencyjne CPDev i na jakie AVR powstał Runtime? Jak wygląda kwestia dostosowania runtime do własnych potrzeb?

    Licencję można wykupić, jakie są to kwoty, nie wiem. Dostałem do przeprowadzenia testu (nie mogę udostępnić). Wymagania maszyny to minimum 64kB FLASH i dobrze by było mieć też więcej RAM gdyby przykładowo ktoś chciał postawić jeszcze jakiś RTOS. Platformy mogą być różne : AVR, ARM, RPi….

    piotrva napisał:
    Dalej co to za płytka z AVRem, po co 2 avr'y?
    Co to urządzenie robi, oprócz ustawiania pozycji głowicy jakimś algorytmem?

    Płytka z Mega32 to nikomu nie muszę przedstawiać. Płytka z ATMega128 jest firmy Propox. Na razie jest to testowe urządzenie, jeszcze nie jest za coś odpowiedzialne. 2 avry w celu odciążenia M128 od liczenia impulsów.

    Pittt napisał:
    Na filmie widać że działanie jest takie jak opis.
    Nie wiadomo co i nie wiadomo po co.
    Na razie "słabe".

    W- wartość zadana, Y-wartość otrzymana, U-sygnał sterujący

    :arrow: tplewa
    Szukałem po różnych forach obsługi enkodera i powiem, że ludzie piszą cuda. Jak nie wymyślają jakieś stany, gdzie dzieję się nie wiadomo co, to zmniejszają rozdzielczość o połowę. Mi udało się poprawnie odczytać wartości z enkodera i powiem, że tu nie ma cudów, poprawny kod musi działać. Matlaba jak i jego Toolboxów oczywiście używam TYLKO I WYŁĄCZNIE W CELACH AKADEMICKICH. O GCode jeszcze nie myślę, interesuję mnie bardziej jak najszybsza regulacja.

    Przebiegi wyjść enkodera:
    Karetka drukarki - przykład wykorzystania.

  • #9 13 Gru 2014 11:06
    Urgon
    Poziom 36  

    AVE...

    Czyli cała ta "konstrukcja" DIY to w zasadzie chęć pochwalenia się tym, że potrafisz używać Matlab/Simulink by zaprojektować regulator PID oraz stworzyć "okrężną" drogą kod dla mikrokontrolera, i w zasadzie to jest wszystko. Nie pokazałeś, jak tego dokonałeś, nie pokazałeś niczego praktycznego, nie napisałeś nawet poradnika "zrób to sam". Jest to zupełnie nieprzydatny temat.
    O PID w praktyce więcej dowiedziałem się z tego bloga.

  • #10 13 Gru 2014 12:18
    Radzio M.
    Poziom 31  

    Pokazałem możliwość. Jeśli ktoś chce coś z tego zrobić to z pewnością odezwie się na pw.
    Koledzy wybaczcie ale nie udostępnie więcej danych, jest to projekt na uczelnie. Co do PID, proszę zauważyć, że posiada również filtr wartości zadanej, który ma za zadanie ograniczyć/zniwelować przeregulowanie.

  • #11 13 Gru 2014 13:18
    jestam
    Specjalista Automatyk

    CPDev to zrobione na Politechnice Rzeszowskiej środowisko do programowania w językach typowych dla sterowników PLC. W założeniu podobne do CoDeSys: generuje kod dla maszyny wirtualnej ("runtime"), która ma być uruchomiona w docelowym urządzeniu. Ma kilka wdrożeń komercyjnych i jest używane w pracach badawczych, oraz projektach studenckich :)

    tehaceole napisał:
    jak wyglądają kwestie licencyjne CPDev

    Pytaj tutaj: http://www.kia.prz.edu.pl/index.php/kontakt

    Radzio M. napisał:
    Zaimplementowanie wirtualnej maszyny CPDev dla ATMega128

    Kolega to zrobił samodzielnie? Mogę się mylić, ale o ile dobrze pamiętam, runtime dla AVR powstało w 2007 albo 2008...

    piotrva napisał:
    Dalej co to za płytka z AVRem, po co 2 avr'y?

    Zgaduję: w jednym AVR pracuje runtime CPDev (gotowy komponent), drugi oprogramował kol. Radzio M. do obsługi enkodera. Sklejenie tego w całość wymagałoby udostępnienia studentom źródeł runtime CPDev...

    Radzio M. napisał:
    Pokazałem możliwość [...] jest to projekt na uczelnie

    Większość projektów studenckich, które widziałem, polega na poskładaniu klocków w całość, a ich celem jest nauczenie składającego te klocki, że to możliwe i jak to się robi. Tutaj - jak obsłużyć enkoder i komunikację po USART, jak zaprojektować i przesymulować regulator Matlabem, jak go zakodować w języku ST.

    Robienie z tego DIY to przesada.

  • #12 13 Gru 2014 13:28
    DJKompot
    Poziom 26  

    Projekt lipa. Nie pozostaje mi nic innego jak pogłaskać po głowie i powiedzieć że słuchałeś prowadzącego...

    Typowo uczelniane podejście. Na AGH też mnie tak uczą. To jest bez sensu człowiek nie wie potem nic jak ma coś zrobić sensownego i optymalnego.

    Kazali kupić płytkę Discavery dali gotową bibliotekę z wgrywanym wcześniej biosem/bootloaderem. Mamy gotowy komponent PID, ENCODER, ADC, PWM, SYSTICK, SCADA.... każdy średnio ogarnięty potrafi tego użyć. Na uczelni uczą dowodzić chorych twierdzeń do życia nie potrzebnych a nie potrafią ładnie wyłuszczyć tematu np. tych klocków co składamy w stmie...

    btw próbowałem kiedyś połączyć enkoder + żyroskop + accelelometr + PIDy dla silników. Taki segway. Dramat przy tych bibliotekach i 72Mhz... wszystko sypało...

  • #13 13 Gru 2014 13:55
    Radzio M.
    Poziom 31  

    @DJKompot
    Nie wiem czego i jak kolegę uczą ale z tego co tu opisujesz to prowadzą was za rączki. I pomyśleć, że to AGH..... ale tu nie chodzi o to, która uczelnia lepsza, bo tego typu dyskusje kończą się kłótnią obu stron bez jakichkolwiek konkretnych argumentów.
    Dostałem możliwość przetestowania Runtime Cpdev i to zrobiłem. Prawdę mówiąc to wcześniej miałem wszystko w C naklepane i działało szybciej.
    A pokazanie takiej konstrukcji choć bez dokumentacji sprawi, że ktoś na to popatrzy i pomyśli : Hmm.... mógłbym z tego zrobić to, albo to i to przedstawi.

  • #14 13 Gru 2014 15:34
    loogiks
    Poziom 2  

    Witam, Jeśli Ktoś chciałby zobaczyć wykorzystanie podobnego rozwiązania w praktyce, to zapraszam do obejrzenia filmu. Przedstawia moją autorską konstrukcję. Co prawda jeszcze nie dokończoną i w fazie ciągłego rozwoju, ale jeżeli dyskusja na taki temat toczy się dzisiaj, to wrzucam to co istnieje na dziś dzień.. Chętnie udzielę odpowiedzi na wszelkie pytania, jeśli by takowe były..

    link do filmu:
    https://www.youtube.com/watch?v=whFRk-ihvtE&feature=youtu.be

  • #15 13 Gru 2014 17:27
    elektro155
    Poziom 26  

    Drukarka to HP czy Epson?

  • #16 15 Gru 2014 11:25
    tplewa
    Poziom 36  

    Radzio M. napisał:
    Pokazałem możliwość. Jeśli ktoś chce coś z tego zrobić to z pewnością odezwie się na pw.
    Koledzy wybaczcie ale nie udostępnie więcej danych, jest to projekt na uczelnie. Co do PID, proszę zauważyć, że posiada również filtr wartości zadanej, który ma za zadanie ograniczyć/zniwelować przeregulowanie.


    To trzeba bylo tak pisac od razu :) teraz wiadomo dlaczego takie podejscie i tyle kombinowania dla stosunkowo prostego rozwiazania :)

    Trzeba bylo w temacie choc wiecej miejsca poswiecic Simulinkowi i samej regulacji, juz by to bylo o wiele ciekawsze :) - nawet udostepnienie projektu nie stanowilo by chyba problemu dla kogos kto chcial by sam pobawic sie w symulacje. Bo nie ma co ukrywac ktos kto sie bawi to zrobi cos takiego w miare szybko, a inni moze mieli by jakas podstawe by poznac choc troche takie narzedzia.

    To samo tyczy sie wrazen z uzycia Embedded Coder-a, ktory jest ciekawym narzedziem - ale tez malo znanym ze wzgledu na cene tych rozwiazan. Jak widac po tym co napisal kolega treker nawet na uczelniach ten temat nie jest chyba zbyt czesto poruszany.

    Co do rozwiazan z internetu - to na prawde idzie znalezc sporo ciekawych rozwiazan tylko czasem trzeba wiecej poszukac. Swojego czasu jak robilem swoje sterowniki krokowych na dsPIC-ach troche ten temat zglebialem i jest tego na prawde sporo, ale niestety trzeba sie troche naszukac...

    Nawet jakis czas temu na forum mojreprap ktos znalazl calkiem fajne enkodery w formie elektroniki i tarczy (bez mechaniki) za na prawde rozsadne pieniadze - ktore tez mozna wykorzystac - majac profesjonalne rozwiazanie i nie placac tyle kasy co koszutuje gotowy enkoder (a wiadomo ceny automatyki przemyslowej nie naleza do najnizszych - zwlaszcza jak mamy tutaj typowo hobbystyczne podejscie do tematu).

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME