Krzysztof Wesołowski Programowanie, elektronika, automatyka – doświadczenia i projekty

22lis/09

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ń.

Sprawozdanie 4 - Programowanie robota pneumatycznego PR02

17lis/09

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.

Sprawozdanie 3 - Robot Khepera II

13lis/09

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

13lis/09

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ą.

10lis/09

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.

Sprawozdanie 2 - Robot typu SCARA- symulacja

5lis/09

Konwersje BIN/BCD w ASM 8051

Kilka prostych procedur napisanych dla znajomych z innego kierunku:

Listing:
  1. ;poniższy kod można podmienić na prezentujący inna z załączonych procedurę.
  2.  
  3. mov R0,#0x14 ;przykladowa liczba do konwersji
  4. mov R1,#0x38 ;druga czesc liczby
  5.  
  6. lcall BCD2BIN2BYTES ;procedura konwertujaca
  7.  
  8. FINISH: ;petla zapobieajaca wykonywaniu dalszej części programu.
  9.     LJMP FINISH