Questa mattina, durante la realizzazione e l’analisi dei problemi per il progetto di PCTO: “misura di sedentarietà delle persone sedute alla scrivania” che stanno realizzando i miei studenti di 3′ Elettronica, è nata l’esigenza di associare un doppio controllo per la valutazione della presenza della persona seduta alla scrivania, un controllo effettuato con PIR HC-SR501 ed un sensore di forza resistivo (FSR) inserito all’interno del cuscino della seduta.
Per evitare l’acquisto di un sensore di forza resistivo e non pesare sulle finanze dei ragazzi le modalità sono tre:
- richiesta alla scuola
- compra il Prof.
- farlo costruire ai ragazzi
l’acquisto da parte della scuola o mia non è un problema, ma la terza soluzione è quella che in questo momento prediligo, perché può essere realizzata in 5 minuti, credo che possa gratificare di più lo studente Maker in erba 🙂 , inoltre ritengo importante che gli allievi assumano la capacità di costruire il sensore perché ne dovranno ottimizzare l’uso, scontrandosi inevitabilmente con una serie di variabili fisiche che dovranno gestire.
Ma come si costruisce il sensore?
E’ indispensabile piccolo tubo cilindrico non trasparente, preferibilmente nero che possa essere compresso e al termine della compressioni ritorni abbastanza velocemente nella sua posizione di riposo. Possiamo ricavare il tubo sguainando un cavo elettrico o cavo di rete, oppure come ho fatto in questo tutorial, prendendo una guaina termorestingente.
Inserire un diodo LED ad un’estremità del cilindro e dalla parte opposta inserire un LDR.
Collegare il sistema nella solita modalità, inserendo in serie al LED un resistore da 220 Ohm e creando un partitore di tensione tra l’LDR e un resistore da 10KOhm, così come indicato nel circuito indicato di seguito.
Come test di funzionamento utilizzare il semplice sketch che trovate di seguito, nei commenti la spiegazione di tutte le parti del codice.
Aprite la Serial Monitor e premete e rilasciate il tubo
/* * Prof. Michele Maffucci * Data 01.03.2021 * * Oggetto: sensore di seduta a pressione * */ // variabile in cui verrà memorizzato il valore presente sul pin A0 const int misura = A0; // valore restituito dall'analogRead int val = 0; // pin a cui è connesso il LED del sensore di seduta int pinLed = 2; // LED che segnala la seduta della persona int pinLedAlert = 13; void setup() { // Inizializzazione della Serial Monitor Serial.begin(9600); // ledPin è il pin a cui è connesso il LED del sensore di seduta pinMode(pinLed, OUTPUT); // pinLedAlert è il pin a cui è connesso il LED che segnala la seduta della persona pinMode(pinLedAlert, OUTPUT); // Attivazione del LED del sensore di seduta digitalWrite(pinLed, HIGH); // Messaggio di avvio Serial.println("Sistema di rilevazione seduta"); Serial.println("-----------------------------"); Serial.println(""); delay(1000); } void loop() { // analogRead leggerà il valore su A0 restituendo un valore tra 0 e 1023 val = analogRead(misura); // il valore di controllo nell'if deve essere sperimentato in funzione // delle necessità costruttive (ad es. la lunghezza del tubo) // se vero la persona è seduta if (val >= 100) { digitalWrite(pinLedAlert, HIGH); // accensione del LED di avviso Serial.println("Persona NON seduta alla scrivania"); // segnalazione di assenza persona Serial.print("Valore letto dal sensore = "); // Stringa di stampa Serial.println(val); // Valore restituito dall'AnalogRead Serial.println(""); // Stampa linea vuota di separazione delay(1000); // Intervallo di 1 secondo tra ogni stampa } else { digitalWrite(pinLedAlert, LOW); // spegnimento del LED di avviso Serial.println("Persona seduta alla scrivania"); // segnalazione di presenza persona Serial.print("Valore letto dal sensore = "); // Stringa di stampa Serial.println(val); // Valore restituito dall'AnalogRead Serial.println(""); // Stampa linea vuota di separazione delay(1000); // Intervallo di 1 secondo tra ogni stampa } }
Il risultato sulla Serial Monitor è il seguente
Il valore di soglia scelto deve essere ricavato sperimentalmente in funzione della lunghezza e della trasparenza del tubo.
Buon Making a tutti 🙂