Newsgroup: it.hobby.elettronica.digitale
Titolo: datalogger per brevi impulsi di tensione for dummies

Buongiorno a tutti.
Premettendo che mi diletto in programmazione (fortran/c/php) e svolgo
per professione attività di misure e acquisizioni analogico/digitali
in laboratorio, fra poco mi dovrò cimentare nell'ideazione di un
datalogger compatto per l'acquisizione di brevi chiusure di circuiti
già alimentati, quindi acquisizione di fronti di tensione (rising o
falling edges). Nello specifico questi fronti andranno da uno stato di
"alto" superiore ai 5V ad uno stato di "basso" di 0V, lo statto di
basso verrà mantenuto per pochi ms, e si ritornerà all'alto (talvolta
varrà il contrario). Questo costituisce di fatto il mio "impulso".
Quello che dovrò andare a realizzare è un circuitino di ridotte
dimensioni, sul qualche come input entrerò con i miei due cavi in
tensione (e pochi mA) e che dovrà avere un microcontroller in grado di
eseguire semplici operazioni. Deve rilevare l'ora (data un orologio
interno) dell'impulso con la massima risoluzione possibile (meglio se
frazioni di secondo), fare due semplici operazioni aritmetiche
sull'ora e memorizzare i risultati in una memoria (eeprom??).
Ogni tot qualcuno si collegherà col pc al queto dispositivo e deve
poter scaricare un file contenente gli orari di impulso ed i risultati
delle operazioni fatte ad ogni impulso.
Come avrete già notato non ho esperienza pregressa nel campo, quindi
mi affido a consigli per quanto riguarda i componenti che mi
serveranno per costruire questo sistemino (il dispositivo per gestire
l'ingresso in tesnione, l'orologio, il processore da programmare per
eseguire i calcoli, il gestore della comunicazione con pc,
l'alimentazione a batteria) e qualche dritta su come realizzarlo e
programmarlo. Sono completamente nuovo ma ho voglia di impara,
l'argomento mi interessa e mi sarà decisamente utile come competenza.
Ringrazio chiunque voglia darmi un contributo!
Matteo Colli

 Matteo Colli
Non sai una mazza di elettronica, piu' che contributo ti ci vuole Padre
Pio.

 Matteo Colli

 l'argomento mi interessa e mi sarà decisamente utile come competenza.
Credo che tutto quello che serve sia messo a disposizione dal 
costruttore, ma sicuramente ti occorrera' un certo impegno per riuscire 
dapprima a districarti nel codice.
i miei 2 cents, ciao
Angelo



AHAH ok, sono di buona volontà guarda, chiedo solo le imbeccate
giuste.


Ti ringrazio tantissimo, farò un bel po' di ricerche sulle tracce che
mi hai fornito, mi sembra un ottima pista.
In effetti la precisione dell'orologio è un fattore chiave, non posso
pretendere che qualcuno vada ogni due giorni a risincronizzare l'ora
giusta. Quindi potrebbe valere la pensa di utilizzare questo
oscillatore al quarzo che mi hai citato, in cosa consiste nello
specifico?
Sul sito della Microchip ho visto che si cita spesso lo start kit, può
essere una palestra utile per imparare a programmare circuiti di
questo tipo o rischio di andare fuori strada?

Pio.
Questo non č il Bertolazzi ma qualche spiritoso che si diverte cosě.
NNTP-Posting-Host: 87.20.148.76 
IT 	Italy 	04 	Campania 	Naples 		40.8333 	14.2500
Telecom Italia 	Telecom Italia 
Bertolazzi perň sta a Genova, non a Napoli
Sarebbe anche ora di smetterla con queste bambinate.
--
ciao
  Stefano

 Sarebbe anche ora di smetterla con queste bambinate.
Thanks.

Ciao Matteo,
come ti è già stato scritto, soluzioni al tuo problema su internet ne
poi trovare veramente tante, quello che però non ho ben capito è se ti
interessa un dispositivo praticamente già pronto o se desideri
qualcosa che ti possa servire per imparare a fare tuoi dispositivi.
Perchè nel primo caso probabilmente la soluzione SparkFun può andare
bene (occhio alle spese doganali...) altrimenti se ti interessa
diventare "autonomo" la tua scelta deve essere ben ponderata, perchè
(almeno agli inizi) scegliere una famiglia di microprocessori è un po
come "sposarsi"...
Cosa intendo: se scegli un processore molto diffuso e di bassissimo
costo (ad esempio il famoso PIC) puoi riuscire a fare parecchi bei
"giocattolini" accorgendoti poi però che per ottenere il massimo devi
studiarti l'ASM di quella famiglia, che è quanto mai "curioso" in
quanto si basa su 12 bit anziché 8 o 16 (o maggiore). E questo
aspetto, credimi, può portare a qualche difficoltà. Ed anche l'uso del
C con processori così "piccoli" può essere limitato, perchè come sai
quando poi compili un semplice algoritmo questo occupa sempre una
discreta quantità di memoria non volatile (oltre poi alla velocità di
elaborazione che nei PIC non è il principale "vanto").
Se sposti la tua attenzione alla famiglia ATMEL ATMega, puoi avere il
vantaggio di utilizzare un ambiente di sviluppo a bassissimo costo e
molto diffuso quale il progetto "Arduino" (
www.arduino.cc
), dove
esiste una grande comunità internazionale con la quale confrontarti
(anche in italiano visto che è un progetto nato in Italia!). Ma anche
qui poi devi fare i conti con fattori quali: velocità di elaborazione,
precisione degli ingressi analogici ed assenza di uscite analogiche
vere (oltre ad altri aspetti realtivi a discutibili scelte nella
realizzazione delle librerie..).
Oppure puoi fare già il "salto" a sistemi più completi, come la nuova
famiglia xmega della atmel (si trovano già diverse schede pronte con
le quali lavorare), o passare direttamente ad un ARM come questo:
http://mbed.org/handbook/mbed-NXP-LPC1768
 per il quale trovi già
parecchie librerie pronte ( 
http://mbed.org/cookbook/Homepage
 ) e
sopratutto hai a disposizione un ambiente di sviluppo che non
necessita neppure di essere installato: 
http://mbed.org/handbook/Compiler-Tour
Come vedi la scelta non è così immediata e per iniziare dovresti anche
cercare di capire le "dimensioni" del tuo progetto, ovvero: oltre alla
frequenza massima di campionamento stabilire quanto deve essere lungo
il "buffer" prima di poterlo "svuotare" attraverso il collegamento la
PC (per determinare le caratteristiche della memoria da utilizzare,
quali: dimensione e velocità di scrittura/lettura, se seriale o
parallela), se il dispositivo deve funzionare anche in assenza di
alimentazione, per quale autonomia (ore, giorni, settimane, mesi,
anni), il tipo di connessione con il pc (seriale, usb, wifi...), e per
quanto riguarda poi la gestione dell'ingresso, se sei certo di non
avere problemi di disturbo o pericolose fluttuazioni nel segnale
(0-5V), non ti serve molto, ma se sei in presenza di possibili
"scariche" ti occorrerà opto isolare l'ingresso ed in situazioni di
frequenti disturbi (es: presenza di inverter trifase), crearti un
algoritmo affidabile per escludere impulsi di durata inferiore ad un
minimo prefissato (e questo valore sarà condizionato dalla velocità di
elaborazione del micro che avrai scelto).

 bene (occhio alle spese doganali...)
Si può comprare in Germania a costo comparabile senza rischiare impicci 
tra dogana e spedizione.
- 
http://www.watterott.com/en/Logomatic-v2-Serial-SD-Datalogger
-- 
Design for the future, because it will be here sooner than you think.
(C) Eric S. Raymond, from "The Art of Unix Programming"

 varrà il contrario). Questo costituisce di fatto il mio "impulso".
-cut-
quello che ti conviene fare, a mio parere, è fare un circuito che campiona 
continuamente la linea di ingresso e memorizza in un buffer circolare (es. 
una FIFO). Oltre a mettere nel buffer lo confronti con un altro valore 
(TRIGGER, come gli oscilloscopi). Se risulta un impulso da "prendere", la 
fifo tiene i valori precedenti al trigger (che puoi tranquillamente 
"allontanare" dal valore di zero o quello che hai) e continui a salvare fino 
a dopo un tot di valori successivi al ri-attraversamento del trigger. In 
questo modo puoi permetterti di tenere la frequenza di campionamento alta e 
quindi avere una buona risoluzione sull'impulso. Puoi valutare la frequenza 
di campionamento richiesta (e quindi anche del filtro antialiasing) in base 
allo slew rate, in modo molto spannometrico, con questa formulina:
Ts (max) = 0,35 * Trise / 2
che ti dice all'incirca la frequenza a -3dB del tuo segnale. Attenzione nel 
dimensionamento dell'antialiasing!!
Soluzioni RTC, invece, ne trovi quante ne vuoi. Da quelle da integrare nel 
micro (con o senza quarzo esterno) a quelle su bus I2C o SPI dei maggiori 
produttori (es. Maxim/Dallas  
www.maxim-ic.com
)
Per quanto riguarda la comunicazione, sempre dai soliti maggiori produttori 
trovi tutti i driver di interfaccia che ti servono, dalla RS232 al CAN alla 
Ethernet alla Wifi
Ciao
CG