Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.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 7824 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! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Radzio M.
    Poziom 34  
    Offline 
    Specjalizuje się w: automatyka przemysłowa, programowanie plc hmi, projektowanie sterowania maszyn
    Radzio M. napisał 2275 postów o ocenie 420, pomógł 226 razy. Mieszka w mieście Nisko. Jest z nami od 2009 roku.
  • Computer ControlsComputer Controls
  • #2
    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
    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.
  • Computer ControlsComputer Controls
  • #4
    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?
  • #5
    piotrva
    Moderator na urlopie...
    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?
  • #6
    Pittt
    Poziom 31  
    Na filmie widać że działanie jest takie jak opis.
    Nie wiadomo co i nie wiadomo po co.
    Na razie "słabe".
  • #7
    tplewa
    Poziom 38  
    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
    Radzio M.
    Poziom 34  
    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
    Urgon
    Poziom 37  
    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
    Radzio M.
    Poziom 34  
    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
    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
    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
    Radzio M.
    Poziom 34  
    @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
    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
    elektro155
    Poziom 26  
    Drukarka to HP czy Epson?
  • #16
    tplewa
    Poziom 38  
    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).