Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #15 on: November 01, 2012, 05:39:51 am » |
Un saluto a tutti.  Ecco la presentazione della versione definitiva testata postata sul sito. http://arduomemory.blogspot.it/Entro il mese corrente, realizzerò un filmato e posterò tutto il progetto completo. Intanto, un info per chi voleva realizzare il distributore automatico, visitate questo sito per prendere spunto: http://www.instructables.com/id/The-Automatic-Medication-Dispencer/Ciao. Giuseppe G.
|
|
|
|
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #16 on: November 01, 2012, 06:15:05 am » |
Un suggerimento. Dimezzeresti l'utilizzo di SRAM dichiarando tutte le variabili in cui conservi gli allarmi in forma di ore e minuti di tipo byte invece che di tipo int. Un int occupa 2 byte in SRAM, il byte appunto 1 byte. Dato che le ore non possono assumere un valore maggiore di 23 ed i minuti un valore maggiore di 59, il byte ti basta ed avanza.
|
|
|
|
|
Logged
|
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #17 on: November 01, 2012, 12:57:19 pm » |
 Ciao Leo72. giusta osservazione, nella versione definitiva collaudata ho utilizatto gli array di byte, proprio come consigli tu, ed ho creato una struttura un pelino più complessa per risparmiare codice. Ho inserito un parametro per correggere l'errore del calcolo orario di circa 46 sec al giorno che ha il mio arduino uno r2 con intervento automaticamente alle 23.59. Ora come parametri di programmazione vorrei inserire l'ora legale, la selezione della lingua, l'off-set di correzione ora giornaliera, un elenco delle ultime 10-20 medicine non assunte in base allo spazio in memoria disponibile. Riguardo proprio a questo, qualcuno mi sà dire come calcolare lo spazio occupato nella SRAM dalle variabili ? Ciao e grazie. Giuseppe G.
|
|
|
|
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Montalbano Jonico
Offline
Sr. Member
Karma: 1
Posts: 284
|
 |
« Reply #18 on: November 01, 2012, 01:33:11 pm » |
Per conoscere la Ram disponibile utilizza questa funzione: int freeRam () { extern int __heap_start, *__brkval; int v; return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); }
Saluti Nicola
|
|
|
|
|
Logged
|
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #19 on: November 01, 2012, 02:18:19 pm » |
 Ok!! Grazie Nicola per l'info, la proverò quanto prima. Mi puoi però dare qualche info per l'utilizzo? Non sono un esperto di SW. L'unica cosa che posso immaginare, è l' utilizzo della variabile "v" che mi ritornerà immagino, il valore di byte liberi. Ciao,
|
|
|
|
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Montalbano Jonico
Offline
Sr. Member
Karma: 1
Posts: 284
|
 |
« Reply #20 on: November 01, 2012, 03:01:52 pm » |
la variabile v è una variabile interna alla funzione freeRam, non potresti utilizzarla così.. Ecco uno sketch di esempio: void setup() { Serial.begin(9600); }
void loop() { int ramLibera = freeRam(); Serial.println(ramLibera);
}
int freeRam () { extern int __heap_start, *__brkval; int v; return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); }
Questo mi stamperà su seriale il numero di byte liberi della ram. Ciao Nicola
|
|
|
|
|
Logged
|
|
|
|
|
Montalbano Jonico
Offline
Sr. Member
Karma: 1
Posts: 284
|
 |
« Reply #21 on: November 01, 2012, 03:06:55 pm » |
Una cosa che dimenticavo, naturalmente è importate anche il punto in cui si utilizza freeRam(), per debug sarebbe opportuno metterlo in più punti: in fondo al loop(), oppure all'interno di altre funzioni, così da tenere sott'occhio l'utilizzo di ram..
|
|
|
|
|
Logged
|
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #22 on: November 01, 2012, 03:08:48 pm » |
 Grazie Nicola. Ora è tutto più chiaro, praticamente il listato completo !! Grazie ancora. Ciao. Giuseppe G.
