Problema de comunicação com Arduino UNO e Ubuntu 10.04

Pessoal!! Esses dias tivemos problemas com a comunicação entre o arduino UNO e Ubuntu.... Bom o problema era o seguinte: quando eu conectava o arduino em um sistema Windows e mandava a programação pela IDE do Arduino  para o Arduino, a comunicação funcionava..... Mas depois de um tempo tentei programar no sistema Ubuntu, mas não tinha comunicação e o Led TX do arduino ficava aceso..... 

Procurando na internet e no forum do Arduino, descobri que eles estão com este problema de comunicação entre Arduino UNO e Ubuntu e que estão tentando resolver.....

 

Mas uma solução que descobri foi voltar para o Windows, mandar uma programação qualquer que tem nos exemplos como o BLINK e mandar pro Arduino.... Assim o Led TX do Arduino não acende e posso mandar a programação pelo sistema Ubuntu.....

Detalhe que no tópico Arduino Travado criado pelo Francis, ele citou que não estava conseguindo programar o Arduino.... Talvez seja esse o problema que o Francis esteja tendo...

Exibições: 437

Responder esta

Respostas a este tópico

Me chamaram !!!??? Meu TX tambem fica acesso constantemente.

 

Faz tempo que to querendo relacionar o que ja levantei para ver se alguem pode me ajudar e nao deu tempo ainda.

Inicialmente parece que nao consegue gravar na serial (/dev/ttyACM0) mas nao faz sentido pois gravei duas vezes no UNO (Blink e o AnalogicRead).


Oi Francis!! entao tenta usar o Arduino UNO em outro sistema operacional.... Pelo que eu percebi voce tambem está usando o Ubuntu certo?? Entao tenta no Windows como falei aqui no post.... Depois fala pra gente seu progresso!!!

 

Abracos!!!


Francis David Donato Pereira disse:

Me chamaram !!!??? Meu TX tambem fica acesso constantemente.

 

Faz tempo que to querendo relacionar o que ja levantei para ver se alguem pode me ajudar e nao deu tempo ainda.

Inicialmente parece que nao consegue gravar na serial (/dev/ttyACM0) mas nao faz sentido pois gravei duas vezes no UNO (Blink e o AnalogicRead).

Errado, uso Slackware 13.0

Mas tenho como testar no Windows e Ubuntu, vou testar e depois retorno.

Dalton Massaiti Hioki disse:

.... Pelo que eu percebi voce tambem está usando o Ubuntu certo?? ...

Pessoal!!! O problema realmente é na comunicação do arduino com o Linux.... O que acontece é que se o arduino fica mandando dados para o Linux ininterruptamente.... O Linux não consegue se comunicar com o Arduino.... Por exemplo:

 


int PinPWM=9;

int cont=0;

char c;

void setup()

{ Serial.begin(9600);}

void loop()

{  

  if(Serial.available()>0) 

 {  

  c=Serial.read();

   if( c=='>') 

  {    cont=cont+1;    }  

else if(c=='<') 

  {    cont=cont-1;    }  

analogWrite(PinPWM,cont); 

   } 

Serial.println(cont);  // O problema está aqui 

 }

 

O problema é que Serial.println(cont) está fora da chave do if (Serial.available()>0){}...... Assim o arduino fica mandando dado pro pc ininterruptamente....

A solução é:


void loop()

{  

  if(Serial.available()>0) 

 {  

  c=Serial.read();

   if( c=='>') 

  {    cont=cont+1;    }  

else if(c=='<') 

  {    cont=cont-1;    }  

analogWrite(PinPWM,cont); 

Serial.println(cont);

  } 

}

 

Essa solução serve somente para o linux.... pois no Windows não dá esse tipo de problema.....

Bom então pessoal é isso.... 

 

Abraços!!!

Agora faz sentido o problema, pois comecou depois que gravei o exemplo AnalogicRead, entao para corrigir nao tem jeito vou ter que cair em um Windows.

Danton, muito obrigado pela ajuda, analisar o fonte nem passou pela minha cabeca.

 

Dalton Massaiti Hioki disse:

Pessoal!!! O problema realmente é na comunicação do arduino com o Linux.... O que acontece é que se o arduino fica mandando dados para o Linux ininterruptamente.... O Linux não consegue se comunicar com o Arduino....

Confirmando, problema como o Dalton descreveu, hoje instalei o Arduino em Windows e mandei o Blink, depois consegui gravar no Arduino pelo Linux (Slackware).
Por acaso acabei de reiniciar o computador justamente por que não consegui colocar pra funcionar no Ubuntu, inclusive achei até um tutorial (http://scacinto.wordpress.com/2010/06/15/eeepc-ubuntu-10-04-arduino...) mesmo assim não consegui, vou  tentar a "gambiarra" citada acima.
Pessoal,

O Dalton não postou ainda, mas ele achou "nas entrelinhas", o seguinte:
http://www.arduino.cc/playground/Linux/Ubuntu

Atenção a última linha da página:
sudo usermod -aG dialout

É isso mesmo Dalton??? Isso resolve em definitivo???

Abraços!

uhahuauhauhahu Na verdade eu queria ver se esse era o problema mesmo..... ahuauhauhahuhauhauh mas blz.... tah aih pra quem quiser testar tbm!!! auhauhuahuhauh Mas lembrando que soh serve para o Ubuntu..... Quem tiver outra distribuicao, tem que olhar nesse link:  http://www.arduino.cc/playground/Learning/Linux

 

Abracos!!! Valeu Marcelo!!!

Consegui fazer funcionar aqui: Arduino UNO + Ubuntu 10.04

Antes não funcionava, creio que era por causa da versão, que não tinha suporte ao UNO, simplismente fui no site baixei a ultima versão 00-22. (pacote tgz)

http://www.arduino.cc/en/Main/Software

Ai extrai o pacote:

$ cd Download

$ tar xvzf arduino-0022.tgz

 

depois executei

 

$ cd arduino-0022

$ ./arduino

 

Ai conectei o cabo Usb, ele reconheceu um dispositivo (/dev/ttyACM0) no menu Serial Port, e também tinha a opção do arduino Uno no menu Board.

Vlw.

Puxa, senti uma grande diferença na velocidade de compilação comparado com windows.

Eu tive o mesmo problema usando Mac OS X e a linha
if(Serial.available()>0)
é essencial, caso contrário o Arduino (Uno e até o Duemilanove) podem parar de ser detectados em dado momento.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço