Krzysztof Wesołowski http://kwesoly.net Programowanie, elektronika, automatyka - doświadczenia i projekty Wed, 07 Sep 2011 14:03:29 +0000 pl-PL hourly 1 Kontrola jednej osi modelu helikoptera TRAS http://kwesoly.net/sprawozdania/kontrola-jednej-osi-modelu-helikoptera-tras/ http://kwesoly.net/sprawozdania/kontrola-jednej-osi-modelu-helikoptera-tras/#comments Wed, 07 Sep 2011 14:03:08 +0000 http://kwesoly.net/?p=480 W trakcie ostatniego semestru realizowałem projekt w ramach Laboratorium problemowego. Dotyczył on realizacji prototypu sterownika dla modelu helikoptera. Projekt był całkiem kompleksowy, zaczynając od doboru struktury modelu a kończąc na testach przygotowanego sterowania.

Projekt realizowałem wspólnie z Pawłem Tomasikiem i Dorianem Chrzanowskim, którzy są również współautorami sprawozdania.

Sprawozdanie przygotowanie oprogramowanie dla modelu helikopter TRAS

]]>
http://kwesoly.net/sprawozdania/kontrola-jednej-osi-modelu-helikoptera-tras/feed/ 0
Aplikacja scalonego sterownika silnika krokowego Allegro A3977 http://kwesoly.net/elektronika/aplikacja-scalonego-sterownika-silnika-krokowego-allegro-a3977/ http://kwesoly.net/elektronika/aplikacja-scalonego-sterownika-silnika-krokowego-allegro-a3977/#comments Mon, 20 Dec 2010 00:50:26 +0000 http://kwesoly.net/?p=470 Na potrzeby pisanej obecnie pracy inżynierskiej wykorzystywaliśmy moduł z sterownikiem Allegro A3977. Przy tej okazji został odnaleziony artykuł pisany swego czasu. Ponieważ układ jest bardzo funkcjonalny, dostępny w przystępnej cenie również w Polsce, załączam zarowno sam artykuł jak i schematy sterownika.

Taka płytka pozwala łatwo sterować silnika krokowe z portu LPT lub wyjść cyfrowych mikrokontrolera. Dodatkowo jest dla nas dobrym punktem odniesienia dla przyszłych projektów wykorzystujących ten układ.

Silniki krokowe - aplikacja scalonego sterownika A3977 - artykuł

Silniki krokowe - aplikacja scalonego sterownika A3977 - schemat

]]>
http://kwesoly.net/elektronika/aplikacja-scalonego-sterownika-silnika-krokowego-allegro-a3977/feed/ 5
Zapisywanie ustawień aplikacji – QSettings w QT http://kwesoly.net/programowanie/cpp/zapisywanie-ustawien-aplikacji-qsettings-w-qt/ http://kwesoly.net/programowanie/cpp/zapisywanie-ustawien-aplikacji-qsettings-w-qt/#comments Sun, 09 May 2010 18:13:28 +0000 http://kwesoly.net/?p=466 Kontynuując tradycję rzadkich wpisów o ciekawych rzeczach które warto poznać/wykorzystać chciałbym wam przybliżyć trochę klasę QSettings. Do tej pory większość moich aplikacji nie potrafiło sensownie obsługiwać pamiętania różnych drobiazgów między uruchomieniami. Często najważniejsze rzeczy zapisywano w jakimś "własnym" typie plików, podczas gdy cała reszta była resetowana po każdym uruchomieniu.

Klasa QSettings rozwiązywała część tych problemów - pozwalając skierować grupę ustawień do pliku/rejestru. Niestety, pierwszy wymyślony sposób ich użycia stał się bardzo szybko uciążliwy - zapisywanie setek ustawień w jednym miejscu, pilnowanie aby odczyt zgadzał się z zapisem - jak łatwo się domyślić szybko stało się to nie do opanowania.

Niedawno czytając dokumentację, i stając przed podobnym problemem znalazłem sensowniejsze podejście - wraz z dostarczonymi metodami pozwalające zminimalizować nakład pracy.

