GPS-регистрация на плате Intel edison breakout

c gps

Я работаю над своим проектным автомобилем и решил, что хотел бы иметь GPS и регистрировать некоторые датчики. Я просто нахожусь в бутылочном горлышке, датчики, которые я привез, тянут примерно по 7 В каждый, и я не могу извлечь столько из панели управления, которая у меня есть, и я не могу сделать шов, чтобы заставить GPS работать.

Я пробовал использовать код ths, но Software Serial не поддерживается на edison:

// Настройка GPS
#define rxGPS 0
#define txGPS 1
SoftwareSerial serialGPS = SoftwareSerial(rxGPS, txGPS);
String stringGPS = "";

void setup() {
  pinMode(rxGPS, INPUT);
  pinMode(txGPS, OUTPUT);


  Serial.begin(9600);
  Serial.println("Started");

  // Настройка
  serialGPS.begin(4800);
  digitalWrite(txGPS,HIGH);

  // Вырезать сначала тарабарщину
  while(serialGPS.available())
    if (serialGPS.read() == '\r')
      break;
}

void loop()
{
  String s = checkGPS();
  if(s && s.substring(0, 6) == "$GPGGA")
  {
    Serial.println(s);
  }
}

// Проверяет GPS и возвращает строку, если записана полная строка, в противном случае false
String checkGPS()
{
  if (serialGPS.available())
  {
    char c = serialGPS.read();
    if (c != '\n' && c != '\r')
    {
      stringGPS  = c;
    }
    else
    {
      if (stringGPS != "")
      {
        String tmp = stringGPS;
        stringGPS = "";
        return tmp;
      }
    }
  }
  return false;
}

Любые идеи или помощь будут высоко оценены

, 👍0


2 ответа


1

Попробуйте это:

String GPSLine;

bool checkGPS()
{
  while(serialGPS.available())
  {
    char c = serialGPS.read();
    if(c == '\n') return true;
    if(c == '\r') continue;

    GPSLine += c;
  }
  return false;
}

void loop()
{
  if(checkGPS())
  {
    Serial.println(GPSLine);
    GPSLine = "";
  }
}
,

требуются какие-либо библиотеки?, @bedrock

Хорошо, хорошо, чтобы разбить то, что я делаю, @bedrock

1 У меня есть плата Intel Edison one, у нее есть слот для карты micro SD, и я хочу использовать GPS и регистрировать все, что он отправляет на SD-карту, а вторая часть — считывать и отображать датчики на экране. Но пока я просто хочу, чтобы GPS работал, @bedrock


0

Вы могли бы попробовать мою библиотеку NeoGPS. В нем есть программа diagostic и некоторая полезная информация в разделе Устранениянеполадок. И NeoGPS не использует класс String, хотя вы можете безопасно тратить много оперативной памяти на Edison. : P

Для сборки Edison вам, возможно, придется изменить элемент конфигурации PACKED_DATA, описанный здесь.

(Это продукт Arduino, верно?)

,