Thaimicrotron.com : Home
 
การใช้งาน GPS โมดูล
 
     
     
  การใช้งาน GPS โมดูลกับไมโครคอนโทรลเลอร์  
  ลักษณะของข้อมูลที่ได้จาก GPS  
  การเขียนโปรแกรมเพื่อวิเคราะห์ข้อมูล  
     
  โมดูลที่ใช้ในการทดสอบการใช้งาน  
 
 
 
GPS Model : U-Blox / TIM-LC
 
     
  U-Blox / TIM-LC : เป็นโมดูลที่ใช้ต่อกับไมโครคอนโทรลเลอร์ ได้โดยตรง (หากจะใช้ต่อกับ PC ต้องมีตัวแปลงระดับแรงดันเป็น RS232 อย่างเช่น MAX232 อีกทีหนึ่ง)  
  เนื่องจากคอนเน็คเตอร์ของโมดูลมีขนาดเล็ก เพื่อความสะดวกในการทดลอง เราจึงต้องสร้างบอร์ดทดลองดังรูป  
     
  GPS developer board  
 
 
 
วงจรของ GPS developer board
 
     
  ดูรายระเอียดของ GPS developer board  
     
  การเชื่อมต่อกับไมโครคอนโทรลเลอร์ PIC  
 
 
 
การต่อ PIC16F877 กับ GPS Developer Board ในการทดสอบเบื้องต้น
 
     
  - ในการทดสอบเบื้องต้น เราจะนำ TX ของ GPS ต่อเข้ากับ RX ของ PIC16F877 ที่ขา RC7(PIN26) โดยยังไม่ต่อขา RX ของ GPS มาใช้งาน และนำค่าที่อ่านได้นั้น ส่งออกไปยัง PC เพื่อดูข้อมูลที่รับได้ โดยยังไม่ได้ประมวลผลข้อมูลแต่อย่างใด  
     
     
     
 
 
     
 
การใช ้GPS developer board ต่อ เข้ากับ PICDEV40 ที่ PORTC โดยใช้ PIC16F877 ใช้การทดสอบ
 
     
  เซ็ตค่าBaud Rate ของ PIC16F877 และ โปรแกรมที่รับค่าจาก พอร์ตอนุกรมบน PC อย่างเช่น Hyperterminal  
  เท่ากับ 9600, None Parity ,1 Stop Bits ,Data Bits เป็น 8 bit (ขึ้นอยู่กับการเซ็ทของผู้ผลิต GPS โมดูลตอนให้มา)  
  หากเป็นโมูล HOLUX GM-82 ให้เซ็ทเป็น 4800, None Parity ,1 Stop Bits ,Data Bits เป็น 8 bit  
  ซึ่ง Baud Rate ของ GPS นี้สามารถเซ็ทใหม่ได้ด้วยคำสั่ง  
     
  ตัวอย่างการเซ็ทค่าใน CCS-C complier  
  #use delay(clock=4000000)
#use
rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
 
     
  ตัวอย่างโปรแกรม  
 
//Describtion:Basic GPS TEST
#include <16F877.h>
#use delay(clock=4000000)
#fuses XT,PUT,BROWNOUT,NOWDT,NOPROTECT,NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_c6,rcv=PIN_c7,bits=8)

void main(void)
{
char c;
   
   printf("\n*** TEST GPS ***\r\n");
    while(1)
    {
      if(kbhit())
      {
       c = getc();
        printf("%c",c);
      }
    }
}
 
 
     
  ตัวอย่างข้อมูลที่รับได้จากโปรแกรม Hyperterminal  
     
 
$GPRMC,010516.00,A,1347.28957,N,10036.86153,E,0.064,319.54,280908,,,A*63
$GPVTG,319.54,T,,M,0.064,N,0.118,K,A*3D
$GPGGA,010516.00,1347.28957,N,10036.86153,E,1,05,2.11,2.6,M,-27.5,M,,*7C
$GPGSA,A,3,16,32,14,20,31,,,,,,,,3.69,2.11,3.03*0F
$GPGSV,3,1,11,29,03,054,,16,85,295,35,03,23,181,,32,50,298,25*7A
$GPGSV,3,2,11,06,30,164,,14,37,095,32,19,02,199,,22,15,157,*7E
$GPGSV,3,3,11,20,28,307,31,23,02,318,,31,33,018,33*45
$GPGLL,1347.28957,N,10036.86153,E,010516.00,A,A*67
$GPZDA,010516.00,28,09,2008,00,00*6C
 
 
 
ตัวอย่างข้อมูลที่ได้จาก GPS
 
 
 
  ข้อมูลที่ได้จะเป็นแบบ NMEA (National Marine Electronics Association)  
  โดยสามารถดูรายระเอียดได้ที่ http://www.gpsinformation.org/dale/nmea.htm  
     
  การวิเคราะห์ข้อมูลจาก GPS (กำลังจัดทำ)  
 
SMITDH EMSOMBATศมิทธิ์ เอมสมบัติ