Show Posts
Pages: 1 ... 89 90 [91] 92 93 ... 220
1351  International / Portugues / Re: Analog Pins on: March 09, 2013, 07:56:02 pm
E o que vês no pino 19 ou A5?

Tens um LED? Ou estás a medir a tensão?
1352  International / Portugues / Re: BANCO DE DADOS sd card! on: March 09, 2013, 05:49:12 pm
ok... imaginemos 700 ms.

500 * 700ms = 350 segundos...
350/60 ~= 6 minutos.

Se isto for para controlo de entradas, prepara-te para ter pessoas a berrar que o sistema não funciona. Obviamente que isto é a pior situacão possível, mas mesmo se olhares para um valor mediano de 3 minutos ainda me parece exagerado. Mas eu sei pouco sobre onde vai ser implementado.
Achas que 3 minutos é aceitável para o sítio onde isto vai ser implementado?
Não ligues a isto... devia deixar de escrever em Fóruns logo após acordar.

Testaste com vários ficheiros?
Eu diria que a prova de fogo para esta aplicacão seria fazeres um programinha simples para pesquisar e fazer as operacões que normalmente fará em todos os ficheiros do cartão (os tais 500) e guardar os tempos para cada um deles.
Isto pode ser um pouco problemático em termos de memória talvez, então talvez consigas fazer uma média para garantir que o tempo médio de acesso seria mais ou menos 1 segundo.

1353  International / Portugues / Re: Gestão de tempo on: March 09, 2013, 05:37:02 pm
O delay para tudo é perpetuado pelos senhores do Arduino que teimam em meter exemplos com delays absurdos.
O delay é uma funcão que faz parte da biblioteca de C para AVRs e, ao contrário do que muita gente pensa ao ler os problemas de usar delay(), tem imensa utilidade e não pode simplesmente ser tirada da biblioteca. O problema é que o delay deve ser usado apenas para pequenas temporizacões. Estamos a falar de dezenas de milisegundos no máximo. Mas como isso não está limitado e a malta do Arduino mete isso como um exemplo, a maior parte das pessoas acha que é perfeitamente normal fazer delays de segundos... ou pior... minutos como já vi.

A solucão do Mortis é a mais correcta no Arduino. Se tiveres um RTC também podes usar isso para temporizar, mas aí só para intervalos de minutos ou horas.

Quanto a threads... enfim... tenho de ver a performance do microcontrolador para ver se realmente é uma solucão decente. No entanto, acho que provavelmente é apenas para os programadores de alto nível se entreterem com microcontroladores. LOL
1354  International / Portugues / Re: Segurança no arduino on: March 09, 2013, 01:04:48 am
A partir do momento que está na net... é sempre vulnerável. A única maneira de não o ser é se não estiver ligada à internet.

Como ligarias o teu servidor ao Arduino? Se estiverem ambos na mesma rede estás vulnerável na mesma...
1355  International / Portugues / Re: BANCO DE DADOS sd card! on: March 07, 2013, 09:15:17 pm
O que eu referia era ficheiros em vez de directórios.

O problema em usar apenas os últimos 5 digitos ´€ que podes ter vários (imensos...) cartões com os mesmos últimos digitos. :\

Se calhar terás de ter uma funcão que ao registar um cartão novo veja se esse número já existe. :\

1356  International / Portugues / Re: BANCO DE DADOS sd card! on: March 07, 2013, 05:25:45 pm
Hmmm, um ou dois segundos... 500 cartões...

Como disse, o código da RFID quantos caracteres tem?

Existe a possibilidade das RFID serem programadas para um numero série em especifico? Isso reduziria a complexidade do projecto para um nível incrívelmente simples uma vez que apenas terias de verificar se os digitos superiores conformavam com o que tinhas definido e ver se existia um registo com o numero dos restantes digitos.
1357  International / Portugues / Re: pic16c505 com arduino on: March 07, 2013, 05:20:51 pm
Acho que vieste bater à porta errada. :\
1358  International / Portugues / Re: avrdude: stk500_getsync(): not in sync: resp=0x00 on: March 06, 2013, 09:18:46 pm
Tens um UNO ou Duemilanove?
1359  International / Portugues / Re: BANCO DE DADOS sd card! on: March 06, 2013, 08:11:58 pm
A SD.h, na realidade implementa um sistema FAT...

Uma maneira que talvez seja "rápida" (é algo a testar) seria criar um ficheiro para cada cartão em que o nome do ficheiro seria o código RFID... o problema aí será talvez que a biblioteca SDFat apenas aceita nomes com 8 bytes...
1360  International / Portugues / Re: BANCO DE DADOS sd card! on: March 06, 2013, 08:05:15 pm
Tendo em conta a aplicacão, acho que desenvolver algo para ser similar a SQL ia ser um fardo sem grande proveito, acho...

É essencial ter ficheiros para leres os dados no PC? Ou serve poder alterar os dados no cartão através do Arduino?

O esquema de dados está já definido? Ou pode ir mudando? Se já estiver completamente definido, definir uma matriz no cartão será a forma mais simples, se tiveres de preparar para adicionar campos, a coisa muda completamente de figura, mas acho que deva ser possível de fazer. Bastará, digo eu, deixar X espaco como sobressalente na estrutura de dados e eventualmente adicionar campos e alterar o espaco sobressalente.

Algo assim:

