Zaloguj się

Jog Jajcusia

xmpp:jajcus@jajcus.net

Zabawy z GPS-em

Chciałem napisać kolejną notkę o mojej zabawce... i zorientowałem się, że przecież jeszcze nic nie napisałem na ten temat. A więc, od początku...

Już od dawna fascynowała mnie technologia GPS – możliwość rejestrowania aktualnej pozycji i nawigacji w czasie rzeczywistym do wybranego punktu. No i obrabianie zebranych danych w komputerze. Bardzo chętnie bym się czymś takim pobawił... ale jak na zabawkę to było zawsze zbyt drogie. Turystyczne urządzenia GPS albo bardzo prymitywne, albo drogie. Do gołego odbiornika musiałbym mieć laptopa albo palmtopa, a samochodowe nawigacje jakoś mnie nie pociągały specjalnie (drogie i właściwie do użytku tylko w samochodzie).

Na szczęście sytuacja nieco się zmieniła. Odbiorniki GPS potaniały, a zmądrzały telefony komórkowe. Więc za niewielkie pieniądze mogłem kupić sobie odbiornik na Bluetooth, który całkiem sprawnie może być obsłużony przez mój, też nie najdroższy, telefon komórkowy.

Zabawy

No to co ciekawego można takim zestawem robić. No moim głównym celem było móc jechać w nieznane i dalej wiedzieć gdzie się jest, żeby móc wrócić. ;-) No i rejestrowanie swoich wycieczek. Gdy szukałem oprogramowania do swojej zabawki często natykałem się na określenie geocaching. Nie wnikałem w to, zakładałem, że to po prostu zbieranie informacji o tym gdzie się było (wiecie, skojarzenie z cache przeglądarki). Później okazało się, że bardzo się myliłem...

Geohashing

Skoro ignorowałem geocaching to pierwszą zabawą z GPS którą się zainteresowałem był geohashing, wymyślony przez autora popularnego komiksu XKCD w odcinku 426. Po prostu, gdy zobaczyłem ten obrazek i przeczytałem odpowiadający mu wpis na blagu, to uznałem, że muszę tego spróbować. Wygląda na to, że jestem jedynym takim wariatem w Polsce. :-)

Zabawa polega na tym, że dla każdej daty wyznaczane są konkretne współrzędne geograficzne, dla każdej kratki 1° na 1°. Algorytm wykorzystuje notowania nowojorskiej giełdy z dnia poprzedniego (lub ostatniego w którym były dostępne), więc nie można określić przyszłych punktów. Po prostu znane są współrzędne na dziś lub jutro. W piątek także na weekend (aż do poniedziałku), ale nic więcej. Zadanie polega na tym, żeby w odpowiednim dniu trafić w odpowiednie miejsce. W soboty, o 16:00 czasu lokalnego przewidziane są w tych miejscach spotkania miłośników XKCD, więc teoretycznie można spotkać się z innymi świrami (o ile tacy są w okolicy).

Ja pierwszy punkt zaliczyłem wczoraj. Trafiłem na stare, opuszczone i zdewastowane torowisko w Sośnicy. Całkiem interesujące miejsce. :-)

Geocaching

Gdy zainteresowałem się geohashingiem, to w końcu poczytałem też co to ten geocaching. No i to też całkiem fajna sprawa. W skrócie: ludzie robią skrytki z dzienniczkiem i skarbami i publikują współrzędne geograficzne. Zadanie polega na odnalezieniu skrytki i wpisaniu się do dzienniczka. Może być ciekawe.

Zaleta w porównaniu z geohashingiem: jest po co iść, skrytki zwykle są w interesujących miejscach (można pozwiedzać) i z zasady są dostępne (geohashing może prowadzić prosto na środek morza, czy do zamkniętej bazy wojskowej). Jednocześnie wadą jest to samo: wiadomo mniej-więcej czego można się spodziewać i generalnie skrytki są w znanych miejscach. Miejsca ukrycia najbliższych skrzynek prawdopodobnie się już kiedyś odwiedziło, przy innej okazji.

Jutro będę w pobliżu jednej takiej skrytki, to może i swój geocaching zaliczę. :-)

Geodashing itp.

Z geozabaw czytałem jeszcze o geodashingu. Trochę podobne do geohashingu – też miejsca są rozmieszczane losowo. Jednak tym razem są to wylosowane punkty na całym świecie ważne przez miesiąc. Pewnie jest jeszcze parę innych takich zabaw.

Moje zabawki

[GPS z komórką]

