Caminetto natalizio interattivo DIY

Si avvicina il periodo natalizio e l’aria di impregna di magia, non c’è niente di più vero, specialmente quando questa attesa si vive insieme a dei bambini. Quest’anno però mi sono trovato di fronte a un dilemma esistenziale, il dubbio di molti bambini di fronte a un’ovvia evidenza: “Papà, ma se noi non abbiamo il camino, come fa a venire Babbo Natale?!?!?”. “Beh, se non abbiamo un camino, dobbiamo costruire un caminetto natalizio interattivo!”.

La risposta è stata immediata e dall’espressione soddisfatta di mia figlia ho capito che avevo colto nel segno. Ora però è il momento di mettersi all’opera e di realizzare un caminetto di natale, e dato che ci siamo, aggiungiamo anche un tocco di interattività che non guasta mai.

Cosa ci serve

Per prima cosa facciamo il punto di quello che ci serve. Mi sembra l’occasione giusta per utilizzare la moltitudine di cartoni che ho conservato durante questo ultimo periodo proprio per poterli riciclare in modo creativo.

Avrò inoltre bisogno di alcuni strumenti essenziali:

  • Taglierino
  • Colla a caldo
  • Righelli metallici
  • Colori acrilici nero e marrone
  • Pennelli per dipingere

Per la parte interattiva invece adopererò la mia Stampante 3d a filamento ( per approfondimenti a riguardo dai uno sguardo agli articoli Tecniche di Additive Manufacturing e Processo di stampa 3d: dall’idea all’oggetto finale ) per stampare il modello che andrò a realizzare con il software di modellazione Fusion 360 ed elaborerà successivamente con lo slicer Ultimaker Cura.

Questo mi permetterà di ottenere il supporto su cui verrà alloggiata la parte di elettronica.

Parlando proprio di elettronica utilizzerò:

  • Arduino Uno
  • Modulo SD
  • Modulo rilevatore di ostacoli KY-032
  • Amplificatore e Speaker
  • Una basetta breadboard

Costruzione della struttura

Una volta realizzata la struttura mettendo uno sull’altro gli scatoloni, ho preso le misure e ho ritagliato il rivestimento della stessa.

Inoltre ho utilizzato degli scatoloni per creare un gradino nella parte inferiore e un ripiano sovra esposto in quella superiore, il tutto utilizzando il cartone che avevo a disposizione.

Sono poi passato a ritagliare quelli che sarebbero stati i mattoni.

Presa una misura di riferimento, ho cercato di ritagliarli quanto più simili possibile per mantenere una uniformità nella costruzione.

Una volta tagliato un bel pò di mattoni (alla fine ne ho realizzati oltre 200!!) sono passato alla fase di colorazione di mattoni e struttura.

Modellazione dell’alloggio per l’elettronica

Avendo realizzato la struttura, il grosso del lavoro è ormai fatto ma, da buon maker, ho deciso di aggiungere un mio tocco interattivo al camino.

Utilizzando il software di modellazione CAD Fusion 360 sono partito dalla funzione schizzo in cui ho realizzato lo schema di quello che doveva essere l’alloggio per la parte di elettronica, sfruttando sia la possibilità di inserire delle dimensioni precise mediante tastiera, sia la funzione offset per ottenere le pareti e gli spessori necessari (le pareti le ho impostate come 3*0,45 mm, ovvero pari a 3 volte l’ampiezza dell’estrusione effettuata della mia stampate).

Con gli strumenti estrudi e crea foro ho aggiunto tridimensionalità allo schizzo e ho realizzato i fori per agganciare i moduli dell’elettronica di cui vi parlerà tra poco.

Il modello così realizzato l’ho poi processato con lo slicer Ultimaker Cura in modo da ottenere il file in formato gcode da caricare sulla stampante.

Il modello realizzato potete scaricarlo gratuitamente da qui.

La parte elettronica

Per la parte di elettronica ho utilizzato Arduino Uno, a cui ho collegato il modulo SD ( dove ho caricato delle canzoni in formato .wav ), un modulo IR per il rilevamento degli ostacoli e uno speaker con relativo amplificatore.

Prima di caricare i file in formato wav sulla scheda SD questi devono essere convertiti per avere determinate caratteristiche. In particolare si può usare questo servizio gratuito online per farlo, impostando come parametri:

  1. bit resolution = ” 8bit “.
  2. sampling rate = ” 16000Hz “.
  3. audio channels = “mono ” .

Di seguito lo schema di collegamento dei vari moduli:

caminetto_natalizio_interattivo_collegamento_arduino-min-1

La parte di codice per far funzionare tutto è la seguente:

