Weblog Tomasza Przechlewskiego [Zdjęcie T. Przechlewskiego]


scrum
random image [Photo gallery]
Zestawienie tagów
1-wire | 18b20 | 1wire | 2140 | 3rz | adamowicz | afera | alsamixer | amazon | amber | amman | anniversary | antypis | apache | api | applebaum | arm | armenia | astronomy | asus | atom.xml | awk | aws | bachotek | bakłażan | balcerowicz | balta | banan | bash | batumi | berlin | białowieża | białystok | bibtex | bieszczady | birzeit | biznes | blogger | blogging | blosxom | bme280 | bono | borne-sulinowo | breugel | bt747 | budapeszt | budyniowo | budyń | bursztyn | campagnolo | canon | cedewu | chaos | chello | chiller | chillerpl | chown | christophe dominici | chujowetaśmy | ciasto | cmentarz | contour | coronavirus | covi19 | covid | covid19 | cron | css | csv | cukinia | curl | cycling | d54250wykh | darkages | dbi | debian | dejavu | dhcp | dht22 | dia | docbook | dom | dp1500 | ds18b20 | duda | dulkiewicz | dulkiewiczowa | dyndns | dynia | ebay | economy | ecowitt | ekonomia | elka | elm | emacs | emacs23 | english | ep | erasmus | erasmusplus | ess | eu | eurostat | excel | exif | exiftool | f11 | fc | fc11 | fc15 | fc29 | fc5 | fc8 | fedora | fedora21 | fenix | ffmpeg | finepix | firefox | flickr | folau | fontforge | fontspec | fonty | food | fop | forms | foto | france | francja | fripp | froggit | fuczki | fuji | fuse | gammu | garden | garmin | gas | gawk | gazwyb | gdańsk | gdynia | gender | geo | geocoding | georgia | gft | ggplot | ghost | git | github | gmail | gmaps | gnokii | gnus | google | google apps script | googlecl | googleearth | googlemaps | gotowanie | gphoto | gphoto2 | gps | gpsbabel | gpsphoto | gpx | gpx-viewer | greasemonkey | gruzja | grzyby | gus | gw1000 | haldaemon | handbrake | helsinki | hhi | historia | history | hitler | holocaust | holokaust | hp1000se | hpmini | humour | iblue747 | ical | iiyama | ikea | imagemagick | imap | inkscape | inne | internet | j10i2 | javascript | jhead | jifna | jordania | k800i | kajak | kamera | karob | kibbeh | kleinertest | kml | kmobiletools | knuth | kociewie kołem | kod | kolibki | komorowski | konwersja | krutynia | krynki | kuchnia | kurski | kłamstwo | latex | latex2rtf | latex3 | lcd | legend | lenny | lesund | lewactwo | lgbt-folly | liban | liberation | linksys | linux | lisp | lisrel | litwa | lizbona | logika | ltr | lubowla | lwp | lwów | m2wś | malta | mapquest | mapsource | maradona | marchew | marimekko | marvell | math | mathjax | mazury | mbank | mediolan | mencoder | mevo | mex | mh17 | michalak | michlmayr | microsoft | monitor | mp4box | mplayer | ms | msc | mssql | msw | mswindows | mtkbabel | museum | muzyka | mymaps | mysql | mz | nafisa | nanopi | natbib | navin | neapol | nekrolog | neo | neopi | netbook | niemcy | niemieckie zbrodnie | nikon | nmea | nowazelandia | nuc | nxml | oauth | oauth2 | obituary | ocr | odessa | okular | olympus | ooffice | ooxml | opera | osm | otf | otftotfm | other | ov5647 | overclocking | ozbekiston | padwa | palestyna | panoramio | paryż | pdf | pdfpages | pdftex | pdftk | pedophilia | perl | photo | photography | pi | picasa | picasaweb | pim | pine | pis | pit | pizero | plain | plotly | pls | plugin | po | podcast | podlasie | podróże | pogoda | politics | polityka | polsat | portugalia | postęp | powerpoint | połtawa | prelink | problem | propaganda | pseudointeligencja | pstoedit | putin | python | pywws | r | r1984 | radio | random | raspberry | raspberry pi | raspberrypi | raspbian | refugees | relaxng | ridley | router | rower | rowery | roztocze | rpi | rsync | rtf | ruby | rugby | rumunia | russia | rwc | rwc2007 | rwc2011 | rwc2019 | ryga | rzym | salerno | samba | sds011 | selenium | sem | senah | sernik | sheevaplug | sienkiewicz | signature | sikorski | sks | skype | skytraq | smoleńsk | sqlite | srtm | sshfs | ssl | staszek wawrykiewicz | statistcs | statistics | stats | statystyka | stix | stretch | supraśl | suwałki | svg | svn | swanetia | swornegacie | szwajcaria | słowacja | tallin | tbilisi | terrorism | tesseract | tex | texgyre | texlive | thunderbird | tomato | totalnaopozycja | tourism | tramp | trang | transylwania | truetype | trzaskowski | ttf | turcja | turkey | turystyka | tusk | tv | tv5monde | tweepy | twitter | tykocin | typetools | ubuntu | uchodźcy | udev | ue | ukraina | umap | unix | upc | updmap | ups | utf8 | uzbekistan | varia | video | vienna | virb edit | virbedit | vostro | wammu | wdc | wdfs | weather | weathercloud | webcam | webdav | webscrapping | weewx | wenecja | wh2080 | wiedeń | wikicommons | wilno | win10 | windows | windows8 | wine | wioślarstwo | wojna | word | wordpress | wrt54gl | ws1080 | wtyczka | wunderground | ww2 | www | wybory | wybory2015 | włochy | węgry | xemex | xetex | xft | xhtml | xine | xml | xmllint | xsd | xslt | xvidtune | youtube | yum | zaatar | zakopane | zakupy | zawodzie | zdf | zdrowie | zeropi | zgarden | zgony | zprojekt | łeba | łotwa | świdnica | żywność
Archiwum
06/2023 | 02/2023 | 01/2023 | 11/2022 | 10/2022 | 09/2022 | 07/2022 | 06/2022 | 04/2022 | 03/2022 | 02/2022 | 12/2021 | 09/2021 | 03/2021 | 01/2021 | 12/2020 | 11/2020 | 10/2020 | 09/2020 | 08/2020 | 07/2020 | 04/2020 | 03/2020 | 02/2020 | 01/2020 | 12/2019 | 11/2019 | 10/2019 | 09/2019 | 08/2019 | 07/2019 | 06/2019 | 04/2019 | 02/2019 | 01/2019 | 12/2018 | 11/2018 | 10/2018 | 09/2018 | 08/2018 | 07/2018 | 05/2018 | 04/2018 | 03/2018 | 02/2018 | 01/2018 | 11/2017 | 10/2017 | 09/2017 | 08/2017 | 07/2017 | 06/2017 | 05/2017 | 04/2017 | 03/2017 | 02/2017 | 01/2017 | 12/2016 | 11/2016 | 10/2016 | 09/2016 | 08/2016 | 06/2016 | 05/2016 | 04/2016 | 02/2016 | 12/2015 | 11/2015 | 09/2015 | 07/2015 | 06/2015 | 05/2015 | 02/2015 | 01/2015 | 12/2014 | 09/2014 | 07/2014 | 06/2014 | 04/2014 | 02/2014 | 01/2014 | 12/2013 | 11/2013 | 10/2013 | 09/2013 | 08/2013 | 07/2013 | 05/2013 | 04/2013 | 03/2013 | 02/2013 | 01/2013 | 12/2012 | 11/2012 | 10/2012 | 09/2012 | 08/2012 | 07/2012 | 05/2012 | 03/2012 | 02/2012 | 01/2012 | 12/2011 | 11/2011 | 10/2011 | 09/2011 | 08/2011 | 07/2011 | 06/2011 | 05/2011 | 04/2011 | 03/2011 | 02/2011 | 01/2011 | 12/2010 | 11/2010 | 10/2010 | 09/2010 | 08/2010 | 07/2010 | 06/2010 | 05/2010 | 04/2010 | 03/2010 | 02/2010 | 01/2010 | 12/2009 | 11/2009 | 10/2009 | 09/2009 | 08/2009 | 07/2009 | 06/2009 | 05/2009 | 04/2009 | 03/2009 | 02/2009 | 01/2009 | 12/2008 | 11/2008 | 10/2008 | 09/2008 | 08/2008 | 07/2008 | 06/2008 | 05/2008 | 04/2008 | 03/2008 | 02/2008 | 01/2008 | 12/2007 | 11/2007 | 10/2007 | 09/2007 | 08/2007 | 07/2007 |
O stronie
wykorzystywany jest blosxom plus następujące wtyczki: tagging, flatarchives, rss10, lastbuilddatexhtmlmime. Niektóre musiałem dopasować nieco do swoich potrzeb. Więcej o blosxom jest tutaj
Subskrypcja
RSS 1.0
Iblue 747 GPS logger

