Arduo Memory Reminder Medicine

la libreria e' la stessa, ma in versione I2C liquidCrystal_i2c.
Il bello e' che usa gli stessi comandi, quindi nessuna modifica agli sketch.

L'indirizzo lo dichiari nell'assegnazione

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20); // Set the LCD I2C address ( 0x38 per PCF8574A )

:slight_smile:
Fantastico brunello!

Inizio ad implementare l'RTC, poi la eprom 24C64, così inizio a prendere dimestichezza con la wire.h ed i vari indirizzamenti.
Nel frattempo ordino un LCD seriale. A proposito, ne consigli uno in particolare?

:wink:
Grazie tuxduino!

L'idea è chiara, ora occorre implementare l'RTC. Sbaglio o avevi già fatto qualcosa? Riusciresti ad inserire le modifiche al SW per l'utilizzo dell'RTC, io nel frattempo, inserisco la EPROM che ho già. La versione del SW sarà la R1.0, legata quindi all' HD con stessa release R1.0

:roll_eyes: Domanda.... ma se inserisco la modifica SW per L'RTC ed in realtà non lo collego (almeno fino a quando non mi arriva) arduino continua a funzionare con una data ed ora di default o non funziona niente?

Nel frattempo ordino un LCD seriale. A proposito, ne consigli uno in particolare?

Seriale ?
Con due euro di chip ti adatti qualunque LCD parallelo, come quello che hai gia'.
PS. che abbia anche la Backlight, cosi' quando il tutto e' in standby lo spegni

:sweat_smile:
Giusto! Che pistola che sono!

Nessun LCD seriale, ma lo stesso adattato con il PCF8574.

L'idea di liberare così tanti pin, mi rinba........ , perchè penso alle implementazioni che si possono ancora fare. XD

L'idea è chiara, ora occorre implementare l'RTC. Sbaglio o avevi già fatto qualcosa? Riusciresti ad inserire le modifiche al SW per l'utilizzo dell'RTC

La libreria Time include già il supporto per il DS1307. La modifica è banale. Nella mia versione è già presente, provo a includerla anche nella tua :slight_smile:

Domanda.... ma se inserisco la modifica SW per L'RTC ed in realtà non lo collego (almeno fino a quando non mi arriva) arduino continua a funzionare con una data ed ora di default o non funziona niente?

Quando abilito l'rtc nel mio sketch e mi scordo di collegare il modulino l'ora che compare sul display è "strampalata", tipo 2034 o giù di lì. In realtà la libreria Time include un flag che dice se il tentativo di sincronizzarsi con la sorgente di tempo scelta (in questo caso l'rtc via i2c) è fallita o ha avuto successo. Si dovrebbe leggere questo flag, e se indica fallimento azzerare la data ad un valore di default.

Non vorrei mettere troppa carne al fuoco, ma per liberare un altro po' di pin ho trovato questo:

"The MAX6950 drives up to five 7-segment digits or 40 discrete LEDs. The MAX6951 drives up to eight 7-segment digits or 64 discrete LEDs."

Tuttavia ora che ci penso nella matrice di led, benché ne ospiti 32, è richiesto accenderne uno solo alla volta, quindi forse questo IC è "troppo"... (mumble...)

perchè non dei classici mcp2317?

si possono collegare in cascata ed ottenere un numero di io digitali elevato su bus i2c.
esempio:
http://docs.macetech.com/doku.php/centipede_shield

:roll_eyes:
Lo penso anche io tuxduino! Poi il problema è come pilotarlo. Credo si possano pilotare i display con i numeri, ma per far accendere un singlo led?

:astonished:
Paura !!! BrainBooster !
Ma quanto costa e dove si recupera centipede? Trasformerebbe arduino in un mostro di in/out, bello!

:slight_smile:
Trovato centipede! Centipede Shield V2 - Macetech Electronics Store

Prezzo interessante: 25$. Per l'evoluzione a 64 medicine, potrebbe tornare utile, pronta e già montata da applicare ad arduino !

Aggiornamento alla 05i:

  • aggiornati pin matrice led
  • rtc: aggiunti include necessari
  • rtc: ora il ds1307 è la sorgente di tempo
  • rtc: quando vengono aggiornate data e ora, viene aggiornato anche l'RTC
  • aggiornato pin altoparlante
  • pin lcd: da aggiornare... :stuck_out_tongue:

L'ho compilata ma (ovviamente) non provata.

A_M_R_05i.pde (30.4 KB)

:slight_smile:
Come al solito un buon lavoro tuxduino, ma purtroppo non ho potuto provare nulla, perchè ho impegato un pò per trovare la libreria "ds1307rtc.h", non è così semplice da trovare, ne esistono un pò di tipi ed infine ho usato una che si trova all'interno della "Time" del 05/09/2011. Sarebbe meglio se mi indicassi quale hai usato ed eventualmente dove trovarla, per non trovare eventualmente sorprese.

Domani aggiorno l'hardware e testo la tua R05i, però senza l'RTC che spero mi arrivi la prox week. (ne ho ordinati 3, insieme al PCF8574).

Per l'aggiornamento del display, secondo brunello, basta fare così:

la libreria e' la stessa, ma in versione I2C liquidCrystal_i2c.
Il bello e' che usa gli stessi comandi, quindi nessuna modifica agli sketch.

L'indirizzo lo dichiari nell'assegnazione

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20); // Set the LCD I2C address ( 0x38 per PCF8574A )

