Garmin Zumo, GoogleMap, GPX

ajouté le 07.01.2011 dans Documentation • par SwissTenguCommentaires (0)
Tags: gps linux garmin google

Je me suis mis en tête de faire une virée en Corse, en prenant la moto.
Pour ce faire, j'ai commencé à chercher les divers moyens de tracer une route, avec quelques contraintes:
- au plus court
- éviter les péages

Je suis d'abord tombé sur mappy.com, connu pour ses tracés et tout. Le tracé fourni était bon, j'évitais toutes les autoroutes, et ça faisait environ 550km.

Vint ensuite la question: comment synchroniser la chose avec mon GPS Garmin Zumo ??

Bin, à voir, on peut pas. Mappy fournit des GPS, mais, à voir, y a pas de moyen d'obtenir le tracé dans un format portable comme le GPX (format pris en natif sur mon garmin)...

Direction maps.google.com. J'arrive à avoir le même tracé, tout va bien. Puis de nouveau la question qui tue.... Mais cette fois-ci, il y a une réponse!
http://www.elsewhere.org/journ... fournit de quoi extraire les données du tracé fait par google, et ce au format GPX :).

De là, c'est fort simple. On fait le tracé sur google, on clique sur le signet qui va bien, et hop, on a le choix entre le tracé, le relevé des points et encore 2-3 autres informations.

Dans mon cas, j'ai juste récupéré les directions, puis je me suis mis en chasse pour trouver le bon dossier dans le GPS.
Au final, c'est assez simple: Garmin/userdata/
on plante le fichier GPX dedans, on reboot le GPS... et hop, il calcule la route directement.

C'est nettement plus simple que de passer par les outils Garmin, qui ne tournent (évidemment) que sous Windows (et Mac, selon lesquels...). J'avais tenté de le faire via une VirtualBox (la version proprio, avec support des devices USB), mais c'est vraiment galère. Juste bon à perdre son temps, son sang froid etc.

Bref. Je n'ai toujours pas besoin de Windows chez moi, l'OpenSource et les logiciels gratuits se chargent de nous simplifier la vie :)

Bonne route !

T.
 

Nouvelle galerie

ajouté le 07.08.2010 dans News • par SwissTenguCommentaires (0)
Tags: photo openlayers osm gps nikon

Depuis mon poste sur le module GPS de mon D90, je m'étais donc mis en tête de faire une galerie supportant ces tags, et qui affiche une carte avec le point d'où les photos ont été prises.

C'est maintenant chose faite. Photomap est une petite application Pylons employant les cartes d'OpenStreetMap.
Je suis en train de migrer gentiment mes photos de mon ancienne galerie à la nouvelle.

Actuellement, seules les photos de mon petit séjour au Japon ont été déplacées. Il reste env. 130 photos à intégrer à la nouvelle, ça devrait être fait dans quelques jous :).

Evidemment, les vieilles photos n'ont pas de données GPS (dommage pour le Japon), mais je m'arrangerai pour en mettre quelques unes prochainement, histoire de montrer que sisi, ça marche :).

Ça me permettra de voir si le module GPS a un décallage constant, ou si c'est aléatoire.
Si c'est constant, je pourrai assez facilement corriger. Si c'est alétoire, par contre, je crains devoir afficher des cartes fausses :'(.

'fin voilà quoi. Je me suis amusé un peu ;).

Le code source sera accessible dans quelques jours sur github - il faut que je passe un peu la brosse dans le code et ajoute quelques fonctionnalités à mon """api""".
Un prochain poste décrira ce que cette API peut faire.

Allez, sur ce, Bonne Nuit!

T.
 

Photo et GPS

ajouté le 25.07.2010 dans Documentation • par SwissTenguCommentaires (2)
Tags: photo nikon gps exif osm openlayers

Après pas mal d'hésitations, de calcules, de "oui mais bon est-ce utile" et autres trucs du même style, j'ai fini par craquer.
Je me suis acheté un module GPS pour mon D90!

Pour la petite histoire, j'avais repéré dès son achat la prise "GPS" sur le côté gauche du boîtier, et m'étais renseigné sur le prix de la chose. Urk, plus de 200CHF pour la version Nikon.