|
|
|
|
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #23 on: November 02, 2012, 05:57:47 am » |
 Come promesso, ho postato sul blog il filmato dimostrativo il circuito del progetto ed una guida veloce per la programmazione di ArduoMemoryReminder. Un saluto a tutti. Giuseppe G.
|
|
|
|
« Last Edit: November 04, 2012, 11:52:23 am by Giuseppe G. »
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #24 on: November 11, 2012, 08:03:29 am » |
 Dopo il test definitivo di 1 week delle implementazioni al codice, Vi presento le versione definitiva R05d del progetto base, che seguirà una seconda fase di evoluzione sul sito del FABLAB Torino. Chi volesse partecipare a tale progetto, è libero di farlo, semplicemente postando qui le proprie impressioni o idee, o più serimente contattandomi o iscrivendosi al FABLAB. All'inizio, sinceramente ero titubante sul fatto di postare il tutto rendendolo pubblico, poi, pensando all'utilizzo ed alla possibilità di aiutare chiunque ne abbia bisogno, ho deciso di pubblicarlo e renderlo aperto a tutti. OPEN SOURCE ? .....Certo ! http://www.arduomemory.blogspot.it (versione base) http://www.fablabtorino.org/portfolios/arduomemoryreminder/ (upgrade project) Mi picerebbe condividere il progetto con chiunque abbia voglia di migliorarlo o autocostruirlselo per aiutare i propri cari qualora ne avessero bisogno. Un saluto a tutti. Giuseppe G. 
|
|
|
|
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Selvazzano Dentro - Padova
Offline
God Member
Karma: 17
Posts: 521
"Chi sa fa, chi non sa insegna"
|
 |
« Reply #25 on: November 11, 2012, 09:16:06 am » |
Sono contento che tu abbia trovato utile il mio consiglio sugli scomparti. Ora un'altro consiglio.
Esistono tre tipi di daltonismo che creano problemi a distinguere il colore verde (deuteranopia), rosso (protanopia) e blu (tritanopia).
I LED di segnalazione, perciò, dovrebbero essere tutti gialli od ambra, a mio avviso.
Ricordati anche che mettere l'intera confezione di una stessa medicina nello scomparto, parte dal presupposto che il paziente riesca a prendere la medicina ed a ricordare la dose necessaria, cose non necessariamente vere nel caso di artrite alle mani e demenza senile: meglio dunque tanti piccoli scomparti removibili (per portare più facilmente la dose alla bocca) e nella quantità già calcolata. Il vantaggio è che possono essere presenti nello scomparto più tipi di farmaci. Punterei, cioè, più che sulla differenza delle medicine, sulla dose da prendere in un dato momento.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
|
 |