GPS logger to odbiornik GPS wyposażony w pamięć pozwalającą na rejestrację przebytej drogi (śladu). Ślad z GPSa jest mi potrzebny do dodania współrzędnych geograficznych do zdjęć. Do tej pory do tego celu wykorzystywałem odbiornik Geko 301 firmy Garmin. Geko jednakże jest urządzeniem starszego typu i generalnie nie działa jeżeli nie widzi ,,czystego nieba''. Nie działa w lesie, często są duże problemy w terenie mocno zabudowanym, itp.

Postanowiłem kupić lepszy odbiornik. Czytając fora i blogi poświęcone GPS najpierw dowiedziałem się, że jest coś takiego jak SIRF. Już chciałem takiego SIRFa kupić ale doczytałem o chipsecie MTK. Według niektórych doniesień jest on lepszy niż SIRF 3 (są też tacy co twierdzą, że tak nie jest; głosów w stylu X to syf a ja jestem wielkim znafcom nie biorę pod uwagę).

Ceny loggerów na allegro zaczynają się od 300 zł (styczeń 2008) a ja znalazłem coś chwalonego, podobno działającego z Linuksem co jest dla mnie bardzo ważne i (okazało się) tańszego pn. i-Blue 747 Dziwne, ale w Polsce nikt tego nie sprzedaje, przynajmniej w Internecie. Znalazłem i-Blue na ebay za mniej niż 200 zł przy czym 30% tej kwoty stanowiły koszty wysyłki.