Odbiornik GPS Navibe GB735

Wybrałem taki, bo to był jeden z najtańszych, od sensownego sprzedawcy na Allegro, na popularnym chipsecie (SiRF Star III) obsługiwanym przez większość oprogramowania, a w zestawie miał ładowarkę samochodową i domową. Był dodany też kod umożliwiający ściągnięcie na próbę programu Wayfinder, ale to niespecjalnie mi się przydało (zniechęcała głównie cena pełnego produktu, ale także to jak mnie program przywitał, gdy chciałem wypróbować).

Urządzenie działa całkiem przyzwoicie, chociaż czasem długo trzeba czekać aż po raz pierwszy ustali pozycję. Przy gorszej pogodzie, to może być i pół godziny, jeśli w ogóle się to uda. Mam wrażenie, że dokładność (czy raczej czułość) mogła by być nieco lepsza (często widzi tylko 3/4 satelity). Ale w praktyce nie sprawiło mi to większych problemów, więc nie mam co narzekać. Bateria wystarcza chyba na jakieś dziesięć godzin. Spokojnie wystarczy na wycieczkę, a na dłuższej trasie samochodem odbiornik może stale być podpięty do ładowarki.

Telefon SE k550i

O telefonie już wspominałem. Dodam tylko, że wydaje się bardzo dobrym wyborem do zabaw z GPSem. Może nie zainstaluję na nim oprogramowania przygotowanego pod Symbiana czy Windows CE może nie zainstaluję, ale i pod Javę znalazłem wszystko czego potrzebuję. Wszystko działa szybko i sprawnie, na karcie pamięci mogę zmieścić praktycznie dowolną ilość map. Przydaje się też wbudowany aparat fotograficzny – wystarczająco dobry, żeby udokumentować swoje wyprawy.

Dodatkowe duperele

Dodatkowe rzeczy jakie dokupiłem do tego zestawu:

  • Samochodowy uchwyt na telefon – żeby sprawnie korzystać z nawigacji samochodowej trzeba mieć wyświetlacz telefonu na widoku. Kupiłem chyba najtańszy uchwyt, przyczepiany przyssawką do przedniej szyby. Wygląda trochę tandetnie, ale spełnia swoje zadanie. Problem pojawia się, gdy chcemy podłączyć ładowarkę (dla mnie to mus), ze względu na nieszczęśliwe położenie złącza w moim telefonie. Ale i z tą wtyczką jakoś się trzyma, tyle że krzywo. Jakbym kupił oryginalny uchwyt Sony-Ericsson (kosztujący parę razy więcej), to nie miałbym takiego problemu.
  • Ładowarka do telefonu – gdy korzysta się z nawigacji online, to konieczność. Mój telefon strasznie żre prąd przy aktywnym połączeniu z Internetem.
  • Rozdzielacz gniazda zapalniczki – dzięki niemu mogę jednocześnie podłączyć zasilanie telefonu i odbiornika GPS i nie martwić się, że mi któraś bateria padnie w samochodzie.

Oprogramowanie

NaviExpert

Żeby GPS nie był tylko zabawką, potrzebowałem czegoś co zrobi z niego prawdziwą nawigację samochodową. Jeszcze przed zakupem rozglądałem się w sieci za odpowiednim oprogramowaniem i moją uwagę zwrócił NaviExpert. Sam program jest za darmo, ale nie posiada map. Zamiast tego łączy się przez Internet z serwerem, który wyznacza trasę i udostępnia mapkę okolicy. Płaci się za tę usługę, można wykupić abonament na jeden dzień i wypróbować. A jak się spodoba, zapłacić za rok lub dwa.

Ten sposób działania ma jeszcze dodatkowe zalety: mamy do dyspozycji aktualną bazę danych o niemiłych niespodziankach na drodze (jak fotoradary), a podczas wyznaczania trasy mogą być uwzględnione korki w których utknęli inni użytkownicy.

Ściągnąłem, zapłaciłem za tydzień wypróbowałem. Działało, wykupiłem więc dłuższy abonament. Blondynka (NaviExpert mówi tylko głosem kobiecym) doprowadziła nas już do Krynicy i do Ustronia. Było parę potknięć, ale zdaje się, że innym produktom też się zdarzają. Ja na zakup nie narzekam.

TrekBuddy

