Catégories
Liens
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.
"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.
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.
On produit un shield Arduino, avec la fraiseuse à commande numérique pour éviter des fils :
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 (); */