GPS logg till segelbåt

Planering och tankar kring eventuella framtida projekt.
jacobse
Inlägg: 194
Blev medlem: 25 januari 2013, 23:57:40

Re: GPS logg till segelbåt

Inlägg av jacobse »

Nu har jag fått hem min gps modul. Har provat den genom att koppla in den via min pickit2 och dess UART tool och ser då ut att fungera. Får upp sådanna här texter:

................................
$GPRMC,111054.00,V,,,,,,,161113,,,N*78
$GPVTG,,,,,,,,,N*30
$GPGGA,111054.00,,,,,0,00,99.99,,,,,,*66
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,03,03,,,32,06,,,30,27,,,29*73
$GPGLL,,,,,111054.00,V,N*4A
........................................................

När jag försöker koppla den via min pic16f690 får jag inte ut några vettiga värden. Beror garanterat på att det är fel i koden som jag använder. Har inte helt förstått mig på detta med UART än.

Här är koden som jag försöker använda:

Kod: Markera allt

char uart_rd;
char txt[4];

void main() {
  ANSEL  = 0;                     // Configure AN pins as digital
  ANSELH = 0;
  OSCCON=0b01110111;               // 8 MHZ cpu



  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize



  while (1) {                     // Endless loop
    if (UART1_Data_Ready()) {     // If data is received,

     uart_rd = UART1_Read();     // read the received data,


     bytetostr(uart_rd,txt);

     UART1_Write_text(txt);       // and send data via UART


    }
  }
}
Hoppas ni har lust att hjälpa mig vidare med detta projekt! Kom gärna med massa förslag då jag vill lära mig så mycket som möjligt!

Mvh
Användarvisningsbild
adent
Inlägg: 4245
Blev medlem: 27 november 2008, 22:56:23
Ort: Utanför Jönköping
Kontakt:

Re: GPS logg till segelbåt

Inlägg av adent »

Du verkar läsa från GPS:en och sen skicka tillbaka allting till GPS:en?

MVH: Mikael
jacobse
Inlägg: 194
Blev medlem: 25 januari 2013, 23:57:40

Re: GPS logg till segelbåt

Inlägg av jacobse »

Tack för ett snabbt svar! Gör jag? Min koppling ser ut så här:
Gps Tx till Pic Rx
Pic Tx till Pickit Rx.

Hur ska jag ändra koden för att skriva ut till rätt ställe?
Mvh
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: GPS logg till segelbåt

Inlägg av Nerre »

Det framgick ju inte att det var olika saker kopplat till TX och RX. Kör bägge sakerna samma baudrate? Tror ju inte att så många UART stöder olika baudrate för TX och RX.

Men sen är jag inte riktigt med på varför du använder bytetostr?
jacobse
Inlägg: 194
Blev medlem: 25 januari 2013, 23:57:40

Re: GPS logg till segelbåt

Inlägg av jacobse »

Ja alla kör på 9600. Det funkar fint när jag kör direkt mellan gps och pickit uart tool. Det är när jag går via min pic det strular.

Såg nått exempel där dom gjort så. Så jag testade. Har du nått förslag på hur jag ska ändra min kod?
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: GPS logg till segelbåt

Inlägg av Nerre »

Rimligen så borde det som tas emot från en UART kunna skickas ut på samma UART igen utan konvertering.

Att följa exempel utan att först förstå vad exemplet gör brukar bara ge en massa konstigheter.

Det är iofs möjligt att jag är helt ute och cyklar här, men att du inte själv vet varför du gör konverteringen ringer ju en varningsklocka hos mig i alla fall. Börja med att förstå vad du gör.
floppen
Inlägg: 109
Blev medlem: 14 september 2012, 13:28:32

Re: GPS logg till segelbåt

Inlägg av floppen »

Hej Testa detta.

bytetostr(uart_rd,txt); Denna funktion sabbar för dig, Den gör om en byte till en sträng.
Problemet är att du för en byt in får 3 byte ut vilket inte hinner skickas så du missar typ hela datan in.
Eftersom du redan tar emot en sträng så finns ingen anledning att göra om med bytetostr funktionen.

Kod: Markera allt

char uart_rd;
char txt[4];

