Show Posts
Pages: [1] 2 3 ... 32
1  International / Software / Re: TRIGWIZ: trivial trigger wizard on: March 24, 2014, 10:13:31 am
Aggiornata libreria. Ora se si mette NULL al posto di una callback di read TRIGWIZ, non effettua la lettura (non chiama nessuna callback). Nell'esempio si metterà quindi una read solo all'ultimo trig.
tra l'altro ho notato che avevo postato una libreria con il file .cpp sbagliato... E' stata scaricata due volte ... sorry...
2  International / Software / Re: TRIGWIZ: trivial trigger wizard on: March 24, 2014, 09:09:54 am
Si in questa beta si. Ma sto modificando per far si che se si mette NULL al posto della funzione read quando si definisce il trigger con addTrig , la libreria fa solo il controllo sulla condizione.
Nell'esempio si definirà quindi un trig con callback di read solo sulla primo o ultimo trig di una specifica variabile...
3  International / Software / Re: TRIGWIZ: trivial trigger wizard on: March 24, 2014, 07:57:44 am
va beh... io metto la libreria...  smiley
 Qui di seguito si riporta uno sketch di esempio che utilizza un sensore di temperatura TMP36.

Si vuole compiere azioni diverse al verificarsi dei seguenti eventi:
•   quando la temperatura scende sotto i 22°
•   quando la temperatura è compresa tra 22° e 25°
•   quando la temperatura è superiore ai 25°
Il codice completo dell’esempio è il seguente:


Code:
#include "trigwiz.h"

int sensorPin =0; // pin dati del sensore TMP36
float f=20.0;     // variabile da tenere sotto controllo

trigwiz trig;     // oggetto trigwiz

void setup(){
    _trig *t;     // puntatore al trigger creato dalla funzione addTrig

    Serial.begin(19200);

    t=trig.addTrig(&f,TW_ISLOWER,22.0,readTMP36,act1TMP36);
    t=trig.addTrig(&f,TW_ISINRANGE,22.0,25.0,readTMP36,act2TMP36);
    t=trig.addTrig(&f,TW_ISHIGHER,25.0,readTMP36,act3TMP36);
    }

void loop(){
    trig.watch(); // controlla tutti i trigger create e lancia le azioni
    }


//**********************************************************
// legge il sensore e restituisce il valore della temperatura
//**********************************************************

float readTMP36(){
    return((((analogRead(sensorPin)*5.0)/1024.0)-0.5)*100.0);
    }


//**********************************************************
// azioni al verificarsi degli eventi
//**********************************************************

void act1TMP36(float f){
    Serial.println("NORMAL: TEMPERATURE <22");
    }
void act2TMP36(float f){
    Serial.println("WARNING: temperature is between 22 and 25");
    }
void act3TMP36(float f){
    Serial.println("ALARM: temperature >25");
    }

La libreria l'ho messa in attached al primo post..
4  International / Software / TRIGWIZ: trivial trigger wizard on: March 21, 2014, 11:44:40 am
EDIT:  24/03/14 libreria v 0.0.2 inserita come file attached
Una altra inutile libreria ... :-)

Molti sketch su Arduino si limitano a monitorare il valore di uno più  sensori (più in generale di una o più variabili) attivando delle “azioni” al superamento di determinate soglie.

TRIGWIZ è una libreria dedicata a questa classe di applicazioni. E’ “trivial” nel senso che offre delle funzionalità minime (anche se non banali), è “trigger” in quanto, al verificarsi di una condizione definita dall’utente (evento),   attiva una callback. E’ “wizard” in quanto pensata per una codifica semplice.

Gli “eventi” attualmente gestiti dalla libreria sono costituito dal verificarsi di una delle seguenti condizione
•   il valore della variabile è uguale ad un dato valore impostato dall’utente (TW_ISEQUAL)
•   il valore della variabile è inferiore  ad un dato valore impostato dall’utente (TW_ISLOWER)
•   il valore della variabile è superiore  ad un dato valore impostato dall’utente (TW_ISHIGHER)
•   il valore della variabile è all’interno di un certo intervallo di valori, definito da un valore minimo e daun valore massimo  (TW_ISINRANGE)

Dal punto di vista pratico l’utilizzo della libreria prevede che l’utente definisca una variabile globale (i tipi supportati al momento sono int, float e uint8_t) da tenere “sott’occhio” e due funzioni o callback:
•   una funzione chiamata di “read” che legga il valore del sensore  (o comunque vari il valore della variabile sotto osservazione) ad ogni chiamata
•   una funzione chiamata di “action” che compia l’azione definita dall’utente al verificarsi di un evento

In attached un breve tutorial.
Se la libreria interessa qualcuno la allego... ma attenti che è in prebeta ... :-)
5  International / Generale / Re: Incontro comunità di Arduino 2014 on: March 18, 2014, 11:30:52 am
si sono 800 metri. Ma tu non fare lo svizzero però ..  smiley
Non so bene per eventuali alloggi. Mi posso informare
6  International / Generale / Re: Incontro comunità di Arduino 2014 on: March 18, 2014, 09:13:31 am
Gli amici di Codemotion possono aiutarci con la logistica. Si potrebbe avere a disposizione una aula di Ingegneria di Roma 3  per un fine settimana. Viene utilizzata per gli incontri di hackathon.
Fatemi sapere se di interesse così chiedo conferma...
7  International / Generale / Re: Incontro comunità di Arduino 2014 on: March 16, 2014, 03:23:34 pm
Ciao a tutti.
Se decidete per Roma posso vedere di trovare uno spazio adeguato. Non prometto niente ma credo di potercela fare.
Forse anche qualche menata in più. vediamo. Ma quali sarebbero le esigenze esattamente ?
8  International / Hardware / Re: Arduino Wireless on: March 13, 2014, 10:26:33 am
attached qualche referenza
9  International / Software / Re: [Risolto] Confronto di variabili con approssimazione on: March 13, 2014, 10:08:56 am
 smiley-yell
bella
10  International / Software / Re: [Risolto] Confronto di variabili con approssimazione on: March 13, 2014, 10:06:37 am
figurati. basta che non mi parliate di hardware ... :-)
che poi a furia di frequentare tutta la brutta gente (hardwaristi) di questo forum qualcosa ho imparato pure io ...
11  International / Software / Re: confronto di variabili con approssimazione on: March 13, 2014, 09:59:16 am
divido lo scarto (differenza) assoluta tra due numeri per il numero maggiore. uso la differenza assoluta per avere l'invarianza del riusultato rispetto all'ordine dei due valori .
mi da la percentuale di differenza tra il numero maggiore e il numero minore.
Non era questo che ti serviva?
12  International / Software / Re: confronto di variabili con approssimazione on: March 13, 2014, 09:57:54 am
ingegnere ? :-)
13  International / Software / Re: confronto di variabili con approssimazione on: March 13, 2014, 09:53:54 am
... be lascio a te fare le conversioni tra interi e float ecc... se no che diverimento c'è?
14  International / Software / Re: confronto di variabili con approssimazione on: March 13, 2014, 09:52:37 am
abs(x)= da il valore assoluto (senza segno), nel tuo caso il valore assoluto della differenza tra le due misurazioni
max(x,y)=da il valore maggiore tra due numeri

esempio=
lettura a=7
lettura b=10

(abs(7-10)/max(7,10))>0,1
(abs(-3)/10)>0,1
(3/10)>0,1
0,3>0,1 -> maggiore della tolelranza impostata


15  International / Software / Re: confronto di variabili con approssimazione on: March 13, 2014, 09:44:40 am
ma qualcosa del genere (pseudocodice):

Code:
tolleranza=0,1  (0,1=10%, 0,2=20%)
...
if((abs(a-b)/max(a,b))>tolleranza)
then
     <tuo codice>

no?
Pages: [1] 2 3 ... 32