LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: preytender em 22 de Janeiro de 2012, 00:07

Título: Arduino 1.0
Enviado por: preytender em 22 de Janeiro de 2012, 00:07
Acabei de instalar esta nova versao e descobri que nenhum dos meus sketches compila  :o

Ainda estou a tentar perceber as alterações que foram efectuadas mas parecem ser bastantes.
Mais alguem esta a ter problemas com isto ??

Obrigado, abraço.
Título: Re: Arduino 1.0
Enviado por: microbyte em 22 de Janeiro de 2012, 00:11
Quais são os erros que te são apresentados?
Título: Re: Arduino 1.0
Enviado por: preytender em 22 de Janeiro de 2012, 00:16
A lista é enorme mas comeca com este:

Código: [Seleccione]
WConstants.h: No such file or directory
O problema e que estou a incluir uma biblioteca da pololu #include <PololuQTRSensors.h> que pelos vistos faz qq coisa que nao e suportada nesta nova versao.
Título: Re: Arduino 1.0
Enviado por: preytender em 22 de Janeiro de 2012, 00:27
Talvez explicando de outra forma, eu tenho um sensor QTR-8RC para o qual fiz download da biblioteca no site da pololu.

Na versao 0023: menu ficheiro exemplos escolho o pololuqtrsensor, faço verificar e tudo Ok
Na versao 1.0: faço exactamente o mesmo e da uma lista enorme de erros.

Para alem disto outras bibliotecas que eu proprio fiz nao estão a compilar.
Título: Re: Arduino 1.0
Enviado por: KaliKeira em 22 de Janeiro de 2012, 00:32
Tenho o mesmo problema...

A minha solução temporária é usar uma versão anterior (no meu caso a 0022) e só quando as bibliotecas foram feitas mesmo para a versão 1.0 é que uso essa versão...

Não vejo assim melhorias significativas em usar a versão 1.0 pelo que para mim chega a 0022...
Título: Re: Arduino 1.0
Enviado por: preytender em 22 de Janeiro de 2012, 00:42
Poix   :-\

Na pasta hardware/cores da nova versao faltam alguns ficheiros que existiam nas versoes anteriores tais como WConstants.h e wiring.h, penso ser esta a causa do problema.

Ate melhor solução acho k tambem me vou manter na versao 0023.
 
Título: Re: Arduino 1.0
Enviado por: msr em 22 de Janeiro de 2012, 01:24
Não sou utilizador frequente do Arduino, mas ha uns tempos andei a dar uma vista de olhos no novo IDE para ver as diferenças e uma coisa que reparei é que agora incluem o ficheiro "Arduino.h", antes acho que se chamava "WProgram.h". É nesse header que estão incluidas as várias bibliotecas Wiring, etc. Vê se tem a ver com isso.
Título: Re: Arduino 1.0
Enviado por: senso em 22 de Janeiro de 2012, 02:25
A infinita inteligência do pessoal do Arduino voltou a fazer das suas e como tal, tudo quanto é bibliotecas que incluam o WProgram dão erro porque os senhores se lembraram de mudar o nome desse ficheiro para Arduino, e não coube na sua cabecinha que iam dar cabo de anos de código e bibliotecas criadas por N pessoas, é que basta meia duzia de linhas de código de pré-processador no inicio do ficheiro para não dar barraca, mas tendo em conta que vem das pessoas que desligaram os warnings do compilador, que continuam a teimar em não mostrar o uso de ram em compile-time ou que na biblioteca de SPI que é copy paste da datasheet conseguiram meter 2 bugs, ou que o sistema de interrupções está sériamente comprometido, a sorte é que o user tipico de arduino muito raramente as usa, e muitos mais bugs que são colocados no bug tracker e que são ignorados.
Título: Re: Arduino 1.0
Enviado por: XicoMBD em 28 de Janeiro de 2012, 15:59
Boas

Eu tenho estado a utilizar o 1.0 desde que saiu e não tenho tido grandes problemas.
Tive que fazer algumas modificações nalguns dos meus sketches, especialmente os que usam a biblioteca Wire, mas nada de mais.

