Pages: 1 2 [3] 4 5   Go Down
Author Topic: Loop nel Loop  (Read 3971 times)
0 Members and 1 Guest are viewing this topic.
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

Hai 2 strade:
1) ti studi come usare PROGMEM per accedere alle stringhe dei messaggi da visualizzare sull'LCD in Flash
2) ti compri l'Atrduino Mega2560, che ha molta più memoria Flash e Ram.

PROGMEM non credo sia una soluzione... perché io sarei ancora a metà del mio progetto :\
Manca ancora tutta la parte web server.

Senti la mia opzione, dimmi se è una cazzata.
Ho 2 chip atmega 328p, pensavo di usarne uno farci la versione stand alone, perché mi dispiaceva lasciare l'arduino a vita nella serra.
Posso usare DUE arduini, splittando lo schetch?
Sensori ed lcd da una parte, sd log e ethernet dall'altra?

Cacchiarola, prendere un 2560 e lasciarlo li nella sera mi spiace un po', in pratica non userei la maggior parte dei pin :\
potresti usare un arduino che ti gestisca il server e un atmega esterno che comunica via seriale o protocollo che vuoi per il datalog e l'lcd

del tipo
al primo arduino dai in gestione il webserver e fai leggere i sensori, al secondo affidi l'lcd e il salvataggio su sd dei dati dei sensori che gli passa il primo arduino.

certo mi sa che arriveresti comunque a limite della ram con lo standalone...

altrimenti usi un lcd seriale e speri che il webserver non occupi tanta ram  smiley-lol
Logged

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

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

L'alternativa è prenderti un Atmega1284.
Hai 128 kB di Flash, ben 16 kB di RAM, 4 kB di EEPROM, in un case DIP40 facilmente gestibile. Per la programmazione devi usarlo in standalone, non è un grosso problema. C'è un core modificato e posso darti una mano io che ho già usato il suo "fratello" minore Atmega644.

Il costo del chip non è elevato, su RS lo trovi a 4,84€+IVA.
http://it.rs-online.com/web/p/microcontrollori/7193932/
Logged


Offline Offline
God Member
*****
Karma: 0
Posts: 589
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

del tipo
al primo arduino dai in gestione il webserver e fai leggere i sensori, al secondo affidi l'lcd e il salvataggio su sd dei dati dei sensori che gli passa il primo arduino.

superlol, per curiosità, perché hai invertito la mia divisione?
Avendo io una ethernet shield mi sembrava più "comodo e funzionale" mantenere sd e web server da un lato... e dall'altro lato mettere lcd e sensori.
C'è un motivo per cui hai diviso i compiti in quel modo? Lo chiedo per imparare, sia chiaro smiley

L'alternativa è prenderti un Atmega1284.
Il costo del chip non è elevato, su RS lo trovi a 4,84€+IVA.
http://it.rs-online.com/web/p/microcontrollori/7193932/

Ohh. questa mi sembra una alternativa ottima. Non dovrei più preoccuparmi di nulla, ne per le dimensioni dello sketch ne per la sram smiley
Mi sa che domani vengo a romperti le scatole in privato per racimolare qualche info in più...

Nella mia pigrizia una parte del cervello continua a preferirmi l'uso di due 328 (solo perché ho già gli integrati, gli zoccoli, i condensatori... e montandone un secondo direttamente sulla protoshield non mi servirebbe nemmeno il regolatore di tensione, il quarzo servirebbe ancora?)
Ma la soluzione più pigra mi sa che non è la migliore smiley
Logged

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

Se vuoi consigli sulle configurazioni multi-micro non hai che da chiedere  smiley-lol
La soluzione dei 2 Atmega328 è valida. Dedicandone uno alla gestione dell'LCD, con tutti i messaggi testuali nella sua memoria, io dico che dimezzeresti (se non di più) l'utilizzo della RAM sul primo 328, che lasceresti solo per gestire le letture e le scritture sulla SD.
Logged