GPS miał być do zabawy... więc potrzebowałem też programu, który przyda mi się na wycieczkach i który pozwoli mi na wymianę danych GPS z komputerem. Oglądałem w sieci różne Javowe aplikacje GPS na komórkę. Jedne były zbyt prymitywne, inne za drogie, a TrekBuddy darmowy i ma właściwie wszystkie funkcje jakich bym chciał.

Główną funkcją TrekBuddy'ego jest pokazywanie aktualnej pozycji na mapie. W tym celu trzeba mieć odpowiednio przygotowane mapy. Na szczęście są narzędzia, które pozwalają taką mapę przygotować, niestety głównie pod Windows (o nich dalej). Można też gotowe mapy kupić. W Polsce firma Compass produkuje i sprzedaje takie mapy. Trochę drogo, ale jak próbowałem samemu papierową mapę zeskanować i przygotować do użytku z TrekBuddy, to uznałem, że może warto zapłacić.

TrekBuddy pokaże nam także kierunek w którym się poruszamy, wprowadzone wcześniej punkty nawigacyjne, czy kierunek i odległość do wybranego punktu. Przebytą trasę może na bieżąco zapisywać w pliku GPX (standard wymiany danych GPS). Punkty nawigacyjne także trzyma w plikach GPX.

Atlas Creator

TrekBuddy Atlas Creator to proste narzędzie w Javie przerabiające mapy Google na atlas TrekBuddy. Niestety dość prymitywne.

Googleak

Podobne narzędzie, ale dużo bardziej zaawansowane. Pozwala także przetwarzać mapy terenowe, zdjęcia satelitarne, a także mapy z kilku innych źródeł niż Google. Przy pomocy tego narzędzia można sobie przygotować całkiem niezły atlas dla TrekBuddy'ego. Niestety, Googleak jest pod Windows, na szczęście – całkiem dobrze działa teraz w wine.

OziExplorer i skrypty do dzielenia map

Generalnie OziExplorer to jest jakiś komercyjny program pod Windows do obsługi urządzeń GPS. Mnie jednak interesuje mały wycinek jego funkcjonalności, dostępny także w wersji demo – kalibracja map. Tak się składa, że TrekBuddy używa danych kalibracyjnych właśnie w formacie OziExplorera. Program działa pod wine, niestety nieznośnie powoli.

Udało mi się przy jego pomocy skalibrować jakąś przedwojenną niemiecką mapę 1:25000 znalezioną w internecie. Z podobną polską sztabówką, czy własnoręcznie zeskanowaną papierową mapą turystyczną poszło znacznie gorzej. Przy okazji dowiedziałem się jaka kartografia, a szczególnie kwestie współrzędnych geograficznych i odwzorowania, jest skomplikowana...

Skalibrowaną mapę należy jeszcze pociąć i ewentualnie zapakować do atlasu. Różne narzędzia do tego celu można znaleźć na stronach TrekBuddy.

Na szczęście nie trzeba się samemu w przygotowywanie map bawić. :-)

Viking

Oprogramowanie na komórkę z GPS-em i mapy do niego to nie wszystko. Przydałoby się coś, czym można by było sobie planować trasy, a także oglądać dane zebrane przez nasz zestaw GPS. I fajnie byłoby się obyć bez Windows, czy wine. Trochę się naszukałem zanim znalazłem coś fajnego, ale w końcu się udało. Viking to prosta aplikacja GTK umożliwiająca pracę z mapami (znów z Google itp.) oraz danymi z i dla GPS. Można wyświetlić sobie mapę wybranej okolicy, na nieść na nie punkty, które chcemy odwiedzić i wyeksportować do pliku GPX, który załadujemy do komórki. Po powrocie z wycieczki można sobie do Vikinga wgrać zebrane dane i obejrzeć którędy się szło, a nawet gdzie jakie zdjęcia się zrobiło (ale to gdyby robienie zdjęć z poziomu TrekBuddy było praktyczniejsze).

GPSBabel

Czasem może pojawić się potrzeba przekonwertowania jakiś danych do lub z jakiegoś egzotycznego formatu (nie wszystko umie GPX), albo jakiegoś przekształcenia danych GPX. Tu przydaje się GPSBabel. Narzędzie to potrafi nie tylko konwertować między mnóstwem różnych formatów danych GPS, ale ma także wbudowanych parę przydatnych filtrów. Chcesz się pozbyć ze ścieżki niedokładnie ustalonych punktów? Chcesz z tysiąca punktów (np. skrytek geocaching) wybrać te w obrębie kilku kilometrów od wybranego punktu, czy może po prostu odwrócić kierunek trasy? GPSBabel to załatwi.

Happy Camel

