Una lampada intelligente e "confortevole"

La smart lamp é all’apparenza una lampada da scrivania non diversa dalle altre che si trovano negli uffici, di fianco al monitor del PC. Essa però consente di fare una cosa in più: regola il comfort termoigrometrico degli ambienti interni interagendo direttamente con la PdC ottimizzando i consumi elettrici. Per la sua realizzazione sono stati utilizzati alcuni pezzi provenienti da una lampada rotta, destinata ad essere smaltita come rifiuto. Le restanti parti sono state progettate opportunamente per ospitare i vari componenti e realizzate attraverso l'ausilio di una stampante 3D.

La proposta di talk "Come un maker può ottimizzare i consumi e rendere confortevole un ufficio" che descrive il funzionamento della Smart Lamp nelle reali condizioni di utilizzo è stata selezionata per la Maker Faire Rome 2015.

Prima di procedere alla realizzazione della tua personale smart lamp è necessario innanzitutto acquisire i codici del telecomando del tuo condizionatore. Per far ciò è necessario avere:    
  • Arduino UNO o equivalente;
  • Ricevitore IR TSOP 31238;
  • Condensatore da 10 μF.
Lo schema di collegamento è riportato di seguito:

Per la decodifica è possibile utilizzare il file esempio IRrecord presente all’interno della cartella esempi della libreria IRremote. Alternativamente è possibile utilizzare il programma AnalysIR e relativo sketch. È possibile scaricarlo solo a seguito di una donazione sul sito http://www.analysir.com/blog/
I segnali fondamentali che devono essere registrati ed aggiornati nello sketch riguardano le seguenti impostazioni: 
  • Riscaldamento a 24°C ON; 
  • Riscaldamento a 22°C ON;
  • Deumidificazione a 22°C ON;
  • Deumidificazione a 25°C ON;
  • Raffrescamento a 23°C ON;
  • Raffrescamento a 25°C ON;
  • PdC OFF
Una volta ottenuti i segnali relativi alle impostazioni elencate sopra è possibile passare alla fase di realizzazione vera e propria della smart lamp. Di base sono necessari i seguenti componenti:
  • Arduino MEGA 2560; 
  • Sensore DHT22; 
  • Modulo RTC basato sul circuito integrato DS1307; 
  • LED IR 333A;
  • Wireless shield;
  • Micro SD
Lo schema di collegamento è riportato di seguito:
Le librerie che bisogna includere all’interno della cartella libraries del proprio IDE 1.6.4 sono le seguenti:
Qui di seguito un simpatico video in stop-motion:


Allo stato attuale la smart lamp mette in pratica l'algoritmo riportato nel seguente diagramma:
Puoi scaricare il codice dal link seguente:

Licenza Creative Commons

ArduCamSlider: uno slider motorizzato per DSLR camera

English version
Ecco come realizzare un camera slider con l'impiego anche di materiale recuperato.