Code:
struct {
    unsigned char RF_code[10]; //assumi um tamanho. Não sei quanto é. Mas isto pode também ser a chave primária
    char primeiro_nome[13]; //ajustar tamanho do nome?
    char ultimo_nome[13]; //ajustar?
    unsigned long ultimo_acesso; //usar um timestamp para ver quando o cartão foi usado pela última vez //Ponderar usar 64 bits...
    unsigned long numero_acesso; //numero de acessos deste cartão.
    unsigned char sobressalente[16];//usado para dar um registo com tamanho de 60 bytes.
}

Se precisasses de outro campo (que coubesse dentro dos 16 bits), farias:
Code:
struct {
    unsigned char RF_code[10]; //assumi um tamanho. Não sei quanto é. Mas isto pode também ser a chave primária
    char primeiro_nome[13]; //ajustar tamanho do nome?
    char ultimo_nome[13]; //ajustar?
    unsigned long ultimo_acesso; //usar um timestamp para ver quando o cartão foi usado pela última vez //Ponderar usar 64 bits...
    unsigned long numero_acesso; //numero de acessos deste cartão.
    unsigned char autorizado; //usar isto como um bool, se 1 está autorizado a entrar, se estiver a 0, não está
    unsigned char sobressalente[15];//usado para dar um registo com tamanho de 60 bytes.
}

Isto em principio não alteraria a localizacão dos dados na memória.

Depois poderias armazenar isto como um array, dando-te assim uma matriz mais simples de aceder.
Depois terias sim de criar uma funcão que serializasse e vice versa estes dados para gravar e ler do cartão. Um dos problemas que eu antevejo com isto é o tempo de pesquisa... ir buscar o numero do cartão vai demorar-te imenso tempo porque segundo sei os numeros de série dos cartões RFID não estão por ordem... Então terias de correr todo o array de numeros para ver se o cartão estava autorizado ou não.
Talvez pudesses melhorar isso usando um tipo inteiro (32 ou 64 bits) para o numero do cartão em vez do array... e isso facilitaria imenso as comparacões. :\

1361  International / Portugues / Re: BANCO DE DADOS sd card! on: March 06, 2013, 06:02:07 pm
Tipo SQL?

Mas queres algo funcional? Ou apenas prova de conceito?

O grande problema que tens nessa implementacão é o facto de quereres fazer um arquivo de texto. Isso implica um sistema de ficheiros e mais trabalho para o Arduino...

Se quisesses fazer uma base de dados onde não estavas limitado por um sistema de ficheiros (e estarias apenas a usar o cartão SD como memória), terias menos problemas, mas mesmo assim não sei quão bem funcionaria pois tinha de ir ler e escrever dados no cartão. :\

Queres especificar um pouco mais o que pretendes para a malta fazer aqui uma masturbacão mental sobre o assunto? smiley
1362  International / Portugues / Re: Ler um determinado pino em C# on: March 06, 2013, 03:44:53 pm
Como assim, dado cru?

Tu podes adicionar o que quiseres ao protocolo...

Podes fazer algo assim no Arduino:

Code:
if (Serial.available() > 3) {
   if (Serial.read() == 'S') {
       int number = (10 * (Serial.read()-48)) + (Serial.read() - 48);
       Serial.print("S");
       unsigned char status = digitalRead(number)
       Serial.print(number);
       Serial.print(":");
       Serial.print( status == HIGH ? "HIGH" : "LOW");
       
   }
}

1363  International / Portugues / Re: Qual é o melhor método para comparar 2 floats on: March 06, 2013, 03:40:18 pm
compara inteiros antes de os converteres para float? Esta é a minha solução, usar float apenas para visualização de valores, nunca para cálculos.

Dá uma vista de olhos aqui:

http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
http://floating-point-gui.de/errors/comparison/

Lembrei-me agora doutro truque que talvez te seja útil. Normalmente não precisas de 3 ou até duas casas decimais (porque são erro...), então podes passar a usar dezenas como a tua unidade em vez de unidades. Ou seja, o inteiro 115 na realidade quer dizer 11,5, mas para cálculos e comparacões isso não importa, e assim só precisas de converter para float quando quiseres visualizar.
Sem mais informacão não há como saber qual a melhor estratégia... mas isto costuma resultar bem.
1364  Development / Suggestions for the Arduino Project / Re: Arduino ladder logic programming ?? on: March 06, 2013, 03:50:21 am
http://cq.cx/ladder.pl

http://serverway.wordpress.com/2010/07/11/teensy-plc-controller/

This?
1365  International / Portugues / Re: Ler um determinado pino em C# on: March 05, 2013, 11:49:36 pm
Tens de definir um protocolo para isso.

O mais simples que podes implementar é manter a comunicacão aberta no C# e o Arduino enviar-te o estado do pino em todos os ciclos.

Code:

setup() {...}

void loop(){

Serial.println(digitalRead(22));

}

O ideal é implementar algo para o computador fazer um polling do Arduino (deixando-te assim saber quando ´€ que o Arduino deu o berro ou foi desligado, por exemplo).

Code:
C# seria algo assim

serialPort1.Write(S22);
E no Arduino:

Code:

...
if (Serial.available() > 3) {
   if (Serial.read() == 'S') {
       int number = (10 * (Serial.read()-48)) + (Serial.read() - 48);
       Serial.print(digitalWrite(number));
   }
}
Este código tem uma série de problemas que podem acontecer, mas mostra a funcionalidade que pretendes.
Pages: 1 ... 89 90 [91] 92 93 ... 220