การใช้งาน GPS โมดูลกับไมโครคอนโทรลเลอร์ NO.1

การใช้งาน GPS โมดูลกับไมโครคอนโทรลเลอร์
การใช้งาน GPS โมดูลกับไมโครคอนโทรลเลอร์
ลักษณะของข้อมูลที่ได้จาก GPS
การเขียนโปรแกรมเพื่อวิเคราะห์ข้อมูล
โมดูลที่ใช้ในการทดสอบการใช้งาน
U-Blox / TIM-LC : เป็นโมดูลที่ใช้ต่อกับไมโครคอนโทรลเลอร์ ได้โดยตรง (หากจะใช้ต่อกับ PC ต้องมีตัวแปลงระดับแรงดันเป็น RS232 อย่างเช่น MAX232 อีกทีหนึ่ง)
เนื่องจากคอนเน็คเตอร์ของโมดูลมีขนาดเล็ก เพื่อความสะดวกในการทดลอง เราจึงต้องสร้างบอร์ดทดลองดังรูป
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

ความคิดเห็น

บทความที่ได้รับความนิยม