Il piccolo motore stepper consente lo spostamento della fotocamera DSLR lungo il binario e il LED IR aziona la macchina fotografica per scattare la foto.
In particolare ho utilizzato i seguenti pezzi:
  • Arduino UNO r3
  • LED IR
  • ULN2003 Stepper Board e motore 28BYJ-48 
  • pezzo di compensato recuperato
  • pezzo di legno per stabilizzare il binario recuperato
  • pezzo di telaio di scarto di una zanzariera 
  • batteria ricaricabile 9v 300mAh (sarebbe opportuno considerare una batteria più capiente)
  • cremagliera e ingranaggio (eventualmente stampati in 3D)
  • rotelline per armadio (tipo questa e quest'altra).
Il codice prevede l'utilizzo di due librerie: IRcameraControl e Stepper.
Eccolo:

#include <multiCameraIrControl.h>  //IRcameraControl library
#include <Stepper.h> //Stepper library

//Data la lunghezza del binario (circa 60 cm), il numero massimo di steps è 6150 
//Tab1: 
//se stepsset = 5 => 1230 loop
//se stepsset = 6 => 1025 loop
//se stepsset = 7 => 878 loop
//se stepsset = 8 => 769 loop
//se stepsset = 9 => 683 loop
//se stepsset = 10 => 615 loop
//se stepsset = 15 => 410 loop
//se stepsset = 20 => 307 loop
//se stepsset = 25 => 247 loop
//se stepsset = 30 => 205 loop
//se stepsset = 35 => 175 loop
//se stepsset = 40 => 153 loop
//se stepsset = 45 => 136 loop
//se stepsset = 50 => 123 loop

//start modifiche utente//

//Definisci ora il delay pre e post scatto in milliseconds
#define delaypre 6000
#define delaypost 6000

//Modifica il valore di stepsset sotto tenuto conto di quanto scritto sopra ed anche del fatto che ogni singolo loop è uguale a (delaypre + delaypost)/1000 secondi. 
#define stepsset 10  //moliplicando il numero di loop corrispondenti allo stepsset impostato per la durata del singolo loop si ottiene la durata complessiva. Ovviamente il numero di loop individua anche il numero di foto scattate.

//stop modifiche utente//

//---( numero di step per giro del motore)---
#define STEPS_PER_MOTOR_REVOLUTION 32   

//---( Steps in uscita tenuto conto dell'ingranaggio)---
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64  //2048 

// pin al quale è collegato il chip ULN2003
Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

//definisci il pin al quale è collegato il LED IR
Nikon D5000(5);  //pin al quale è collegato il led IR per lo scatto

//dichiara la variabili
int numberofloopforward; //per sapere il numero progressivo di loop in avanti
int steps = stepsset; //indica il numero di steps definito dall'utente (vedi sopra)
int maxloop = 6150/steps; //definisce il numero totale di loop massimi tenuto conto della lunghezza del binario. 
int numberofloopbackward = maxloop; //per sapere il numero progressivo di loop indietro

//int  Steps2Take; 

void setup() 
{ Serial.begin(9600);
  Serial.print("steps= ");
  Serial.println(steps);
  Serial.print("maxloop= ");
  Serial.println(maxloop);
}

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{  
  if( numberofloopforward < maxloop ) 
  { 
  numberofloopforward=  numberofloopforward +1;
  Serial.print("numberofloopforward= ");
  Serial.println(numberofloopforward);

  small_stepper.setSpeed(500);   
  small_stepper.step(steps);

  delay(delaypre); //tempo di arresto prima dello scatto
  D5000.shutterNow(); //scatto
  delay(delaypost);  //tempo di arresto dopo lo scatto
  } 
  
  else 
  {
    if( numberofloopbackward > 0 ) 
    { 
    numberofloopbackward = numberofloopbackward -1;
    Serial.print("numberofloopbackward= ");
    Serial.println(numberofloopbackward);
  
    small_stepper.setSpeed(500);  //speed
    small_stepper.step(- steps);
    }
  
    else
    {
    small_stepper.setSpeed(0);  
    small_stepper.step(0);
    }
  }
}



Come si evince dal codice sopra il led IR è collegato al pin 5 mentre il ULN2003 Stepper Board ai pin che vanno dal n. 8 al n. 11  Il tutto assemblato appare così come in foto:


Dall'elenco riportato sopra degli oggetti utilizzati ho sottolineato come sarebbe utile prevedere una batteria più capiente come questa perché allo stato attuale, per numero di loop alti non è possibile far scorrere la vostra fotocamera fino a fine corsa. Alternativamente si può alimentare da pc o da una batteria esterna di emergenza per smartphone.
Ecco un esempio di time-lapse in movimento con i pochi scatti che sono riuscito a fare con la mia Nikon D5100. Quello che conta vedere è la stabilità del dispositivo.

14/03/2014, aggiornamento: ho cambiato la batteria con una da 2300 mAh ed ora la fotocamera arriva fino a fine corsa. 
Ecco il risultato in una giornata non proprio ideale:




Licenza Creative Commons

RSU e sistema smart di contabilizzazione dell'effettiva produzione pro capite

Di seguito una breve presentazione che descrive come potrebbe essere realizzato un sistema integrato di contabilizzazione dell’effettiva produzione di spazzatura con modifica al metodo di tassazione comunale.


Riuso creativo dell'ennesima scatola di cartone da imballaggio... di Amazon

Puoi trovare la versione in inglese di questo post >qui< . Di recente è nato mio figlio Michele, uno splendido bambino 😊. È il mio pr...