Kozá na Bɔ́ngɔ́ ya Latitude na Longitude na Signal ya GPS na Arduino
Na boyekoli oyo, tokoyekola ndenge ya kobimisa ba données ya latitude mpe longitude na signal ya GPS na kosalela Arduino mpe module ya GPS Ublox NEO-6M. Projet oyo ezali na tina mingi mpo na ba applications oyo esengeli kolandela esika, lokola robotique to navigation na libándá. Na suka ya boyekoli oyo, okozala na programme oyo ezali kosala malamu oyo ezali kotanga ba données ya GPS mpe ezali kopanza ba coordonnées na moniteur ya serial.

Liboso ya kokota na ba détails, okoki kosepela kotala vidéo oyo elandi mpo na ndimbola ya kokéba na câblage mpe mise en œuvre ya code (na vidéo na 00:00).
Matériel Explicé
Élément principal ya projet oyo ezali module ya GPS Ublox NEO-6M. Module oyo esalemi mpo na kopesa ba données ya esika ya sikisiki na kosalela ba signaux ya ba satellites ya GPS. Ekoki kozwa ba signaux ya ba satellites ebele na mbala moko, oyo esalaka ete kolandela esika ezala ya sikisiki. Module oyo elobelaka na Arduino na nzela ya communication série, oyo esalaka ete ezala pete na kosangisa na ba projets ndenge na ndenge.
Na ngambo ya module ya GPS, okosengela carte ya Arduino mpo na kosala ba données ya GPS. Arduino ekotanga ba données oyo module ya GPS etindi mpe ekobimisa ba valeurs ya latitude mpe longitude mpo na kosalela na sima. Module ya GPS mingi mpe ezali kosala na 5V, mpe epesaka sortie série oyo Arduino ekoki kotanga na nzela ya pin na yango ya RX.
Détails ya Datasheet
| Fabricant | u-blox |
|---|---|
| Numéro ya partie | NEO-6M |
| Tension ya logique/IO | 3.3V |
| Tension ya alimentation | 3.0 to 5.5V |
| Courant de sortie | ≤ 50 mA |
| Sensibilité GPS | -165 dBm |
| Température de fonctionnement | -40 to 85 °C |
| Taux de mise à jour | 1 Hz (défaut) |
| Paquet | 25 x 35 x 4 mm |
| Notes / variantes | Ba configurations ndenge na ndenge ezali |
- Kokamba ete module ya GPS ezala connecté na source ya puissance ya makasi (3.0 to 5.5V).
- Kosalela bibliothèque oyo ebongi mpo na kosala parsing ya ba données ya GPS.
- Kobatela antenne na esika ya pole mpo na kozwa ba signaux ya satellites malamu.
- Kotala taux de baud ya module ya GPS; mingi mpe ezali kosala na 9600 baud.
- Kokanisa kosalela condensateur mpo na kokitisa mbilinga-mbilinga ya puissance soki module ya GPS ezali na stabilité te.
Ba Instructions ya Câblage

Mpo na kokangisa module ya GPS NEO-6M na Arduino na yo, banda na kokangisa pin ya VCC ya module ya GPS na pin ya 5V na Arduino. Na sima, kokangisa pin ya GND ya module ya GPS na pin ya terre (GND) na Arduino. Module ya GPS ekosolola na Arduino na nzela ya ba pins ya TX mpe RX. Kokangisa pin ya TX ya module ya GPS na pin ya RX (mingi mpe pin 0) na Arduino.
Soki ozali kosalela Arduino oyo ezali na ba pins ya I2C oyo ebongi, kotala ete okokangisa ba pins ya SDA mpe SCL na ndenge ya malamu (mingi mpe A4 mpo na SDA mpe A5 mpo na SCL na ba cartes Arduino ya standard). Na sima ya câblage, kotala lisusu ba connexions nyonso mpo na kokamba ete ezali ya makasi mpe na direction ya malamu.
Ba Exemples ya Code & Explication
Tala eloko moke ya code mpo na kobanda communication série mpe kosala mise en place ya chaîne d'entrée mpo na ba données ya GPS:

