Skocz do zawartości

Tymbark

Użytkownicy
  • Zawartość

    2
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

Tymbark zajął 1. miejsce w rankingu.
Data osiągnięcia: 9 lipca 2016.

Treści użytkownika Tymbark zdobyły tego dnia najwięcej polubień!

Informacje

  • Płeć
    Mężczyzna

Osiągnięcia użytkownika Tymbark

Starszy odkrywca

Starszy odkrywca (5/19)

  • Młodszy roboty
  • To już rok!
  • To już 5 lat!

Odznaki

3

Reputacja

  1. Dzięki za feedback 😉 Faktycznie, sporo osób zwraca uwagę na to, jak robot rzuca się na taśmę, ale tym, na czym się skupiłem w tym projekcie była część Matlabowa, a ruch w trybie automatycznym to po prostu odtworzenie wbitej na sztywno trajektorii. Ale gdyby naszło mnie na powrót do tego robocika to wiem na czym się skupić 😉
  2. Cześć 😉 Chciałbym podzielić się moim projektem, który już jakiś czas temu ukończyłem. Głównym założeniem było stworzenie robota, którego będzie można sterować ręcznie (myszką) lub sam będzie znajdował przedmiot do podniesienia za pomocą kamerki. Do obróbki obrazu wykorzystałem Matlaba oraz komunikację szeregową. Poniżej zamieszczam filmik prezentujący ogólną zasadę działania robota oraz demonstrujący jego możliwości, dostępne są napisy po polsku i angielsku: Zanim przejdziemy dalej - jeżeli uważasz, że ten robot to ciekawy projekt, proszę zostaw łapkę w górę pod filmikiem, biorę udział w konkursie orgznizowanym przez Matlaba, w którym 40% puli punktów pochodzi z wyświetleń i łapek w górę pod filmikiem konkursowym. Tryb ręczny Do obsłużenia myszki komputerowej wykorzystałem tę bibliotekę oraz ten schemat podłączenia. Całość jest całkiem prosta, jedynym kłopotem jest dostanie się do przewodów w kablu myszki, są strasznie cienkie i łatwo je uszkodzić. Tryb automatyczny Niestety - ten manipulator potrafi znaleźć przedmiot tylko jeżeli ten leży w jednym z trzech wcześniej zdefiniowanych miejsc. Może kiedyś przyjdzie czas na rozszerzoną wersję 😉 Jak już wspomniałem - do zadania obróbki obrazu z kamerki wykorzystałem Matlaba. Pierwszym komentarzem jest zazwyczaj zwrócenie uwagi na prostsze alternatywy, np. OpenCV, ale z Matlabem mam już jako takie doświadczenie, dobrze mi się w nim pracuje i chciałem nauczyć się czegoś nowego. Aby połączyć kamerkę internetową z Matlabem, musimy ściągnać specjalne rozszerzenie, w górnym pasku ikon klikamy Add-Ons, wybieramy Get Hardware Support Packages, wybieramy Install from Internet i szukamy USB Webcams. Na filmiku krok po kroku omówiłem co dzieje się w algorytmie obróbki obrazu, teraz chciałbym wspomnieć o kilku najważniejszych funkcjach, które wykorzystałem: snapshot - robi zdjęcie aktualnego kadru z kamerki rgb2gray - konwertuje obraz na odcienie szarości bwareaopen - usuwa zakłócenia z obrazu binarnego regionprops - mierzy naszą ostateczną białą plamę (taśmę), umożliwia wyznaczenie jej środka, który bezpośrednio przekłada się na położenie taśmy przed robotem. Pozostało przyporządkować wyznaczone położenie do jednego z trzech wcześniej zdefiniowanych i wysłać numer lokacji do Arduino za pomocą funkcji fprintf. MATLAB Support Package for Arduino Hardware Matlab posiada również specjalną paczkę umożliwiającą programowanie Arduino z poziomu Matlaba lub Simulinka. To całkiem ciekawa możliwość, mamy wtedy dostęp do podstawowych funkcji Arduino takich, jak digitalWrite czy analogRead oraz całego arsenału funkcji Matlaba. Niestety to rozwiązanie uniemożliwia w prosty sposób korzystanie z zewnętrznych bibliotek Arduino - dlatego zdecydowałem się na zwykłą komunikację szeregową. Niemniej jednak, ta nakładka jest bardzo ciekawa i chciałbym wspomnieć o jej przykładowym wykorzystaniu. Jakiś czas temu pracowałem nad regulatorem PID na wzmacniaczach operacyjnych. W domowych warunkach nie miałem pomysłu na obserwowanie odpowiedzi skokowej mojego układu. Z pomocą przyszło Arduino i Matlab wraz z omawianą paczką. Wystarczyło podłączyć interesujący mnie sygnał do wejścia analogowego Arduino oraz napisać kilka linijek kodu: a=arduino; i = 1; tic while (toc<10) b(i) = a.readVoltage(0); plot(b); drawnow; i=i+1; end Odpowiedź skokowa regulatora PID: Odpowiedź skokowa układu z wyraźnym przeregulowaniem: Zoptymalizowana odpowiedź skokowa układu: Oś poziomą można oczywiście zamienić na czas, a nie próbki, ale to nie było konieczne do stworzenia prostego narzędzia debugującego mój układ 🙂 Jeżeli masz jakiekolwiek pytania lub chciałbyś, abym coś lepiej wyjaśnił - zapytaj. Chętnie podzielę się zdobytym doświadczeniem. I pamiętaj o łapce w górę pod filmikiem! 😉
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.