Arduino и Globalsat EM-411 иероглифы

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Arduino и Globalsat EM-411 иероглифы

Сообщение andy-k » 26 окт 2010, 09:46

Добрый день всем!

Небольшое вступление, купил недавно модуль GPS Globalsat EM-411 RS232 и пытаюсь подружить его с Seeeduino Mega. Пока набросал для тестов и знакомства с этим приемником простяцкий код, суть которого по Serial1 принять данные от GPS модуля и в Serial вывести на комп.

Что-то вроде того:

Код: Выделить всё
void loop()
{
  unsigned long start = millis();

  while (millis() - start < 5000)
    {
    if (Serial1.available()) {
      char c = Serial1.read();
       Serial.print(c);
    }
}


И все бы ничего, но с приемника приходят символы похожие на Unicode, весь инет перерыл и никакой вменяемой инфы не могу найти о том как это победить, перепробовал самые разные скорости работы с модулем, не помогает. По мануалу вроде как 4800, как его победить пока не понимаю
andy-k
 
Сообщения: 32
Зарегистрирован: 20 окт 2010, 17:38
Откуда: Москва
прог. языки: Delphi,Morph
ФИО: Андрей

Re: Arduino и Globalsat EM-411 иероглифы

Сообщение SkyStorm » 26 окт 2010, 09:49

Если модуль RS232, то подключить к компютеру на прямую и посмотреть что приходит.
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

Re: Arduino и Globalsat EM-411 иероглифы

Сообщение andy-k » 26 окт 2010, 10:13

RS232, но у меня нет COM порта да и микрухи под рукой нет, чтобы через USB подключить... Так то самому интересно, даташит весь исчитал и ничего толкового не нашёл
andy-k
 
Сообщения: 32
Зарегистрирован: 20 окт 2010, 17:38
Откуда: Москва
прог. языки: Delphi,Morph
ФИО: Андрей

Re: Arduino и Globalsat EM-411 иероглифы

Сообщение SkyStorm » 26 окт 2010, 10:24

В описании написано, что NMEA - аски, SiRF - бинарный.
Говорят, что аналогичен EM-406A(а для него полно примеров) только RX и TX надо местами поменять.
The only difference we have found is that the RS-232 Tx and Rx signals are swapped on the 6-pin connector.
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

Re: Arduino и Globalsat EM-411 иероглифы

Сообщение andy-k » 26 окт 2010, 10:39

про аналогию слышал, но тем не менее уже сутки копаю инет и не могу ничего вменяемого найти про мою проблему, просто думал что может кто-то Globalsat уже подключал и в курсе почему так
andy-k
 
Сообщения: 32
Зарегистрирован: 20 окт 2010, 17:38
Откуда: Москва
прог. языки: Delphi,Morph
ФИО: Андрей

Re: Arduino и Globalsat EM-411 иероглифы

Сообщение Marvin » 05 апр 2013, 23:45

Наблюдаются те же(?) проблемы с Garmin 18x pc (rs-232) pdf.
Только у меня еще и Mega 1280, так что с портами для чтения надо быть внимательным (см. комментарии в коде).
На ноутбуке COM-порта нет, купил переходник на USB, подключаю (скорость 4800), наблюдаю в терминале NMEA-протокол.

Беру Arduino Mega 1280
pin 2 (RS-232) <-> pin 12 (Arduino)
pin 5 (gnd) <-> gnd
В терминале видим:

vvÖ¶vÖÆZ–Vv–Ö¶–V·ï-×É5u–v¶vÖÖvÖvvÖVvÆY²³ZVv¶vv¶¶vÖö–æZYÙÚYÙÚ
[×µU•ukۖ¶6v֝QVv6Ölö–v6ëí–v&ÙZÖÖ¬vV}ûû6övöællZÙÚVöv֖vööÖ6ëZ6v–¶–v¶¶vÖvƶvö
6Vvööv¶övö¶væövvöö¶vv•ë

Код взят из 1.0.4 (убрана работа со вторым портом).
Код: Выделить всё
#include <SoftwareSerial.h>
// software serial #1: TX = digital pin 10, RX = digital pin 11
SoftwareSerial portOne(12,13);

// software serial #2: TX = digital pin 8, RX = digital pin 9
// on the Mega, use other pins instead, since 8 and 9 don't work on the Mega
//SoftwareSerial portTwo(8,9);

void setup()
{
// Open serial communications and wait for port to open:
  Serial.begin(115200);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // Start each software serial port
  portOne.begin(4800);
}

void loop()
{
  // By default, the last intialized port is listening.
  // when you want to listen on a port, explicitly select it:
  portOne.listen();
  Serial.println("Data from port one:");
  // while there is data coming in, read it and send to the hardware serial port:
  while (portOne.available() > 0) {
    char inByte = portOne.read();
    Serial.write(inByte);
  }
  Serial.println("===============");
  delay(300);
}
Аватара пользователя
Marvin
 
Сообщения: 40
Зарегистрирован: 11 апр 2011, 21:31
Откуда: Россия, Москва, Ярославль
прог. языки: Кроме C# и Basic

Re: Arduino и Globalsat EM-411 иероглифы

Сообщение Marvin » 08 апр 2013, 01:28

Сам спросил, сам отвечаю: в RS-232 совсем не TTL-уровни, из-за этого весь кавардак.
Аватара пользователя
Marvin
 
Сообщения: 40
Зарегистрирован: 11 апр 2011, 21:31
Откуда: Россия, Москва, Ярославль
прог. языки: Кроме C# и Basic


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

cron