Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
Moderatorzy: moderatorzy2014, moderatorzy
Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
Witam, ostanio bawiłem się Arduino mini i Multiwii.
Z połączenia wyszedł mi logger GPS na SD.
Gniazdo SD(microSD) kosztuje ok 3USD.
Może komuś się przyda, ja sobie zapisuje cały przepieg trasy z gazem i baterią.
Instrukcja w 40 min mogą być błędy:
1. Podłączyć do arduino SD socket, musi działać np z Cardinfo.(files/examples/sd/cardinfo)
piny:
MOSI - pin 11
MISO - pin 12
CLK - pin 13
CS - pin 4
2. Gdy Cardinfo dobrze działa to wgrać do arduino 3dWiiLogger.hex używająć XLoader.
3. Podłączyć arduino rx do multiwii tx i rx do tx.
4. Włóż kartę sd do gniazda.
5. Włącz Multiwii i poczekaj na sygnał GPS.
6. Uzbrój Mulitwii poczekaj 10 sek i disarm(poczekaj 2 sec i wyłącz multiwii). - Stworzy folder Log0 na karcie
Tworzy nowy Track gdy zostanie uzbrojony.
II. Konwersja plików do formatu KML - Goggle Earth
1. Skopiuj na kartę sd do głównego folderu folder data i plik MultiWiiKml.exe.
2. Odpal plik MultiWiiKml.exe - Utworzy w folderach LOG0- LOG25 Dwa pliki KML jeden to trasa ze szczegółowymi danymi lotu a drugi to trasa w 3d(z wysokością).
3. Na karcie musi być folder DATA.
4. Odpalić plik Kml -> musi być zainstlowany google Earth.
I wsio, jakby coś nie działało to pisać.
(Sprawdzone z Multiwii Crius 2.5 se) Powinno działać nawet z naze32
Zapomniałem o najważniejszym :)
Download
Z połączenia wyszedł mi logger GPS na SD.
Gniazdo SD(microSD) kosztuje ok 3USD.
Może komuś się przyda, ja sobie zapisuje cały przepieg trasy z gazem i baterią.
Instrukcja w 40 min mogą być błędy:
1. Podłączyć do arduino SD socket, musi działać np z Cardinfo.(files/examples/sd/cardinfo)
piny:
MOSI - pin 11
MISO - pin 12
CLK - pin 13
CS - pin 4
2. Gdy Cardinfo dobrze działa to wgrać do arduino 3dWiiLogger.hex używająć XLoader.
3. Podłączyć arduino rx do multiwii tx i rx do tx.
4. Włóż kartę sd do gniazda.
5. Włącz Multiwii i poczekaj na sygnał GPS.
6. Uzbrój Mulitwii poczekaj 10 sek i disarm(poczekaj 2 sec i wyłącz multiwii). - Stworzy folder Log0 na karcie
Tworzy nowy Track gdy zostanie uzbrojony.
II. Konwersja plików do formatu KML - Goggle Earth
1. Skopiuj na kartę sd do głównego folderu folder data i plik MultiWiiKml.exe.
2. Odpal plik MultiWiiKml.exe - Utworzy w folderach LOG0- LOG25 Dwa pliki KML jeden to trasa ze szczegółowymi danymi lotu a drugi to trasa w 3d(z wysokością).
3. Na karcie musi być folder DATA.
4. Odpalić plik Kml -> musi być zainstlowany google Earth.
I wsio, jakby coś nie działało to pisać.
(Sprawdzone z Multiwii Crius 2.5 se) Powinno działać nawet z naze32
Zapomniałem o najważniejszym :)
Download
X525 quad
fajny projekt tylko szkoda że nie opublikował go ktoś z jakieś 1-2 lata temu - jak MultiWii było w modzie:)
TAROT Ironman FY650 - 3DR Pixhawk - ZTW Spider 30A - TAROT 4006/620KV - 1355 - Boscam 5.8GHz 400mW
TAROT 680PRO - DJI NAZA M v2 - Multistar 30A - TAROT 4006/620KV - 1355 - Boscam 5.8GHz 200mW
ZMR QAV250 - ZMR 1804 2400KV ESC 10A Simonk Naze32 10 DOF
TAROT 680PRO - DJI NAZA M v2 - Multistar 30A - TAROT 4006/620KV - 1355 - Boscam 5.8GHz 200mW
ZMR QAV250 - ZMR 1804 2400KV ESC 10A Simonk Naze32 10 DOF
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
w zeszłym roku bawiłem się czymś takim https://www.sparkfun.com/products/9530
ale stwierdziłem że za dużo z tym zachodu bo karta świrowała czasem śmieci się zapisywały , zrobiłem prosty loger na kości pamięci 24c512 ale w sumie raz go użyłem tylko i poszedł w kosz jako zbędny projekt bo kfc32 na których latam mają już to w sobie
ale stwierdziłem że za dużo z tym zachodu bo karta świrowała czasem śmieci się zapisywały , zrobiłem prosty loger na kości pamięci 24c512 ale w sumie raz go użyłem tylko i poszedł w kosz jako zbędny projekt bo kfc32 na których latam mają już to w sobie
DJI Mavic 2 Zoom
DJI Spark
KFC32FTB SkyHunter Mini
Ptyczak Matek F405 DJI Ocusync AirUnit
Żaglówka Phantom
KFC32FTB:SW1900,Chasser,Patyczak2,Pionieer2
KFC32+OSD:QX450,QX330,Legwan,Combat
KFC32F1:Race250,9' Carbon
KFC32mini:Dragon,QX300
FY30-A:QX550,Vega1600,Patyczak1
Naza_v2+iOsd:Shadow
Inne:Tello,Motorówka,T-Rex450Plus,QX90
DJI Spark
KFC32FTB SkyHunter Mini
Ptyczak Matek F405 DJI Ocusync AirUnit
Żaglówka Phantom
KFC32FTB:SW1900,Chasser,Patyczak2,Pionieer2
KFC32+OSD:QX450,QX330,Legwan,Combat
KFC32F1:Race250,9' Carbon
KFC32mini:Dragon,QX300
FY30-A:QX550,Vega1600,Patyczak1
Naza_v2+iOsd:Shadow
Inne:Tello,Motorówka,T-Rex450Plus,QX90
Re:
A czemu tak piszesz? Base/Clean-flight które zapewne masz na myśli jako obecnie "modne" oprogramowanie do tanich kontrolerów- nadal opierają komunikację na protokole MSP więc jak najbardziej ten logger powinien działać.bolcio30 pisze:fajny projekt tylko szkoda że nie opublikował go ktoś z jakieś 1-2 lata temu - jak MultiWii było w modzie:)
infekcja FPV postępuje w zastraszającym tempie...
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
to co zapisuje na karcie to logi z czystego GPSa (NMEA) ? Czy konkretne już współrzędne ? Mam GPSa który wysyła dane ale trzeba by było je obrobić z postaci NMEA. Wie ktoś jak ?
19-02-2015
Nieważne już wykonałem swojego loggera używając GPSa z OSD. Adruino mini pro, karta SD - nic więcej do szczęścia :D
19-02-2015
Nieważne już wykonałem swojego loggera używając GPSa z OSD. Adruino mini pro, karta SD - nic więcej do szczęścia :D
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
-
- Posty: 3
- Rejestracja: poniedziałek 23 lut 2015, 22:27
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
Witam, mam problem z podłączeniem Arduino UNO do MultiWii HK 328,
korzystam z kodu: https://github.com/renes/multiwiiDataLogger
Po wgraniu programu, Arduino nie wysyła zapytań do MultiWii, a dioda TX nie mruga. Natomiast gdy podłączę je do komputera, na monitorze portu widać że Arduino wysyła zapytania. Nie wiem jaka jest przyczyna. Masy były połączone.
korzystam z kodu: https://github.com/renes/multiwiiDataLogger
Po wgraniu programu, Arduino nie wysyła zapytań do MultiWii, a dioda TX nie mruga. Natomiast gdy podłączę je do komputera, na monitorze portu widać że Arduino wysyła zapytania. Nie wiem jaka jest przyczyna. Masy były połączone.
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
Sciagnij terminal i posłuchaj co to ardu wysyła. I sprawdź bitrate.
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
leeon, dzięki fajna sprawa, też to zastosuję :)
-
- Posty: 3
- Rejestracja: poniedziałek 23 lut 2015, 22:27
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
Arduino wysyła dane zgodne z msp, typu "$M<ii" czy coś podobnego, ale jak jest podłączone do kompa, a jak jest podłączone do Multiwii to nic nie wysyła, chyba nie może nawiązać komunikacji. Baud ustawiony w Arduino jest 115200, tak samo jak w Multiwii.Burakko pisze:Sciagnij terminal i posłuchaj co to ardu wysyła. I sprawdź bitrate.
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
nie wiem jaka jest ale różnica napięć 3.3V czy 5V w komunikacji zachowana ?
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
-
- Posty: 3
- Rejestracja: poniedziałek 23 lut 2015, 22:27
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
Napięcia powinny się zgadzać, i tu i tu jest 5V. Możliwe, że to kwestia zworki, która powinna być wyjęta ? Muszę to sprawdzić.
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
Założę się że to mega pierdoła. Tak zawsze jest. Ja dziś otrzymałem piękne gniazdo na karty SD więc miniaturyzacja :D
no i cisnę się z tym ardu i doop@ Mam Arduiono Pro mini + MicroSD card adapter ale nie tworzy żadnych plików.
no i cisnę się z tym ardu i doop@ Mam Arduiono Pro mini + MicroSD card adapter ale nie tworzy żadnych plików.
Kod: Zaznacz cały
#include <Wire.h>
#include <SD.h>
#include <string.h>
#include <ctype.h>
int ledPin = 13; // LED test pin
int ledState = LOW;
long previousMillise = 0;
long interval = 1000;
long previousMillis = 0;
const int ledPin12 = 12;
int rxPin = 0; // RX PIN
int txPin = 1; // TX TX
int byteGPS=-1;
char linea[300] = "";
char comandoGPR[7] = "$GPRMC";
int cont=0;
int bien=0;
int conta=0;
int indices[13];
const int chipSelect = 53;//changed from 8
const int LOCATION_FILE_NUMBER_LSB = 0x00;
const int LOCATION_FILE_NUMBER_MSB = 0x01;
File dataFile;
void setup() {
pinMode(53, OUTPUT);
pinMode(ledPin12, OUTPUT);
pinMode(ledPin, OUTPUT); // Initialize LED pin
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Serial.begin(4800);
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
Serial.println("Time, Status, Latitude, Direction, Longitude, Direction, Velocity, Heading, Date, Magnetic degrees, E/W, Checksum");
delay(1000);
// start the wire and RTC libraries:
Wire.begin();
//newlog();
dataFile = SD.open("NewGPS.txt", FILE_WRITE);
//Serial.println("finishSetup");
delay(20);
for (int i=0;i<300;i++){ // Initialize a buffer for received data
linea[i]=' ';
}
}
void loop() {
digitalWrite(ledPin, HIGH);
byteGPS=Serial.read(); // Read a byte of the serial port
if (byteGPS == -1) { // See if the port is empty yet
delay(100);
}
else {
linea[conta]=byteGPS; // If there is serial port data, it is put in the buffer
conta++;
// Serial.print(byteGPS, BYTE);
// dataFile.print(byteGPS, BYTE);
if (byteGPS==13){ // If the received byte is = to 13, end of transmission
digitalWrite(ledPin, LOW);
cont=0;
bien=0;
for (int i=1;i<7;i++){ // Verifies if the received command starts with $GPR
if (linea[i]==comandoGPR[i-1]){
bien++;
}
}
if(bien==6){ // If yes, continue and process the data
for (int i=0;i<300;i++){
if (linea[i]==','){ // check for the position of the "," separator
indices[cont]=i;
cont++;
}
if (linea[i]=='*'){ // ... and the "*"
indices[12]=i;
cont++;
}
}
Serial.println(""); // ... and write to the serial port
for (int i=0;i<12;i++){
switch(i){
}
for (int j=indices[i];j<(indices[i+1]-1);j++){
Serial.print(linea[j+1]);
}
Serial.print(",");
}
// Serial.println("---------------");
Serial.println();
if(dataFile)
{
//dataFile.println(""); // ... and write to the serial port
digitalWrite(ledPin12, HIGH);
dataFile.println();
for (int i=0;i<12;i++){
switch(i){
// case 0 :dataFile.print("Time in UTC (HhMmSs): ");break;
// case 1 :dataFile.print("Status (A=OK,V=KO): ");break;
// case 2 :dataFile.print("Latitude: ");break;
// case 3 :dataFile.print("Direction (N/S): ");break;
// case 4 :dataFile.print("Longitude: ");break;
// case 5 :dataFile.print("Direction (E/W): ");break;
// case 6 :dataFile.print("Velocity in knots: ");break;
// case 7 :dataFile.print("Heading in degrees: ");break;
// case 8 :dataFile.print("Date UTC (DdMmAa): ");break;
// case 9 :dataFile.print("Magnetic degrees: ");break;
// case 10 :dataFile.print("(E/W): ");break;
// case 11 :dataFile.print("Mode: ");break;
// case 12 :dataFile.print("Checksum: ");break;
}
for (int j=indices[i];j<(indices[i+1]-1);j++){
dataFile.print(linea[j+1]);
}
dataFile.print(",");
}
dataFile.println("");
}
else{
digitalWrite(ledPin12, LOW);
}
dataFile.flush();
//Serial.flush();
}
conta=0; // Reset the buffer
for (int i=0;i<300;i++){ //
linea[i]=' ';
}
}
}
}
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
W ProMini CS to zwykle Pin 10 (53 to dla Megi)Burakko pisze:Założę się że to mega pierdoła. Tak zawsze jest. Ja dziś otrzymałem piękne gniazdo na karty SD więc miniaturyzacja :D
no i cisnę się z tym ardu i doop@ Mam Arduiono Pro mini + MicroSD card adapter ale nie tworzy żadnych plików.
Kod: Zaznacz cały
const int chipSelect = 53;//changed from 8 [...] pinMode(53, OUTPUT);
Re: Logowanie GPS na karcie SD i wyświetlanie na GoogleEarth
A zobaczysz czy dobrze podpiąłem ? Zazwyczaj pisze w bascomie na czystych AVR nie znam się zbytnio na Ardu i "C". I zmieniłem Serial.begin(4800); czy dobrze ?
A karta rozumiem formatowana na FAT ?
A karta rozumiem formatowana na FAT ?
Ostatnio zmieniony środa 25 lut 2015, 19:30 przez Burakko, łącznie zmieniany 1 raz.
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...
Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"
Nie pisz "Dron" moje dzieci mogą to czytać...