Pages: 1 [2] 3 4 ... 14   Go Down
Author Topic: Arduo Memory Reminder Medicine  (Read 15523 times)
0 Members and 1 Guest are viewing this topic.
Torino (Italy)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un saluto a tutti.  smiley-red

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.

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

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 Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-wink 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 Offline
Sr. Member
****
Karma: 1
Posts: 287
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per conoscere la Ram disponibile utilizza questa funzione:

Code:
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 Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-yell

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 Offline
Sr. Member
****
Karma: 1
Posts: 287
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

la variabile v è una variabile interna alla funzione freeRam, non potresti utilizzarla così..
Ecco uno sketch di esempio:

Code:
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 Offline
Sr. Member
****
Karma: 1
Posts: 287
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-wink 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 Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-mr-green 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 Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-mr-green
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.  smiley-wink
Logged

Un saluto a tutta la comunità.
Giuseppe G.

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 44
Posts: 1383
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 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)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
    progetto molto interessante! Non fosse che ormai non mi serve più smiley-sad 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" smiley-wink
Logged

Torino (Italy)
Offline Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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  smiley-wink

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 Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao tuxduino,

Quote
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 Offline
Sr. Member
****
Karma: 0
Posts: 269
Fare insegna a fare.Do teaches how to make.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-eek
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. smiley-yell
Logged

Un saluto a tutta la comunità.
Giuseppe G.

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