/**
 *######################################################## 
 *#################                     ##################
 *#################     Maker Miky      ##################      
 *#################                     ##################
 *########################################################
 *##########      www.makermiky.com     ##################
 *
 * 
 *             Caminetto natalizio interattivo
 *             
 *  >> Connessioni <<
 *  Modulo SD:
 *      5V   >>>  5V
 *      3.3  >>>  3.3V
 *      GND  >>>  GND
 *      CD   >>>  10
 *      MOSI >>>  11
 *      MISO >>>  12
 *      SCK  >>>  13
 *  
 *  Modulo amplificatore:
 *      VCC  >>>  5V
 *      GND  >>>  GND
 *      IN   >>>  9
 *  
 *  Modulo IR:
 *      VCC  >>>  5V
 *      GND  >>>  GND
 *      OUT  >>>  4
 *  
 */

#include <pcmConfig.h>
#include <pcmRF.h>
#include <TMRpcm.h>
#include <SPI.h>
#include <SD.h>

#define SD_PinSelezione 10 //Definisco il pin a cui collego il valore CD del modulo SD
#define sensoreIR 4

TMRpcm Memoria; //Nome utilizzato per accedere alla libreria per suonare file audio

void setup() {
  //Inizializzo la scheda SD
  Serial.begin(9600);
  pinMode(sensoreIR, INPUT); //Ricevitore IR
  if(!SD.begin(SD_PinSelezione)){
    //Se il metodo begin ritorna LOW allora l'inizializzazione è fallita e mi fermo
    Serial.println("Inizializzazione SD fallita");
    return;
  }else {
    Serial.println("Inizializzazione SD completata");
   }
  Memoria.speakerPin = 9; //Imposto il pin a cui è collegato lo speaker

}

void loop() {
  bool val = digitalRead(sensoreIR);
  if(val == LOW){
    suona();  
  }  
  delay(1000); 
}

void suona() {
  Memoria.setVolume(5);
  Memoria.quality(1);
  int randomVal = random(1,7); //Ho caricato 6 audio nella SD, rand andrà da 1 a 6 in questo caso
  Serial.println(randomVal);
  char suffix[5] = ".wav";
  char numStr[2];
  char fileName[9] = "natale_";
  //Per convenzione sulla SD ho caricato tutti file che si chiamano "natale_X.wav" dove a X corrisponde un numero da 1 a 6
  sprintf(numStr, "%d", randomVal);
  strcat(fileName,numStr);
  strcat(fileName,suffix);
  Serial.println(fileName);  
  Memoria.play(fileName);
  delay(15000);
}

Per l’interazione con la scheda SD ho utilizzato la libreria TMRpcm e il collegamento tramite SPI.

Nella funzione setup() che viene richiamata solo la prima volta che si avvia la scheda ho impostato la funzione dei pin (se INPUT o OUTPUT) e inizializzato la scheda SD (che deve quindi essere già inserita nel momento in cui avvio Arduino).

Nella funzione di loop(), che è quella viene ripetuta all’infinito fintanto che la scheda è alimentata, viene verificato se è presente un ostacolo, in caso negativo il programma attende un secondo e poi ricomincia il ciclo.

In caso sia rilevato un ostacolo viene invocato il metodo suona().

Questo metodo oltre ad impostare dei parametri per l’oggetto Memoria specifico della libreria TMRpcm calcola casualmente un numero da 1 a 6, e costruisce dinamicamente il nome del file da andare a leggere dalla scheda SD.

Una volta fatto esegue appunto la lettura del file mediante il metodo Memoria.play(..).

Infine aspetta 15 secondi (lunghezza minima dei file audio da me scelti) prima di concludere il metodo e ricominciare il ciclo di loop().

Conclusioni

A questo punto non mi resta che assemblare il tutto e incollare i vari mattoni. Una volta finito con un misto dei due colori disponibili ho ripassato i vari bordi dei mattoni una volta incollati per coprire le vie di fuga e per fare maggiore movimento e profondità al tutto.

Di seguito il video completo della realizzazione del caminetto natalizio interattivo e della sua messa in opera, per la gioia della mia committente 😀

E voi cosa ne pensate? Come avete addobbato la vostra casa per queste feste?

Disclaimer

Tutti i contenuti del sito sono un mio parere personale, siete liberi di consultare e provare a realizzare quanto scritto, ma non posso assumermi alcun tipo di responsabilità per l’utilizzo che viene fatto di questi contenuti da parte dei navigatori. Alcune delle immagini presenti in questo articolo sono prese liberamente da internet, se ritenete che abbia sfruttato immagini non libere dal diritto d’autore vi prego di contattarmi e provvederò a rimediare. Nell’articolo potrebbero essere presenti link a sistemi di affiliazione, questo non comporta nessun tipo di vincolo o di costo aggiuntivo nei confronti dei visitatori, ma permette di ottenere una commissione nel caso venga fatto un acquisto idoneo a partire dal link.

Add a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *