Show Posts
Pages: 1 ... 98 99 [100] 101 102 ... 234
1486  International / Software / Re: Scrivere su flash in runtime on: January 30, 2013, 10:00:50 am
Quote
ho perso 5 minuti per leggere il tuo post
te l'ho anticipato che facevo la sintesi ahahahahhaha

http://www.hobbytronics.co.uk/arduino-external-eeprom
dici una cosa così? mi prenderebbe solo 2 pin SCL e SDA? , non conosco i tempi di lettura, ma non saranno poi così esagerati.


1487  International / Software / Re: Scrivere su flash in runtime on: January 30, 2013, 06:48:09 am
Pablos, che necessità hai per dover scrivere sulla Flash? Non potresti fare in altro modo?
Magari se spieghi, possiamo vedere di trovare un'alternativa.

E' un po' lungo da spiegare nei dettagli, cerco di essere breve .... mmm mi sa che ti annoierai:

Il mio progetto è quello di creare una piattaforma antiscemo smiley , tutto ciò che riguarda la logica di azione e reazione tra i pin. La mega è totalmente configurata da un file su sd dove ci sono tutti i byte che servono per dire al chip imposta i registri in questo modo ed esegui determinate cose se ci sono determinati eventi, questo mi permette di usare arduino per molteplici applicazioni senza nemmeno guardare lo sketch, le impostazioni sono modificabili da remoto.


Parametri su SD da passare alla eeprom
4 byte IP
6 byte MAC
4 Byte Gateway
4 byte subnet
4 byte per server NTC_1
4 byte per server NTC_2
4 byte per server NTC_3

5 byte di aggiustamento hh,mm,gg,mese,anno (+/-)

54 byte setup Input/output e pullup + 0/1 allo start - setup di tutti i pin (54 byte di configurazioni) qui scgli se il pin deve essere Input con o senza pullup opp Output, inoltre stabilisci se allo start di arduino il pin deve partire da 1 o 0.

16 byte setup Input/output/analog - setup di tutti i pin analogici. qui si può scegliere come sopra come vuoi che sia il pin

99 gruppi di appartenenza - 9 byte per ogni gruppo, questi 9 byte raccolgono tutti i registri PIN-ABCDEFGHJ... ed è la parte più complicata ma anche la più snella potendo gestire tutti i pin senza "cicli for" con la manipolazione dei registri in un colpo solo.Potrebbe essere impiegato per creare in domotica gli scenari, sollevare gruppi di serrande e chiuderne altre accendere luci nello stesso istante, se li mettiamo tutti e 8 a 0 spegnamo tutto e buonanotte, insomma comandare comunque un insieme di pin a scelta inseriti nel gruppo.  

25 codici IR con sistema di autoapprendimento, ipotizzando uno voglia usare un 32bit, sono 25x4byte al massimo che metto a disposizione, ogni codice può essere assegnato a 1 o anche a tutti i pin in base al gruppo di appartenenza che viene scelto nelle condizioni. Il sistema comprende in modo opzionale uno o più ricevitori IR, basta che nel setup su SD venga scritto su quali pin sono stati messi.

54 condizioni/ON -
54 condizioni/OFF - la condizione stabisce con 2 byte ciascuno cosa deve fare il pin quando un evento lo commuta a 1 o 0, quindi che il pin sia settato in Input o Output non ha importanza il programma agisce in base a questi 2 byte.

300 timer + enable/disable + ON/OFF - 300 orologi (che sembrano tanti, ma distribuiti opzionalmente su tutti i pin non lo sono), ho dovuto comunque fare dei tagli per questioni di mem ....
Si può decidere perciò di dare 300 timer a un pin solo oppure 7-8 timer a tutti i pin ovviamente se sono impostati output... a scelta dell'utente, utile per utenze che hanno molte accensioni e spegnimento durante il giorno o la notte (prendi un acquario per esempio)

54 impulsi - 1 byte, questo parametro decide se il pin una volta chiamato deve dare un impulso 0 o 1 di n secondi o deve restare sempre 0 o 1, avendo un byte posso solo moltiplicando per 1000 decidere minimo un secondo massimo 4 minuti può essere utile per fare dei timer luci scala con ogni piano separato, comandare dei relè passo-passo, una luce lampeggiante, azionare delle serrande elettriche a tempo...ecc

30 AND 0/1 di massimo 12 pin    
30 OR 0/1  di massimo 12 pin  

25 byte password MD5 - default > scritta su popup web diretta su eeprom  
25 byte password MD5 - utente  > scritta su popup web diretta su eeprom      

poi c'è tutta la parte dei pin analogici (Manca memoria per i parametri) che possono essere usati con tutti i sensori che uno vuole purchè si rispettino i 0-5v, il setup su sd avrà come dati da confrontare degli INT quindi 2 byte, in questo modo a me non interessa se ci colleghi una fotoresistenza un lm35 o un sensore hall, il dato reale e la formula è fatta dalla pagina web che visualizza in real time i valori convertiti in lux, gradi, ampere ecc ecc (del resto arduino che se ne fa dei dati convertiti in celsius o ampere?)

Ci sarebbe la parte della ripetizione IR in base ai codici memorizzati su eeprom, per accendere con i timer programmati o da remoto condizionatori e apparati vari con infrar. (non l'ho fatta)

Inserimento opzionale di uno o 2 tipi standard di display lcd, aggiungo le librerie che saranno usate

Come detto prima c'è poi la ethernet le paginette web che visualizza in sinnottico 70 pin con l'invio di soli 40 byte senza refresh della pagina ma in modalità persistente.

Le svariate combinazioni dei parametri qui sopra possono dare molte applicazioni senza sbattimenti di programmazione sketch e anche un inesperto di programmazione può usare la scheda, certo non ci fa un pallone sonda o un rover da mandare su Venere.

Fino ad ora ho risolto una montagna di problemi.
Riassumendo il tutto ti ho risposto in modo lungo smiley  alla tua domanda, non vorrei passare per pazzo facendo richieste assurde, ecco perchè mi serve più memoria per i parametri da poter leggere rapidamente, potrei spaziare molto di più nelle opzioni.

Ringrazio tutti voi per l'aiuto datomi nelle parti più difficili.

Cosa ne faccio di quei parametri:
Tutti i parametri presenti nel file setup.ini su sd al reset vengono nel setup() confrontati con quelli scritti nella eeprom , se il byte è diverso viene sovrascritto col nuovo dato nella singola cella, altrimenti non scrive nulla, evitando di logorare inutilmente la memoria. Posso resettare 1000 volte senza scrivere nulla, quindi se voglio cambiare un dato, vado sulla pagina web cambio il dato nel file ini e resetto, con questo ti spiego perchè il PROGMEM non fa al caso mio e ti spiego anche perchè volevo un reset remoto senza impegnare un altro pin.
Desideravo che arduino fosse il più autonomo possibile senza l'ausilio di computer di appoggio, server con database ecc, una cosa piccola dove con i connettori vai alle interfacce e stop.

ciao
1488  International / Software / Re: Scrivere su flash in runtime on: January 29, 2013, 03:18:20 pm
grazie, librerie con data 2006 ne ho trovate a fiumi, pensi che ci sia compatibilità con un chip che è uscito 4 anni dopo?  smiley-grin

Quote
E morta li?
perchè,  sei interessato?  smiley-razz

ciao
1489  International / Software / Re: Scrivere su flash in runtime on: January 29, 2013, 02:28:20 pm
Quote
Questo non si può fare: la dimensione della Bootloader Section può essere fissata max fino a 4096w (8192 byte)
Che iella!!

ma nel pdf leggo "Definition of Boot segment in *.xcl file for an ATmega128 with 8kB Boot size: 4096w " vale la stessa dimensione per la 2560?

@astrobeed
Quel pdf che hai linkato me lo ero già sparato tutto smiley infatti avevo cercato la Self_programming.h che avevo trovato, ma non c'è stato verso di trovare Self_programming.c, ho pensato che si trovasse nel cdrom dell'atimel completo di doc e lib, 6giga di download ma nulla.
Comunque vabbè è un argomento di scarso interesse, quindi mi sa che morirà qui.

ciao
1490  International / Software / Scrivere su flash in runtime on: January 29, 2013, 06:09:07 am
Buongiorno a tutti

Sono quasi 4 giorni che leggo e giro come un dannato per trovare un metodo che mi permetta di scrivere sulla parte libera della flash non occupata dallo sketch.
Sono in grado di leggere qualsiasi byte alla pos che voglio della flash, ma non a scriverci sopra.
Mi servono 20k della flash + 4 della eeprom che come detto in altri post sono a tappo.

Mi sono studiato tutte le funzioni semplici e avanzate del progmem che provvede a scrivere e recuperare i dati in page, ma questa operazione di scrittura la fa solo in fase di upload dello sketch i byte memorizzati diventano costanti.

Ho letto che solo il bootloader è in grado di scrivere sulla flash in runtime e che la memoria Flash è divisa in due sezioni, la sezione del programma di avvio e la sezione di programma applicativo. Entrambe le sezioni hanno dedicato i bit di blocco per la scrittura e la lettura / scrittura di protezione. L'istruzione SPM che scrive nella sezione Memoria per l'applicazione Flash deve risiedere nella sezione Programma di avvio.

Si potrebbe in qualche modo cambiando i fuse allargare la zona dedicata al boot invece che 2k dirgli che è 22k? allora li potrei andare a scrivere in runtime tra il 3° e il 22° k. (non credo che userò mai 256k della mega in sketch è uno spreco di spazio)

In questi 20-30k (se si riesce a ottenerli) devo scrivere dei parametri una volta solo, ma dopo lo start di arduino, verrebbe usata esclusivamente come una sorta di eeprom.

Riporto informazioni lette (non solo su topolino smiley ) quindi se ho detto qualche scemenza non uccidetemi.

ciao
1491  International / Generale / Re: Accendere Stufa al quarzo con Arduino on: January 28, 2013, 06:20:17 pm
Una stufa al quarzo cosa vuol dire? che brucia quarzi invece di pellet o tronchetti di legna?  smiley-grin
A parte gli scherzi, la domanda è troppo generica non hai fornito sufficienti info per darti una risposta, servono gli schemi, il modello della stufa ecc ecc, non tutte le stufe permettono di essere comandate da remoto, molti costruttori fanno in modo che solo l'aggiunta di una loro scheda permetta questo controllo.
Non sappiamo se è un comando impulsivo, se la gestisce un termostato che comunque non può essere bypassato per questioni di sicurezza, altre stufe non devono essere disalimentate perchè necessitano di pre-riscaldamento. E' come se ti dicessimo "si prendi pure 2 cavi del 220 e fai quello che ti pare, non c'è pericolo", per mastruzzare i comandi di una stufa bisogna sapere quello che si fa.


ciao
1492  International / Software / Re: software che funziona in base all'ora on: January 28, 2013, 06:03:48 pm
Che vuoi di più?  smiley-wink

Che gli scrivi lo sketch  smiley-twist
1493  International / Software / Re: controllo caldaia a distanza on: January 28, 2013, 05:31:24 pm
Però Brunello ha ragione.

Il codice va messo tra [code.][/code.] , si tratta di un regolamento che seguiamo tutti non una sua pretesa e l'hai ignorato
ti ha chiesto se sai collegare la spia ad arduino, e l'hai ignorato

Tutt'ora non si è capito qual'è l'hardware che usi per portare il segnale dalla spia di "blocco caldaia" ad arduino, se non hai problemi elettrici avresti dovuto indicarlo.

La richiesta sembra banale,
Quote
Mi serve che arduino mi mandi un sms quando la spia del quadro elettrico  si accende

Hai già uno sketch che dici essere funzionante per inviare sms, una volta che tu hai introdotto il segnale in un pin input, si tratta solo di fare un controllo:
If digital.read pin_spia ==1 invia sms //fine dello sketch

Sicuro che la tua incognita sia solo software?

Ragazzi dovete imparare a esprimervi meglio!!

ciao
1494  International / Hardware / Re: ardu uno ce la fà? quanto è potente?? on: January 28, 2013, 02:06:34 am
Quote
quello che dici è possibile, l'unico problema è che non c'è memoria per 1000 letture su una UNO, e forse nemmeno sulla MEGA. Ma puoi ovviare salvando i dati su SD, o facendo una "media" che non tenga conto di tutti i valori.
Non credo sia la scelta migliore usare una sd per fare il campionamento
1495  International / Software / Re: aggiornare pagina web da client on: January 27, 2013, 03:56:45 pm
quando hai finito di scaricare la libreria cosa fai?
la metti dentro la cartella C:\Program Files\arduino-1.0.3\libraries ?
la nomini correttamente la cartella?
quando la un-zippi si chiama TinyWebServer-master
la rinomini TinyWebServer le maiuscole e minuscole devono essere rispettate

io non vedo cosa fai e non lo dici, dici solo non va non ti posso aiutare così


1496  International / Software / Re: aggiornare pagina web da client on: January 27, 2013, 03:32:12 pm
togli Serial << F("Free RAM: ") << FreeRam() << "\n";
1497  International / Software / Re: aggiornare pagina web da client on: January 27, 2013, 02:56:11 pm
Allora non ci capiamo, comunque se proprio ci tieni

scarica questa e installa .... la trovi qui https://github.com/Hardcore-fs/TinyWebServer pigia il bottoncino ZIP

apri l'ultimo IDE aggiornato e copia quella porcata di sketch smiley che hai trovato in quel link internazionale

1- sostituisci
#include <SdFat.h> <<<< elimina
con
#include <SD.h>

2 - cancella SdFatUtil
#include <SdFatUtil.h> <<<< elimina

3 - inserisci il tuo ip nell'apposita riga

4 - cambia  Serial.begin(115200); se vedi caratteri strani nel serial monitor
in  Serial.begin(9600);

fine!

Ma ripeto la lib tinywebserver va abbastanza bene, ma non prendere per serio quello sketch, tra le altre cose la password la trovi ben visibile nell'index.htm  smiley-grin pasw 4587

- utilizza 5 funzioni ajax quando ne bastava 1
- fa l'aggiornamento dei dati 5 volte anzi una volta sola, intasando la comunicazione
- nello sketch fa 5 "boolean led_status_handler" quando ne bastava 1
- nello sketch fa 5 "boolean blink_led_handler"   quando ne bastava 1
- nello sketch invia 5 POST e riceve 5 GET ne bastava 1




1498  International / Software / Re: aggiornare pagina web da client on: January 27, 2013, 02:15:25 pm
ma certo non funziona è un file pde ancora per la versione 0022-23

innanzi tutto va scaricata la libreria per la 1.0 in poi e non prendere quella che c'è dentro lo zip
la trovi qui https://github.com/Hardcore-fs/TinyWebServer

e poi vanno corrette 2 righe nello sketch che dovrà essere rinominato in .ino

che IDE usi?
1499  International / Software / Re: software che funziona in base all'ora on: January 27, 2013, 01:35:28 pm
Guarda che ci sono gli esempi dentro ... l'hai scaricata e installata almeno?
1500  International / Software / Re: aggiornare pagina web da client on: January 27, 2013, 09:58:53 am
Si può essere corretto, ma non prenderlo come esempio è fatto terribilmente male  smiley-eek
Pages: 1 ... 98 99 [100] 101 102 ... 234