Podem tentar corrigir esse problema colocando este código no *.h das bibliotecas, pode nao corrigir todos os problemas mas pelo menos esse fica despachado:
Código: [Seleccione]
#if (ARDUINO >= 100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif

Eu agora deparei-me foi com outro problema:
Recentemente adquiri um Arduino Mega ADK e ao seguir este tutorial (http://labs.arduino.cc/ADK/AccessoryMode (http://labs.arduino.cc/ADK/AccessoryMode)) sempre que corria o código no 1.0 tinha este erro:
Código: [Seleccione]
In file included from _01_digitalRead_adk.cpp:13:
C:\Users\Francisco Dias\Documents\Arduino\libraries\AndroidAccessory/AndroidAccessory.h:71: error: conflicting return type specified for 'virtual void AndroidAccessory::write(uint8_t)'
C:\Program Files\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'
Entretanto experimentei instalar o 1.0-beta1, que é o que estava nesse tutorial, e funcionou lá.
Parece-me ridículo funcionar no beta e nao na versão estável...

Alguma ideia sobre porquê é que isto acontece, ou se há alguma solução?
Título: Re: Arduino 1.0
Enviado por: joaopedrocmp em 31 de Março de 2012, 14:14
Boas, tmb tive um problema.

Fiz o seguinte codigo para ler os endereços de uns interruptores dip pelas portas analógicas, para trabalhar com dmx, mas, quando o codigo é posto no arduino com o 0023, funciona, com o 1.0 não.

Código: [Seleccione]
int setch;

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

void loop() {
readdipchanel();
Serial.write("DIPVAL:");
Serial.write(setch);
delay(1000);
}

void readdipchanel(){
 
int dip1;
int dip2;
int dip3;
int dip4;
int dip5;
int dip6;

int valA0;
int valA1;
int valA2;
int valA3;
int valA4;
int valA5;
 
valA0 = analogRead(A0);
valA1 = analogRead(A1);
valA2 = analogRead(A2);
valA3 = analogRead(A3);
valA4 = analogRead(A4);
valA5 = analogRead(A5);

if (valA0 > 500){dip1 = 1;}
if (valA0 <500) {dip1 = 0;}
if (valA1 > 500){dip2 = 2;}
if (valA1 <500) {dip2 = 0;}
if (valA2 > 500){dip3 = 4;}
if (valA2 <500) {dip3 = 0;}
if (valA3 > 500){dip4 = 8;}
if (valA3 <500) {dip4 = 0;}
if (valA4 > 500){dip5 = 16;}
if (valA4 <500) {dip5 = 0;}
if (valA5 > 500){dip6 = 32;}
if (valA5 <500) {dip6 = 0;}

setch = (dip1 + dip2 + dip3 + dip4+ dip5 +dip6);
}

Ah, e ao fazer upload com o 1.0, ja mudei o serial.print , para serial write. mas mesmo assim....
Título: Re: Arduino 1.0
Enviado por: senso em 31 de Março de 2012, 14:19
Mas dá erro a compilar?
Ou simplesmente não funciona?
Título: Re: Arduino 1.0
Enviado por: joaopedrocmp em 31 de Março de 2012, 14:32
Erro meu.

Tinha lido não sei onde que no 1.0 tinha que se utilizar o Serial.write, e pelo que vi, essa função não funciona com variaveis.

Mas agora tentei o print, e funciona na mesma :)
Título: Re: Arduino 1.0
Enviado por: microbyte em 31 de Março de 2012, 16:34
Serial.write funciona com variáveis sim senhor. Tens é de ler a documentação.

O write é para mandares bytes em raw. Se meteres write(0x30) é enviado um 0x30. O print é mais usado para debug porque se meteres print(49) ele em vez de te enviar o caracter ascii 49, envia-te 2 caracteres, o 4 e o 9.
Título: Re: Arduino 1.0
Enviado por: joaopedrocmp em 31 de Março de 2012, 16:43
thanks :)