Archivi tag: sensore battito

Kit di sensori per sperimentazione con Arduino

Tutti i sensori in commercio necessitano di un circuito elettronico di contorno che ne permette l’interfacciamento al microcontrollore è quindi indispensabile per chi desidera effettuare sperimentazioni avere competenze elettroniche adeguate che certamente non si hanno per i molti (studenti, maker, ecc…) che incominciano ad utilizzare Arduino. Le difficoltà che si hanno nelle prime fasi di sperimentazione potrebbero essere superato considerando il sensore una black box di cui sappiamo qual’è la grandezza fisica che rilevano e quali sono le funzioni dei piedini da collegare alla scheda Arduino, questo metodo è praticamente identico a quanto già si fa a scuola utilizzando ad esempio i Lego Mindstorms, la concentrazione va sulla programmazione e non sul singolo componente, la tecnologia la si studia in una fase successiva, quando il percorso didattico lo permette. Il vantaggio principale nell’operare in questo modo è che si riesce ad implementare artefatti sufficientemente complessi che hanno come obiettivo quello di far percepire il proprio apprendimento e di accettare in una fase successiva la difficoltà nella comprensione dettagliata (interna) di ogni singolo circuito elettronico.
I motivi di questo mio operare inoltre si rifà ad una breve sperimentazione sulla dispersione scolastica in cui ho necessità di rimotivare alcuni allievi e quindi ho bisogno di offrire degli strumenti che possano dare immediatamente “soddisfazione” e voglia di costruire.
La “cavia” 🙂 per la mia progettazione, prima che i miei allievi, è stato il giovane liceale (mio figlio) che entra per la seconda volta come protagonista su queste pagine, infatti ho deciso di regalargli un kit di sensori estremamente interessante costituito da ben 37 sensori acquistato su Bangood ad un prezzo conveniente che in questo periodo inoltre risulta in offerta. Ho avuto modo di utilizzare tutti i sensori e ritengo che con questo kit potrete sviluppare una quantità elevata di esperimenti. Perché ho scelto questo kit? Ho analizzato diverse soluzioni su diversi store on-line, ma il rapporto qualità/prezzo risultava il migliore.
Per facilitarne l’utilizzo sto creando un breve manuale con gli sketch di base per utilizzare i vari sensori in modo che si possa in autonomia effettuare i primi esperimenti, li aggiungerò volta per volta anche perché li utilizzerò nei prossimi giorni anche a scuola.
Spero di rispondere, con questa mia proposta, a quanti in queste vacanze mi hanno chiesto consigli sulla dotazione di base per incominciare con Arduino pur avendo conoscenze scarse o nulle in elettronica.
Non entrerò nel dettaglio del funzionamento fisico, l’atteggiamento ora e nei successivi post, che parleranno di questo kit, sarà quello di descrizione dei mattoncini con gli sketch di esempio che potrete poi voi migliorare ed ampliare. All’interno degli sketch trovate la spiegazione sul funzionamento delle varie parti di codice.

scatola-sensori

sensori

Questa la lista dei sensori del kit (tratto dal sito Bangood)

1 x Active buzzer module
1 x Passive buzzer module
1 x Common cathode RED&GREEN LED module
1 x Two color common cathode LED module
1 x Knock sensor module
1 x Shock switch sensor module
1 x Photo resistor sensor module
1 x Push button module
1 x Tilt switch module
1 x RGB LED module
1 x Infrared transmit module
1 x RGB colorful LED module
1 x Hydrargyrum switch sensor module
1 x Colorful auto flash module
1 x Magnet-ring sensor module
1 x Hall sensor module
1 x Infrared receive sensor module
1 x Analogy hall sensor module
1 x Magic ring module
1 x Rotate encode module
1 x Light break sensor module
1 x Finger pulse sensor module
1 x Magnetic spring module
1 x Obstacle avoidance sensor module
1 x Tracking sensor module
1 x Microphone sensor module
1 x Laser transmit module
1 x Relay module
1 x Analog temperature sensor module
1 x 18b20 temperature sensor module
1 x Digital temperature sensor module
1 x Linear hall Sensor module
1 x Flame sensor module
1 x High sensitive voice sensor module
1 x Humidity sensor module
1 x Joystick PS2 module
1 x Touch sensor module

Una premessa necessaria prima di incominciare con la descrizione e l’utilizzo dei sensori del kit acquistato su Bangood e di dare qualche nozione su cosa sono i sensori e gli attuatori, in modo che sia più semplice procedere con la sperimentazione.

Riprendo quanto già pubblicato nelle mie slide

I sistemi elettronici per interagire con il mondo fisico, utilizzano:

  • sensori che hanno il compito di percepire quantità fisiche dell’ambiente
  • attuatori, dispositivi che compiono un’azione in funzione di ciò che è stato rilevato dal sensore ed elaborato da un circuito elettronico.

Sensori e attuatori vengono anche detti trasduttori.

Un trasduttore è quindi un dispositivo in grado di convertire una grandezza fisica in un’altra.

In generale i trasduttori che convertono grandezze fisiche in segnali elettrici saranno collocati in ingresso ad un circuito elettronico, come Arduino e vengono denominati sensori.

Trasduttori che a partire da segnali elettrici in ingresso permettono di controllare o modificare una grandezza fisica esterna sono detti attuatori.

Esempi di sensori

Il termometro a mercurio converte la variazione della temperatura nella variazione di lunghezza di una colonnina di mercurio.

termometro

Il microfono che converte il suono in segnale elettrico.

microfono