0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
L'alternativa è prenderti un Atmega1284.
Hai 128 kB di Flash, ben 16 kB di RAM, 4 kB di EEPROM, in un case DIP40 facilmente gestibile. Per la programmazione devi usarlo in standalone, non è un grosso problema. C'è un core modificato e posso darti una mano io che ho già usato il suo "fratello" minore Atmega644.

Io ho preso due 644, ma quelli più economici, che credo non abbiano il risparmio energetico evoluto. Leo dove si trova il core di cui parli. Ma scusa la vecchia mega monta 1280 e molto diverso il 1284?

Quote
superlol, per curiosità, perché hai invertito la mia divisione?

Non conosco il suo motivo, ma il mio è che sia webserver ed sdfat consumano parecchia ram. In più questa divisione ti permette di gestire i sensori in realtime, mentre quello che non serve essere in realtime lo gestisce la scheda display/sdcard, che lavora in asincrono. Quindi gli mando i dati e pensa la scheda a scriverli e tu nel webserver non devi aspettare che vengano scritti, così il webserver è sempre up. Penso che con due 328 con questa suddivisione dovresti farcela, però purtroppo c'è un problema di velocità di comunicazione che devi affrontare in ogni caso, quindi protocollo, controllo dati ecc. Il canale scelto deve essere abbastanza veloce, ma di seriale il 328 ne ha una, l'isp è già impegnata per il webserver nel primo 328 e nel secondo per la sdcard, insomma di codice ne dovrai scrivere ed anche efficiente.

La soluzione di leo mi sembra la più adatta, anche se con il 644 standalone sei senza connessione con il pc, che ti serve per il debug.
Mentre la tua divisione potrebbe essere valida nel caso di 1284 e 328 insieme. Il 1284 con web sdcard e sensori e il 328 per il display e pulsantiera.

Per il display e pulsantiera dovrò fare una cosa simile, questa sarò la scheda di interfaccia/controllo, che andrà collegata alla scheda di potenza, le due dialogano tramite seriale. Lato pc devo creare un programmino per simulare l'altra scheda testando il protocollo ed il funzionamento, per poi passare allo sviluppo reale della altra scheda. Cosa accadra quando le due sono connesse sarà un grande ? perchè non ho modo di vedere in esecuzione cosa accade, e forse lo dovrò inventare.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Offline Offline
God Member
*****
Karma: 0
Posts: 589
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se vuoi consigli sulle configurazioni multi-micro non hai che da chiedere  smiley-lol
La soluzione dei 2 Atmega328 è valida. Dedicandone uno alla gestione dell'LCD, con tutti i messaggi testuali nella sua memoria, io dico che dimezzeresti (se non di più) l'utilizzo della RAM sul primo 328, che lasceresti solo per gestire le letture e le scritture sulla SD.

Mi piace molto l'idea della configurazione multi micro, è vero che sto andando a complicarmi la vita, però mi attira smiley Ho appena riletto la guida di Menniti Versione 3.02, non sembra una cosa difficile (merito anche della guida che è molto chiara).
Ma per la comunicazione tra i due arduino quale sarebbe la libreria migliore?
Ce ne sono diverse, mi pare di aver capito NewSoftSerial?

Cmq per oggi do la buonanotte a tutti che ti(vi) ho stressato fin troppo smiley
Al solito... grazie!
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 573
Posts: 12622
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io per necessità (assoluta mancanza di pin!) ho usato la normalissima comunicazione seriale, senza alcuna libreria aggiuntiva; però se avessi avuto disponibilità dei relativi pin mi sarei orientato sulla I2C, come ha fatto Leo, è sicuramente più valido come sistema e probabilmente anche più performante, personalmente non l'ho mai testata però.
Nella mia guida non trovi configurazioni multi-micro, trovi però le varie modalità di creazione del circuito stand-alone e la relativa programmazione on-site, usando Arduino come programmatore; il vantaggio è che con 4 componenti tiri fuori il "cuore" di Arduino e lo fai funzionare rapidamente, lasciando Arduino "libero" di passare ad altro, che poi questa è la sua vera natura.
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