Zacznijmy od samego początku naszego programu, dostarczając parę istotnych informacji:

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QApplication::setOrganizationName("RainLabs");
QApplication::setOrganizationDomain("rainlabs.pl");
QApplication::setApplicationName("Orbi Eye");
QApplication::setApplicationVersion("0.2 alpha");

AutoPhotoAdvanced b;
b.setWindowTitle(QApplication::applicationName()+" v"+QApplication::applicationVersion());
b.show();
return a.exec();

}

Po takim wywołaniu każda klasa potrzebująca skorzystać z ustawień może to zrobić niezwykle szybko i wygodnie - np. w konstruktorze/destruktorze, za pomocą:

QSettings settings;
settings.setValue(....) / settings.value(...)

dzięki takiemu podziałowi każde ustawienia są niezależne, zaś dokonane na początku ustawienia aplikacji pozwalają korzystać z domyślnego konstruktora, co ułatwia ich używanie w całym programie, nie uciekając się do kopiowania kawałka kodu tam i z powrotem lub co gorsza pamiętania jakie argumenty przekazać za każdym razem konstruktorowi.

]]>
http://kwesoly.net/programowanie/cpp/zapisywanie-ustawien-aplikacji-qsettings-w-qt/feed/ 0
Darmowe mapy do użytku komercyjnego? http://kwesoly.net/rozne/darmowe-mapy-do-uzytku-komercyjnego/ http://kwesoly.net/rozne/darmowe-mapy-do-uzytku-komercyjnego/#comments Sun, 28 Mar 2010 12:17:15 +0000 http://kwesoly.net/?p=463 Wielokrotnie przygotowując projekt uwzględniając jakiekolwiek zależności geograficzne potrzebowałem mapy. Często dowolnej, przykładowej. Pomijając już użycie jako programista - ile razy potrzebowałeś mapy do potrzeb projektu graficznego?

Większość z nas nie zastanawia się kto jest właścicielem map które "za darmo" ogląda się w sieci. Zarówno w przypadku GoogleMaps, portalu zumi.pl czy innych serwisów związanych z mapami, nawigacją sytuacja jest niestety trudna. Właścicielem map są najczęściej duże firmy kartograficzne, czerpiące zyski z tytułu posiadania praw majątkowych do tych map. Nawet zrobienie PrintScreena takiej mapy może zakończyć się wycieczką na salę sądową - oczywiście im większą "korzyść" my z tego tytułu odniesiemy (lub im większa mogą odnieść wygrywając z nami) tym bardziej jest to prawdopodobne.

Kończąc to czarnowidztwo chciałbym polecić wam idealne rozwiązanie takich problemów - serwis http://www.openstreetmap.org/. Zawiera on dokładne mapy większości miejsc na ziemi, i umożliwia ich eksport w olbrzymiej ilości formatów. Najważniejsza jest jednak licencja - Creative Commons, BY-SA. dopuszcza ona także użytek komercyjny (a takim jest chociażby mapka dla uczestników dowolnego eventu), oraz tworzenie dziel pochodnych (czyli np. wplatanie ich w inne publikacje). Linkuję jeszcze link do FAQ na temat kwestii prawnych: http://wiki.openstreetmap.org/wiki/Legal_FAQ.

Mam nadzieję, że dzięki tej wiedzy unikniecie zbędnych wątpliwości/kłopotów, promując przy okazji kolejną świetną inicjatywę.

]]>
http://kwesoly.net/rozne/darmowe-mapy-do-uzytku-komercyjnego/feed/ 5
Integracja Eclipse CDT z CodeSourcery dla ARM Cortex-M3 http://kwesoly.net/programowanie/cpp/integracja-eclipse-cdt-z-codesourcery-dla-arm-cortex-m3/ http://kwesoly.net/programowanie/cpp/integracja-eclipse-cdt-z-codesourcery-dla-arm-cortex-m3/#comments Sat, 27 Feb 2010 01:28:49 +0000 http://kwesoly.net/?p=458 Na blogu znajomego zamieściłem wpis na temat związany z nowoczesnymi mikrokontrolerami z którymi ostatnio miałem doczynienia - zapraszam do lektury.

