Pages: [1] 2 3   Go Down
Author Topic: Rete di arduini  (Read 3059 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Devo creare una rete di arduini in grado di comunicare tra di loro, ma vorrei evitare la classica topologia master - slave.
Da dove posso cominciare a documentarmi?
Logged

Matteo Lucchesi - Luccalug President

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 11
Posts: 3091
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Qui si chiedeva uan cosa simile a quella a questa
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225573352
se poi indichi quale tipologia vuoi creare e' piu' facile. Considerando che sostanzialmente anche quasi tutta internet lavora su un presupposto di server-client, forse vuoi fare una rete distribuita?
F
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un'idea potrebbe essere la TWI (nota anche con il nome di I2C) ma non è indicata per grandi distanze. Di solito si utilizza per far comunicare integrati che stanno sulla stessa scheda.

Il TWI prevede anche il multi-master e, per come è fatto, evita automaticamente che più master possano entrare in collisione.
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma una bella idea non sarebbe fare una bella libreria che crei un protocollo su rs485???
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non sarebbe male infatti sfruttare il 485.
Sennò una rete CAN...
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ma una bella idea non sarebbe fare una bella libreria che crei un protocollo su rs485???

Esiste già:
https://sites.google.com/site/jpmzometa/arduino-mbrt

E prevede anche che un pin venga preposto come abilitazione del trasmettitore nel caso si utilizzi una 485 half-duplex. Funziona, la sto usando...

Però non prevede la possibilità di un multi-master, deve esserci un master e più slave.
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sarebbe però da implementare una libreria semplice come la seriale normale ma che funzioni come la I2C in modo da collegare più dispositivi sulla stessa linea...

Se avete voglia di darmi una mano... io proverei anche a scriverla una libreria ma necessito di aiuto anche perchè non l'ho mai fatto...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5973
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scusa ma piu' che una libreria tu vorresti creare proprio un nuovo protocollo ?
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scusa ma piu' che una libreria tu vorresti creare proprio un nuovo protocollo ?
Più o meno, nel senso, basarsi su qualche standard di comunicazione che già esiste per semplicità, per gli integrati che possono servire etc.. e scrivere un protocollo che semplifichi all'osso il tutto...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a dare un'occhiata al link che ti ho pubblicato. Più semplice di quello non c'è, ci sono due funzioni: una per la configurazione iniziale e l'altra da eseguire ogni ciclo per aggiornare i dati.
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

se posso dire la mia basta una libreria con 4 funzioni:
init
send
read
available

si basano sulla seriale, in init si passano i valori di tx, rx, il pin necessario per le comunicazioni half duplex (commuta il max485 o equivalente da sender a recevier) e l'id di arduino.

poi la funzione send:
serial.write(idarduino);
serial.write(messaggio);
serial.write(255);

non serve molto, così si possono collegare fino a 254 arduini tutti insieme e non vi sono master o slave (sarebbero tutti master)

available equivale all'available della newsoftserial (ci basiamo su quella così è possibile la comunicazione su 3 pin qualsiasi) e read puoi mettere uno script tipo
Code:
void read() {
  char value[];
  while(myserial.available() > 0) {
    value += myserial.read();
  }
  // va messo un modo per togliere il primo carattere, tipo far shiftare l'array ed eliminare il byte di stop
  return value;
}

non sono un espertissimo ma non è fattibile?
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate, la discussione ha preso una via autonoma. Volevo fare una banale domanda:
l' rs485 è uno standard per quanto riguarda solo l'hardware? supponiamo che mi adatti ad una struttura master-slave, qual'è il metodo più veloce ed affidabile per implementarlo?
Logged

Matteo Lucchesi - Luccalug President

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

@luk:
non hai detto su che distanze devono comunicare.
Come ti hanno specificato, l'I2C è un ottimo standard che già gestisce di suo la problematica master/slave ma lavora su piccole distanze (cm).
Se devi andare oltre allora usa l'RS485, che copre distanze molto lunghe (fino al Km).

@tutti:
a me pare vogliate reinventare la ruota  smiley-wink
Scusate, ma l'RS485 apre una normalissima connessione su 2 fili, una seriale bidirezionale. Bastano le comunissime librerie Serial o NewSoftSerial per poter dialogare. Il protocollo dovrà gestire al max solo il pin per attivare il chip su ricezione o trasmissione (slave o master).
Perché diventare grulli per fare ciò che già c'è?  smiley-lol
Logged


Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@luk:
non hai detto su che distanze devono comunicare.
Come ti hanno specificato, l'I2C è un ottimo standard che già gestisce di suo la problematica master/slave ma lavora su piccole distanze (cm).
Se devi andare oltre allora usa l'RS485, che copre distanze molto lunghe (fino al Km).

@tutti:
a me pare vogliate reinventare la ruota  smiley-wink
Scusate, ma l'RS485 apre una normalissima connessione su 2 fili, una seriale bidirezionale. Bastano le comunissime librerie Serial o NewSoftSerial per poter dialogare. Il protocollo dovrà gestire al max solo il pin per attivare il chip su ricezione o trasmissione (slave o master).
Perché diventare grulli per fare ciò che già c'è?  smiley-lol
rimane che domani provo a mettermi dietro e creare la libreria, nonostante non abbia tempo per provarla  smiley-lol (e poi mi si è pure bruciato un arduino quindi non ho un convertitore usb-rs232  smiley-cry )
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi servono alcune 100naia di metri quindi rs485.
Ma posso stabilire con quale arduino comunicare? cioè tramite un indirizzo o qualcosa del genere?
Cosa ne pensate dell'arduino con la ethernet?
Devo fare un lavoro per un piccolo albergo.
Logged

Matteo Lucchesi - Luccalug President

Pages: [1] 2 3   Go Up
Jump to: