collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Arduino DUE + ITEAD GPS Shield + SoftwareSerial  (Lida 3579 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline kamolho

  • Mini Robot
  • *
  • Mensagens: 4
Arduino DUE + ITEAD GPS Shield + SoftwareSerial
« em: 04 de Agosto de 2014, 23:45 »
Boa noite,


Desde já peço desculpa se estou a colocar esta questão no separador errado do forum mas sou noob nestas andanças.

Tenho um problema de noob. Não consigo utilizar a biblioteca SoftwareSerial com o Arduino Due derivado ao facto de ela só estar feita para microprocessadores AVR.
Como quero comunicar entre Arduino DUE e GPS quero utilizar as RX TX do Arduino mas não consigo com a biblioteca TinyGPS nem nenhum exemplo na net porque todas usam a biblioteca SoftwareSerial.

Alguém que já tenha passado pela mesma dificuldade ou então de tão básica que é a solução e que me possa ajudar?

Desde já, um muito obrigado.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino DUE + ITEAD GPS Shield + SoftwareSerial
« Responder #1 em: 05 de Agosto de 2014, 00:02 »
Na página do Due:
 4 UARTs (hardware serial ports)

Se tens 4 UART's fisicas, é só deixares a zero(presumo eu) para o bootloader e usar outra qualquer para o GPS, não precisas de nenhuma uart por software.
Avr fanboy

Offline kamolho

  • Mini Robot
  • *
  • Mensagens: 4
Re: Arduino DUE + ITEAD GPS Shield + SoftwareSerial
« Responder #2 em: 05 de Agosto de 2014, 13:38 »
Obrigado pela resposta. Já me elucidei melhor e tens razão. Torna-se mais fácil.

Agora, como tenho exemplos já feitos com a SoftwareSerial, terei de adaptar porque existe diferenças nas rotinas de leitura e escrita, entre a SoftwareSerial e a Serial. E aí começam os meus problemas.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino DUE + ITEAD GPS Shield + SoftwareSerial
« Responder #3 em: 05 de Agosto de 2014, 13:51 »
Fazer serialx.read() e serialx.available(), em que x é o numero da porta serial que estás a usar?
Ou te explicas melhor, ou diria que é confusão que está ai e nada mais.
Avr fanboy

Offline kamolho

  • Mini Robot
  • *
  • Mensagens: 4
Re: Arduino DUE + ITEAD GPS Shield + SoftwareSerial
« Responder #4 em: 05 de Agosto de 2014, 16:42 »
Certinho mas é isso que estou a fazer. a questão é as próprias rotinas .read e .write. Ou seja, a maneira como vai ler e meter na variavel. Se é caracter a caracter, se lê um byte de uma vez só, se fica toda a informação lida numa variavel e depois é necessário tratamento char a char para dividir a informação em varias variaveis. São essas coisas que ainda não compreendi. copio os exemplos das duas bibliotecas:

Isto é Serial.read:

int incomingByte = 0;   // for incoming serial data

void setup() {
        Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
}

void loop() {

        // send data only when you receive data:
        if (Serial.available() > 0) {
                // read the incoming byte:
                incomingByte = Serial.read();

                // say what you got:
                Serial.print("I received: ");
                Serial.println(incomingByte, DEC);
        }
}

e esta a SoftwareSerial.read:

SoftwareSerial mySerial(10,11);

void setup()
{
  mySerial.begin(9600);
}

void loop()
{
  char c = mySerial.read();
}

Isto são duas maneiras diferentes mas parece-me que com a mesma finalidade.

Neste momento meti a Serial2 a receber a informação do GPS e utilizei um exemplo da TinyGPS, que usava a softwareserial e eu apenas troquei o que instanciava a biblioteca com os pinos de TX e RX, com a Serial2 e já consigo ler algo mas não passa de caracteres estranhos. Resumindo, a minha dúvida é se o que está a falhar aqui é o baudrate da comunicação entre o DUE e o GPS, porque o DUE tem o processador mais rápido que o MEGA, ou se é a questão da leitura dos dados do GPS.

Peço desculpa se a minha dúvida parece confusa mas tentei-me explicar da melhor maneira possivel.

E um obrigado, novamente.

Offline jmiguelff

  • Mini Robot
  • *
  • Mensagens: 204
Re: Arduino DUE + ITEAD GPS Shield + SoftwareSerial
« Responder #5 em: 06 de Agosto de 2014, 10:48 »
Não tem a ver com a velocidade do DUE... O baudrate é definido no Serial.begin e é esse que é utilizado.

Offline kamolho

  • Mini Robot
  • *
  • Mensagens: 4
Re: Arduino DUE + ITEAD GPS Shield + SoftwareSerial
« Responder #6 em: 06 de Agosto de 2014, 11:32 »
O problema está resolvido. Já consigo ter comunicação entre GPS e Arduino. Não passou tudo de uma grande confusão minha. As funções não há nada para saber e apenas estava mal definido o baurate da comunicação.

Já estava enferrujado pois não mexia nisto à algum tempo.

Obrigado pelo tempo e paciência.