Les collègues m’ont signalé avant les congés l’existence de petits distributeurs d’histoires. L’idée est simple et efficace, des histoires sont imprimées de manière aléatoire on les lit le temps de faire la queue et on les emporte avec soi.
Le concept me rappelait également choosatron, un distributeur d’histoires dont vous êtes le héros. Malheureusement, le projet semble au point mort depuis un moment.
Le projet de short édition est intéressant et je ne doute pas qu’il trouvera sa place dans de nombreuses médiathèques. Toutefois, j’aime avoir une certaine maîtrise des dispositifs que nous mettons en place afin de pouvoir affiner les sélections, les faire évoluer et puis ça coûte moins cher
J’ai donc commencé à travailler sur la boîte à histoires. Le principe est simple : appuyez sur le bouton et vous obtenez une histoire différente à chaque fois. L’idée de ce dispositif n’est pas neuve, je me suis appuyé sur le travail mené par Giles Booth et sa little box of poems (http://www.suppertime.co.uk/blogmywiki/2012/10/howtopoems/) et la dadaist poetry box réalisée par robottini (http://robottini.altervista.org/dadaist-poetry-box).
J’y ai ajouté également un mode « cadavre exquis » permettant de générer des poèmes aléatoires à partir de vers prédéfinis.
Pour réaliser votre boîte à histoires, vous aurez besoin d’un peu de matériel :
- Une carte Arduino Uno (19,50€): http://snootlab.com/arduino-genuino-fr/956-genuino-uno-fr.html
- Une plaque de prototypage (3,50€): http://snootlab.com/breadboard/28-white-breadboard-170.html
- Un bouton poussoir (0,90€) : http://snootlab.com/composants/102-bouton-poussoir-12mm.html
- Une résistance de 10k (0,90€ le lot de 10) : http://snootlab.com/composants/197-resistances-10-kohms-5-1-4w.html
- Une imprimante Thermique (74,50 €) : https://snootlab.com/adafruit/935-starter-kit-mini-imprimante-thermique-fr.html
- Cordons M/M (3,50 €) : http://snootlab.com/cables/20-kit-10-cordons-6-m-m.html
Soit un total de 102,8 €
Pour le code, vous trouverez tout ça sur github : https://github.com/julanimtic/boite-histoire/
Vous trouverez également des instructions plus détaillées dans la partie wiki du projet : https://github.com/julanimtic/boite-histoire/wiki
J’ai veillé à documenter le mieux possible le projet, toutefois si quelque chose n’était pas clair ou si vous souhaitez l’améliorer, n’hésitez pas. Pour l’instant, l’ajout de texte est fastidieux, cela se fait directement dans le code de la carte. J’aimerai améliorer cette partie pour que tout le monde puisse s’en servir simplement. Si vous avez des idées et/ou des bouts de code, je suis preneur.
Il ne vous reste plus maintenant qu’à mettre tout le matériel dans une jolie boîte, trouver des histoires / extraits de romans favoris / poèmes / recettes / BD / devinettes / blagues / messages codés et imaginer des ateliers d’écriture.
C’est ce point qui fera toute la différence. Imprimer du texte sur un rouleau n’est pas une grande nouveauté, les caisses enregistreuses de nos commerçants font ça depuis longtemps. Maintenant, il reste à imaginer les occasions, les opportunités de médiation de nos collections, des ressources en ligne pour répondre aux besoins de nos usagers.
Il y a un potentiel extrêmement intéressant, et les situations sont vraiment à imaginer.
Une question (parmi d’autres que je me pose) : ne faudrait-il pas creuser une interconnexion avec le concept BiblioBox ? (histoire d’avoir un espace de stockage des textes unique, et une possible gestion dynamique du corpus)
Oui tout à fait, en passant sur une carte raspberry pi on devrait arriver à connecter l’imprimante sur la bibliobox. On pourrait même lancer l’impression depuis le navigateur. et cela permettrait de matérialiser la bibliobox et ses ressources plus facilement. A priori personne n’a encore essayé, mais cela dépasse largement mes compétences. A développer lors d’un prochain biblioboxcamp ?
Bonjour Jumlanimtic,
Super !!!! J’adhère !
Je me permets d’intervenir car on transforme actuellement un piano en juke box MP3, et on a eu un problème se rapprochant du tien (facilité d’accès pour les modifications de contenu). On a contourné: tout le stockage se fait sur une clé USB, Arduino ne travaille plus qu’avec elle.
Voilà, si ça peut t’aider.
Mais bravo, riche idée !
Boris
Merci pour ton message.
Sympa le piano juke box, un lien où l’on peut voir le projet ? N’hésite pas à le partager sur le groupe facebook fablab en bib.
Pour le stockage des textes, J’ai commencé à creuser la question et j’ai commandé un shield carte SD (http://www.robotshop.com/eu/fr/module-carte-sd-tf-empilable-v3-arduino.html?gclid=CJHy4961584CFdQ_GwodUWYGHQ). Je vais regarder du côté de la clé USB également.
Il y aura un hackathon BnF mi-novembre.
Ce pourrait être une occasion de creuser le dispositif
?
Merci pour ce commentaire l’idée est super intéressante, et aurait sa place au Hackathon BNF mais il faut trouver les compétences techniques pour mettre tout ça au point.
Mon lien a disparu…
Je réessaie
https://bibliotheques.files.wordpress.com/2016/09/dispositif-distributeur-courts-textes.png
Merci pour l’idée et les plans. Une chose : Peut-on faire la même chose avec une imprimante a ticket Bixolon USB ? J’imagine qu’il faudrait un Raspberry en plus ?
Techniquement oui on doit pouvoir la brancher sur une Pi après il faut la programmer. Si j’utilise ce modèle d’imprimante et une carte Arduino c’est que je dispose d’une bibliothèque spécifique fournie par adafruit pour faire fonctionner les deux facilement.
Super intéressant! On aimerait bien se lancer dans l’aventure… Mais avant, une question : est-ce que ça vous semble jouable même pour quelqu’un qui ne s’est pas encore penché sur Arduino? J’ai vu qu’il y avait les plans de montage et tout, mais je ne voudrais pas budgétiser quelque chose que je ne pourrais pas mener jusqu’au bout (si minime soit le budget…!)
Merci beaucoup pour le partage en tous cas!
Merci !
Un minimum de connaissance est nécessaire mais rien de compliqué. Pour démarrer je vous conseille les cours du Mooc « La fabrication numérique » disponibles à cette adresse : https://zestedesavoir.com/tutoriels/757/la-fabrication-numerique/ parfait pour vous familiariser avec arduino.
N’hésitez pas à me contacter si qqchose n’était pas clair
bonjour,
J’ai installé et dézippé la bibliothèque Adafruit Thermal Printer Library : https://github.com/adafruit/Adafruit-Thermal-Printer-Library puis
j’ai installé et dézippé le dossier boite à histoire j’ai renommé le dossier et j’ai mis les dossiers dans « mes documents » lorsque j’ouvre pour vérifier le code boite à histoire cadavre exquis j’obtiens une erreur de compilation :
…AppData\Local\Temp\arduino_modified_sketch_838283\boite-histoire-cadavre-exquis.ino:51:51: fatal error: Adafruit-Thermal-Printer-Library-master: No such file or directory
#include « Adafruit-Thermal-Printer-Library-master »
D’après vous pourquoi Aucun fichier ou répertoire de ce nom n’est trouvé ?
Merci pour l’aide.
Bonne journée
Bonjour,
La bibliothèque doit être dézippée puis renommée en Adafruit_Thermal
Vérifiez ensuite que le dossier contient les fichiers suivants :
Adafruit_Thermal.cpp et Adafruit_Thermal.h
Placez le dossier Adafruit_Thermal dans votre dossier Arduino/libraries/
Sur Mac : /Documents/Arduino/Libraries
Sur Windows : My Documents\Arduino\libraries
Sur Linux : /sketchbook/libraries
Si le dossier libraries n’existe pas il faut le créer, puis redémarrez Arduino (le logiciel)
Dans le programme il doit bien être indiqué #include « Adafruit_Thermal.h »
N’hésite pas si tu as besoin de précisions
de nouveau moi
-Le dossier boite à histoire cadavre exquis doit être dans MesDocuments\Arduino\libraries
ou
MesDocuments\Arduino\
?
-Dans le programme il n’y avait pas #include « Adafruit_Thermal.h » je l’ai ajouté ligne 38 du code boite histoire et ligne 49 du code boite histoire cadavre exquis fallait il le mettre là ?
Merci
Re,
Le dossier est à mettre dans le dossier MesDocuments\Arduino\libraries\
Dans le programme la ligne #include « Adafruit_Thermal.h » apparaît bien sur les fichiers hébergés sur github :
ligne 38 pour : https://github.com/julanimtic/boite-histoire/blob/master/boite-histoire.ino
ligne 49 pour : https://github.com/julanimtic/boite-histoire/blob/master/boite-histoire-cadavre-exquis.ino
Dans le doute retélécharge les fichiers pour être sûr que cela fonctionne
bonjour, il doit me manquer quelque chose quand je téleverse vers ma carte j’ai des erreurs
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:12: error: redefinition of ‘const char string_0 []’
const char string_0[] PROGMEM = « Sur la lune »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:13:12: note: ‘const char string_0 [9]’ previously defined here
const char string_0[] PROGMEM = « Viens \n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:13: error: redefinition of ‘const char string_1 []’
const char string_1[] PROGMEM = « Au bord du monde »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:14:12: note: ‘const char string_1 [27]’ previously defined here
const char string_1[] PROGMEM = « La langue du Youshlaouna \n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:14: error: redefinition of ‘const char string_2 []’
const char string_2[] PROGMEM = « Au fond de l\x27ocean »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:15:12: note: ‘const char string_2 [37]’ previously defined here
const char string_2[] PROGMEM = « Il est tres chouette votre theatre \n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:15: error: redefinition of ‘const char string_3 []’
const char string_3[] PROGMEM = « Dans sa bulle »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:16:12: note: ‘const char string_3 [16]’ previously defined here
const char string_3[] PROGMEM = « Quelle chance \n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:16: error: redefinition of ‘const char string_4 []’
const char string_4[] PROGMEM = « Sur une branche »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:20:12: note: ‘const char string_4 [286]’ previously defined here
const char string_4[] PROGMEM = « Ma main paume vers le sol,\n tombe de bas en haut.\n Ma main paume vers le ciel, \n se replie vers moi. \n Mes doigts se replient \n sur ma main.\n Ma main se replie \n sur elle-meme. \n Mon index se replie sur \n mon poing ferme.\n Mon coude se replie. \n Ma tete dodeline. \n Mes yeux roulent. \n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:17: error: redefinition of ‘const char string_5 []’
const char string_5[] PROGMEM = « Dans sa grotte »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:21:12: note: ‘const char string_5 [293]’ previously defined here
const char string_5[] PROGMEM = « La langue du Youshlaouna. \n La langue du Chiang-ien. \n La langue du Choubouloutone. \n La langue du Touroukoukoulou. \n La langue du : Kana:Kana. \n La langue du Tchigatchigatchiga \n La langue du rororo, \n du Bleubleubleu, \n du Fleufleufleu. \n La langue du C est bon \n c est bon \n c est bon. \n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:18: error: redefinition of ‘const char string_6 []’
const char string_6[] PROGMEM = « un crocodile »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:22:12: note: ‘const char string_6 [247]’ previously defined here
const char string_6[] PROGMEM = « Bonjour tout le monde.\n Je suis tres content pour vous \n vous rencontrer jourdhui. \n Bon… Je tsui je vous remercie. \n Et tres bonne je suis tres chouette \n votrou… votrou… voutrou… theatre. \n Je vous remercie et bonn journée en r voir. \n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:19: error: redefinition of ‘const char string_7 []’
const char string_7[] PROGMEM = « un panda roux »;
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:23:12: note: ‘const char string_7 [374]’ previously defined here
const char string_7[] PROGMEM = « Quelle chance d etre \n au pays vertueux \n des droits de l’homme, \n baigne dans la lumiere \n de l esprit des hauts nivellateurs \n tel mon bon docteur \n Joseph Ignace Guillotin. \n Chacun est libre \n de s exprimer comme il peut \n pourvu qu il ne blesse \n physiquement \n quand la propriete chaque jour \n offense la pauvrete \n des sous-pauvres \n dans un air sature d azote.\n »;
^
In file included from C:\Install\arduino-1.8.1-windows\arduino-1.8.1\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\boite-histoire.ino.cpp:1:
boite-histoire-cadavre-exquis:39: error: redefinition of ‘const char* const string_table1 []’
const char* const string_table1[] PROGMEM = {string_0, string_1,string_2,string_3,string_4, string_5}; // si besoin compléter les valeurs string manquantes
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:31:19: note: ‘const char* const string_table1 [4]’ previously defined here
const char* const string_table1[] PROGMEM = {string_4, string_5,string_6, string_7,}; // si mode cadavre exquis commentez pour désactiver
^
boite-histoire-cadavre-exquis:44: error: redefinition of ‘char buffer [1040]’
char buffer[1040]; // assurez-vous que la valeur indiquée soit supérieure au nombre maximum de caractères d’un string
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:33:6: note: ‘char buffer [1040]’ previously declared here
char buffer[1040]; // assurez-vous que la valeur indiquée soit supérieure au nombre maximum de caractères d’un string
^
boite-histoire-cadavre-exquis:46: error: redefinition of ‘int chiffreal’
int chiffreal = 0; // définit le nom de la valeur aléatoire pour déterminer le texte à utiliser
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:35:5: note: ‘int chiffreal’ previously defined here
int chiffreal = 0; // définit le nom de la valeur aléatoire pour déterminer le texte à utiliser
^
boite-histoire-cadavre-exquis:54: error: redefinition of ‘SoftwareSerial mySerial’
SoftwareSerial mySerial(RX_PIN, TX_PIN);
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:43:16: note: ‘SoftwareSerial mySerial’ previously declared here
SoftwareSerial mySerial(RX_PIN, TX_PIN);
^
boite-histoire-cadavre-exquis:55: error: redefinition of ‘Adafruit_Thermal printer’
Adafruit_Thermal printer(&mySerial);
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:44:18: note: ‘Adafruit_Thermal printer’ previously declared here
Adafruit_Thermal printer(&mySerial);
^
boite-histoire-cadavre-exquis:58: error: redefinition of ‘const int buttonPin’
const int buttonPin = 2; // le numéro de la broche utilisée par le bouton
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:47:11: note: ‘const int buttonPin’ previously defined here
const int buttonPin = 2; // le numéro de la broche utilisée par le bouton
^
boite-histoire-cadavre-exquis:59: error: redefinition of ‘const int ledPin’
const int ledPin = 13; // le numéro de la broche utilisée par la led
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:48:11: note: ‘const int ledPin’ previously defined here
const int ledPin = 13; // le numéro de la broche utilisée par la led
^
boite-histoire-cadavre-exquis:60: error: redefinition of ‘int buttonState’
int buttonState = 0; // variable pour vérifier l’état du bouton
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:49:5: note: ‘int buttonState’ previously defined here
int buttonState = 0; // variable pour vérifier l’état du bouton
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire-cadavre-exquis.ino: In function ‘void vers1()’:
boite-histoire-cadavre-exquis:63: error: redefinition of ‘void vers1()’
void vers1 () {
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:52:6: note: ‘void vers1()’ previously defined here
void vers1 () {
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire-cadavre-exquis.ino: In function ‘void vers2()’:
boite-histoire-cadavre-exquis:74: error: redefinition of ‘void vers2()’
void vers2 () {
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:63:8: note: ‘void vers2()’ previously defined here
void vers2 () {
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire-cadavre-exquis.ino: In function ‘void setup()’:
boite-histoire-cadavre-exquis:110: error: redefinition of ‘void setup()’
void setup() {
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:71:6: note: ‘void setup()’ previously defined here
void setup() {
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire-cadavre-exquis.ino: In function ‘void loop()’:
boite-histoire-cadavre-exquis:120: error: redefinition of ‘void loop()’
void loop() {
^
C:\Users\MEDP1803U\Documents\Arduino\boite-histoire-master\boite-histoire\boite-histoire.ino:81:6: note: ‘void loop()’ previously defined here
void loop() {
^
exit status 1
redefinition of ‘const char string_0 []’
Un avis ?
Merci
Bonjour,
Pourriez-vous me donner des précisions sur le modèle de carte que vous utilisez ?
Dans le doute re-téléchargez le fichier « boite-histoire.ino ».
Avez-vous essayé avec le fichier « boite-histoire-cadavre-exquis.ino » ?
cdlt,
Bonjour,
C’est une grande victoire pour moi malheureusement elle est loin d’être complète j’ai suivi à la lettre le protocole (qui d’ailleurs est super).
Le soucis que je rencontre c’est que l’imprimante imprime sans s’arrêter le bouton vert de celle ci clignote sans arrêt j’ai recommencé chaque branchement un à un et toujours même résultat.
alors j’abandonne et me tourne vers toi. une aide se serait magnifique.
d’avance merci .
Pas de retour depuis le 6 mai
Bonjour
C’est certainement un problème de branchement ou un de vos composants est défectueux. Il me faudrait des photos pour y voir plus clair
Hey,
J’ai donc recommandé chacun des composants 🙂 de la boite. Dès que je l’ai reçois je rebranche la nouvelle boite je te dis ce qu’il en ait. (juste deux petites questions en complètement est il normal que dès que je branche l’imprimante au courant elle clignote deux fois en rouge au niveau des branchements des fils en dessous et derrière question et je te laisse tranquille :)est il normal que sur la carte arduino uno la »lumière » de la L reste allumé orange.)
Merci
oui c’est normal, la pin 13 est utiliser dans le programme pour faire allumer un voyant, cette led L est également raccordé à la pin 13 sur toute les cartes arduino
Cordialement,
Christophe de SABBATA
PS : je suis entrain de préparer un atelier de fabrication de boite-à-histoires pour les 7 bibliothèques de Mulhouse, avec utilisation d’une carte mémoire SD pour avoir une plus grande capacité de stockage, et avec un module RTC pour avoir toujours l’heure à jour et avec impression du logo de la ville et quelques infos utiles
Bonjour,
J’aimerais fabriquer une boite à Histoire pour le CDI de mon collège, avec espace de stockage, auriez vous un tuto qui explique votre projet ?
Cordialement, M. Pouyet
Bonjour Julien,
J’ai l’impression d’avoir fait les bons branchements, installer la bibliothèque de l’imprimante, téléchargé et renommé les dossiers qu’il fallait et pourtant ça ne fonctionne pas. L’imprimante réagit, mais elle imprime que de très petits signes qui n’ont rien de poèmes.
Que me conseilles-tu ?
Merci de ton aide.