Show Posts
Pages: 1 [2] 3 4 ... 34
16  International / Portugues / Re: Sensor D6T Thermal on: February 19, 2014, 07:45:57 pm
E o quanto sabes de programação? Procure saber o que é i2c, veja como usar i2c no arduino e veja sobre o serial monitor do arduino (é apenas para enviar e receber mensagens via serial, não para gerar gráficos ou qualquer outra coisa alem de trocar mensagens via serial).

Perceba que existe uma imagem dos pinos do teu chip... observe que existem dois pinos SCL e SDA, se você for na página das boards do arduino verificará que o arduino tem dois pinos com essa mesma finalidade, é neles que você deve conectar, essa interface se chama i2c. o japa já disse quais eram:

SCL - A5 ---->>>> SCL do módulo na porta analógica 5 (SCL do arduino)
SDA - A4 ---->>> SDA do módulo na porta analógica 4 (SDA do arduino)

O japa coloca no segundo código: "D6T-44L test program for Processing" <--- linguagem de programação.

Você tem um uno? se sim, veja do que se trata e o que tem na placa:
http://arduino.cc/en/Main/arduinoBoardUno#.UwVPv_ldX_E <--- menu acima Products

E de uma olhada no Learning:
http://arduino.cc/en/Guide/HomePage#.UwVRhfldX_E <----- Menu acima Learning

Fiquei com a impressão de que você quer começar pelo fim, mas antes você precisa saber o básico e os caras do arduino (Time que faz o site) explicam quase tudo que se pode fazer com o arduino smiley-wink

Bons estudos
17  International / Portugues / Re: Material de estudo para muitas cabeças on: February 19, 2014, 03:44:14 pm
Valeu a dica! Conferirei!  smiley
18  International / Portugues / Re: Sensor D6T Thermal on: February 19, 2014, 01:17:03 pm
Melhorou um pouco rs

Percebi que tem resolução em pixels (?)

Mas realmente é uma boa opção para detectar presença!
19  International / Portugues / Re: Alternativa para abaixar tensão em linha serial 5v/3v3 on: February 19, 2014, 09:06:52 am
Eu iria de lógica B, acho mais seguro trabalhar com transistores (já que nos arduinos temos o pino 3.3v)
20  International / Portugues / Re: Case ou caixa plástica para projeto on: February 19, 2014, 09:02:39 am
É... infelizmente as impressoras 3D ainda são caras (principalmente as com maior precisão).

Iniciei um projeto de CNC para fresar placas de circuito impresso, mas travei na parte estrutural (desejava baixo custo e boa precisão).  Dá na mesma a impressora 3D, mudando o motor para um extruder e aumentando o eixo Y.

A parte eletrônica (drivers e motores de passo) eu já tenho, a parte de softwares temos muitas opções (usando G-Code), mas ainda é um projeto caro smiley-cry

Se alguém tiver uma e quiser imprimir as partes seguindo o projeto RepRap é só me passar os custos smiley-wink

Cases, Boxes e partes para diversos projetos seriam fáceis de fazer.
21  International / Portugues / Re: Case ou caixa plástica para projeto on: February 19, 2014, 08:17:03 am
Ser for case em acrílico, pode-se procurar por essas empresas que fazem corte a laser (exemplo), tenho uns projetos (acrílico e mdf) que ainda preciso desenhar e pedir orçamentos, portanto ainda não faço ideia do quanto custa.

Uma impressora 3D essas horas seria uma boa =) instructables
22  International / Portugues / Re: Sensor D6T Thermal on: February 19, 2014, 07:59:19 am
Você mora no Brasil? Conseguiu esse sensor onde? Achei bem interessante, fiquei interessado em utilizá-lo para automação residencial! Ele parece servir perfeitamente como detector de presença (e não somente de movimento).

É, eu gostei desse sensor também (para meu sistema de segurança seria legal), mas o preço  deste anúncio no ebay me desanimou um pouco  smiley-eek-blue
23  International / Portugues / Re: Sensor D6T Thermal on: February 18, 2014, 04:20:41 pm
Cara,

Não Falo, tentei esse site, mas está dificil de entender e é estranho o GND e o VCC ligarem em portas analogicas...

Apesar de não ser o "correto" esse módulo consome apenas 5mA, então (acredito) não coloca a porta do arduino em risco http://www.omron.com/ecb/products/pdf/en-d6t.pdf

Não precisamos saber japonês para entender os códigos  smiley-evil

Bom a interface é I2C, bota o VCC no 5V do arduino, o GND no GND e testa o código do japa (removendo as partes em que usa as portas como VCC e GND).