quindi, una volta montato con il PCF8574 , si cambiano queste istruzioni e tutto dovrebbe funzionare.

Che brutto, non avere un negozio/magazzino di elettronica vicino casa, dove acquistare i componenti.
Qui a Torino, una decina di anni fà ce ne erana almeno 4 grandi. Oggi è diventato tutto più difficile, i negozi/magazzino non esistono più, e gli altri negozietti, non hanno mai in emerito bip.... di quello che chiedi, e devono sempre ordinarlo.
Al contrario, li trovi su internet ma hai sempre il dilemma "e se il materiale arriva che non sono in casa?" oppure "e se dicono che hanno i componenti ed invece ti tocca aspettarli come in negozio, avendoli già pagati?" oppure "non arriveranno mai?".

Credo che questo ostacoli un pò lo sbroglio dei progetti, sia quelli amatoriali che non.
Ma con un pò di pazienza e tenacia, si riesce a risolvere lo stesso, anzi, durante questi tempi morti, si può far tesoro, riflettendo un pò sul progetto, cercando di pensare se si sta facendo bene.

Sorry, ma avevo bisogno di farti presente che il test completo non posso farlo fino alla prossima fornitura del materiale. =(
Mi sarebbe piaciuto poterti dare una risposta tempestiva, come la modifica che hai portato tu al firmware.

Un saluto.
Giuseppe

Non sto neanche a sottolineare più di tanto che per me non c'è nessun problema di tempo, si fa per il piacere di imparare "sporcandosi" le mani e dare una mano :slight_smile:

Per quanto riguarda al libreria per l'RTC, ho usato quella pubblicata insieme a Time. La libreria Time è distribuita come file .zip, all'interno del quale c'è anche DS1307.h. Nei progetti che ho fatto con l'rtc, ho sepmre usato quel file (per la cronaca, ho il modulo rtc di sparkfun, ma credo che non ci siano differenze con altre marche purché l'integrato sia lo stesso).

In merito ai pin dell'LCD, ho notato che sei stato costretto a collegarlo a pin diversi rispetto alla versione precedente. Non ho capito bene dallo schema come sono nominati i pin sul modulo LCD, quindi ho pensato che sarebbe stato più semplice e affidabile se l'aggiornamento dei pin nel codice l'avessi fatto tu :slight_smile:

Colgo infine l'occasione per riflettere sul fatto che nonostante l'overshoot :slight_smile: iniziale non sono riuscito a starti dietro in termini di funzionalità nel produrre una "mia" versione del programma, quindi forse è più corretto se come "main software developer" ti metti tu e a me affianchi la dicitura "additional development". Ma dico così per dire, non mi formalizzo :smiley:

:frowning:
Non vorrai mica farti da parte proprio ora tuxduino?
Tutti i consigli sono ben accetti, ed in particolare la tua conoscenza alla programmazione, diventa molto utile per lo sviluppo.
E' certo, che se ti interessa, come dici tu "sporcarti le mani" occorre trovare il compromesso, modificando step by step sia il codice che l'hardware, rispettando però "credo" l'interesse comune, cioè l'abilità ad utilizzare arduino nel miglior modo possibile e con la minima implementazione di dispositivi esterni.
Questo progetto, lo si sarebbe realizzato con un PC o con un tablet, alla modica cifra di 150-200 Euro. Troppo facile e banale! Esistono già applicazioni free di questo tipo, sia per android che per windows.

:roll_eyes: Io penso che il fatto di cercare di realizzare un qualcosa di nuovo ed utile a tutti senza dover spendere troppo in tecnologia e tempo di realizzazione hardware, diventi il motore che spinge alle persone come noi di arrivare a creare l'oggetto che un domani sia solo la base dell' espressione dell' open souce.

Insomma, l'obbiettivo principale è quello che io chiamo "semplicità di realizzazione", dove dietro, c'è un lavoro non indifferente di elaborazione software. Se aggiungiamo anche la semplicità al software, grazie alla tua conoscenza ed ai consigli della comunità, ecco che il progetto diventa interessante, non solo a noi, ma anche alla comunità per poter crescere a livello di conoscenza.

Dopo questo dettaglio, che ocorre ricordare ogni tanto e che pensavo fosse stato compreso da chi ha partecipato fino ad ora, ricordo che il progetto è libero "OPEN SOURCE", senza scopo di lucro ed a uso personale.

Ho voluto "regalare" condividere questo progetto alla comunità, come gli altri, sperando di poter risvegliare in qualcuno l'interesse al mondo open ed allo stesso tempo incuriosire i ragazzi che oggi intraprendono questa strada. Ultimamente se ne parla molto, ma in pochi lo praticano.

E come frase finale aggingerei: "( Il futuro oggi siamo noi. Proviamo a cambiarlo!)" :drooling_face:

Dopo questo chiarimento di pensiero, Vi informo che a breve, posterò nel sito del FABLABTorino, la nuova versione HD, R.1.1 che prenderà il posto della R.1.0, ma solo per liberare pin di arduino (quelli del display) nel caso ce ne sia bisogno, e la R.1.0a per rendere più chiaro lo schema e permettere a chiunque fosse interessato di costruirsi il dispositivo con un elenco dei componenti da me utilizzati.

Ricordo ancora, che Il software R1.0.x, potrà funzionare sia per la versione HD R.1.0 che per la R.1.1, salvo implememtazioni ai pin del display.

Un saluto a tutti. :wink:

Non vorrai mica farti da parte proprio ora tuxduino?

No, sono ancora qui :smiley:

Anzi noto con piacere che hai previsto un tasto ESC. Visto che siamo in fase di modifica, io ci metterei anche un left e un right. Tanto quella tastiera non è pensata per il "paziente", ma per la persona di supporto. Secondo me la programmazione di data/ora e allarmi risulterebbe più intuitiva con su/giu/dx/sx/esc/ok piuttosto che con solo su/giu/esc/ok.

Altra domanda: visto che si va per la strada dell'i2c port expander, pensi di abbandonare la tastiera analogica e di collegare i tasti appunto al pcf8574 ?

Bè , visto che le porte adc sono poche e preziose, conviene passare la tastiera in digitale, sulle porte fornite dal gpio, e salvare i pin analogici per usi futuri.

:roll_eyes:

Vi rispondo contemporaneamente: per le implementazioni importanti, credo si debba passare a main board più potenti e più capineti.
La tastiera analogica, è un buon rapporto qualità prezzo, anche se implica l'utilizzo di un analog. Passare alla tastiera con il PCF8574, fà si che si debba reperire in commercio anche questo. Dopo tutto il discorso del post precedente, Vi ricordo che questa release è di passaggio, quindi prevedere l'associazione a variabili tramite analogbutton dei pulsanti, da passre eventualmente in un secondo momento associandoli ad un digitalread I2C.
Per poter utilizzare oggi la release del software R.05i, che diventerà la R.1.0.0, senza grandi sforzi e cambiamenti HD, non conviene scomporsi troppo, essendoci il rischio di non far funzionare più nulla.
Basta quindi oggi ricablare l'HD esistente per far funzionare il tutto.

PS.: tuxduino, mi parlavi di flag dell' RTC per l'avvenuta R/W corretta, che lo si può gestire per usare l'orario di arduino in mancanza di questo?

Ecco la nuova release HD R.1.0a per utilizzare sia la R.0.5i che la R.1.0.0 del software che posterò non appena testata con l'implementazione della tastiera analogica. (provo ma non prometto nulla per la prox week)

quindi per adesso vuoi continuare ad usare l'lcd-keypad shield? (usavi quello no?)

:roll_eyes:
BrainBooster,

quindi per adesso vuoi continuare ad usare l'lcd-keypad shield? (usavi quello no?)

se dai un'occhiata allo schema, capirai che non ho usato alcuna shield, ma semplicemente un LCD nudo e puro, come tutti gli altri componenti.

L'idea di usare le shield, è per quelli che sperimentano il software e non vogliono perdere tempo nel cablaggio, perdendosi così anche il gusto di toccare con mano l'elettronica pura. (hobby) :wink:

BrainBooster:
quindi per adesso vuoi continuare ad usare l'lcd-keypad shield? (usavi quello no?)

Quello con lo shield sono io :slight_smile:

Premesso che sarei più propenso a mantenere la tastiera analogica (almeno per ora), non credo comunque che volendo usare l'i2c sarebbe necessario acquistare un keypad commerciale. Basterebbe collegare i pulsanti ai pin digitali del pcf8574 con dei pullup come si farebbe con i pin dell'arduino.