la mia divisione era data da 2 fattori:
1. hai più ram che può essere utilizzata per il webserver perchè tutto il carico sarebbe dall'altra
2. vi è una comunicazione monodirezionale che quindi è gestibile da un solo pin invece che due, puoi modificare la newsoftserial tale da poter avere solo una parte che riceve da un lato e una che invia dall'altro  smiley-wink

se vuoi puoi aggiungerci la terza opzione:
immagino che stando in serra i valori più utili a te saranno quelli via web per monitorare la serra e così avrai magari il logging in fault ma almeno i sensori li riesci a leggere da eth (poi usando ancora una comunicazione mono filo un poco articolata puoi anche sapere se il sistema è in fault, anche se per questa gestione sarebbe meglio una a 2 fili così sai se il secondo arduino è effettivamente in fault)
Logged

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

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

@Mauro:
c'è una discussione sul forum internazionale a proposito del 1284:
http://arduino.cc/forum/index.php/topic,61126.0.html
Non mi ricordo la pagina, ma il link l'ho trovato verso la fine.

Una considerazione, però: al momento io NON ho ancora comprato il chip perché ho controllato e Avrdude non mi pare lo supporti. Non avendo Windows, non so se tramite AVR Studio è comunque possibile usarlo. Nell'incertezza, ho desistito ed anch'io per ora ho solo i 644.
Relativamente ai 644, quali sono quelli "meno evoluti"? Ci sono i 644P ed i 644PA, in circolazione. Da RS (dove li ho comprati) non mi pareva ci fossero anche i 644 "non P". Gli "A" sono revisioni aggiornate del chip, ma ugualmente supportate da avrdude.
Infine, il 1280 della vecchia Mega non è una versione precedente del 1284, sono 2 chip differenti.

Tornando alla configurazione multi-chip, il mio suggerimento di usare 2 328 è nato dal fatto che la Daniela ha espresso alcune perplessità nel chiudere nella serra una scheda UNO o Mega che sia. Ecco perché consigliavo i chip in standalone. Se poi si perde la connessione al PC, credo questo poco gliene importi perché una volta programmato i chip, questi registreranno i dati su SD, quindi non dovranno essere smontati.
Sulla comunicazione, consiglio anch'io di usare l'I2C. Poi è una questione di gusti, anche la seriale va bene ci mancherebbe.
Logged


Offline Offline
God Member
*****
Karma: 0
Posts: 589
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uhm.
Tanta carne al fuoco smiley
Riflettendoci, a logica, la prima soluzione di leo sarebbe la migliore, atmega 1284.
Molto più spazio e più ram di due 328 messi insieme.
Tra l'altro, ho un account research, quindi credo che potrei farmi spedire qualche sample, una volta capito bene quale mi serve.

Il mio dubbio nasceva principalmente dalla mia insicurezza smiley
Per i 328 c'è la fantastica guida di menniti, che spiega passo passo tutto e leggendola mi sembra di poter tranquillamente ottenere dei risultati.
Per il 1284... non trovo molto :\ Il link di leo alla sezione international è troppo tecnico per me, che non so nemmeno la piedinatura, ne come fare i collegamenti, ne che componentistica serve...

E per come sono fatta io ho bisogno di qualche guida o manuale da seguire, assillare qualcuno del forum in privato per settimane, facendosi spiegare tutto da zero... non è funzionale e mi piace poco :\
Fin ora con i tutorial e le guide sono andata alla grande, ho messo su sensori, lcd, datalogging senza particolari problemi (gli unici problemi veri dipendevano dalla ram che è finita).
Diciamo che mi servono più info per decidere...
Quindi adesso faccio pappa poi stresso leo e menniti in privato per raccogliere qualche info in più smiley-grin

Per la comunicazione tra i due arduini... non ho nessunissima preferenza smiley
Non avendo trovato guide sulla I2C ma solo per la seriale mi ero, per gli stessi motivi di cui sopra, orientata su quella smiley
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

beh vedila così se assilli leo dopo gli attiny farà il porting di arduino anche sul 1284 e affini in italiano per il bene della community  smiley-lol