Link: Integracja Eclipse CDT z CodeSourcery dla ARM Cortex-M3

]]>
http://kwesoly.net/programowanie/cpp/integracja-eclipse-cdt-z-codesourcery-dla-arm-cortex-m3/feed/ 0
System sprzedaży biletów na Bal Elektryka 2010 http://kwesoly.net/programowanie/web/system-sprzedazy-biletow-na-bal-elektryka-2010/ http://kwesoly.net/programowanie/web/system-sprzedazy-biletow-na-bal-elektryka-2010/#comments Tue, 02 Feb 2010 10:22:41 +0000 http://kwesoly.net/?p=451 W okresie grudnia uczyłem się trochę Symfony (akurat było to 1.4.1 i Doctrine). Wynikiem i powodem zabawy był system sprzedaży biletów na tegoroczny Bal Elektryka.

panel_sprzedawcy rejestracja_goscia potwierdzenie_rejestracji strona_glowna

Główną inspiracją był system Balsit, stworzony przez Rafała Bednarza na Bal w roku 2009. W przypływie nadmiernej chęci do pacy stwierdziłem, że można go napisać od nowa, rozbudowując niektóre możliwości/zmieniając funkcjonalność.

System składa się z front-endu do rejestracji gości - każdy chcący kupić bilet rejestrował się na komputerze, członek naszego samorządu sprawdzał poprawność wpisanych danych. Użytkownik otrzymywał unikalny numer, potrzebny zaraz przy następnym stanowisku.

Sprzedawca obsługiwał system sprzedaży - kupujący wybierał miejsce, wpłacał należność i otrzymywał wypisany bilet. Relacje tworzone były automatycznie, system ułatwiał sprzedaż biletu parom.

Całościowo  umożliwił osiągnięcie tempa powyżej 2 biletów na minutę :)

Sam system nie wykorzystywał innowacyjnych pomysłów - po prostu wykorzystywał wielkie możliwości frameworka :)

Załączam skompresowane źródła, włącznie z użytym Symfony 1.4.1: balsit 0.8.

]]>
http://kwesoly.net/programowanie/web/system-sprzedazy-biletow-na-bal-elektryka-2010/feed/ 0
Modelowanie urządzenia hamującego lądujący samolot http://kwesoly.net/sprawozdania/modelowanie-systemow-dynamicznych/modelowanie-urzadzenia-hamujacego-ladujacy-samolot/ http://kwesoly.net/sprawozdania/modelowanie-systemow-dynamicznych/modelowanie-urzadzenia-hamujacego-ladujacy-samolot/#comments Sat, 19 Dec 2009 15:32:44 +0000 http://kwesoly.net/?p=444 Sprawozdanie dotyczące modelowania urządzenia hamującego samolot. Skupiono się w nim na aspektach takich jak modelowanie fizyki pomiędzy oddziaływającymi elementami, oraz ewentualne modyfikacje mające wpływ na działanie całego systemu.

Jest również jedyne moje  sprawozdanie z zadań 5,6,7,8, gdyż pozostałe mogły być dostarczone bez opisu - jako działające modele.

Sprawozdanie 5 - Modelowanie urządzenia hamującego lądujący samolot (1/2)

]]>
http://kwesoly.net/sprawozdania/modelowanie-systemow-dynamicznych/modelowanie-urzadzenia-hamujacego-ladujacy-samolot/feed/ 0
Prototypowanie sterownika dla robota APR-20 http://kwesoly.net/sprawozdania/podstawy-robotyki/prototypowanie-sterownika-dla-robota-apr-20/ http://kwesoly.net/sprawozdania/podstawy-robotyki/prototypowanie-sterownika-dla-robota-apr-20/#comments Sat, 19 Dec 2009 15:00:30 +0000 http://kwesoly.net/?p=441 Kolejne, jeszcze krótsze sprawozdanie. Tym razem sterownik pozwala niezależnie sterować wszystkimi 5 serwomechanizmami w robocie. Sterownik jest o tyle prymitywny, że nie umożliwia zadawania żadnych trajektorii. Z informacji przez nas uzyskanych wynika, że taki prawdziwy sterownik stworzymy w bliżej nieokreślonej przyszłości :)