É o que eu faria =)
24  International / Portugues / Re: Automação residencial em módulos on: February 14, 2014, 01:11:04 pm
Creio que o máximo que conseguimos foi o rele de estado sólido (em substituição ao rele gorducho) e interruptor touch (para tirar o trambolho do interruptor tradicional). Mas a fonte (e no meu caso as baterias) ainda ocupam muito espaço, o único negócio parece ser quebrar a parede e colocar caixinhas maiores (aquelas 2x) rs

Esse RF não é muito menor que o nordic que a maioria esta usando...
25  International / Portugues / Re: Ajuda para arrumar hora on: February 13, 2014, 12:56:38 pm
sim, é possível, é só você criar um método para chamar tanto via serial monitor quanto via comando web (post/get)...

um exemplo mais direto: https://github.com/turicas/DS1307/blob/master/examples/SetDateBySerial/SetDateBySerial.pde
26  International / Portugues / Re: Ajuda para arrumar hora on: February 13, 2014, 12:19:03 pm
Pensei que você tinha removido o comentado da parte abaixo:
Code:
/*
second = 45;
minute = 55;
hour = 9;
dayOfWeek = 2;
dayOfMonth = 30;
month = 4;
year = 13;
setDateDs1307(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
*/

A ideia no tutorial é fazer o upload da parte acima sem comentário e na sequencia fazer um novo upload com essa parte comentada, para que a hora fique gravada no chip e a bateria a mantenha lá.

Você também pode deixar a parte acima comentada e alterar a hora via serial, abaixo o primeiro tuto que encontrei.
um tutorialzinho de interação com a serial http://www.instructables.com/id/Setting-the-DS1307-Real-Time-Clock-using-the-Seria/?lang=pt
27  International / Portugues / Re: Ajuda para arrumar hora on: February 13, 2014, 11:56:15 am
onde você alterou a hora do módulo? Se foi no setup, toda vez que o arduino reiniciar a hora será alterada para o que esta no código, mas precisamos ver como esta o código que você usou. a bateria do módulo esta boa?

28  International / Portugues / Re: Automação residencial em módulos on: February 13, 2014, 11:24:10 am
Ola colegas recentemente também comprei 10 nrf no ebay e este fim de semana vou brincar um pouco com eles.Vou tentar usar a lib do maniacbug e depois descrevo como correu por aqui.


Aew!!! Bem vindo ao clube Nordic RF  smiley-lol

Para você a coisa deve ficar fácil, mas esses bichinhos são interessantes =)

Qual modelo você comprou (com ou sem plus, com ou sem antena, etc)?
29  International / Portugues / Re: Automação residencial em módulos on: February 13, 2014, 11:21:36 am
Bacana... e já tens as torneiras funcionando com touch? ^^

Bom, eu dissequei vários códigos e bibliotecas (maniac, Stefan Engelkeaaronds, entre outros), precisava descartar os problemas com a parte de software. Li algumas vezes o datasheet (ainda preciso repassar alguns detalhes), o chip é pequeno, mas não é nada simples (pelo menos pra mim rs), porem entendo um pouco melhor como a coisa funciona. X)

Num primeiro momento, como minha automação inclui a parte de segurança, o master não pode ter o luxo de ficar sem ouvir por longos períodos, e como o papel do objeto "radio" da biblioteca do maniac é tentar enviar até que receba o ack ou o tempo chegue no timeout, alterei o abaixo no RF24.ccp

Code:
bool RF24::write( const void* buf, uint8_t len ) {
  (...)
  //const uint32_t timeout = 500;
  const uint32_t timeout = 50;
  (...)
}

bool RF24Network::write_to_pipe( uint16_t node, uint8_t pipe ){
  (...)
  //short attempts = 5;
  short attempts = 1;
  (...)
}

bool RF24Network::write(uint16_t to_node){
  //int retries = 3;
  int retries = 1;
}

Pelos meus testes os nodes responderão entre 8 e 20 ms, coloquei no loop do arduino o encargo de reenvio (tirando da livraria a responsabilidade), assim o master não para de ouvir os outros nodes por uma situação qualquer em um node (leitura de sensores ou algum processamento, por exemplo).

Para testes das requisições do master, as partes que interessam (pois o resto é parecido com o exemplo txrx), ficaram assim:
Code:
(...)
#define dlyCheck 0
#define dlyMonit 1

const unsigned long intDelay[] = {100UL, 1000UL};
unsigned long longLastMillis[] = {0UL, 1000UL};

uint8_t this_node = 0;
int to_node_idx = 0;
unsigned long next_check_time = 0;

enum state {OFF, ON, waiting, error};

struct message_t {
  int Id;
  bool Value;
};

