Domandine sull'ethernet shield

Salve a tutti, avrei bisogno di sapere due cosette sull'ethernet shield.
Premetto che ho la prima versione dello shield ufficiale quella senza slot SD per intenderci e come ben sapete succede che tocca premere il tasto reset per farla connettere all'accensione del circuito.
Questo bug è stato risolto con la nuova versione?
Ho provato anche a mettere quel famoso condensatore da 47nF tra i pin reset e gnd dello shield (per comodità l'ho saldato sul pulsante di reset dello shield) ma non sempre funziona.

Altra domanda facile facile... c'è un modo per filtrare la risposta che riceviamo dal server?
Qui sotto metto un esempio di risposta:

HTTP/1.1 200 OK

Date: Fri, 25 Nov 2011 14:22:11 GMT

Server: Apache/2.2

Last-Modified: Fri, 25 Nov 2011 03:31:10 GMT

ETag: "645r545-4-4b956c3kj7be4"

Accept-Ranges: bytes

Content-Length: 4

Connection: close

Content-Type: text/plain

variabili da leggere

Di tutto questo mi interessa solo l'ultima riga quindi "variabili da leggere", c'è un modo elegante per omettere tutto il resto?
Per ora ho risolto contando il numero di righe del messaggio in modo da prendere in considerazione solo l'ultima (le righe le distinguo verificando se c'è il carattere '\n') ma questa situazione non mi piace affatto visto che il numero di righe dell'output non è universale (apache in locale lo mette sulla riga 11, su un server remoto invece lo trovo alla riga 10).
Per ora è tutto ragazzi, vi saluto con affetto.

Ciao!

Premetto che ho la prima versione dello shield ufficiale quella senza slot SD per intenderci e come ben sapete succede che tocca premere il tasto reset per farla connettere all'accensione del circuito.
Questo bug è stato risolto con la nuova versione?

sì, sostanzialente è stato inserito un condensatore a bordo :smiley:

Altra domanda facile facile... c'è un modo per filtrare la risposta che riceviamo dal server?

allora, te la devi "sorbire" tutta, ma c'è una libreria che aiuta molto: la TextFinder
http://www.arduino.cc/playground/Code/TextFinder
studiata proprio per gestire la ricerca delle informazioni che interessano in uno stream di dati.

Ciao

non so a quale vi riferite come prima versione, io ho comprato questa http://www.arduino.cc/en/Main/ArduinoEthernetShield e risolto o no quando accendo arduino per farla connettere devo resettarla una e a volte anche 2.
Poi quando si modifica lo sketch anche di una virgola, dopo la scrittura va resettata nuovamente (forse questo è normale).
Che voi sappiate questa possiede già il rimedio o no?

a ri-ciao :slight_smile:

Dunque il problema è rimasto visto che anche tu che hai il nuovo modello devi resettare per farlo connettere :relaxed:
E' un bel guaio, ad esempio se andasse via la corrente bisognerebbe resettare la scheda...
Non ci sarebbe un rimedio efficace per farla connettere fin dall'accensione?

Dico una strnzt ma fatemi capire...

  1. il problema è della Ethernet, giusto?
  2. l'Arduino non ne è afflitto, giusto?
  3. cioè, quando io do l'alimentazione all'Arduino+Ethernet, l'Arduino parte correttamente ma l'Ethernet no, giusto?
  4. resettare l'Ethernet non significa resettare anche l'Arduino, giusto?

Perché allora non prevedere una routine nell'Arduino che, tramite un pin ed un circuitino esterno, resetti la scheda soprastante? Da fare sempre e comunque a tutti gli avvii di Arduino?

Il pulsante di reset presente sulla scheda è collegato al reset di arduino quindi si resetta anche arduino; nel forum internazionale come rimedio ricordo che consigliavano di mettere un condensatore da 47 nF tra il pin reset e gnd ma ho notato che non sempre funziona (il condensatore l'ho saldato proprio sui pin del pulsante di reset sullo shield).

E allora fai un circuitino esterno con un Tiny85. Quando parte, resetta il blocco Arduino+Ethernet, e poi si mette in sleep.
Sicuramente se il Tiny85 si riavvia è perché è andata via l'alimentazione, per cui anche Ard+Eth si sono resettate e la Eth è in blocco.

si ... infatti i quando lo shield si monta arduino :slight_smile: i reset vanno in parallelo ... quindi non so a sto punto all'inserimento dell'alimentazione sia difettoso ardu o ether, tra l'altro essi sono connessi in 2 punti .... lo zoccolino a 6 pin (ICSP)e il pin reset vicino al 3.3v, bisognerebbe separarli e provare.

Potrebbe essere che le 2 schede si diano noia in qualche modo proprio perché unite (carnalmente... ]:smiley: ) tramite l'ICSP.
Cmq con un Tiny a resettarle entrambe si risolve il problema di chi sia a dar noia all'altra XD

Si potrebbe provare, se risolve il problema di coppia ... perchè no!! :slight_smile: :slight_smile:
Per questo volevo imparare a modificare l "hot_dog" del loader :grin:
Questo però va un po' oltre alle mie capacità di intendere e di volere!!