Wspomniałem, że w wycieczkach z GPS-em fajnie jest mieć aparat fotograficzny. A może by tak w plikach ze zdjęciami zaznaczyć gdzie dokładnie były one zrobione? To się nazywa geotaging i Wesoły Wielbłąd w tym pomoże. Wystarczy, że podasz mu zestaw zdjęć i dane z GPS-a (ścieżka) obejmujące czas w którym zdjęcia były robione, a on powiąże jedno z drugim. Może zapisać dane geograficzne w metadanych (EXIF) zdjęcia, może stworzyć plik .KMZ dla GoogleEarth (w którym potem można np. obejrzeć sobie własne zdjęcia na tle satelitarnych), może nawet wyszukać nazwy miejscowości w pobliżu których fotografowaliśmy.

Happy Camel ma także wsparcie dla Flickr, ale tym nie udało mi się jeszcze czegoś sensownego osiągnąć.

18 komentarzy do wpisu „ Zabawy z GPS-em”


Kalendarzowo

Ja mam pamięć dobrą, ale krótką – jak to mój tata mówi. Potrafię zapomnieć o wszystkim, jak mi się w porę nie przypomni. Pół biedy jak zapomnę, że właśnie posłodziłem herbatę i wrzucę kolejne trzy łyżeczki (serio, zdarza mi się), gorzej jak się np. z kimś umówię, a potem nawalę.

Dlatego zawsze ciągnęło mnie trochę do elektronicznych przypominaczy. Jednak zwykle i tak nie znajdowałem dla siebie nic odpowiedniego. Nie może to być coś, do czego miałbym ciągle zaglądać (dlatego odpadają papierowe terminarze), najfajniej by było, jakby nie trzeba było nawet tam nic wpisywać (ale tego to już się raczej nie przeskoczy)... Dobrze, żeby wpisać można było wszystko, i przypominać o ważnych sprawach mogłoby to mi zawsze i wszędzie (no chyba, że śpię – budzić mnie nie może)...

Próbowałem paru kalendarzy komputerowych. Kombajnów typu Evolution nawet nie tykałem – do poczty mam mutta, a nie kalendarz! W ogóle chciałem uniknąć GUI – uruchomienie Xów nie powinno być wymagane dla przypomnienia o ważnej sprawie. Z drugiej strony... jak już te Xy mam odpalone (zwykle mam), to fajnie jakby przypomnienie było w jakimś okienku... Konsolowe programiki tego typu miały jeszcze jeden feler – jakiś własny format danych niekompatybilny z niczym. Właściwie obsługa czegoś takiego niewiele się różniła od obsługi crontaba – do sensownego używania trzebai by sobie to nieźle oskryptować. A ja przecież chciałem coś, co by mi samo przypominało, a nie wymagało programowania...

Oczywiście praktycznie wszystkie rozwiązania oparte o komputer miały pewną wadę: mogły mi o czymś przypomnieć tylko wtedy, gdy akurat byłbym przy komputerze. Czasem nawet wymagały, żeby je specjalnie uruchomił. Dlatego doceniłem aplikację kalendarza w telefonie. Wtedy to był jakiś pierwszy Sony-Ericsson. To była pierwsza przypominajka, którą w miarę regularnie używałem. Jakieś wizyty u dentysty itp. tam wpisywałem. Potem, w dużo prostszym Samsungu X200 też. Już wtedy uznałem, że fajnie byłoby komórkowy terminarz synchronizować z komputerowym, ale szybko się przekonałem, że raczej nic mi z tego nie wyjdzie. Po pierwsze wciąż brakowało mi odpowiedniego kalendarza w komputerze, a po drugie wymiana jakichkolwiek danych między tym Samsungiem a Linuksem była praktycznie niemożliwa (odniosłem umiarkowany sukces jedynie w przypadku książki adresowej).

Używając sobie po trochy komórkowego kalendarza wciąż kombinowałem z kalendarzami w komputerze. Gdy usłyszałem, że Google Calendar potrafi wysyłać SMSy, to postanowiłem to wypróbować. Nie bardzo mi się podobało, że swoje plany, czy wręcz rozkład dnia, miałbym publikować w sieci, ale coś za coś. Wyglądało na to, że w tej aplikacji Google mógłbym łatwo wprowadzać swoje terminy, a przypomnienia przychodziłyby mi na komórkę. Przy okazji dostałbym parę łebdwazerowatych bajerów, jak publikacja kalendarzy, czy rozsyłanie terminów do znajomych. Przez jakiś czas się tym bawiłem, powpisywałem różne terminy... czasem dziwne rzeczy z tego wychodziły (aplikacja nie działała idealnie). A najgorsze było to, że Google potrafiło mi wysyłać SMSy w środku nocy, co było dość nieprzyjemne, gdy zapomniałem wyłączyć telefon... No i aplikacja webowa, to nie to, co tygryski lubią najbardziej.

