Sida 2 av 3

Re: GPS logg till segelbåt

Postat: 16 november 2013, 12:28:31
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

Re: GPS logg till segelbåt

Postat: 16 november 2013, 13:28:12
av adent
Du verkar läsa från GPS:en och sen skicka tillbaka allting till GPS:en?

MVH: Mikael

Re: GPS logg till segelbåt

Postat: 16 november 2013, 13:38:36
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

Re: GPS logg till segelbåt

Postat: 16 november 2013, 15:22:30
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?

Re: GPS logg till segelbåt

Postat: 16 november 2013, 15:30:28
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?

Re: GPS logg till segelbåt

Postat: 16 november 2013, 17:20:41
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.

Re: GPS logg till segelbåt

Postat: 16 november 2013, 18:09:57
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

    }
  }
}

Re: GPS logg till segelbåt

Postat: 17 november 2013, 12:30:15
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?

Re: GPS logg till segelbåt

Postat: 17 november 2013, 12:34:19
av anojak
Kul tråd! Har själv funderat på att slänga ihop nån logg till familjens IF :D

Re: GPS logg till segelbåt

Postat: 19 november 2013, 10:11:32
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?

Re: GPS logg till segelbåt

Postat: 20 november 2013, 18:59:28
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.

Re: GPS logg till segelbåt

Postat: 23 november 2013, 10:43:36
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?

Re: GPS logg till segelbåt

Postat: 23 november 2013, 10:51:52
av tecno
Enklaste är väl LCD, du kan ju ha rullande textrader med visning i x antal sekunder.

Re: GPS logg till segelbåt

Postat: 23 november 2013, 11:07:32
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.

Re: GPS logg till segelbåt

Postat: 12 januari 2014, 13:43:28
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?