void main() {
  TRISB= 0b00100000;      // Conf RX pin as input
  ANSEL  = 0;                     // Configure AN pins as digital
  ANSELH = 0;
  OSCCON=0b01110111;               // 8 MHZ cpu



  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize



  while (1) {                     // Endless loop
    if (UART1_Data_Ready()) {     // If data is received,

     uart_rd = UART1_Read();     // read the received data,

     UART1_Write(uart_rd);       // and send data via UART

    }
  }
}
jacobse
Inlägg: 194
Blev medlem: 25 januari 2013, 23:57:40

Re: GPS logg till segelbåt

Inlägg av jacobse »

Tack så mycket för hjälpen!

Nu har jag kommit en bit på vägen och har lyckats plocka ut koordinaterna. Nästa steg blir att plocka fram hastighet och kurs. Men för att kunna visa allt behöver jag en större display. Vill ha ordentligt stora tecken. Har funderat på en GLCD typ KS0108. Är det någon som har erfarenhet av dessa? Är de lätta att koppla in?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
anojak
Inlägg: 223
Blev medlem: 4 oktober 2011, 12:20:55

Re: GPS logg till segelbåt

Inlägg av anojak »

Kul tråd! Har själv funderat på att slänga ihop nån logg till familjens IF :D
jacobse
Inlägg: 194
Blev medlem: 25 januari 2013, 23:57:40

Re: GPS logg till segelbåt

Inlägg av jacobse »

Ja känns som något man kan ha nytta av när man är ute och seglar.

Nu har jag även fått fram kurs och hastighet. Nästa steg blir att försöka beräkna distansen som man seglat. Någon som har ett förslag på hur man ska lösa det?
floppen
Inlägg: 109
Blev medlem: 14 september 2012, 13:28:32

Re: GPS logg till segelbåt

Inlägg av floppen »

Tja

Ta position på nuvarande och när du kommer säg 50 meter från denna punkt så adderar du sträckan mellan dessa och startar om igen. Detta löser du lätt med trigonometri.
Sen går det att göra på andra sätt också men vilken upplösning/noggrannhet behöver du?
Risk att det blir fel om du bara adderar ihop skillnaden om du tar för små värden då GPSen brukar hoppar runt lite.
jacobse
Inlägg: 194
Blev medlem: 25 januari 2013, 23:57:40

Re: GPS logg till segelbåt

Inlägg av jacobse »

Tack för ett bra tips! Det låter väldigt behändigt att lösa det med trigonometri, tänkte inte på det. Noggrannheten är inte jätte viktig. Vill kunna se på ett ungefär hur långt man seglat under en dag.

När det gäller skärmen. Tror ni att det är möjligt att använda en glcd typ ks0108?Eller är det bättre att använda en vanlig Lcd 20x4?
Användarvisningsbild
tecno
Inlägg: 27252
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: GPS logg till segelbåt

Inlägg av tecno »

Enklaste är väl LCD, du kan ju ha rullande textrader med visning i x antal sekunder.
Användarvisningsbild
bit96
Inlägg: 2529
Blev medlem: 3 september 2007, 10:04:29
Ort: Säffle

Re: GPS logg till segelbåt

Inlägg av bit96 »

Det kanske är uppenbart, men när det gäller trigonometrin så är det sfärisk trigonometri som skall användas.
Det går att förenkla och approximera för korta avstånd.
jacobse
Inlägg: 194
Blev medlem: 25 januari 2013, 23:57:40

Re: GPS logg till segelbåt

Inlägg av jacobse »

Lite uppdateringar om projektet:

Projektet har varit lite stillastående under en tid. Men nu är det på gång igen.

Beslutade mig för att använda 20x4 Lcd display. Väntar på leverans av dessa.

Det jag kommer visa på displayen är koordinater, kurs, hastighet samt seglad sträcka (inte löst än). Har även lagt till en funktion så att man via usb kan koppla loggen till dator och plotter. Fungerar nu utmärkt med opencpn.

Tanken är att jag på vår lilla båt ska ha loggen ute i sittbrunnen så att det är lätt att se hastighet, kurs mm. Dator med plotter som är kopplad till loggen står inne i ruffen.

Nästa steg blir att rita och låta tillverka PCB kort.

En funktion jag skulle vilja ha är att kunna se vindstyrka. Någon som känner till någon vindmätare som är lätt att koppla till en MCU?
Skriv svar