void setup() {
Serial.begin(9600);
inputString.reserve(200);
}
Code oyo ebandisaka communication série na taux de baud ya 9600 mpe ezali kobomba espace mpo na chaîne ya ba données ya GPS oyo ezali koya.
Na sima, tala eteni ya code oyo ezali kosala ba données ya GPS oyo ezali koya mpe kobimisa latitude mpe longitude:
if (BB == signal) {
String LAT = inputString.substring(7, 17);
String LON = inputString.substring(20, 31);
Serial.println(LAT);
Serial.println(LON);
}
Na eteni oyo, programme ezali kotala soki ba données oyo ezali koya ekokani na signal ya GPS oyo ezali kolukama. Soki ezali bongo, ezali kobimisa ba valeurs ya latitude mpe longitude na chaîne d'entrée mpe ezali kopanza yango na moniteur ya serial.
Na suka, code ezali na eteni mpo na kosala ba données ya sika oyo ezali koya na nzela ya connexion série:
void serialEvent() {
while (Serial.available()) {
char inChar = (char) Serial.read();
inputString += inChar;
if (inChar == '\\n') {
stringComplete = true;
}
}
}
Fonction oyo ezali kotanga ba caractères oyo ezali koya na port série mpe ezali kokotisa yango na inputString. Ntango caractère ya ligne ya sika emonani, ezali kotia drapeau stringComplete na valeur ya solo, oyo elakisi ete chaîne ya ba données ya mobimba ezwami.
Démonstration / Nini Okoki Kozela
Ntango okotisi code mpe okotisi Arduino na fonctionnement, okomona ba valeurs ya latitude mpe longitude ezali kopanzama na moniteur ya serial. Ezali na tina mingi mpo na kokamba ete module ya GPS ezala na esika ya pole mpo na kozwa ba signaux ya satellites na ndenge ya malamu. Soki module ezali kozwa signal te, ekoki kolakisa ba coordonnées ya malamu te (na vidéo na 02:30).
Ba erreurs ya mingi ezali na câblage, alimentation ya makasi te, mpe réception ya satellites ya malamu te. Kotala ba aspects oyo soki okutani na ba problèmes.
Ba Horodatages ya Vidéo
- 00:00 - Introduction
- 02:30 - Ba instructions ya câblage
- 05:00 - Explication ya code
- 08:15 - Démonstration ya fonctionnement ya GPS
/*
* This is Arduino code for the Ublox NEO-6M GPS module.
* This code extracts the GPS latitude and longitude so it can be used for other purposes.
*
* Written by Ahmad Nejrabi for Robojax Video
* Date: January 24, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
// Written for RoboJax.com
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
String signal = "\$GPGLL";
void setup() {
// initialize serial:
Serial.begin(9600);
// reserve 200 bytes for the inputString:
inputString.reserve(200);
}
void loop() {
// print the string when a newline arrives:
if (stringComplete) {
String BB = inputString.substring(0, 6);
if (BB == signal) {
String LAT = inputString.substring(7, 17);
int LATperiod = LAT.indexOf('.');
int LATzero = LAT.indexOf('0');
if (LATzero == 0) {
LAT = LAT.substring(1);
}
String LON = inputString.substring(20, 31);
int LONperiod = LON.indexOf('.');
int LONTzero = LON.indexOf('0');
if (LONTzero == 0) {
LON = LON.substring(1);
}
Serial.println(LAT);
Serial.println(LON);
}
// Serial.println(inputString);
// clear the string:
inputString = "";
stringComplete = false;
}
}
/*
SerialEvent occurs whenever new data arrives via the
hardware serial RX. This routine runs between each
time loop() runs, so using delay inside loop can delay
response. Multiple bytes of data may be available.
*/
void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char) Serial.read();
// add it to the inputString:
inputString += inChar;
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
if (inChar == '\\n') {
stringComplete = true;
}
}
}
Nko o na nki.
-
AmazonNeo 6m GPS module on Amazonamzn.to
-
eBayNeo 6m GPS module on eBayebay.us
-
AliExpressNeo 6m 7m 8m on AliExpresss.click.aliexpress.com
-
AliExpressNeo 6m 7m 8m on AliExpress-2s.click.aliexpress.com
Mokili na bisika
Pas encore de ressources.
Fichiers📁
Mabala a mangwe
-
GPS TinyGPSPlus NEO-7 DataSheetDatasheet for the u-blox NEO-7 GPS module, a compact GNSS receiver with high sensitivity and low power consumption. It provides positioning data via UART and is commonly used with Arduino and the TinyGPSPlus library.
robojax_GPS_TinyGPSPlus_NEO-7_DataSheet.pdf1.73 MB