« Reply #26 on: November 11, 2012, 10:20:06 am » |
Ciao, progetto molto interessante! Non fosse che ormai non mi serve più  avrei provato ad implementarlo anch'io... Mentre leggevo questo topic e osservavo le foto sul tuo sito, mi chiedevo se esiste un modo per un non-programmatore di verificare che le indicazioni scritte nel dispositivo corrispondono ad una determinata serie di prescrizioni mediche. Mi spiego meglio: un familiare, il medico di famiglia o un'infermiere/a possono facilmente controllare, foglio alla mano, che quanto programmato sia corretto ? Probabilmente la combinazione LCD+tastiera+Menu è sufficientemente chiara, ma pensavo anche a qualcosa tipo un programma su PC che legge dal dispositivo la programmazione tramite la porta seriale e produce un report "human-readable" 
|
|
|
|
|
Logged
|
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #27 on: November 11, 2012, 02:21:07 pm » |
Sono contento che tu abbia trovato utile il mio consiglio sugli scomparti. Ora un'altro consiglio.
Esistono tre tipi di daltonismo che creano problemi a distinguere il colore verde (deuteranopia), rosso (protanopia) e blu (tritanopia).
I LED di segnalazione, perciò, dovrebbero essere tutti gialli od ambra, a mio avviso.
Ricordati anche che mettere l'intera confezione di una stessa medicina nello scomparto, parte dal presupposto che il paziente riesca a prendere la medicina ed a ricordare la dose necessaria, cose non necessariamente vere nel caso di artrite alle mani e demenza senile: meglio dunque tanti piccoli scomparti removibili (per portare più facilmente la dose alla bocca) e nella quantità già calcolata. Il vantaggio è che possono essere presenti nello scomparto più tipi di farmaci. Punterei, cioè, più che sulla differenza delle medicine, sulla dose da prendere in un dato momento.
Ciao cyberhs  Osservazione corretta, ma il problema è precaricare la dose nello scomparto, hai visitato questo sito? http://www.instructables.com/id/The-Automatic-Medication-Dispencer/potrebbe essere la soluzione. Il progetto effettivamente al momento è indicato a quelle persone che hanno problemi di memoria ed ancora autodipendenti, ma per la dose, basterebbe indicarla sullo scomparto con un biglietto che ricordi ad esempio "Due pastiglie" o "Una capsula" etc.. o addirittura sul display. Come hai notato, all'interno degli scomparti, ho inserito un bigliettino con il nome della medicina e l'orario per facilitarne il riposizionamento dopo l'assunzione. Per i led effettivamente, ho usato due colori "rosso e giallo" e potrebbero diventare tutti gialli, purchè in due distinte bacheche. PS.: Perchè non partecipi anche tu al progetto, ho bisogno di consigli come questi per cercare di accontentare più persone possibili. Grazie ancora cyberhs.
|
|
|
|
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #28 on: November 11, 2012, 02:35:45 pm » |
Ciao tuxduino, Ciao, progetto molto interessante! Non fosse che ormai non mi serve più avrei provato ad implementarlo anch'io... Mentre leggevo questo topic e osservavo le foto sul tuo sito, mi chiedevo se esiste un modo per un non-programmatore di verificare che le indicazioni scritte nel dispositivo corrispondono ad una determinata serie di prescrizioni mediche. Mi spiego meglio: un familiare, il medico di famiglia o un'infermiere/a possono facilmente controllare, foglio alla mano, che quanto programmato sia corretto ? Probabilmente la combinazione LCD+tastiera+Menu è sufficientemente chiara, ma pensavo anche a qualcosa tipo un programma su PC che legge dal dispositivo la programmazione tramite la porta seriale e produce un report "human-readable"
Un suggerimento interessante, pensandoci, si potrebbe effettivamente, con un piccolo software, allacciarsi eventualmente anche telefonicamente con codice cliente "esempio codice fiscale" e password al device ed impostare direttamente, ad esempio dall'ufficio del dottore, lo stesso, e permettergli di cambiare le dosi e gli orari delle assunzioni. Un upgrade eventuale da tener presente anche per chi amministra il device, esempio figli, parenti o badanti. PS.: Vale anche per te, ti piacerebbe partecipare al progetto, anche se non ne hai più bisogno? Ricorda che ci sono molte persone che al contrario ne hanno ancora. Un semplice gesto altruista ma di notevole importanza. Pensaci. Grazie. Giuseppe G.
|
|
|
|
« Last Edit: November 11, 2012, 03:13:28 pm by Giuseppe G. »
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
Torino (Italy)
Offline
Full Member
Karma: 0
Posts: 224
A ciascuno l'arte sua, e le pecore ai lupi.
|
 |
« Reply #29 on: November 11, 2012, 03:23:37 pm » |
 L'idea di tuxduino, è interessante: poter vedere come è programmato il device dal PC. Ho provato subito, semplicemente attivando la seriale ed inserendo una funzione che se si premono contemporaneamente i due tasti up e down, il device invia i dati via seriale in sequenza. Ma se si attiva la seriale sull' IDE, al momento della connessione con il serial monitor, arduino si resetta cancellando i dati inseriti e non invia nulla, al secondo tentativo invia i dati di default. Qualcuno sà indicarmi come eventualmente gestire questo problema e se è possibile ovviarlo? PS.: Ho usato l' IDE 0022 per il test. Grazie. 
|
|
|
|
|
Logged
|
Un saluto a tutta la comunità. Giuseppe G.
|
|
|
|
|