Sprawozdanie 7 - Prototypowanie sterownika dla robota APR-20

]]>
http://kwesoly.net/sprawozdania/podstawy-robotyki/prototypowanie-sterownika-dla-robota-apr-20/feed/ 0
Prototypowanie serwomechanizmu dla zespołu napędowego http://kwesoly.net/sprawozdania/podstawy-robotyki/prototypowanie-serwomechanizmu-dla-zespolu-napedowego/ http://kwesoly.net/sprawozdania/podstawy-robotyki/prototypowanie-serwomechanizmu-dla-zespolu-napedowego/#comments Sat, 12 Dec 2009 13:47:19 +0000 http://kwesoly.net/?p=438 Kolejne sprawozdanie, tym razem na temat tworzenia sterownika serwomechanizmów. Ćwiczenia było czysto komputerowe - serwomechanizmy były tylko zamontowane bez obciążenia aby móc obserwować ich pracę.

Sprawozdanie 6 - Prototypowanie serwomechanizmu dla zespołu napędowego

]]>
http://kwesoly.net/sprawozdania/podstawy-robotyki/prototypowanie-serwomechanizmu-dla-zespolu-napedowego/feed/ 0
Programowanie robota przemysłowego IRp-6 http://kwesoly.net/sprawozdania/podstawy-robotyki/programowanie-robota-przemyslowego-irp-6/ http://kwesoly.net/sprawozdania/podstawy-robotyki/programowanie-robota-przemyslowego-irp-6/#comments Thu, 03 Dec 2009 17:55:01 +0000 http://kwesoly.net/?p=435 Kolejne sprawozdanie, tym razem zamieszczone tylko pro-forma - sposób realizacji ćwiczenia uniemożliwiał stworzenie sprawozdania zawierającego merytoryczną treść.

Sprawozdanie 5 - Programowanie robota przemysłowego IRp-6

]]>
http://kwesoly.net/sprawozdania/podstawy-robotyki/programowanie-robota-przemyslowego-irp-6/feed/ 0
Zdalna obsługa pulpitu Windows http://kwesoly.net/rozne/zdalna-obsluga-pulpitu-windows/ http://kwesoly.net/rozne/zdalna-obsluga-pulpitu-windows/#comments Sat, 28 Nov 2009 14:01:04 +0000 http://kwesoly.net/?p=433 Ile razy w ciągu dnia ktoś prosi Cię o pomoc w związku z jego komputerem?

Jak często:

  • pomagasz zainstalować jakieś urządzenie?
  • pomagasz zainstalować i skonfigurować dowolny program?
  • chcesz pokazać jak użyć danej funkcji w programie?

I jak często zdarza Ci się pomagać w tej sytuacji przez GG/Jabber/Telefon?...

Dla mnie odpowiedź na powyższe pytania jest jasna - zbyt często :) W dodatku wiele problemów rozwiązuje się bazując na starych doświadczeniach czy intuicji. A mózg człowieka nie zapamiętuje zbyt dobrze całych ścieżek jakie trzeba "przeklikać" by wykonać daną czynność. Równie często problemem jest proste reagowanie na pytania komputera, czy też czytanie ze zrozumieniem kolejnych poleceń.

Wszystkie powyższe rzeczy mają jedną wspólną cechę - wykonałbyś je w 5 minut przy komputerze z problemem. Tymczasem "zmarnujesz" godzinę, którą Ci zajmie tłumaczenie tego niedoświadczonemu użytkownikowi. Na szczęście jest proste, w niekomercyjnych zastosowaniach darmowe i genialne rozwiązanie: Program TeamViewer.

Użytkownik dostaje tylko link do pliku exe, uruchamia go i podaje Ci id i hasło (wykorzystując tradycyjne drogi komunikacji PC2PC). Następni sam korzystasz z trochę bardziej rozbudowanej aplikacji i łączysz się z docelowym pulpitem. Masz pełen dostęp, możesz przebrnąć przez wszystkie ustawienia i naprawić problem.

Podsumowując:

  • Osoba, której pomagasz uruchamia pobrany plik, podaje ci dane- zero problemów, które może napotkać - wystarczy że ma internet i połączenie już czeka na Ciebie.
  • Ty uruchamiasz kolejną aplikacje, z okna komunikatora wklejasz dane dostępowe i voila - siedzisz przy jej komputerze.