Jakiś czas później trafiłem na ogłoszenie o nowym wydaniu Sunbirda. Pomyślałem sobie, że to może wreszcie będzie jakaś użyteczna aplikacja kalendarzowa pod Linuksa. Trudno, że GUI. Przynajmniej używa jakiś otwartych standardów... i nawet jest wtyczka do Google Calendar. Zainstalowałem sobie więc tego słonecznego ptaszka i zasubskrybowałem swój googlowy kalendarz. Rzeczywiście dało się tego używać. Żeby nie publikować wszystkich swoich spraw w Google zrobiłem sobie dodatkowy lokalny kalendarz. Potem z lokalnego zrobiłem sieciowy (opublikowany przez WebDAV na moim serwerku), bo przecież nie z jednego komputera korzystam. Pobawiłem się trochę... i jakoś nie zacząłem regularnie z tego korzystać. Jak coś było na tyle ważne, że potrzebowałem przypomnienia, to i tak wpisywałem w komórkę. Dla innych spraw nie chciało mi się kalendarza odpalać.

W końcu kupiłem sobie nową komórkę. Już wybierałem pod kątem obsługi jakiś standardów wymiany informacji. Zakładałem, że taką nowoczesną komórkę, obsługującą standardy łatwo ze swoim Sunbirdem zsynchronizuje. Rzeczywistość okazała się niestety nie taka piękna. Do sychronizacji takich urządzeń pod Linuksem jest właściwie tylko OpenSync (inne aplikacje zwykle korzystają z tej biblioteki), a ja nieźle musiałem się nagimnastykować, żeby tym jakiekolwiek dane między komputerem a telefonem wymienić. A przy synchronizacji kalendarza znikały z terminów informacje o przypomnieniu, czyli to, co dla mnie najważniejsze. Zgłosiłem swoje problemy na odpowiednią listę mailową i nic. Nie wygląda, żeby w tej kwestii miało się coś zmienić.

Nie poddałem się jednak. Skoro telefon ma funkcje synchronizacji, to musi się dać to wykorzystać. Jest funkcja synchronizacji online, może to się nada? Najpierw sprawdziłem Google Calendar, przecież taka aplikacja, takiej poważnej firmy musi mieć taką funkcjonalność... gdzie tam. Wygląda na to, że Google SyncML zignorowało. No to rozejrzałem się za jakimiś publicznymi serwerami SyncML. Spośród paru kandydatów najbardziej przekonało mnie ScheduleWorld. Po poprzednich doświadczeniach miałem spore wątpliwości czy to zadziała, ale spróbowałem... i zadziałało.

Teraz na komputerze mam Sunbirda, w nim swój sieciowy kalendarz i wtyczkę (rozszerzenie) ScheduleWorld. Jak dodam na komputerze termin i wcisnę sync, to po uruchomieniu synchronizacji w telefonie i tam się ten kontakt pojawi. Tak samo w drugą stronę – kontakt dodany w telefonie pojawi się na komputerze. Zachowane są przy tym informacje o przypomnieniach. Był jeden problem – zdarzenie wpisane w komputerze na całą dobę w telefonie było widoczne jak dwudniowe (od 00:00 jednego dnia, do 00:00 drugiego dnia). Okazało się jednak, że wystarczy zaznaczyć jedną opcję w ScheduleWorld i problem zostaje rozwiązany. Jest tam też sporo innych przełączników, umożliwiających ominięcie potencjalnych problemów z innymi urządzeniami.

Do pełni szczęścia brakowało mi jeszcze jednej funkcji – jakieś minimum funkcjonalności bez potrzeby odpalania Xów. No to napisałem sobie Pythonowy skrypt, przy użyciu biblioteki icalendar, który wyciąga dzisiejsze i jutrzejsze terminy z mojego kalendarza (niech żyją otwarte formaty plików!). Lista ta jest wyświetlana przy logowaniu. Wydaje mi się to rozsądnym sposobem przypominania mi o rzeczach, dla których alarm z telefonu byłby przesadą.

