Show Posts
Pages: 1 [2] 3 4 ... 33
16  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..
17  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 ... :-)
18  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
19  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...
20  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 ?
21  International / Hardware / Re: Arduino Wireless on: March 13, 2014, 10:26:33 am
attached qualche referenza
22  International / Software / Re: [Risolto] Confronto di variabili con approssimazione on: March 13, 2014, 10:08:56 am
 smiley-yell
bella
23  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 ...
24  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?
25  International / Software / Re: confronto di variabili con approssimazione on: March 13, 2014, 09:57:54 am
ingegnere ? :-)
26  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'è?
27  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


28  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?
29  International / Megatopic / Re: MENWIZ: una libreria per creare menu su LCD on: March 13, 2014, 08:50:26 am
quello era il penultimo esempio codice, che non funzionava.
nell'ultimo codice (ultimo post del topic) non vedo quelle linee di codice e navmenu restituisce i codici Menwiz corretti (MW_BTU ecc...)
30  International / Megatopic / Re: MENWIZ: una libreria per creare menu su LCD on: March 13, 2014, 07:28:50 am
Vai in questo topic.
potrai trovare sia il codice che lo schema. E' per 4 bottoni, ma estenderla dovrebbe essere banale.
C'è anche il debouncing.

http://forum.arduino.cc/index.php?topic=122636.15
Pages: 1 [2] 3 4 ... 33