pablos71:
Si potrebbe provare, se risolve il problema di coppia ... perchè no!! :slight_smile: :slight_smile:
Per questo volevo imparare a modificare l "hot_dog" del loader :grin:
Questo però va un po' oltre alle mie capacità di intendere e di volere!!

Il watchdog è un circuito hardware del micro, casomai volevi modificare il bootloader :wink:
Potrebbe essere una soluzione anche questa, ma richiede un grado di conoscenza dell'HW, del C e del modus operandi del micro molto avanzato.

modus operandi

parli quasi come Hoch di Criminal Mind :smiley:

Che p*lle!
Già la prima versione era sfigata e anche parecchio (sd e reset), mo si scopre che anche l'ultima non è ancora pienamente funzionante.
Speriamo per la V 3, se ci sarà...

pablos71:
parli quasi come Hoch di Criminal Mind :smiley:

Non conosco Hoch, mea culpa. :stuck_out_tongue:

Chiedo venia ma cos'è questo problema di reset?
Io ho Arduino UNO con Ethernet Shield ufficiale con un web server interno che mi risponde, con una pagina HTML interna, sempre in qualsiasi condizione, sia che levo alimentazione, sia che va , sia che torna ecc. Come chiedo la pagina interna, questa arriva.

In che condizione si verifica la necessità di dover resettare?

Il mio shield sta configurato per leggere un file txt hostato su un server, la condizione è solamente all' acensione della scheda; a volte va fin da subito ma la maggior parte delle volte tocca resettarlo altrimenti non si connette (tutti i led onboard spenti).

Per quello che riguarda me i led sono belli accesi sempre, il led link lampeggia serenamente, ma ad una richiesta http ....192.168.... la pagina index.html non la piglia proprio (Il browser mi dice inesistente) eppure i led tx-rx lampeggiano per qualche secondo poi basta. Se resetto poi va bene.
Mi basta anche caricare la pagina e a metà cambio idea chiudo il browser ... sono fritto non posso piu' accedere, ad un nuovo tentativo mi da pagina inesistente. Devo resettare!

Il pulsante di reset presente sulla scheda è collegato al reset di arduino quindi si resetta anche arduino; nel forum internazionale come rimedio ricordo che consigliavano di mettere un condensatore da 47 nF tra il pin reset e gnd ma ho notato che non sempre funziona (il condensatore l'ho saldato proprio sui pin del pulsante di reset sullo shield)

e

si ... infatti i quando lo shield si monta arduino i reset vanno in parallelo ...

allora, questo argomento è stato affrontato varie volte.
La tecnica del condensatore, serve perlopiù a risolvere il problema che si ha quando si alimenta arduino + eth shield, momento in cui nella vecchia versione (e sembra anche nella nuova) se non si effettua un reset la parte eth non funziona.

Esiste poi il problema del freeze, percui la parte eth non risponde più, anche se lo sketch continua a girare.

Per entrambi questi problemi, la soluzione che io (come anche molti altri international user) ho adottato, è di piegare il piedino dello shield Eth verso l'esterno, in modo che non si infilasse nel pin F sottostante.
Ho poi collegato tale pin ad un pin.
In questo modo è possibile pilotare il reset dello shield eth indipendentemente da Arduino.

Nello sketch ho una parte di codice che verifica che sussista la connettività (si può usare un ping una get, o altro), e che in caso positivo mi resetta un countdown.
Se viceversa il countdown arriva alla fine - e il che significa che il controllo connettività non è andato a buon fine - resetto lo shield Eth.

Allego qui un paio di discussioni in cui si parla di questa soluzione.
E' semplice, efficace, e non richiede hw aggiuntivo.

Qui si parla del problema del reset (e della soluzione via condesatore)
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225354009/0
a pag. 3 si inizia a discutere del reset via sw, andando a lavorare proprio sul piedino di reset dell'eth shield.

In quest'altra discussione:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1282231155/27#27
c'è proprio un mio post con una foto di uno shield eth con piedino reset piegato e collegato (anche se non si vede) ad un pin.
Il codice che fa il reset è sostanzialmente quello presente nella discussione sopra.

Notare che le discussioni son del 2010....

P.S. Questa è una di quelle cose che andrebbero infilate nella raccolta del Menniti.

ok avevo già fatto la prova piegando il pin reset isolandolo, ma poi c'è sempre lo zoccolino a 6 pin (ICSP) che contiene anch'esso un reset collegato con arduino sempre in parallelo (bisognerebbe tagliarlo a filo scheda)

Conclusione :
nonostante il pin reset della eth sia isolato, premendo il bottoncino su arduino si riavviano entrambe le schede, premendo il bottoncino sulla eth si riavviano entrambe le schede (ICSP) rompe le palle :slight_smile:

ciao

Quando fai la chiamata get, non metterci alla fine dell'indirizzo HTTP/1.0
Vedrai che in questo modo il server non ti risponderà con tutte quelle informazioni ed avrai solo le tue variabili