No to wydaje mi się, że już mam użyteczny zestaw, z którego będę w stanie regularnie korzystać. Jedyna słabość, to publiczny serwer, który pośredniczy w synchronizacji z komórką... no cóż, czasem można poświęcić odrobinę prywatności dla wygody. I chyba nie mam zbyt dużych powodów, żeby ScheduleWorld nie ufać.

Teraz pytanie: czy rzeczywiście będę z tego wszystkiego korzystał, czy dalej tylko raz na ruski rok coś sobie w komórkę wklepię?

6 komentarzy do wpisu „ Kalendarzowo”


Koniec z przeskakującym Firefoksem! :-)

Od paru miesięcy męczył mnie problem Firefoksa przeskakującego na aktywny desktop XFCE4, gdy poprosi się go o otworzenie jakiegoś URLa z innej aplikacji, albo gdy po prostu załaduje się jakaś strona. Bardzo nieprzyjemne, gdy w tym czasie próbuje się korzystać z innego aplikacji na innym ekranie. Problem się pojawiał (kilka razy, bo na różnych maszynach) po jakimś upgradzie XFCE albo Firefoksa i nie potrafiłem się go pozbyć. Próbowałem wszelkich opcji w about:config Firefoksa, wszystkich przełączników w konfiguracji XFCE... i nic. Googlałem za tym wielokrotnie, bez skutku, ale trudno mi było uwierzyć, że nikt inny nie zauważył takiego zachowania, albo że nikomu innemu to nie przeszkadza...

Dzisiaj, po kolejnym takim przeskoku nie wytrzymałem i zajrzałem do źródeł XFWM. Wyszło na to, że zachowanie to zależy od parametru activate_action, XFWM przełącza desktop na aktywne okno, gdy parametr ten jest równy ACTIVATE_ACTION_BRING. Potem wyczytałem, że parametr ten jest pobierany z opcji konfiguracyjnej pod nazwą Xfwm/ActivateAction.

Najpierw uruchomiłem GUI konfiguracyjne XFCE, żeby jeszcze raz zobaczyć, czy nie ma tam tej opcji. Nie znalazłem. Zajrzałem więc do swojej konfiguracji (~/.config/xfce4/mcs_settings/xfwm4.xml) i takiej opcji tam nie było, ale miejsce wyglądało na właściwe. Dopisałem więc:

<option name="Xfwm/ActivateAction" type="string"
value="none"/>

... i zadziałało. :-) Wreszcie! Po wielu miesiącach męczarni!