BTW opis na e-bay był w języku włoskim, sklep w Niemczech, sklepowy (sądząc po imieniu i nazwisku, Turek) po angielsku słabo pisał, ale się dogadaliśmy i paczka doszła.

[[ib747-wine screen dump]]

Do obsługi loggera jest dołączony CDrom z programem. Program jest of course na system MSW, ale podobno działa z wine. Dokładnie postępując według instrukcji stąd dało się go uruchomić: należy zainstalować wine, uruchomić winecfg, a następnie:

cd ~/.wine/dosdevices
ln -s /dev/ttyUSB0 com1

Teraz należy skopiować plik instalacyjny i uruchomić wine DataLog.exe. Program zostanie zaistalowany tyle, że u mnie nie działa. Ściąga ślad całkiem dziarsko ale nie do końca bo zwisa. Próbowałem dwa razy raz zawisł gdy wskaźnik był na 49% drugi raz na 89%. W google znalazłem opinie użytkowników Ubuntu utrzymujących, że w ich systemie wszystko działa (like a charm). BTW w MS Windows też były problemy, zarówno z instalacją, jak i z uruchomieniem, ale jak w końcu poszło, ale co z tego przecież nie będę go używał w systemie W.

Uwaga: Aby ściągnąć ślad albo zmienić konfigurację urządzenia przełącznik musi być w pozycji LOG. Po uruchomieniu programu pierwsze co trzeba zrobić to zatrzymać zapis śladu (można to zrobić tylko programowo), bo inaczej logger cały czas zapisuje dane.

