Pages: 1 ... 4 5 [6] 7 8 ... 13   Go Down
Author Topic: DOMOTICA: Comunicazione tra arduini tramite RF lowcost  (Read 13616 times)
0 Members and 1 Guest are viewing this topic.
Palermo
Offline Offline
God Member
*****
Karma: 2
Posts: 745
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per resettare l'ATmega, necessario prima di caricare gli sketch, infatti dovrai fare un piccola procedura (tenere premuto il pulsante quando carichi il codice, e rilasciarlo non appena vedi che ti mostra la dimensione del codice).

Se non lo metti poi devi giocare con un cavetto "leva e metti", in modo da simulare la pressione del pulsantino
Logged

Gianfranco

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ma io avevo pensato: costruisco il nodo, e ci metto lo zoccoletto (se riesco a trovarlo) come sull'arduino, così se ci devo caricare lo sketch stacco il uC e lo metto dentro all'arduino e lo carico, poi rimetto il uC nella millefori del nodo e bon
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Palermo
Offline Offline
God Member
*****
Karma: 2
Posts: 745
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah, in questo modo il problema non si pone ovviamente!

In ogni caso non so quale tutorial stia usando, ma qui ne trovi uno completo: http://arduino.cc/en/Main/Standalone
Logged

Gianfranco

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dove trovo lo zoccoletto per l'atmega???
comunque stavo seguendo proprio quello smiley
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Palermo
Offline Offline
God Member
*****
Karma: 2
Posts: 745
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io li ho presi su ebay se non sbaglio, in quanto robot-italy, dove solitamente acquisto, non li aveva quando ho fatto l'ordine.
Logged

Gianfranco

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 329
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io gli zoccoletti li ho presi su ebay..  1.50 - 5pz.

ho preso dallo stesso venditore anche altre cose tipo pulsantini morsettiere e contenitori in abs.

P.S. per quanto riguarda i modulini RF di Sparkfun mi sono arrivati ... Il problema è che sono fuori casa gia da una settimana e ritorno Martedì. Li proverò appena possibile  smiley-wink
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un consiglio ai neofiti: quando acquistate gli zoccoli, assicuratevi che siano larghi 300mils o 0.3", e non 600 mils o 0.6". La prima è la larghezza dei chip Atmega, la seconda è quella dei comuni chip DIP da 40 piedini.

Sembra una cavolata ma se non si trovano immagini a corredo dell'articolo che si sta comprando, è facile sbagliare l'acquisto. Ecco la differenza:


* DIP28-300mils.jpg (11.05 KB, 250x250 - viewed 1 times.)

* DIP28-600mils.jpg (14 KB, 300x300 - viewed 1 times.)
Logged


Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 329
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Giusta osservazione!!
Quando sono andato in un negozio fisico, mi hanno propinato quelli da 0.6 che ovviamente non andavano bene...

Quindi ho ordinato QUESTI
« Last Edit: March 25, 2011, 04:59:58 am by dr4gone » Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie per la precisazione!
dai che voglio sapere qualcosa di questi moduli RF smiley-lol
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 329
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Come detto devi pazientare un po smiley-grin . Sono a 1000 km da casa smiley-grin
Martedí dovrei tornare e in settimana faró le prove smiley-grin
Logged

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 329
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok prime prove concluse senza molto sucesso.
Mi capita che il ricevitore scriva geroglifici in modo costante appena lo collego se tolgo il cavo ad arduino ovviamente non scrive più nulla.
Se elimino i modulini e metto il cavo funziona nuovamente tutto.

Potrebbero essere delle interferenze?

sul primo arduino (TX) uso questo codice
Code:
#include <NewSoftSerial.h>

NewSoftSerial mySerial(2, 3);

void setup()  
{
  Serial.begin(2400);
  Serial.println("=================================================");
  Serial.println("Ciao sono Arduino");
  Serial.println("Dimmi cosa devo fare!");
  Serial.println("---------------------------------------------");
  Serial.println("|        I COMANDI DISPONIBILI SONO:        |");
  Serial.println("---------------------------------------------");
  Serial.println("L o l per accendere la luce!");
  Serial.println("=================================================");
  Serial.flush(); // svuoto il buffer di ricezione seriale
  mySerial.begin(2400);
  mySerial.flush(); // svuoto il buffer di ricezione seriale
}

void loop()
{
  if (mySerial.available()) {
      Serial.print((char)mySerial.read());
  }
 if (Serial.available()) {
     mySerial.print((char)Serial.read());
  }
}

Sul secondo (RX) uso questo
Code:
#include <NewSoftSerial.h>
#define luce 6

byte rx = 0;    // variabile per contenere il carattere ricevuto

NewSoftSerial mySerial(2, 3);

void setup()  
{
  
  pinMode(luce, OUTPUT);
  Serial.begin(2400);
  Serial.println("Ciao sono Luigino328");
  Serial.flush(); // svuoto il buffer di ricezione seriale
  mySerial.begin(2400);
  mySerial.flush(); // svuoto il buffer di ricezione seriale
}

void loop()
{
  if (mySerial.available()) {
      Serial.print((char)mySerial.read());
  }
  if (mySerial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
{
rx = mySerial.read(); // leggo il carattere ricevuto e lo memorizzo in rx
                mySerial.flush(); // svuoto il buffer di ricezione seriale
 
if (rx=='L' || rx=='l') //
{
 
if (digitalRead(luce) == HIGH) // il led era acceso?
{
digitalWrite(luce,LOW); // lo spengo
                                Serial.println("OFF");
                                delay(250);
}
else  // il led era spento
{
digitalWrite(luce,HIGH); // lo accendo
                                Serial.println("ON");
                                delay(250);
}
 
}
 
                    }
                  }
Ho preso spunto da questo documento per i collegamenti http://www.sparkfun.com/datasheets/RF/KLP_Walkthrough.pdf
I collegamenti sono  fatti così
TX

RX
« Last Edit: March 29, 2011, 10:21:07 am by dr4gone » Logged

Campi Bisenzio
Offline Offline
Sr. Member
****
Karma: 0
Posts: 301
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
da quello che riesco a vedere, i moduli sono i TLP/RLP 434-A e qui dovrebbero lavorare a 4800 e non a 2400 (questo spiegherebbe i caratteri geroglifici)

Saluti
Logged

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 329
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non va comunque, ho appena provato.
Comunuqe basta settare òa velocità della seriale e della consolle, in maniera identica..
E non credo che sia quello il problema.. infatti credo che selezionando una velocità inferiore non ci siano problemi, che magari al contrario si possono verificare selezionando una velocità maggiore.

Altre idee?
Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non c'è modo per essere sicuri che le interferenze non rompano??? tipo se schermi la zona in cui stai trasmettendo...non so come però smiley-lol
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 329
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, ho cambiato radicalmente approccio e ho usato un 'altra libreria per far comunicare un tx e un rx .

La libreria si chiama "virtualwire" che sembra davvero funzionare...
Ora ci vuole il tempo per adattare il codice per la gestione di luci e altro...

Per ora sono riuscito a far si che quando sull' arduino con trasmettitore si preme un pulsante, sull'altro arduino con ricevitore viene stampato un comando sul serial monitor.

Work in progress  smiley-wink
Logged

Pages: 1 ... 4 5 [6] 7 8 ... 13   Go Up
Jump to: