Programowanie robota pneumatycznego PR02
Tym razem bardzo krótkie i raczej nieużyteczne w pozalaboratoryjnych warunkach "sprawozdanie". Niestety jakość zarówno samego oprogramowania (zawieszająca się aplikacja, pisana pod MS-DOS, uruchamiana na Windows 98) jak i robota (niestykające do końca krańcówki) utrudniły wykonanie zadania. Oczywiście mimo trudności poradziliśmy sobie, ale niestety nie można być dumnym z takich rozwiązań.
Laboratoryjny robot mobilny Khepera II
Tym razem krótkie sprawozdanie z kolejnych zajęć. Sterowanie robotem jest realizowane poprzez port szeregowy, a jedyną trudnością na jaką można się natknąć to kiepskiej jakości oprogramowanie wspierające obsługę robota - użycie sekwencji poleceń MoveTo jest niewykonalne - robot wykonuje je nie wg kolejności występowania, ale w sposób przynajmniej niejasny :).
Optymalnym rozwiązaniem tego problemu okazało się być stworzenie własnych, prymitywnych funkcji. Z ich użyciem problemy okazały się być banalne do rozwiązania.
Modelowanie i sterowanie 1/4 zawieszenia samochodowego
Tym razem sprawozdanie - "perełka". Główna przyczyna to prowadzący - dr. inż Adam Piłat, który prowadząc "zwykły przedmiot" zamienia go w ciekawe i pełne wyzwań zajęcia. Pierwsze laboratorium upłynęło nad konstrukcją modelu, drugie zaś skupiło się już na implementacji sterowania.
Niezwykle ważna była również otwartość na nowe pomysły - prowadzący raczej wskazywał drogę i ewentualne problemy, nie narzucając własnego rozwiązania.
W efekcie spędziłem z Jakubem Tutro parę godzin pracując nad modelem - a następnie przygotowując sprawozdanie z efektami naszej pracy. Jedyną wadą zajęć był brak jednolitego środowiska testowego - trudno porównać działanie regulatora na dowolnej drodze, nie znając zbytnio jej kształtu.
Zdecydowaliśmy się na wybór losowej drogi, dla której przeprowadzaliśmy wszystkie testy. Udało się nam stosując pół-aktywne zawieszenie (modyfikacja współczynnika tłumienia amortyzatora) osiągnąć znaczną poprawę jakości jazdy - przyśpieszenia zmalały, zarówno co do całki kwadratu jak i, co naszym zdaniem ważniejsze, były znacznie mniejsze co do maksymalnych wartości.
Sprawozdanie 3-4 - Modelowanie (ćwierci) układu zawieszenia samochodu
OpenCV 2.0 + Windows
Ze względu na kolejny projekt, w który się zaangażowałem, potrzebowałem działającej, sprawnej biblioteki do przetwarzania obrazu. Wybór padł na OpenCV, zaś strona projektu zaskoczyła nas wydaniem we wrześniu tego roku wersji 2.0. Niestety, próba kompilacji okazała się być podwójnie nieudana
Zamieszczam więc krótki opis jak zmusić OpenCV do współpracy.
Linkowanie bibliotek - ustawienia linkera
Pierwszym problemem z jakim się zetknęliśmy było linkowanie bibliotek - rzut oka do katalogu z bibliotekami utwierdził nas w przekonaniu, że tutorial, którego używamy jest przeznaczony dla OpenCV1.0 lub 1.1. Tak czy inaczej w ustawieniach linkera należy dodać uzupełnione w stosunku do poprzedniej wersji wywołania:
-lopencv200 -lcxcore200 -lcvaux200 -lml200 -lcxts200 -lhighgui200
Zaś jako ścieżkę bibliotek (-L) domyślnie: C:\OpenCV2.0\lib
Taka modyfikacja wywołania pozwoli linkować nasze programy. Ważniejsze jest jednak rozwiązanie problemów związanych z samą kompilacją.
Robot typu SCARA – symulacja
Kolejne sprawozdanie z przedmiotu Podstawy Robotyki. Niezbyt ciekawe, gdyż ćwiczenie polegało głównie na analizie zachowania robota dla róznych nastaw regulatorów i zdanych trajektorii. Pomimo to mam nadzieję, że komuś się przyda.
Konwersje BIN/BCD w ASM 8051
Kilka prostych procedur napisanych dla znajomych z innego kierunku:
-
;poniższy kod można podmienić na prezentujący inna z załączonych procedurę.
-
-
mov R0,#0x14 ;przykladowa liczba do konwersji
-
mov R1,#0x38 ;druga czesc liczby
-
-
lcall BCD2BIN2BYTES ;procedura konwertujaca
-
-
FINISH: ;petla zapobieajaca wykonywaniu dalszej części programu.
-
LJMP FINISH