Zainstalowałem też w bólach bt747 (aplikacja Javy). Zresztą autor ostrzega, że dokumentacja jest niedoskonała. Po rozpakowaniu zipa, zainstalowałem zawartość katalogu rxtx-2.1-7-bins-r2, zgodnie z tym co jest napisane w pliku INSTALL, umieszczonym w tym katalogu. Następnie uruchomiłem skrypt run_rxtx.sh, zmieniając wartość zmiennej MYROOTPATH=/usr/local/bt747. Żby użytkownik miał dostęp do /dev/ttyUSB0 musi być w grupie uucp, to już ustaliłem wcześniej. Dalej jednak nie działało (check_group_uucp(): error testing lock file creation Error details: Permission denied check_lock_status: No permission to create lock file.). Kluczowa okazała się zmiana praw dostępu do /var/log:

chmod 777 /var/lock
[[bt747 screen dump]]
[[bt747 screen dump]]

Aplikacja, jak widać obok, wygląda okropnie, ale funkcjonalnie jest OK: ściąga dane i kasuje LOG. Więcej nie potrzebuję. Żeby skrypt run_rxtx.sh działał uruchamiany z dowolnego katalogu musiałem jeszcze zmienić wartości zmiennej CLASSPATH (albo wstawić zawartość CLASSPATH jako wartość opcji -cp przy uruchamianiu javy):

CLASSPATH=${RXTXJAR}:$MYROOTPATH/webstart/Waba_only.jar:\
   $MYROOTPATH/dist/BT747_rxtx.jar:.:$CLASSPATH

Wreszcie jest też aplikacja pn. MTKbabel (skrypt Perla), działająca podobnie do programu GPSbabel, czyli z wiersza poleceń. Do działania wymaga zainstalowania modułu Device::SerialPort. Ten sposób działania podoba mi się najbardziej. Pobranie danych sprowadza się do wydania następującego polecenia:

mtkbabel -f nazwa-pliku-bez-rozszerzenia -t

Powstaną dwa pliki (dlatego nie podaje się rozszerzenia): jeden w formacie binarnym, drugi w fomacie GPX. Jedno wielkie ale -- transmisja jest bardzo wolna: plik binarny o wielkości ca 650 kB (czyli ca 30% pamięci) był ściągany z loggera 9 minut 47 sekund. Czyli cała pamięć byłaby ściągana 30 min. Hmm... Dla porównania obie wcześniej wymienione aplikacje ściągały te 650 kB w circa 2 minuty. Różnica jest.

Wykonałem już dwa eksperymenty porównujące iblue z moim Garminem 301. Pierwsza trasa to las, w wielu miejscach gęsty i wysoki. Do tego też w wielu miejscach jary o stromych zboczach. Trasa zapisana przez geko oraz trasa zapisana przez iblue. Nie ma porównania, bo geko w zasadzie w lesie nie działał.

