Arduino Forum

International => Italiano => Hardware => Topic started by: matrix77 on Aug 30, 2012, 04:14 pm

Title: Collegare e far comunicare più shiled...
Post by: matrix77 on Aug 30, 2012, 04:14 pm
Ciao a tutti....


La mia domanda è abbastanza semplice, ma non trova una facile risposta, dal momento che spesso gli esempi che ho trovato, si riferiscono alla gestione di uno shield e non di più shield collegati tra di loro.

Nel caso specifico, vorrei collegare ad "Arduino UNO": lo shield GSM, un display GLCD, con controller "KS0108" ed un lettore di trasponder "ID 12".

In questo caso, mi converrebbe utilizzare il protocollo "I2C" per far comunicare i moduli tra di loro, oppure dovrei espandere le porte di Arduino UNO?

Se utilizzassi il protocollo seriale "I2C", dovrei utlizzare un convertitore per il display, o sostituirlo?

Mi servirebbe anche solo un esempio, o qualche dritta...




Un saluto a tutti


Matrix




Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 04:48 pm
solitamente,tutti gli shield sono stupidi e solo gli arduini sono intelligent(il wifi shield è un'eccezione)..perciò tutti gli shield devono comunicare con l'arduino(usando seriale,spi,i2c..)..esso poi gestirà i dati ed eventualmente li inoltrerà..
Title: Re: Collegare e far comunicare più shiled...
Post by: matrix77 on Aug 30, 2012, 05:35 pm
Salve m_ri e grazie per la risposta,


Il mio problema adesso sta nel collegare questi dispositivi e per fare un esempio, se collego il modulo "sim900", mi sono "giocato" la seriale e di

conseguenza, dovrei ancora collegare ancora un display e il lettore rfid.

Pur sapendo dell'esistenza del protocollo "i2c", non saprei come collegare il display, visto che è sprovvisto di quel sistema di comunicazione.

A questo punto dovrei cambiare il display, con uno che preveda un interfaccia "i2c", oppure dovrei sostituirlo direttamente?

Nel frattempo ho trovato un "Interfaccia I2C - GPIO", potrebbe servire al mio scopo?



Grazie e ciao


Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 05:40 pm
consiglio:
-x il gsmshield,usa la seriale hardware
-x il displau,usa la seriale software(nel nuovo ide si chiama semplicemente SoftwareSerial)..nella libreria del display,guarda se ci sono dei comandi che ricevono dati dal display
-l'rfid cosa usa?
Title: Re: Collegare e far comunicare più shiled...
Post by: matrix77 on Aug 30, 2012, 05:42 pm
Usa la seriale anche l'rfid oppure "i2c"

Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 05:58 pm
se vuoi,usa un'altra seriale software per rfid..unica cosa:usando due software seriali,devi ricordarti di fare il listen sulla seriale soft da cui vuoi ricevere dati..
Title: Re: Collegare e far comunicare più shiled...
Post by: cyclone on Aug 30, 2012, 06:15 pm
scusa matrix77,
invece di impazzire su come collegare una miriade di periferiche all' arduino uno, perchè non passi ad atmega2560 (arduino2560r3) ?
hai una infinità di I/O, 4 programmable serial usart ed inoltre puoi mappare in memoria tutte le periferiche con bus parallelo, vedi LCD grafico KS108.

E poi hai molta più flash e ram a disposizione.... specie se vuoi importare oggetti grafici ed animazioni per il display.

ciao

Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 06:52 pm
vabbè,il mega costa tipo il doppio,se non pigli i cloni..ecco,tra l'altro sto lcd come funziona?gli passi le lettere che vuoi,oppure visualizza immagini?
Title: Re: Collegare e far comunicare più shiled...
Post by: cyclone on Aug 30, 2012, 07:16 pm
il ks108 visualizza solo immagini, i caratteri ascii non sono contenuti nella rom del display, quindi hai necessità di creare i font che desideri in modalità bipmap.
se desideri un display grafico che contiene nella rom i caratteri ascii devi utilizzarne uno con  controller Toshiba T6963C.

Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 07:20 pm
allora quoto cyclone: passa al mega..
Title: Re: Collegare e far comunicare più shiled...
Post by: matrix77 on Aug 30, 2012, 07:23 pm
Salve anche a te Cyclone e grazie per il tuo contributo,


E se espandessi le porte di Arduino UNO con una scheda di espansione?Prima di passare al "MEGA" volevo tirare al massimo il 328:)

Saluti
Title: Re: Collegare e far comunicare più shiled...
Post by: matrix77 on Aug 30, 2012, 07:28 pm
Comunque Cyclone penso sia consigliabile quello che mi hai suggerito, anche perchè poi presumo che avrei latenze sulle comunicazioni.
Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 07:32 pm
ti consigliavamo la mega soprattutto xkè un display grafico è affamato di ram e flash,di solito..come porte basterebbero tranquillamente quelle dell'uno..
Title: Re: Collegare e far comunicare più shiled...
Post by: matrix77 on Aug 30, 2012, 07:35 pm
Ah ok, quindi se utilizzassi un display a due righe (16x2) potrei collegare tutto senza espansioni?

Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 07:38 pm
se fosse un display a cui puoi mandare il testo carattere per carattere(in ascii,non andando a fare i disegni) non avresti problemi a riguardo di flash/ram..può darsi che non ne hai neanke con il tuo lcd grafico,ma nn saprei..
Title: Re: Collegare e far comunicare più shiled...
Post by: cyclone on Aug 30, 2012, 07:40 pm
per eliminare le latenze legate alle priorità sulle trasmissioni dovresti allora passare alla famiglia Xmega che possiedono 4 canali di DMA per gestire in modo indipendente le usart e le altre periferiche. Ma secondo me la soluzione più semplice ed immediata se vuoi utilizzare display grafici KS108 per te è quella di andare verso ATMEGA2560
Title: Re: Collegare e far comunicare più shiled...
Post by: matrix77 on Aug 30, 2012, 07:53 pm

per eliminare le latenze legate alle priorità sulle trasmissioni dovresti allora passare alla famiglia Xmega che possiedono 4 canali di DMA per gestire in modo indipendente le usart e le altre periferiche. Ma secondo me la soluzione più semplice ed immediata se vuoi utilizzare display grafici KS108 per te è quella di andare verso ATMEGA2560

Beh, diciamo che avevo intenzione di realizzare un menù su quel display e la parte grafica non sarebbe stata di primaria importanza.
Ho trovato inoltre in rete, delle librerie per realizzare dei bei menù e quello mi sembrava il display più adatto allo scopo, ma non avevo considerato la richiesta di risorse.

A questo punto metto nel carrello virtuale il 2560:)

Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 08:09 pm
scusami,ma con il mega normale poi usare direttamente il dma?o altrimenti potresti darmi un link a sto dispositivo?
Title: Re: Collegare e far comunicare più shiled...
Post by: cyclone on Aug 30, 2012, 08:40 pm
la famiglia Atmega classici con le sigle ATMEGA non supportano DMA, quelli che supportano DMA sono gli xMega es: Atxmega128A1
Ma attenzione.. gli xmega dal punto di vista della programmazione sono molto più ostici anche se portano quasi la stessa sigla

http://www.atmel.com/products/microcontrollers/avr/avr_xmega.aspx

e qui altri dettagli
http://www.atmel.com/products/microcontrollers/avr/avr_xmega.aspx#TechDetails
Title: Re: Collegare e far comunicare più shiled...
Post by: m_ri on Aug 30, 2012, 10:37 pm
ok grazie!!