Potem zajrzałem na Google, tym razem szukając tego konkretnego parametru. Okazało się, że nie ja jeden miałem ten problem, a rozwiązanie w sieci jest podane, wiele razy. Widać, jeszcze nie do końca umiem z Google korzystać... :-(

No i nie rozumiem czemu tak wyjątkowo upierdliwe zachowanie jest kontrolowane jakąś ukrytą opcją, której normalnie nie można kilkoma kliknięciami wyłączyć...

Update: Kurde, znowu przeskoczył. :-( Chyba jednak na tym komputerze mam zbyt stare XFCE... Jak ja to testowałem?

Update 2: Właściwym plikiem dla wspomnianej opcji jest: ~/.config/xfce4/mcs_settings/wmtweaks.xml. Po zmianie należy całe środowisko zrestartować. Wygląda na to, że teraz naprawdę działa.

2 komentarze do wpisu „ Koniec z przeskakującym Firefoksem! :-)”


Kamerka pod Linuksem

Żonka ostatnio wspominała, że chciałaby mieć kamerkę internetową. Ja lubię takie zabawki, więc od razu podchwyciłem pomysł i postanowiłem jej kamerkę kupić. No to zajrzałem na Allegro co tam mają... cała masa do wyboru... no to biorę parę z brzegu i Googlam za ich wsparciem w Linuksie. Ciężko to idzie. Nic na temat wsparcia w Linuksie dokładnie tych urządzeń co znalazłem na Allegro w Google nie było. Jak coś znalazłem, co miało wsparcie, to albo tego na Allegro nie było, albo kosztowało więcej niż byłem w stanie zapłacić. Na Allegro był tak wielki wybór, że nie sposób było sprawdzić wszystkiego. Podobnie na wygooglanych listach sprzętu obsługiwanego przez Linuksa. Oczywiście każdy producent chipsetu zrobił interfejs po swojemu (urządzenia oparte o standard UVC się dopiero pojawiają i do tych najtańszych nie należą), a który chipset jest w której kamerce to dopiero po podłączeniu można stwierdzić...

Na Allegro i tak nie chciałem tego kupować (w końcu to kot w worku), uznałem, że wybiorę się do sklepu. Normalnie wziąłbym ze sobą listę obsługiwanego sprzętu, żeby porównać z tym co jest na półkach. Ale dostępne listy są olbrzymie... a i tak niekompletne... Poszedłem więc bez listy, parę popularniejszych nazw zapamiętałem, a w ogóle, to uznałem, że może trafię. I umówię się ze sprzedawcą, że jak nie uruchomię tego, to zwrócę...

No więc przyszedłem do sklepu. Przerażanie w oczach – chyba z dziesięć różnych kamerek na półce, żadna nie przypomina niczego o czym czytałem... No nic, mówię, że chcę kamerkę i nieśmiało dodaję ale taką, żeby działała pod Linuksem. A sprzedawczyni, ku mojemu zaskoczeniu, bierze jedną kamerkę z półki (i to chyba taką, jakiej żonka oczekuje – na laptopa, z klipsem) i mówi, że ta będzie na pewno działać. Okazało się, że był tam już jeden klient z takimi wymaganiami, przyszedł z laptopem i na miejscu sprawdził. Zapytałem jeszcze o parametry, bo kosztowała mniej niż byłem przygotowany na to wydać. Pani zaproponowała, że może podłączyć do jakiegoś laptopa i pokazać. Już brała jednego laptopa, ale stwierdziła: Ale ten ma zainstalowaną tę kurewską... oj, przepraszam... na nim jest ta Vista. Kobieta była rzeczywiście przerażona, że jej się takie słowo wymsknęło. Widać szczerze. :-D

W końcu dała mi jakiegoś laptopa z Windows XP, żebym sobie podłączył i sprawdził. Taaa... równie dobrze mogłaby mnie posadzić przed sterami helikoptera, żebym się przeleciał ;-). Ale jakoś sobie w tym egzotycznym systemie, i to jeszcze z jakimiś dodatkowymi przeszkadzajkami, poradziłem. Kamerka zadziałała, obraz był zadowalający (przynajmniej jak na tą cenę). Biorę.

Za sterownikami rozglądałem się wcześniej, więc jakiś miałem już w pracy skompilowany, dla najnowszego kernela PLD AC. Okazało się, że pasuje do tej kamerki. Załadował się bez problemu i xawtv pokazało obraz. Ale Ekiga marudziła, że nie może otworzyć urządzenia. Bałem się, że kamerka z Ekigą niezgodna (może dlatego, że JPEG)... ale okazało sie, że po prostu ten sterownik to V4L1, a w Ekidze miałem załadowane tylko V4L2. Doinstalowałem libpw-vide-v4l i ruszyło!

Teraz trochę danych praktycznych:

  • Kamerka to: A4Tech Evo Cam Note
  • Sterownik do niej to: gscpav1 (wersja: 20070110)
  • Aby ręcznie zbudować ten sterownik na PLD Ac trzeba:
    • Zainstalować pakiet kernel-module-build w wersji zgodnej z używanym kernelem (zrobić upgrade kernela i zainstalować najnowszy kernel-module-build)
    • Rozpakować źródła sterownika gdzieś w katalogu domowym.
    • Poprawić Makefile:

      Zamienić:

      default:
              $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC)
      modules

      na (w przypadku używania kernela up, zamienić wszystkie smp na up):

      default:
              mkdir -p o/include/linux
              ln -sf $(KERNELDIR)/config-smp o/.config
              ln -sf $(KERNELDIR)/Module.symvers-smp o/Module.symvers
              ln -sf $(KERNELDIR)/include/linux/autoconf-smp.h
      o/include/linux/autoconf.h
              $(MAKE) SYSSRC=$(KERNELDIR) SYSOUT=$(PWD)/o O=$(PWD)/o -C $(KERNELDIR)
      CC=$(CC) prepare scripts
              $(MAKE) SYSSRC=$(KERNELDIR) SYSOUT=$(PWD)/o O=$(PWD)/o -C $(KERNELDIR)
      SUBDIRS=$(PWD) CC=$(CC) modules
    • Przelogować się na roota, skopiować zbudowany gspca.ko do /lib/modules/`uname -r`/misc, zmienić mu właściciela na root:root, odpalić depmod -a.

Dopiero teraz zobaczyłem, że w repozytorium PLD jest gspca.spec i się nawet buduje, więc można zapomnieć o tym, co napisałem wyżej i po prostu zbudować sobie pakiet. Wersja w specu jakby trochę inna, jeszcze nie sprawdzałem czy działa, najwyżej trzeba by speca nieco poprawić.

