Pages: 1 ... 6 7 [8] 9 10 ... 14   Go Down
Author Topic: Arduo Memory Reminder Medicine  (Read 15886 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

 smiley-eek-blue
Girando un pò su internet, ho trovato questo (http://it.wikipedia.org/wiki/Psicoacustica) alla voce "INTENSITA'" viene specificato che orecchie più anziane hanno una sensibilità minore se si superano i 2Khz, proprio come indicavi tu Leo72.

Effettivamente un pò limitati per creare una suoneria, ecco perchè mi piacerebbe inserire queste per poterle testare direttamente con il paziente. Ora provo  a generare un pò di effetti con frequenze che non superano i 2-2,5khz inserendo pause al loro interno.

Mentre scrivevo questo, mi è venuta in mente un'altra idea, per implementare il sistema e renderlo più efficace.

 smiley

Se collego il device ad un combinatore telefonico (o cellulare) o telecomando, che fà squillare / vibrare un cellulare o ricevitore (cercapersone) che il paziente avrà sempre con sè, lo si potrà avvisare anche senza l'ausilio di un altoparlante da utilizzare nel device stesso.
Il paziente si recherà davanti ad esso, dove vedrà il lampeggio del led il quale indicherà la medicina da assumere.

Si potrebbe predisporre il device per 9 suonerie a basse frequenze, qualora le suonerie non fossero udibili dal paziente, lo si munisce di un dispositivo (cell, cerca pers. ecc....) e lo si avvisa con questo.

Certo il costo sale un pò visto che se si utilizzano due cellulari (low cost), oltre al loro prezzo, occorre poi aggiungere le schede telefoniche e ricaricarle (penso almeno 50Euro in più).

Se invece si utilizzassero due xbee, uno in TX e uno in RX, cosa che non saprei come renderlo funzionante, forse si risparmierebbe qualcosa!

Non sò, forse le idee corrono troppo veloce, ma questo era già previsto come implementazione per poter effettuare le chiamate di emergenza da telecomando con eventualmente un arduino DUE o MEGA.
Il telecomendo fungerebbe anche da ricevitore con un vibro ed un piezo per l'audio al suo interno per avvisare il paziente.

.................................. ok! per adesso

comincio con l'audio, ma prevedo che l'uscita per l'altoparlante si possa collegare ad un dispositivo di segnalazione esterno.

Ciao.
Logged

Un saluto a tutta la comunità.
Giuseppe G.

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

Sempre per la serie idee da buttare nel calderone... nel mio cestino delle cianfrusaglie elettroniche ho trovato una serie di sensori di prossimità a corto raggio (1), quasi certamente provenienti da fax o stampanti. Mi è venuto in mente allora che si potrebbe aggiungere ad ogni cella un sensore di "presenza medicina", che dica al micro se nella casella c'è una scatola oppure è vuota.
In questo modo si potrebbe emettere un suono di avvertimento se la medicina (scatola) non viene prelevata dalla cella evidenziata dal led.

Un'altra idea (poi mi taccio!) è realizzare il casellario in plastica semitrasparente, e posizionare i led in modo tale che tutta la "scatola" che compone una cella diventi luminescente. Ciò potrebbe aiutare un utilizzatore ipovedente...

(1) Tipo RPR-359F o Sharp 2L01F
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-roll
Bella l'idea della casella che si illumina, un pò costosa e non semplice la realizzazione, ma comunque futuristica.

La presenza della scatola del medicinale, implica però la dimensione della casella stessa. Occorrerebbe creare una bacheca di certe dimensioni, in relazione alle dimensioni delle scatole utilizzate.
Utilizzando un fotodiodo, quando la casella si illumina, con la scatola al suo interno, questo non viene impressionato alla prima accensione, e di conseguenza non segnala la mancanza. Ma il punto è: dove posizionare il fotodiodo?
Se invece su usasse un sensore del tipo che hai menzionato, servirebbe un sostegno a levetta, che sente la presenza del peso della scatola, e libera o copre il passaggio dei raggi all'interno del sensore. Anche questa non semplice da realizzare.
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-razz
Dimenticavo........
Postato sul sito del FABLAB, nuova versione R05H con sistemazione bug parametro configurazione lingua in conflitto con ore allarme 1 nella R05G1 ed inserimento segnalazioni sonore con frequenze basse differenti per i due pazienti, selezionabili in configurazione del sistema e memorizzate in eprom, come consigliato da Leo72.

Ciao.

Logged

Un saluto a tutta la comunità.
Giuseppe G.

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

In merito al sensore di presenza scatola: i sensori che ho trovato penso (e sottolineo penso) che diano segnale "presente" quando un corpo gli è molto vicino. Se la mia ipotesi su come funzionano è corretta, lo metterei in una posizione tale che quando c'è la scatola, copre il sensore, quando la tolgo, il sensore rimane non coperto e dà segnale negativo.

Ma come ho detto, sono per ora solo speculazioni... smiley
Logged

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

Ultimamente latito il forum ma quando posso leggo e questa volta posso anche rispondere.

In merito al sensore cassetto, posso dire che ad esempio le grattuggie industriali hanno un magnete incorporato nel contenitore ed un sensore magnetico sulla macchina e grazie a questi il motore non parte se il cassetto non è in sede, stesso sistema per il pressa cacio.

Come sensore magnetico può bastare un rele red, es. la coppia sensori magnete usati per impianti di allarme e molto economica, tra l'altro Giuseppe di allarmi dovrebbe saperne qualcosa (ardualarm)  smiley-razz

Finisce che lo producono e lo vendono a tutti gli ospedali, diventanto ricchi. smiley-razz

Un saluto a tutti i componenti di questo bellissimo forum.
Logged

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

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

L'idea è che l'utente prelevi la scatola di medicinale, non l'intero cassetto. Quindi l'utilizzo di un reed richiederebbe di applicare un magnete alla scatola. (Ho come l'impressione di non aver capito bene... smiley-razz )
Logged

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

L'idea è che l'utente prelevi la scatola di medicinale, non l'intero cassetto. Quindi l'utilizzo di un reed richiederebbe di applicare un magnete alla scatola. (Ho come l'impressione di non aver capito bene... smiley-razz )

Ho travisato la parola scatola. smiley-kitty

Quindi niente red, ma un sensore di presenza economico può essere fatto con diodo e fotodiodo IR, ricordo che gioblu con i sensori IR ci ha fatto cose molto più complesse, addirittura ha usato dei comuni led, ma questi sono troppo sensibili alla luce diurna.

Ciao.
Logged

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

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-draw
Aggiornato il progetto completo nel sito ufficiale del FABLAB Torino con semplice descrizione del funzionamento, elenco componeti progetto base, istruzioni per la programmazione fino alla release R05H, stesura idee per le implementazioni future e ringraziamenti a tutti coloro che hanno partecipato a dare un consiglio / contributo per una migliore realizzazione del device.

Un saluto a tutti.
Giuseppe G.
Logged

Un saluto a tutta la comunità.
Giuseppe G.

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

Ho aggiunto alla versione 05H la gestione della localizzazione. Ora le stringhe en/it sono raccolte in un array all'inizio del programma, ed ho sostituito le righe "if (lang==0) print(vers inglese) else print(vers italiano)" con un più manutenibile lcd.print(getString(STR_xxxx)).

Non ho usato la libreria di localizzazione che avevo scritto http://arduino.cc/forum/index.php/topic,131966.0.html perché non sono ancora soddisfatto del risultato. L'idea che sta alla base comunque è la stessa.

Per quanto riguarda la mia versione, sono entrato in "loop da libreria" smiley-grin  per cui oltre alla libreria per la localizzazione (che però come ho detto è da migliorare) ne ho scritto un'altra per la gestione dei comandi via seriale http://arduino.cc/forum/index.php/topic,133148.0.html e un'ultima per la gestione delle "pagine" del display LCD. Con quest'ultima ho (ri)scritto la parte dedicata all'impostazione di data e ora direttamente usando tastiera e lcd, e conto di usarla come "framework" per tutta l'applicazione. Aggiornamenti a breve.

Per finire un paio di annotazioni...
Rinominerei pushPin in keyACK per consistenza con keyUP e keyDW. Inoltre è rimasto un commento a proposito del led sul pin 13 che ora è sbagliato, visto che si usa come input smiley

Ciao! smiley-grin

* A_M_R_05H.pde (29.05 KB - downloaded 13 times.)
« Last Edit: November 24, 2012, 10:35:42 am by tuxduino » 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

Per fare delle prove ho estratto il codice della localizzazione e l'ho messo in uno sketch autonomo, che stampa sulla seriale tutte le stringhe nei due linguaggi:

Code:
#include <EEPROM.h>

byte _lang;

// list of defined languages
enum {
    LANG_FIRST = 0,
    LANG_EN = 0,
    LANG_IT = 1,
    LANG_LAST = 1,
};

// eeprom memory address of language setting
const byte EE_LANG_ADDR = 128;

// number of defined languages
const byte NUM_LANGS = LANG_LAST + 1;

// max size of localized string (including null-terminator)
//const byte MAX_STR_LEN = 17

// localized strings
const char* strings[][NUM_LANGS] = {
//   0123456789012345    0123456789012345
    "SetDefault_ALARM", "Allarmi_predef. ",        //  0
    "Patient_"        , "Paziente"        ,        //  1
    "Medicine______"  , "Medicina______"  ,        //  2
    "____NO_ALARM____", "_NESSUN_ALLARME_",        //  3
    "SET_hours_______", "Impostazione_ore",        //  4
    "SET_minutes_____", "Impostaz._minuti",        //  5
    "SET_day_________", "Impostaz._giorno",        //  6
    "SET_month_______", "Impostaz.___mese",        //  7
    "SET_year________", "Impostaz.___anno",        //  8
    "SET_ADJ_sec_time", "Regol.sec.giorno",        //  9
    "SET_Legal___time", "Attiv.ora_legale",        // 10
    "SET_Lang.__EN/IT", "Linguaggio_EN/IT",        // 11
    "SET_Sound.Pat._1", "Suoneria_Paz.__1",        // 12
    "SET_Sound.Pat._2", "Suoneria_Paz.__2",        // 13
    "  Time:"         , "   Ore:"         ,        // 14
    "Pat.:"           , "Paz.:"           ,        // 15
    "SET_hour____AL"  , "SET_ore_____AL"  ,        // 16
    "SET_min.____AL"  , "SET_minuti__AL"  ,        // 17
    "SET_Patient_AL"  , "SET_Pazient_AL"  ,        // 18
    "SET_Medicin_AL"  , "SET_Medicin_AL"  ,        // 19
};


// localized strings identifiers
enum {
    STR_FIRST = 0,
   STR_SET_DEFAULT_ALARM = 0,
   STR_PATIENT     = 1,
   STR_MEDICINE    = 2,
   STR_NO_ALARM    = 3,
   STR_SET_HOURS   = 4,
   STR_SET_MINUTES = 5,
   STR_SET_DAY     = 6,
   STR_SET_MONTH   = 7,
   STR_SET_YEAR    = 8,
   STR_ADJ_SEC     = 9,
   STR_SET_LEGAL_TIME = 10,
   STR_SET_LANG    = 11,
   STR_SET_SOUND_PAT_1 = 12,
   STR_SET_SOUND_PAT_2 = 13,
   STR_TIME        = 14,
   STR_PAT         = 15,
   STR_SET_HOUR_AL = 16,
   STR_SET_MIN_AL  = 17,
   STR_SET_PATIENT_AL = 18,
   STR_SET_MEDICINE_AL = 19,
   STR_LAST = 19
};

// the the localized version of the specified string
const char* getString(byte stringId) {
    return strings[stringId][_lang];
}

// select language; the selection is stored in eeprom
void setCurrLang(byte langId) {
    if (langId < NUM_LANGS) {
        _lang = langId;
        EEPROM.write(EE_LANG_ADDR, _lang);
    }
}

// get current language selection
byte getCurrLang() {
    return _lang;
}


void dumpStrings() {
    char buf[20];
    byte saveLang;
   
    saveLang = _lang;
    for (byte strIdx = STR_FIRST; strIdx <= STR_LAST; strIdx++) {
        for (_lang = LANG_FIRST; _lang <= LANG_LAST; _lang++) {
            sprintf(buf, "%-16s  ", getString(strIdx));
            Serial.print(buf);
        }
        Serial.println();
    }
    _lang=saveLang;
}


void setup() {
    Serial.begin(115200);
   
    delay(2000);
    dumpStrings();
}


void loop() {
}
Logged

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

In inglese non si dice "legal time" per l'ora legale ma DST, Daylight Saving Time.
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-razz smiley-wink
Ottimo lavoro tuxduino!!! Ho provato lo sketch 05H modificato da te e tutto funziona correttamente!
Ho verificato la sram occupata e risultano ancora circa 640 byte liberi, mentre per la flash si và ad occupare 13570 byte, ancora meno della metà della memoria totale.

Ho sistemato la descrizione in inglese dell' ora legale consigliata da leo72, ho sistemato il bug della selezione medicina 00 paziente 2, il tutto postato sul sito ufficiale con una nuova release R05i.

Un saluto a tutti.
Giuseppe G.
Logged

Un saluto a tutta la comunità.
Giuseppe G.

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

Bene! smiley

Colgo l'occasione per segnalarti che nell'ottica di inserire un RTC, i pin A4 e A5 sarebbero occupati dalla trasmissione I2C. Ora sono utilizzati uno per un led e l'altro per il suono, se non ricordo male.
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Complimenti, bel progetto smiley-wink
butto lì due idee..
per sentire la presenza o meno della scatola, si potrebbero usare più fotoresistenze in serie per avere un effetto sensibile più "diffuso" posizionandole a dovre (io ne metterei 5 per slot), essendo un componente abbastanza lowcost si potrebbe abbondare ed è anche semplice da interfacciare.
anche usare i led non sarebbe male, visto che potreste usarli come segnalazione e come sensore allo stesso tempo, (es.  http://www.thebox.myzen.co.uk/Workshop/LED_Sensing.html) smiley-wink
vedo che non hai usato la libreria TimeAlarm, come mai?
ref: http://arduino.cc/forum/index.php/topic,37693.0.html
fra l'altro la libreria prevede già di essere usata insieme ad un rtc e funziona in coppia con la libreria Time che già usi.

« Last Edit: November 25, 2012, 02:19:35 am by BrainBooster » Logged

Pages: 1 ... 6 7 [8] 9 10 ... 14   Go Up
Jump to: