<< Chapter < Page Chapter >> Page >
Nell'elaborazione di segnali catturati da sensori c'è necessità di effettuare alcune operazioni ricorrenti, quali il filtraggio o la sogliatura.

Isteresi e soglie

L' isteresi è quella proprietà dei sistemi che li fa reagire con un certo ritardo alle forze ad essi applicate. Ad esempio, all'atto disedersi su una poltrona imbottita, la relazione tra forza e compressione del cuscino può essere di forma isteretica , ed evidenza di ciò si può avere dall'impronta lasciata nel momento in cui ci si rialza.Nel design dell'interazione, l'isteresi viene introdotta deliberatamente per ritardare le azioni del sistema rispettoall'accadere di eventi. Per esempio, il click del mouse in una certa area può attivare un menu, la cui scomparsa viene peròritardata rispetto all'uscita da quella regione, in modo da consentire all'utente di esplorare le voci del menu anche conpercorsi del mouse imperfetti. Nei regolatori automatici, quale è ad esempio il termostatoper la regolazione di temperatura, è spesso presente un elemento isteretico per evitare commutazioni spurie, adesempio dovute ai rimbalzi degli interruttori. Il termostato, in particolare, attiva il bruciatore quando latemperatura scende al di sotto di una soglia ( threshold ) A , ma non lo spegne fintantoché la temperatura non raggiunge una seconda soglia B A . Quindi, l'accensione e spegnimento del bruciatore dipendono dalla storia del segnale di temperatura. Ciòpreviene sequenze rapide di accensione/spegnimento per oscillazioni di temperatura intorno alla soglia.Nella sua forma più stilizzata , un sistema con isteresi è bistabile. Cioè caratterizzato da due stati stabili. Quindi,per programmare un interruttore con isteresi è sufficiente utilizzare una variabile boolean acceso e due soglie basso e alto : if (acceso) { if (signal<basso) { // operazioni di spegnimentoacceso = false; }} else //spentoif (signal>alto) { // operazioni di accensioneacceso = true; }

Si scriva un programma Processing che disegni la curva della pressione acustica catturata dal microfono. A bassepressioni la curva sia disegnata in verde. Quando la pressione acustica supera una soglia superiore la curvadeve diventare di colore rosso, e tornare ad essere verde quando torna al di sotto di una soglia inferiore.

Una soluzione che fa uso della libreria audio Minim è la seguente: import ddf.minim.*;AudioInput in; int WIDTH=400, HEIGHT=200;int x; int level, prevLevel;color colorLine=color(0,255,0); boolean acceso=false;int basso=80; int alto=120;Minim minim;void setup() {size(WIDTH, HEIGHT); minim = new Minim(this);// get a line-in from Minim: mono, 512 sample buffer // default sampling rate is 44100, default bit-depth is 16in = minim.getLineIn(Minim.MONO, 512);}void draw() {if (x==0) { background(0);stroke(255,0,0); line(0,HEIGHT-alto,WIDTH,HEIGHT-alto); stroke(0,255,0); line(0,HEIGHT-basso,WIDTH,HEIGHT-basso);} stroke(colorLine);level = int(in.left.level()*HEIGHT*10); line(x, HEIGHT - prevLevel, (x+1)%WIDTH, HEIGHT - level);x = (x+1)%WIDTH; prevLevel = level;if (acceso) { if (level<basso) { colorLine = color(0, 255, 0);acceso = false; }} else //spento{ if (level>alto) { colorLine = color(255, 0, 0);acceso = true; }} }void stop(){ // always stop Minimminim.stop(); super.stop();}

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Programmazione di artefatti interattivi. OpenStax CNX. Dec 09, 2010 Download for free at http://cnx.org/content/col10417/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Programmazione di artefatti interattivi' conversation and receive update notifications?

Ask