Update: Nagrałem mały testowy filmik, żeby pokazać co kamerka może. No, nie do końca pokazuje on co chciałem – podczas nagrywania obraz stracił nieco na jakości, bo nie znalazłem jeszcze sposobu na nagrywanie z tego w optymalnej jakości. Na bezpośrednim podglądzie w spcaview/xawtv/mplayer obraz jest odrobinę lepszy.

25 komentarzy do wpisu „ Kamerka pod Linuksem”


Głupie Safari...

Na Pingwinariach dowiedziałem się, że mój blog nie działa pod Safari... Zastanawiałem się, co z pieprzyłem, ale nic nie wymyśliłem. Dzisiaj poznałem szczegóły, pogooglałem i wiem: Safari nie radzi sobie z XHTML serwowanym jako XML. Mój Jogger miał ustawione serwowanie jako XML (na sztywno... dziwne, byłem przekonany, że była włączona autodetekcja). Przełączyłem na text/html i podobno jest już dobrze.

8 komentarzy do wpisu „ Głupie Safari...”


Zły piesek, zły!

Żonka potrzebowała dzisiaj do czegoś jednego ze zdjęć, jakie trzyma na laptopie. Okazało się, że zdjęcia nie ma... ani tego, ani setki innych... w katalogu w którym kiedyś były zdjęcia teraz były tylko numerowane katalogi i puste pliki, wszystkie z walentykową datą... Niedobrze.

Oczywiście zostałem wezwany do wyjaśnienia sprawy i naprawienia szkód. Wyglądało to dość zagadkowo. Najpierw odmontowałem /home i zapuściłem fsck. Nic podejrzanego nie znalazł. Dalej jedyną wskazówką była dla mnie data i godzina utworzenia tych dziwnych plików... Zajrzałem do /var/log/syslog... nic szczególnego w tym czasie tam nie było widać.

Zacząłem sobie przypominać, co tam ostatnio na laptopie mieszałem. Instalowałem Beagle'a. Chciałem żonce zrobić dobrze i dać jej narzędzie, które pozwoli połapać się w tych jej wszystkich plikach, z których większość (w szczególności zdjęcia) lądowały w magicznym katalogu 1 w jej $HOME. Teraz w tym katalogu były tylko dziwne cyferki...

Podkatalogi i pliki w ~/.beagle miały czasy modyfikacji 14 lutego lub późniejsze, czyli ciepło. Ale trudno mi było sobie wyobrazić jak narzędzie do indeksowania i przeszukiwania plików mogło kasować pliki... Postanowiłem obadać, czy przypadkiem ktoś tam czegoś głupiego nie robił w tym czasie na konsoli. vim ~/.history, tam /beagle i ukazały mi się moje rozpaczliwe próby doprowadzenia Beagle'a do działania: nie chciał mi indeksować plików, więc próbowałem go do tego zmusić różnymi poleceniami beagle-* (a chodziło, zdaje się, o brak biblioteki sqlite3, czy czegoś takiego). Od razu wydało mi się podejrzane jedno z poleceń: beagle-exercise-file-system – zawartość katalogu 1 wyglądała na wynik jakiegoś ćwiczenia...

Google potwierdziło, co podejrzewałem: beagle-exercise-file-system tworzy katalog 1 z numerkami w środku, który można bezpiecznie usunąć. No tak, po fakcie już można... Sprawdziłem jeszcze, czy ja byłem aż taki głupi, czy to narzędzie nie ostrzega o destrukcyjnym działaniu. Rzeczywiście nie ostrzega. Jeśli przed jego uruchomieniem katalog 1 istniał, to go po prostu usuwa. Poza tym tylko bzyka chwilę dyskiem i wypluwa niewiny komunikat Created X files across Y directories... Twórca tego genialnego narzędzia powinien chyba zginąć w ciężkich męczarniach...

Na szczęście mamy backup, z 30 stycznia, który nawet zadziałał, a więc bezpowrotnie utracone zostały tylko pliki z dwóch tygodni, zdaje się, że w tym czasie dużo nie było tam wrzucane. A twórcom Beagle'a zgłosiłem już bug reporta. Mam nadzieję, że potraktują to poważnie, a nie zjadą mnie, że odpalam coś, czego nie powinienem...

7 komentarzy do wpisu „ Zły piesek, zły!”



[szpieg] Jesteście obserwowani...