Show Posts
Pages: 1 ... 89 90 [91] 92 93 ... 220
1351  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. :\

1352  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
1353  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");
       
   }
}

1354  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.
1355  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?
1356  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.
1357  International / Portugues / Re: Tipos de sensores a venda on: March 04, 2013, 09:35:32 pm
ultra som é como um sonar... envia uma onda, espera pela resposta e sabe a distância a que o objecto está.

Infra Vermelho funciona da mesma forma, mas só recebes sinal se o obstáculo for reflectivo.

Os sensores de presenca, se me recordo funcionam por calor... mas não são simples de fazer o interface com o microcontrolador.

Ultra som talvez seja o ideal para o que pretendes.
1358  International / Portugues / Re: Tipos de placas para comunicação wireless on: March 03, 2013, 08:43:47 pm
Ok...

Já percebi melhor. Então, a opcão mais "barata" na minha opinião (que estou a pensar fazer algo semelhante) é teres um Arduino central ligado à internet (assumindo que vais guardar os dados na internet), que pode ser com fio (uma vez que os shields são extremamente mais baratos) e com um destes módulos RF.

http://www.ebay.co.uk/itm/10Pcs-NRF24L01-2-4GHz-Antenna-Wireless-Transceiver-For-Microcontroller-WST-New-/390516519936?pt=UK_BOI_Electrical_Test_Measurement_Equipment_ET&hash=item5aec993400

Depois colocas um Arduino (ou semelhante) com um radio destes a adquirir os dados que pretendes a enviar para o Arduino central.

Assim não precisas de ter Wifi em lado nenhum (por causa do custo). Não precisas de usar XBee (apesar de ser também possível de fazê-lo). E nem sequer precisas de usar Arduinos nas unidades remotas, podes usar apenas um chip ou então um Arduino mini ou algo do género. smiley

Existe outra opcão que são os JeeNodes, mas estes não seriam tão fáceis de ligar a um shield Ethernet (apesar de ser possível de fazer com jumper wires).

http://jeelabs.net/projects/hardware/wiki/JeeNode
1359  International / Portugues / Re: Tipos de placas para comunicação wireless on: March 03, 2013, 04:37:42 pm
Se calhar definir o que se pretende em termos de comunicacão wireless, ajudaria a fazer a escolha acertada em termos de tecnologias sem-fio... ¨

Se a aplicacão pretendida é ligar à internet, então o modelo que o mmocsz indicou é o ideal. Se o objectivo é ocmunicar entre dois microcontroladores exclusivamente, a melhor opcão (na minha opinião) é mesmo um módulo nrf24l01, se quiseres ter a flexibilidade de ligar a um computador ou microcontrolador, então a XBee será o ideal.
1360  International / Portugues / Re: TFT lcd+arduino mega on: March 01, 2013, 08:59:01 pm
Isso parece-me imenso com ruído na ligacão... já tentaste prender um pouco mais os fios?
1361  International / Portugues / Re: TFT lcd+arduino mega on: March 01, 2013, 07:52:09 pm
O LCD está ligado a um shield?
1362  International / Portugues / Re: Voltímetro com LCD em Arduino on: March 01, 2013, 07:49:17 pm
O artigo do site assume imensa coisa que pode não ser verdade para chegar à precisão da dummy load... primeiro assume que a onda é sinusóidal, o que não é verificado... assume que o DVM mede correctamente o Vrms sobre uma gama elevada de frequências... o que na maior parte deles não é verdade e o que me incomoda ainda mais no artigo é a assumpcão que as resistências têm 50Ohm. Obviamente que a diferenca será normalizada com o facto de estarem em paralelo, mas ainda assim...

Acabada a minha rant, o Arduino nunca poderá substituir um multímetro. Simplesmente não é feito para isso. Se arranjares um circuito que faca essa medicão de forma correcta, podes sim ligar esse circuito ao Arduino para fazer o interface com o LCD, mas colocar o Arduino a medir com esse nível de precisão é impossível, ou extremamente trabalhoso com mudancas de escala que introduzem erros próprios e delays no circuito (que não seria muito mau para a tua aplicacão). 
1363  International / Portugues / Re: Voltímetro com LCD em Arduino on: March 01, 2013, 06:25:07 pm
De novo...

A tensão rms dum sinal DC não é o valor do sinal DC? Porque divides um valor DC por raíz de 2?

200Vdc é uma tensão perigosa!!!! E o facto de teres resistências com 800W é indicacão que a corrente que lá vai passar não é baixa.

Estás a usar DC ou AC?
1364  International / Portugues / Re: Recuperar hora de um servidor web com arduino on: March 01, 2013, 05:32:50 pm
Usando mais ou menos o mesmo código, consegues o que queres...

Code:
if (client.connect(server, 80))
        {
          Serial.print("\n\n\r***** Conectado -> tuga.com *****\n\n\r");
          client.print("GET ");
          client.print("http://tuga.com/Le_bd.php");   
         ...
          while (client.available <=0); //espera pela resposta...
          char resposta = client.read();           
         
          Serial.print(resposta);
       
O segredo disto vai estar no script Le_bd.php.

Experimenta algo assim:

Code:
<?php

echo "a"

?>


Agora só tens de adaptar o script para ler da BD e mandar a resposta para o Arduino.
1365  International / Portugues / Re: Recuperar hora de um servidor web com arduino on: March 01, 2013, 04:49:17 pm
Desculpa... tu falas em pedir a hora do Servidor... como muito provavelmente o servidor de SQL não tem o servico NTP, o mais próximo que tens disso é saberes onde o servidor está e perguntar a um servidor NTP nessa mesma zona pela hora.

Se tivesses dito que querias recuperar dados da BD... a resposta seria diferente... aliás, näo haveria resposta porque não percebo o que pretendes. O que é que um setpoint tem a ver com a hora dum servidor?

Faz uma pergunta bem estruturada e cá estamos para responder. smiley-wink
Pages: 1 ... 89 90 [91] 92 93 ... 220