Sensori di luce: Fototransitor, fotodiodo, fotoresistenza, pannello solare. La variazione di luce viene convertita in una variazione di una grandezza elettrica: resistenza, corrente elettrica, ecc…

sensori-luce

Esempi di attuatori

L’altoparlante è un attuatore che converte un segnale elettrico in onde sonore per questo motivo viene anche definito come un trasduttore elettroacustico.

altoparlante

La molla converte una forza in uno spostamento lineare

molla

Potenziometro, converte uno spostamento lineare in una variazione di resistenza

potenziometro

Termistore, trasforma una temperatura in una variazione di impedenza.

termistore

Sensori del kit

BUZZER

I buzzer possono essere di due tipi: attivi e passivi
I buzzer attivi hanno al loro interno un’oscillatore che emetterà suono se vengono alimentati, mentre quelli passivi non posseggono un oscillatore interno e quindi per emettere suono è indispensabile fornire al buzzer un segnale ad onda quadra tra i 2Khz e i 5 Khz.

Sperimentazione Buzzer attivo

buzzer-passivo

schema-buzzer-passivo

  • Pin S del sensore collegato al pin 4 di Arduino
  • Pin sensore a GND di Arduino
  • Pin alimentazione sensore (centrale) collegato a +5V di Arduino

buzzer-passivo-foto

// Prof. Michele Maffucci
// 08.01.15
// Utilizzo del buzzer passivo

const int pinBuzzer = 4;
// pin a cui è collegato il buzzer

int frequenzaquenza;
// variabile in cui memorizzare il valore della frequenza

void setup()
{
  pinMode(pinBuzzer,OUTPUT); // inizializzazione del pin a cui è collegato il buzzer
}

void loop()
{
  for(int i = 200; i <= 1000; i++) // loop di frequenze da 200 a 1000 hz { tone(pinBuzzer,i); // viene emesso dal buzzer un suono a frequenza i delay(5); // attesa di 5 millisecondi (in modo da percepire il suono emesso) } delay(3000); // attesa di 3 secondi. La frequenza più alta sarà emessa per 4 secondi for(int i = 1000; i >= 200; i--)  // loop di frequenze da 100 a 200 hz
  {
    tone(pinBuzzer,i);   // viene emesso dal buzzer un suono a frequenza i
    delay(5);            // attesa di 5 millisecondi (in modo da percepire il suono emesso)   
  }
}

Sperimentazione Buzzer attivo

buzzer-attivo

schema-buzzer-attivo

  • Pin S del sensore collegato al pin 11 di Arduino
  • Pin sensore a GND di Arduino
  • Pin alimentazione sensore (centrale) collegato a +5V di Arduino

buzzer-attivo-foto

// Prof. Michele Maffucci
// 08.01.15
// Utilizzo del pinBuzzer attivo

const int pinBuzzer = 11;
// pin a cui è collegato il buzzer

void setup()
{
  pinMode(pinBuzzer,OUTPUT);  // inizializzazione del pin a cui è collegato il buzzer
}

void loop()
{
  int a,b;

  // la condizione del while è sempre vera "1" quini il ciclo sarà infinito
  // all'interno di ogni ciclo sul pin a cui è collegato il buzzer viene inviata
  // un segnale alto per x ms ed un segnale basso per y ms il periodo totale dell'onda
  // sarà T = x + y e quindi la frequenza sarà f = 1/T

  while(1)
  {
    // emissione di una segnale a frequenza di 500 hz
    for(a=0;a<80;a++)
    {
      digitalWrite(pinBuzzer,HIGH);
      delay(1);                      // attesa di 1 ms
      digitalWrite(pinBuzzer,LOW);
      delay(1);                      // attesa di 1 ms
    }
    // emissione di una segnale a frequenza di 250 hz
    for(b=0;b<100;b++)
    {
      digitalWrite(pinBuzzer,HIGH);
      delay(2);                  // attesa di 2 ms
      digitalWrite(pinBuzzer,LOW);
      delay(2);                  // attesa di 2 ms
    }
  }
} 

Sensore di battito

Il sensore di battiti vi permetterà di rilevare vibrazioni anche molto lievi, infatti è costituito da una piccolissima molla che posta in vibrazione chiude un contatto.

battito

schema-sensore-battito

  • Pin S del sensore collegato al pin 7 di Arduino
  • Pin sensore a GND di Arduino
  • Pin alimentazione sensore (centrale) collegato a +5V di Arduino

battitto-foto

// Prof. Michele Maffucci
// 08.01.15
// Sensore di battito

const int pinBattito = 7;    // pin a cui è collegato il il sensore
const int pinLed =  13;      // pin a cui è collegato il LED che rileva il battito
                             // viene usato il led L collegato al pin 13


int statoBattito = 0;        // variabile in cui memorizzare lo stato del sensore

void setup() {
  // inizializzazione del pin a cui è collegato il LED ad output
  pinMode(pinLed, OUTPUT);
  
  // inizializzazione del pin a cui è collegato il sensore ad input
  pinMode(pinBattito, INPUT);     
}

void loop(){
  // lettura dello stato del sensore
  statoBattito = digitalRead(pinBattito);

  // verifica se il sensore rileva un battito
  // il sensore è attivo basso
  
  // se rileva un battito il sensore è ad HIGH:
  if (statoBattito == LOW) {     
    // accendel il LED 
    digitalWrite(pinLed, HIGH);
    delay(1000);
  } 
  else {
    // spegne il LED:
    digitalWrite(pinLed, LOW); 
  }
}

Nelle prossime puntate la descrizione degli altri sensori.