Dla porządku warto wspomnieć, że istnieje wiele rozwiązań zdalnego dostępu, ale nie natrafiłem na żadne prostsze w użyciu - szczególnie po stronie osoby, której pomagamy, gdzie każde utrudnienie zmniejsza sens stosowania takich aplikacji.

Zarówno program QuickSupport - czyli podstawową wersje, która wysyłamy innej osobie, jak i klient którego używamy można pobrać ze stałych linków producenta:

http://www.teamviewer.com/download/TeamViewerQS_pl.exe

http://www.teamviewer.com/download/TeamViewer_Setup_pl.exe

Instalator pozwala w kilku kliknięciach uruchomić klienta - co prawda wymaga to przejścia przez okno instalatora, jednak istnieje w nim opcja Run (zamiast Instalacji).  Dodatkowo z instalatora da się wyciągnąć "goły" plik uruchamialny klienta, jednak nie ma to większego sensu.

]]>
http://kwesoly.net/rozne/zdalna-obsluga-pulpitu-windows/feed/ 0
Sprawozdania – Elektrotechnika z napedami elektrycznymi http://kwesoly.net/rozne/sprawozdania-elektrotechnika-z-napedami-elektrycznymi/ http://kwesoly.net/rozne/sprawozdania-elektrotechnika-z-napedami-elektrycznymi/#comments Mon, 23 Nov 2009 16:52:45 +0000 http://kwesoly.net/?p=416 Zbiór zalegający w katalogu na dysku. Mam nadzieję, że przydatny bardziej innym niż mi :)

Sprawozdania tu opublikowane nie są kompletem - część ćwiczeń pokryła się z ważniejszymi wydarzeniami, jedno sprawozdanie nie nadaje się do publikacji ze względu na błędy merytoryczne dokonane przez autora. Pozostałe zostały przygotowane i sprawdzone przeze mnie, Jakuba Tutro i Pawła Górkę.

Sprawozdanie z opracowaniem wyników ćwiczenia P1
Sprawozdanie z opracowaniem wyników ćwiczenia A3
Sprawozdanie z opracowaniem wyników ćwiczenia S3
Sprawozdanie z opracowaniem wyników ćwiczenia EA6
Sprawozdanie z opracowaniem wyników ćwiczenia EA1

]]>
http://kwesoly.net/rozne/sprawozdania-elektrotechnika-z-napedami-elektrycznymi/feed/ 0
Programowanie robota pneumatycznego PR02 http://kwesoly.net/sprawozdania/podstawy-robotyki/programowanie-robota-pneumatycznego-pr02/ http://kwesoly.net/sprawozdania/podstawy-robotyki/programowanie-robota-pneumatycznego-pr02/#comments Sun, 22 Nov 2009 20:29:54 +0000 http://kwesoly.net/?p=428 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

]]>
http://kwesoly.net/sprawozdania/podstawy-robotyki/programowanie-robota-pneumatycznego-pr02/feed/ 0
Laboratoryjny robot mobilny Khepera II http://kwesoly.net/sprawozdania/podstawy-robotyki/laboratoryjny-robot-mobilny-khepera-ii/ http://kwesoly.net/sprawozdania/podstawy-robotyki/laboratoryjny-robot-mobilny-khepera-ii/#comments Tue, 17 Nov 2009 20:26:21 +0000 http://kwesoly.net/?p=425 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

]]>
http://kwesoly.net/sprawozdania/podstawy-robotyki/laboratoryjny-robot-mobilny-khepera-ii/feed/ 0
Modelowanie i sterowanie 1/4 zawieszenia samochodowego http://kwesoly.net/sprawozdania/modelowanie-systemow-dynamicznych/modelowanie-i-sterowanie-zawieszeniem-samochodowym/ http://kwesoly.net/sprawozdania/modelowanie-systemow-dynamicznych/modelowanie-i-sterowanie-zawieszeniem-samochodowym/#comments Fri, 13 Nov 2009 21:39:13 +0000 http://kwesoly.net/?p=430 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

]]>
http://kwesoly.net/sprawozdania/modelowanie-systemow-dynamicznych/modelowanie-i-sterowanie-zawieszeniem-samochodowym/feed/ 0