Druga trasa to teren zabudowany, a konkretnie Sopot. Zabudowa w większości 3--4 kondygnacyjna. Dwa razy wszedłem do sklepu (Geko zgubił w pierwszym ślad, ale poczekałem po wyjściu aż znajdzie, a za drugim razem sam szybko się odnalazł). Oba ślady wyglądają nieźle (cf. geko iblue). Iblue pogubił się w okolicach skrzyżowania 1-go Maja z Aleją Niepodległości, gdzie wszedłem do sklepu (na dłużej). Nie zgubił satelity, tak jak geko, ale trasa w tym miejscu jest nieprawidłowa (wielki `tik' od 1-go Maja wzdłuż Al. Niepodległości w stronę Gdańska. Na mapie od szpilki oznaczonej jako `sklep' do szpilki `tik'. W rzeczywistości od sklepu poszedłem do szpilki oznaczonej `tunel' i dalej wzdłuż ul. Bohaterów Monte Cassino, co zresztą też jest zaznaczone). Nie ma różnicy pomiędzy śladami zredukowanymi do 500 punktów i dużo większym -- 2500 punktów.

Reasumując: wszystkie zdjęcia zrobione na obu trasach zostały (z zadowalającą precyzją) oznakowane współrzędnymi geograficznymi na podstawie śladu z Iblue, a po to go kupiłem.

Ślad iblue zredukowałem za pomocą gpsbabela, bo oryginalny ślad składa się z tysięcy punktów. Iblue zapisuje ślad co sekundę, Garmin w trybie auto (Iblue nie ma czegoś takiego jak auto). Kiedyś eksperymentowałem z Garminem i też go przestawiłem na zapis sekundowy, ale nie zaobserwowałem różnicy pomiędzy takim trybem a trybem auto. Polecenie uproszczenia śladu wygląda następująco (Log.nma zawiera dane zapisane jako NMEA):

gpsbabel -i nmea -f Log.nma -x simplify,count=450 \
   -o gpx -F 2008-01-23BT_x.gpx

Poniżej bardziej zaawansowane polecenie: zapisz jako GPX, ślad od 2008-01-24T13:40 od 2008-01-24T14:50, następnie upraszczając go do 500 punktów. Uwaga: opcje -x nie są przemienne, tj. ich zamiana skutkowałaby najpierw uproszczeniem do 500 punktów, a potem wycięciem od-do, dając w rezultacie ślad dużo bardziej uproszczony:

gpsbabel -i nmea -f GPSDATA-20080123.nmea \
-x track,start=200801241340,stop=200801241450 -x simplify,count=2500 \
-o gpx -F 20080124BT_x.gpx
[[Logger Iblue747]]

Kończąc, trochę mnie zastanawia/niepokoi trwałość tego urządzenia, bo jakość wykonania jest taka sobie (100% chińszczyzna). Jakby mi, np. wypadł z ręki, to chyba byłby to jego ostatni lot. Nawet nie próbuję tego sprawdzać. Poza tym logger wydaje się całkiem, całkiem...

Dopisane 16 marca 2008: Dioda GPS: pomarańczowa -- szuka satelitów; pomarańczowa/miga -- nawiguje; niebieska/miga -- mało pamięci (mniej niż 20%); niebieska -- pamięć jest zapełniona, stop (cokolwiek to znaczy); trzykrotny błysk -- zarejestrowanie POI. Dioda baterii: czerwona -- bateria prawie wyczerpana; zielona -- ładowanie; zielona/miga -- naładowana. Dioda BT: niebieska -- BT włączone, ale nie połączony; wolno miga -- połączony w sleeping mode; szybko miga -- połączony i gotowy.

Dopisane 16 marca 2008: projekt formularzy w aplikacji bt747 jest daleki od ergonomicznego, stąd poniżej krótka rekapitulacja. Aby usunąć plik: Fmt/Erase (albo Fmr/Set&erase). Pobranie pliku i zapis na dysk: Log/Get Log i inne przyciski z tej karty. Karta File: konfiguracja. Karta Con: połączenie z urządzeniem. Innych kart w zasadzie nie używam.

Dopisane 19 marca 2008: Poniżej skrypt do zamiany pliku NMEA pobranego z bt747 na plik GPX. Skrypt upraszcza uruchomienie gpsbabela. Ponadto uruchomiony z opcją -U wycina niepotrzebne znaczniki (np. <ele>, czyli wysokość, która w moim przypadku zawsze wynosi zero. Dodatkowo liczy długość wyciętego śladu. Pełny skrypt jest tutaj.

# !/bin/bash
#
# Skrypt ułatwiający uruchomienie programu gpsbabel
# Wycina fragment ścieżki + upraszcza ślad do zadanej liczby punktów
# Na koniec plik podaje długość wyciętego śladu.
#
OUT=''
FORMAT=nmea
ROK=`date +"%Y"`
XREDUCE="NO"

while test $# -gt 0; do
  case "$1" in

    -help|--help) echo "$USAGE"; exit 0;;

    -od)   shift; START="$1";;
    -od*)  START="`echo :$1 | sed 's/^:-od//'`";;
    -do)   shift; STOP="$1";;
    -do*)  STOP="`echo :$1 | sed 's/^:-do//'`";;
    -max)  shift; COUNT="$1";;
    -max*) COUNT="`echo :$1 | sed 's/^:-max//'`";;
    -rok)  shift; ROK="$1";;
    -rok*) ROK="`echo :$1 | sed 's/^:-rok//'`";;
    -format)  shift; FORMAT="$1";;
    -format*) FORMAT="`echo :$1 | sed 's/^:-format//'`";;
    -U)    XREDUCE="YES";;
    -out)  shift; OUT="$1";;
    -out*) OUT="`echo :$1 | sed 's/^:-out//'`";;

    -h)  echo usage; exit;;
    -h*) echo usage; exit;;

    *)   FILE="$1";;
  esac
  shift
done

if [ "$XREDUCE" = "YES" ]  ; then 
  echo "** Tracks will be simplified! (Option -U)" ; fi

EXTENSION=${FILE##*.}
BASE=`basename $FILE .$EXTENSION`

if [ "$OUT" = "" ] ; then OUTFILE="$BASE.gpx" ;
else OUTFILE="$OUT" ; fi

if [ "$START" != "" -a "$STOP" != "" ] ; then PERIOD="-x track,start=$ROK$START,stop=$ROK$STOP" ; 
   elif [ "$START" != "" ] ; then PERIOD="-x track,start=$ROK$START" ; 
   elif [ "$STOP" != "" ] ; then PERIOD="-x track,stop=$ROK$STOP" ; 
fi

if [ "$COUNT" != "" ] ; then SIMPLIFY="-x simplify,count=$COUNT" ; fi

if [ -f "$BASE.$EXTENSION" ] ; then
   gpsbabel -i $FORMAT -f $BASE.$EXTENSION $PERIOD $SIMPLIFY -o gpx -F $OUTFILE

   if [ -f "$OUTFILE" -a "$XREDUCE" = "YES" ] ; then
      extension=${OUTFILE##*.}
      simname="`basename $OUTFILE .$extension`_s.$extension"
      echo "** File $OUTFILE simplified to $simname" ; 
      # perl -e 'while ( <> ) { unless(/<ele|fix|course|speed>/) ... to błąd !!
      perl -e 'while ( <> ) { unless(/<(ele|fix|course|speed)>/) { print $_ }} ' $OUTFILE > $simname
      OUTFILE=$simname
   fi
   else echo "File $BASE.$EXTENSION found!" ; echo "$USAGE"
fi

if [ -f "$OUTFILE" ] ; then
## Oblicz dystans:
echo "** Counting distance covered in: $OUTFILE "

perl -e 'use Geo::Distance; my $geo = new Geo::Distance;
   my $qchars = "\042\047"; # znaki cytowania pojedynczy i podwojny
   while (<>) {
     if (/<trkpt\s+lat\s*=\s*([$qchars])([^$qchars]+)\1\s+lon\s*=\s*([$qchars])([^$qchars]+)\3/) {
        $lat=$2; $lon=$4;
        unless ($trkpt < 1) { $dist += $geo->distance( "meter", $plon, $plat => $lon, $lat ); }
        $trkpt++; $plat=$lat; $plon=$lon;
     }
   }
   print "** Distance covered (meters): $dist\n"; ' $OUTFILE
fi

url | Fri, 25/01/2008 12:35 | tagi: , , , , , ,