Heureusement, après quelques temps à laisser reposer le projet, et quelques recherches sur ebay, j'ai fini par trouver un récepteur GPS pour mon D90 à moitié prix. Certes, c'est pas un Nikon, c'est du Made in China, mais sachant que l'original est aussi Made in China|Thailand|Japan|..., c'est pas grave.
Et comme petit avantage, il a un déclancheur :D.

Alors voilà. J'ai mon module, j'suis allé prendre quelques photos au bord du lac, et j'ai regardé comment avoir ces infos.

Et là, c'est le drame. Exiftool, pourtant si pratique et tout, semble ne pas pouvoir mettre la main sur ces infos !
Après avoir regardé si les infos étaient bien enregistrées (merci Wine et les outils Nikon), je suis allé farfouiller dans la liste des applications supportant les informations Exif. Et je suis tombé sur exiftags. Il est bien, ce petit, il trie pas et balance toutes les infos.

Et donc, voici le genre de choses que j'arrive à obtenir:
Code: bash
(...)
Latitude: N 46° 27' 28.82
Longitude: E 6° 51' 13.76
Altitude: 4294967248.00 m
(...)


Hmmm. Altitude... ?!!??!!
Ok, on dirait qu'il y a un léger problème, sans doute une conversion d'unité qui merde assez sec. L'altitude réelle à laquelle je me trouvais était d'env. 386m (d'après map.geo.admin.ch).

Quant à l'emplacement proprement dit, Google Map me place env. 250m à côté... Faudra que je contrôle avec d'autres moyens.

En parlant de cela, je compte me faire une petite interface web exploitant les données GPS des photos.
Je me baserai bien entendu sur les cartes d'OSM et la librairie OpenLayers.

Bref. Je vais bien jouer ;).

++

Tengu
 

Applications GPS Linux

ajouté le 29.11.2009 dans Geek World • par SwissTenguCommentaires (5)
Tags: gps linux smartq

Petite review des applications GPS existantes sous Linux, ou du moins celles que j'ai testées (ça va pas loin, juste deux ;) ).

GPSDrive


Site : http://gpsdrive.de/
Logiciel pouvant prendre différentes cartes de différents serveurs carto. GTK, un peu lourd, et surtout vraiment pas du tout pratique. Rien que pour "visiter" la carte, c'est pas pratique. Le point fort qu'il a, à mon sens, est qu'il possède un script (gpsfetchmap.pl) permettant d'aller taper sur quelques serveurs pour avoir les tiles à différentes échelles pour une zone voulue. Autant dire que c'est pratique pour la mise en cache auto.

Pour le reste, il communique avec GPSD en local, et affiche assez clairement la position et la direction de marche.
Point de vue intégration OSM, il permet d'employer Mapnik.

TangoGPS


Site : http://www.tangogps.org/gps/ca...
Logiciel principalement basé sur OpenStreetMap, rapide et léger.
Il permet aussi de prendre les tiles en cache, mais d'une manière un peu plus manuelle : il faut aller dans l'appli, zoomer sur la zone voulue, et faire clic->map download et choisir combien de niveau de zoom on veut (jusqu'à 6).
Sinon, c'est tout l'inverse de gpsdrive : interface pratique et simple, rapide, on drag n'drop la carte en un clic, on zoom avec la roulette ou les raccourcis claviers proposés. C'est que du bonheur ;).
De plus, l'interface a été pensée pour les netbook et les mobiles (il tourne sur openmoko), et donc c'est parfaitement gérable avec un simple écran tactile.


J'ai pas mal testé ces deux applications pour la raison suivante : je compte employer mon SmartQ comme GPS pour mon voyage au Japon à venir, et il me fallait absolument un logiciel simple et léger, me permettant d'avoir les cartes du Japon à moindre frais.

Mon choix s'est donc arrêté sur tangogps, pour son côté pratique et sa légèreté.

Il ne me reste maintenant plus qu'à trouver un récepteur GPS Bluetooth, et c'est dans la poche (au sens propre et figuré ;) ).

On verra si je me paume dans Tokyo ou pas ;)

A+

Tengu
 

x200t - 3g + gps

ajouté le 27.07.2009 dans Documentation • par SwissTenguCommentaires (1)
Tags: gentoo linux lenovo gps

Grande nouvelle (dont tout le monde se fout en fait) : j'ai réussi à faire marcher le modem 3G et la puce GPS de mon x200t !

Après m'être battu quelques temps avec, j'ai fini par me rappeler l'existance de http://www.thinkwiki.org. Après une rapide recherche et deux clics sur des liens, je suis tombé ici.
Autant dire que c'est exactement ce dont j'avais besoin.

Après 2-3 lectures rapides, un peu de réflexion (sisi), et pas mal de tests, voici ce que j'ai fini par faire :

Code: bash
GPSDPID="/var/run/gpsd.pid"
CONTROL_DEVICE="/dev/ttyACM1"
GPS_DEVICE="/dev/ttyACM2"
PIN=""
APN="gprs.swisscom.ch"

powerup_F3507g () {
  echo -n "Powering up F3507g card.."
  echo 1 > /sys/devices/platform/thinkpad_acpi/wwan_enable
  while [ ! -c $CONTROL_DEVICE ]; do sleep 0.5; echo -n "."; done
  echo "done"
  echo -n "Turning on F3507g card..."
  sleep 3
  if [ -n "$PIN" ]; then
      /usr/sbin/chat -v "" "AT+CPIN?" "SIM PIN" "AT" "OK" "AT+CPIN=\"$PIN\"" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
  fi
  /usr/sbin/chat -v "" "AT+CPIN?" "READY" "AT+CFUN=1" "+PACSP0" "AT" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
  echo "done"
}

powerdown_F3507g () {
  echo -n "Turning off F3507g card..."
  /usr/sbin/chat -v "" "AT+CFUN=4" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
  echo "done"
  echo -n "Powering down F3507g card.."
  echo 0 > /sys/devices/platform/thinkpad_acpi/wwan_enable
  while [ -c $CONTROL_DEVICE ]; do sleep 0.5; echo -n "."; done
  echo "done"
}

configure_GPS () {
  /usr/sbin/chat -v "" "AT*E2GPSCTL=$1,$2,$3" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
}

turnon_GPS () {
  echo -n "Starting NMEA stream on $GPS_DEVICE..."
  configure_GPS 1 1 1
  sleep 1
  /usr/sbin/chat -v "" "AT*E2GPSNPD" "GPGGA" > $GPS_DEVICE < $GPS_DEVICE
  start-stop-daemon --start --exec /usr/sbin/gpsd -- -P $GPSDPID $GPS_DEVICE
  echo "done"
}

turnoff_GPS () {
  echo -n "Stopping NMEA stream on $GPS_DEVICE..."
  start-stop-daemon --stop --pidfile $GPSDPID
  configure_GPS 0 1 0
  echo "done"
  turnoff_F3507g
}

turnon_usbnet () {
  echo -n "Starting usbnet connection..."
  /usr/sbin/chat -v "" "AT+CGDCONT=1,\"IP\",\"$APN\"" "OK" "AT*ENAP=1,1" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
  echo "done"
}

turnoff_usbnet () {
  echo -n "Stopping usbnet connection..."
  /usr/sbin/chat -v "" "AT*ENAP=0" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
  echo "done"
  turnoff_F3507g
}

turnoff_F3507g () {
  ifdown_F3507g
}

ifdown_F3507g () {
  powerdown_F3507g
}

usage () {
  echo "$0 <action>"
  echo "  start-wwan: start your modem"
  echo "  stop-wwan:  stop your modem"
  echo "  start-gps:  start your GPS and gpsd"
  echo "  stop-gps:   stop xour GPS and gpsd"
}

if [ $# -eq 1 ]; then
  case $1 in
  'start-wwan')
    powerup_F3507g
    turnon_usbnet
    dhclient usb0 &>/dev/null
  ;;
  'start-gps')
    powerup_F3507g
    turnon_GPS
  ;;
  'stop-wwan')
    turnoff_usbnet
  ;;
  'stop-gps')
    turnoff_GPS
  ;;
  *)
    usage
  ;;
  esac
else
  usage
fi
exit 0


Certes, c'est long. Certes, c'est du bash. Mais devoir faire un simple "sudo wwan start-wwan" pour se retrouver connecter, c'est juste le pied, non? ;)

Bref. Là, ça marche. Et bien.
J'en connais en tous cas un qui sera heureux de l'apprendre :)

A+

Tengu