Etape 6: Logiciel : le menu Waypoint
Comme un marin, je sais combien il est difficile de taper correctement dans un certain nombre de points d’intérêts.Donc j’ai cherché un moyen de copier coller waypoints directement à partir de Google maps. Points d’intérêts sont constitués comme latitude (N ou S) et logitude (E ou W). Une entrée typique ressemble à: 50.846669,4.352514 (= Bruxelles, Grote Markt). Latitudes sud et les longitudes Ouest sont des valeurs négatives
Comment faire pour copier à partir de Google maps :
- Ouvrir Google maps, tapez dans l’environnement voulu
- Naviguer sur la carte pour le point exact
- Faites un clic droit sur l’emplacement exact, puis choisissez « ce qui est ici? »
- Latitude de copier (CTRL-C), info de longitude de Google maps boîte d’entrée.
- Collez que ce coordonne dans la zone de saisie serial Arduino
J’ai décidé de faire un waypoint séparé d’esquisse. Il fonctionne via le moniteur serial Arduino et est piloté par menu.
Carte mémoire :
Chaque waypoint occupe 10 octets :
- flotteur de 2 x 4 octets (latitude et longitude)
- un entier de 2 octets (lien vers l’adresse de point de cheminement suivant en avant).
Détails :
Octet 0 à 7 contiennent le titre de la liste de waypoint.
8 et 9 octets stocker un entier, qui pointe vers la première adresse de point de cheminement.
La première latitude est octet 10-13, la première longitude dans 14-17.
Octet, 18 et 19 stocker le lien pour la prochaine waipoint à nouveau.
Capacité maximale est de 99 points.
Général : latitudes commencent à 10k, longitudes à 10 k + 4, les liens vers la prochaine latitude à 10 k + 8.
Un '-1' dans le lien indique le dernier point de cheminement dans la liste.
Au démarrage, le croquis montre la suite de menu (n’est pas si gentil ici, mais est bien aligné dans le moniteur)
******************************************
* *
* Choisir une action: *
* *
* MONTRER tous les waypoints: s *
* Entrer une nouvelle liste de waypoint: n *
CHANGER d’un waypoint: v *
SUPPRIMER d’un waypoint: d *
Ajouter d’un waypoint : un *
* *
* HELP: h *
* *
******************************************
Actions :
- NOUVEAU : tous les liens précédents sont remplacés avec « -2 ». Ensuite, l’utilisateur est invité à copier un certain nombre de points d’intérêts dans la zone de saisie de serial monitor. La liste est close par l’introduction de « # », qui insère '-1' dans le champ lien.
- SPECTACLE : la liste de waypoint est affichée. Sur l’écran, chaque waypoint est précédé d’un numéro pour autoriser l’édition plus loin. Notez que ces chiffres ne sont pas nécessairement consécutifs après que certains ajouter et supprimer des actions.
- SUPPRIMER : un waypoint est sorti de la liste.
- ADD: un point de passage supplémentaire peut être inséré après un certain nombre de point de cheminement choisi.
- CHANGEMENT : action permet de changer le contenu de waypoint à un nombre choisi.
- HELP : affiche la façon de copier des waypoints de GoogleMaps.
Informations sur la programmation :
L’esquisse vérifie les entrées mal des actions du menu et des numéros de waypoint.
Il n’y a aucun contrôle sur le contenu du point de passage, comme il est supposé pour être copié à partir de Google.
Il y a des routines pour la lecture et l’écriture des flotteurs et entiers à et de l’Eeprom.
Voici les routines pour gérer les valeurs float (4 octets) en EEprom (nous avons obtenu de l’aide d’un expert ici).
Routines similaires ont été utilisées pour les entiers (2 octets).
{
flotteur f ;
ubyte bytes [4] ;
};
void EepromWriteFloat (int adres, float value) {}
FloatBinary temp ;
Temp.f = valeur ;
pour (int i = 0; i < 4; i ++) {}
EEPROM.write (adres + i, temp.bytes[i]) ;
}
}
flotteur EepromReadFloat(int adres) {}
FloatBinary temp ;
flotter
pour (int n = 0; n < 4; n ++) {}
Temp.bytes[n] = EEPROM.read(adres+n) ;
}
sortir = temp.f ;
retourner }