#include "TinyGPS++.h"
SoftwareSerial serial_connection(10,11);
TinyGPSPlus gps;
char infont; //收手機給的移動指令
float N=0; //存經緯度資料
float E=0;
void setup() {
Serial.begin(9600); //設置傳輸鮑率為9600
serial_connection.begin(9600);
Serial.println("GPS Start");
pinMode(sensor, INPUT); //設定sensor接脚為輸入狀態
pinMode(13,OUTPUT);
digitalWrite(13,HIGH);
}
void loop() {
//////////GPS封包解碼//////////////////////////////////
while(serial_connection.available())
{
gps.encode(serial_connection.read());
}
//////////GPS封包解碼末端//////////////////////////////////
//////////GPS資料擷取(緯度與經度)/////////////////////////////////
Serial.print("緯度:");
Serial.println(gps.location.lat(),4);
N=(gps.location.lat());
Serial.print("經度:");
Serial.println(gps.location.lng(),4);
E=(gps.location.lng());
//////////GPS資料擷取(緯度與經度)末端////////////////////////////////
///////////////////////carrrrrrrrrrr//////////////////////////////
if (Serial.available() > 0){
infont = Serial.read();
// Serial.print("I received: "); //顯示程式收到什麼
Serial.print(infont);
switch (infont){ //控制馬達轉動
case 'z':
if (N<0){ //丟緯度
N=N*(-1);
Serial.write(201);
}
else{ Serial.write(200); }
Serial.write(185);
for(i=0; i<4; i++){
dt[i]=int(N);
N = (N-dt[i])*100;
Serial.write(dt[i]);
//Serial.println(dt[i]);
}
if (E<0){ //丟經度
E=E*(-1);
Serial.write(201);
}
else{ Serial.write(200); }
Serial.write(190);
for(i=0; i<4; i++){
dt[i]=int(E);
E = (E-dt[i])*100;
Serial.write(dt[i]);
//Serial.println(dt[i]);
}
break;
}
}
}
///////////////////////carrrrrrrrrrr//////////////////////////////
有使用監控視窗檢視,感測器和Arduino端是沒問題的,但Ai2時好時壞,即便是在空曠的操場,天氣很穩定的情況下,有時候還是會抓不到GPS訊號。