l'unica cosa cambiando micro conta che dovrai anche trovare la piedinatura dell'eth shield e trovare anche un modo per montarlo perchè non avresti più una vero e proprio arduino coi pin in certi posti...
Logged

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

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

@Dany:
al momento sarei per sconsigliarti il 1284. C'è un problema nel suo uso, infatti. Come ho già detto a Mauro, ho controllato avrdude ed al momento non pare supportarlo per cui anche avendo il porting del core, non vedo come poter flashare gli sketch compilati. Devo ricontrollare quel thread per capire loro cosa usano.

Scartato quello, un 644 potrebbe comunque rivelarsi utile: hai il doppio della flash e della SRAM rispetto al 328 (64 kB e 4 kB rispettivamente), ed 1 solo chip da gestire. La comunicazione tra 2 chip non è assolutamente un problema, il protocollo lo crei in poco tempo, ma se puoi evitarlo perché no?  smiley-wink
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

@Dany:
al momento sarei per sconsigliarti il 1284. C'è un problema nel suo uso, infatti. Come ho già detto a Mauro, ho controllato avrdude ed al momento non pare supportarlo per cui anche avendo il porting del core, non vedo come poter flashare gli sketch compilati. Devo ricontrollare quel thread per capire loro cosa usano.

Scartato quello, un 644 potrebbe comunque rivelarsi utile: hai il doppio della flash e della SRAM rispetto al 328 (64 kB e 4 kB rispettivamente), ed 1 solo chip da gestire. La comunicazione tra 2 chip non è assolutamente un problema, il protocollo lo crei in poco tempo, ma se puoi evitarlo perché no?  smiley-wink

da lunedì mi ci metto pure io, quando ho tempo ne ordino 2 o 3 e vediamo dove spingerli  smiley-lol
voglio entrare nel gruppo degli hacker di arduino  smiley-razz

comunque una comunicazione a 2 chip come quella che potrebbe volere lei è una bella decimazione alla newsoftserial in modo da avere da una parte ricezione e dall'altra trasmissione e poi un pin che dalla parte dello slave va tenuto high (metti nel setup() un digitalWrite(pin, HIGH) insomma) così quando va low sa che c'è un fault e gli viene visualizzato nella pagina web  smiley-wink

EDIT:
http://www.nongnu.org/avrdude/user-manual/avrdude_4.html
in avredute sembra essere supportato il 1284p e dargli come parametro -c arduino per programmarlo dalla tecnica ICSP di menniti da quello che ho capito smiley-grin
« Last Edit: December 09, 2011, 05:17:23 pm by superlol » Logged

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

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

E' vero, avrdude supporta anche il 1284p. Allora mi sono sbagliato. Peccato perché ho fatto l'ordine a RS proprio stamattina per delle cose che mi mancavano.. a saperlo ci mettevo anche un 1284  smiley-sweat
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

E' vero, avrdude supporta anche il 1284p. Allora mi sono sbagliato. Peccato perché ho fatto l'ordine a RS proprio stamattina per delle cose che mi mancavano.. a saperlo ci mettevo anche un 1284  smiley-sweat
io credo che il prossimo ordine che farò andranno via un 50€ più altri 50€ di IMU  smiley-lol

per ora raccolgo liquidità però l'ordine lo faccio prima di settembre oppure...  smiley-kiss

inoltre sarebbe carino sapere la data d'uscita di arduino due, ho qui un quadricotterino che attenderebbe una scheda di controllo 32bit per potersi scatenare  smiley-lol

tornando in topic.
a mio parere per lei senza complicarsi troppo la vita potrebbe usare 2 atmega 328 che alla fine risulta più facile che usare un 1284 contando che da ciò che ho capito è ancora in fase di test per non contare il fatto di importare librerie ecc...

altra soluzione e provare a togliere l'lcd per adesso e mettere il webserver, se tutto regge ci mette un lcd seriale tipo http://www.sparkfun.com/products/9069 e risolve i problemi (anche se con un costo un poco maggiore...)
Logged

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

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