Borne à livres

  • Porteur du projet : Reso-nance + Asile 404 + Casse tête
  • Date : 2016
  • Licence : libre !
  • Contexte : vie de quartier
  • Fichiers :
  • Lien : lien vers un site éventuellement

2D et 3D PRIMITIVES

Cercle, carré, rectangle, sphère, cylindre, tore, cone, …

Matériaux

  • Métal
  • Fer à béton
  • Système de lecture de son interactif : Arduino + capteur ultrason HC-SR04 + lecteur mp3 DFPlayer_mini_MP3 + enceinte 3w

Tutoriel

Structure en métal :

Nous avons acheté des fer à bétons de 8mm , du scellement chimique au magasin de bricolage, et une plaque d'Acier Brut de 2mx1m x2mm chez http://www.descours-cabaud.com plus quelques disques pour la disqueuse pour une centaine d'euros. (48€ la plaque d'acier).
Quelques heures de disquage et de soudure à l'arc plus tard… la structure est prête a accueillir les livres.

Systeme de lecture :

"Les murs ont des oreilles, mais ça c’était avant...
maintenant ils ont aussi une bouche...
une bouche... pour vous faire ouvrir les yeux,
les yeux... lisant quelques lignes d'un livre,
un livre... déposé par un voisin,
un voisin... ou peut-être même vous,
vous... pour me faire ouvrir ma bouche ..."

On utilise un capteur ultrason et un lecteur mp3 pour déclencher un son quand un passant passe à coté de la borne.

  • Capteur ultrason (4€), Arduino (20€), lecteur mp3(8€), carte microsd, petit hp (3€), 2 résistances 1kohm…

On pourrai aussi certainement utilisé une ATTINY pour éviter d'utiliser une arduino, mais peut être le code aura besoin d'être éditer pour rajouter des mp3.

Shield Arduino

On produit un shield Arduino, avec la fraiseuse à commande numérique pour éviter des fils :

Code Arduino

ps : il faut avoir la librairie DFPlayer_Mini_Mp3 installée

/*
reso-nance numerique
 HC-SR04 Ping distance sensor start a mini DFPlayer_mini_MP3 track
 */
 
// ----editez ces lignes :
int nombre_mp3 = 4;  // nombre de mp3 sur la carte sd
int temps_mp3 = 3000;  // temps max mp3 en msec
int volume_mp3 = 28; // volume du mp3 (0-30)
//----------------------
 
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
#define trigPin 3
#define echoPin 2
 
long randNumber = 1;
int lastState = 0;
int lastSong = 0;
 
void setup () {
  Serial.begin (9600);
  mp3_set_serial (Serial);    //set Serial for DFPlayer-mini mp3 module 
 
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
 
//
void loop () {       
 
  // Ici on definit le nombre de mp3 dans la carte
  randNumber = random(nombre_mp3)+1;
  mp3_set_volume (volume_mp3);
 
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
  //  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 291;
  // en centimetre il faut diviser par 29.1 ici nous sommes en decimetre;
  delay(200);
 
  // CONDITION DE LECTURE : si quelquechose passe a moins de 60cm du detecteur mais a changer de distance : declenchement du son  6 = 60cm !!
  if (distance <= 8 && distance != lastState && randNumber != lastSong){
    mp3_play (randNumber);
    lastSong = randNumber; // on memorise le dernier fichier mp3 lu
    delay (100);
    //fade-out à la fin...
    mp3_set_volume (volume_mp3);
    delay (temps_mp3);
    mp3_set_volume (volume_mp3 - 5);
    delay (1000);
    mp3_set_volume (volume_mp3 - 10);
    delay (1000);
    mp3_set_volume (volume_mp3 - 15);
    delay (1000);
    mp3_set_volume (volume_mp3 - 20);
    delay (1000);
    mp3_stop ();
 
  }
  else {
    mp3_stop ();
  }
 
  lastState = distance; // on memorise la derniere distance de la boucle... pour la comparer a celle d'avant...
 
}
 
/*
   mp3_play ();     //start play
 mp3_play (5);    //play "mp3/0005.mp3"
 mp3_next ();     //play next 
 mp3_prev ();     //play previous
 mp3_set_volume (uint16_t volume);    //0~30
 mp3_set_EQ ();   //0~5
 mp3_pause ();
 mp3_stop ();
 void mp3_get_state ();   //send get state command
 void mp3_get_volume (); 
 void mp3_get_u_sum (); 
 void mp3_get_tf_sum (); 
 void mp3_get_flash_sum (); 
 void mp3_get_tf_current (); 
 void mp3_get_u_current (); 
 void mp3_get_flash_current (); 
 void mp3_single_loop (boolean state);    //set single loop 
 void mp3_DAC (boolean state); 
 void mp3_random_play (); 
 */

Photos

Un lieu potentiel d'installation sur la Place Cadenat dans le quartier de la belle de Mai.