====== Pointeuse globale ====== Est un outil de pointage physique qui permet en posant l'index de pointage d'enregistrer une coordonnée venant du GPSRTK (centimetrique). **Pourquoi?** L'antenne permet un calcul d'un point en son centre, mais comme il est impossible de poser ce centre sur des surfaces verticales ou seulement non plane/horizontale, il faut ajouter un index X/Y/Z qui correspond au décalage du point qu'on veut mesurer. Les arpenteurs règlent ce problème en utilisant des appareils optiques et des perches à visée laser. Ce matériel est trop chère et ne correspond pas tout à fait à notre problématique. Nous voulons nous réellement pointer du doigts les points à enregistrer. Notre doigt sera en bois avec un bouton au bout, et sa position sera constamment calculée par rapport au nord ou à l'inclinaison de l'antenne. Le tout est relié à un tout petit ordinateur portable qui s'occupera du GPS, du réseau de communication et des enregistrements. La pointeuse est constituée * d'une antenne GPS * d'un compas CMP10 http://www.robot-electronics.co.uk/htm/cmps10doc.htm qui donne les valeurs * Bearing / angle au nord * Pitch et Roll pour les angles de tangage et de roulis * arduino pro micro pour une liaison USB au compas * https://github.com/kragniz/CMPS10 * une led qui en vert indique la stabilité du GPS * un bouton poussoir qui valide le contacte pour le calcul - L'appui en un point du bouton ou l'enregistrement d'une position valide la prise d'un cycle de données GPS - si les données GPS sont stables la led passe au vert ? - on applique à la position (moyenne) des coefficients (angle au nord/ tangage/roulis) pour situer cette position exactement sur le bouton poussoir plutot qu'au centre de l'antenne. - on enregistre la position dans un fichiers - le fichier peut etre séparé par objet et annoté pour facilité son importation sur un logiciel d'architecture ou autre ===== Code arduino CMPS10 ===== installer pour arduino leonardo (micro pro) bibliothèque https://github.com/kragniz/CMPS10 #include #include CMPS10 compass; void setup(){ Serial.begin(9600); } void loop() { Serial.print(" "); Serial.print(compass.bearing()); Serial.print(" "); Serial.print(compass.pitch()); Serial.print(" "); Serial.println(compass.roll()); delay(500); } ===== scripte ajout positionnement ===== Ce script fonctionne sur l'interface RTKLIB_Touchscreen_GUI/RTKBASE #!/bin/bash cd ~/RTKLIB_Touchscreen_GUI/RTKBASE while inotifywait -q -e modify saveWGS84coordbuffer.txt >/dev/null; do cat < /dev/ttyACM1 > /tmp/compass.log & RET=$! cat saveWGS84coordbuffer.txt | awk '{ printf("%s %s %s",$1,$2,$3)}' >> pointcorrige.txt sleep 1 tail /tmp/compass.log | sed '/^$/d' | tail -n1 >> pointcorrige.txt kill -9 $RET done exit 0 ? faire la correction sur une valeur en m (sortie XYZ plutot que LLH) ?