struct nodes_t {
  uint8_t Node;
  char Name[8]; //TODO: change to use progmem http://www.nongnu.org/avr-libc/user-manual/pgmspace.html
  state State;
  unsigned long LastRequest;
  unsigned long LastResponse;
  uint8_t retries;
  bool Light;
  bool Presence;
  bool Door;
}
Node[Nodes_Count] = {
  {0,"Master", OFF, 0UL, 0UL},
  {1,"Living", OFF, 0UL, 0UL},
  {2,"kitchen", OFF, 0UL, 0UL},
  {3,"F-Room", OFF, 0UL, 0UL},
  {4,"B-Room", OFF, 0UL, 0UL},
  {5,"Hall", OFF, 0UL, 0UL}
};

#if defined(__AVR_ATmega2560__)
RF24 radio(9,53);
#else
RF24 radio(9,10);
#endif

RF24Network network(radio);
(...)
void setup() {
  //    JP_1    Node
  //(X) ( ) ( ) 0
  //( ) (X) ( ) 1
  //( ) ( ) (X) 2
  //(X) (X) (X) 3
  //( ) (X) (X) 4
  //(X) (X) ( ) 5

  //TODO: change to use direct port access
  pinMode(JP_1,INPUT);
  pinMode(JP_2,INPUT);
  pinMode(JP_3,INPUT);

  // turn on pullup resistors
  digitalWrite(JP_1, HIGH);
  digitalWrite(JP_2, HIGH);
  digitalWrite(JP_3, HIGH);

  delay(20); //wait to stabilize(?)

  bool JP1 = digitalRead(JP_1) == LOW;
  bool JP2 = digitalRead(JP_2) == LOW;
  bool JP3 = digitalRead(JP_3) == LOW;

  if (JP1 && !JP2 && !JP3) this_node = 0u;
  if (!JP1 && JP2 && !JP3) this_node = 1u;
  if (!JP1 && !JP2 && JP3) this_node = 2u;
  if (JP1 && JP2 && JP3) this_node = 3u;
  if (!JP1 && JP2 && JP3) this_node = 4u;
  if (JP1 && JP2 && !JP3) this_node = 5u;

  if(this_node == 0)
    to_node_idx = 1;

  Serial.begin(57600);
  radio.begin();

  network.begin(75, this_node);
 
  Serial.print(Node[this_node].Name);
  Serial.println(F(" Initialized"));

  pinMode(LED_ON, OUTPUT);
  digitalWrite(LED_ON, HIGH);
}
(...)
void StatusRequest(void){
  unsigned long now = millis();

  if ((now - longLastMillis[dlyCheck] >= intDelay[dlyCheck])
    && (Node[to_node_idx].retries < 3)
    && (Node[to_node_idx].State != error)
    && ((now - Node[to_node_idx].LastRequest) >= TimeCheck)
    ){
      longLastMillis[dlyCheck] = now;
      Node[to_node_idx].State = waiting;   
      Node[to_node_idx].LastRequest = now;

      RF24NetworkHeader header(/*to node*/ Node[to_node_idx].Node, /*type*/ 'S' /*Status*/);
     
      if (network.write(header, &now, sizeof(now))) {
        Serial.print(F("Sent Status Request: "));
        Serial.print(now, 10);
        Serial.print(F(", To Node: "));
        Serial.println(Node[to_node_idx].Name);

        Node[to_node_idx].retries = 0;
      }
      else {
        Serial.print(F("Node: "));
        Serial.print(Node[to_node_idx].Node);
        Serial.print(F(" - "));
        Serial.print(Node[to_node_idx].Name);
        Serial.println(F(" no found"));

        Node[to_node_idx].retries++;
      }
  }
  if(to_node_idx == Nodes_Count -1)
    to_node_idx = 1;
  else
    to_node_idx++;
}

O código acima esta longe de ser o código final. Nem é o atual em desenvolvimento, o atual esta quase impossível de ler (rs), a biblioteca do maniac parece a mais completa, mas estou com todos "os métodos que interessaram" em um único sketch gigante, pois usando o VS2010 com o visual micro add-in consigo ver mais detalhes enquanto escrevo o código (ir para definições [que não o .h], auto-completar, bookmarks, etc  smiley-wink )

Juro que não imaginava que essa parte seria a mais complicada =) Mas quando tiver algo mais próximo de completo/real eu posto aqui.
30  International / Portugues / Re: Automação residencial em módulos on: February 13, 2014, 05:35:32 am
E ai Legend? Chegou a mexer em algo nas libs do NRF ou esta usando a do maniac bug integralmente?
Pages: 1 [2] 3 4 ... 34