938 views
**Projet "Celluby" :** # **Ferme Bactérienne** **Contexte de démarage du projet:** En intégrant la Myne et suite au Tiny Tillios, il a été soulevé l'idée d'autonomiser les évènements "Maker" tel que tiny tillios sur le systèmatique besoin de recherche de matériaux souvent issues de réemplois (palettes, matière récupérer par différents spot matériauthèque ou autres). La thématique de la myne étant tournée vers la réappropriation des sciences et un laboratoire ouvert à tous, je me suis lancé dans l'exploration de projet Open source en Lien en réfléchissant sur l'éventuelle possibilité de constituer des spots de production "bio-matière" pour la construction de nos évènements. Dans notre laboratoire, Tim Gosselin ayant déjà amorcé une culture de Mycelium (champignon) ... J'ai commencer à travailler sur le sujet afin de joindre son projet. Mais lors du FABLAB FEST de toulouse édition 2016, je fit la rencontre des gens de Open Biofabrics travaillant sur la Cellulose bactérienne (SCOBY). Afin d'explorer le sujet, je décidas avec Alizée Service Civique à la myne de l'époque travaillant dans le Design, de lancer un travail au sein de la myne vu que le sujet était à mon sens moins complexe que le mycelium pour un néophyte comme moi. Après quelques temps de rodage en cultivant les souches pour les multiplier ... Nous avons amorcé une culture en bac pour obtenir nos premières feuilles de scoby Première récolte. A ce moment là, nous fûrent confronté à la problèmatique ... on fait pousser c'est bien mais comment on sèche les feuilles, Nous avons d'abords choisis le petit local extérieur, mais l'état délabré du local (risque effondrement) nous forças à trouver un nouvel espace. On a condamné les toilettes du rez de chaussé le temps du sechage pour cet usage pour pas faire sécher dans le labos ... Car l'ensemble de la communauté ressentait déjà le besoin de communiquer sur l'odeur de notre culture. Notre "éco-hacker space" ayant une surface de 200 m² répartis en coworking cuisine et atelier de réparation. Nous avons du faire sécher en exterieur... avec les problèmes d'intervention climatique (soleil, pluie, insectes). Je choisie d'en faire pousser et sécher à la maison, mais dans mon bureau travaillant en auto-entrepreneur ... assez contraignant. Dans le cadre d'un partenariat avec l'ENSBA, nous avons commencé à poser des bacs de culture dans un local où les artistes amateurs posaient leurs affaires ... Impossible de faire sécher sur place , déterioration des bacs, et culture ratés ... Impossible de continuer de la sorte. il nous fallait trouver une solution, nous avons commencés à lancer le projet d'un meuble de culture. **++Définition du projet initiale:++** - Fabrication d'un séchoir permettant de superposer les productions - Réflexion sur un meuble de stockage adapté au bac de culture. Le premier séchoir était une planche qui trainait dans le "Eco-hacker" space mais entouré par un grand nombre de gens avec des idées qui fusent... notre séchoire à été transformer en moins de deux semaine en un bureau de stockage... avec nos feuilles séchant dessus ... Ok, on aurait pu mieux manager notre séchoir pour bien définir que c'était un séchoir ... Deuzième essais, même topos ... pourtant on avait mis au marqueur que c'était un séchoir... L'impression d'un bizutage passé... On se lance dans un sorte de séchoir meuble permettant de superposer les feuilles au format des bacs de culture. Réussite, on a quand même un stock de feuille qui s'améliore. Christelle Fournier prend part au travaux sur l'expérimentation (application huiles essentielles) avec Isabelle humbert (Lab01) suite à une formation scoby et distribution de souche. Démanagement de Alizée qui rentre au bled à Brest, arrivée de Orianne Marignier(chimiste) et de Paul Jarreau (ingénieur) qui s'initie directement dans l'avancé du meuble. Première modélisation d'un système d'incubation rassemblant les premières suggestions ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_b21f62e490ad71911ef35d7faa089df4.png) **++Le modèle 0++** Spécification d'usage : 2 Bacs connectés pour évacuation d'un bac servant à la culture vers bac vidé de la souche en séchage. - Doit répondre à la possibilité de ne pas trop toucher la cellulose avant séchage complet, il faudra travailler sur l'évacuation Co2 apparaissant en cours de culture (système de rouleau de pressage ?) - Permettre un Système de chauffage avec mise en route manuel (tapis terrarium). - Acceuille un système de plaque déposé au dessus du fond par un système de Calle au début de la culture afin d'éviter que les souches se collent pendant la culture. - Ne pas à avoir à évacuer 20 litres en prenant le risque de se le verser dessus (crash test 2 fois 8 litres sur les genoux ça finis par blaser). - Les connexions entre les bacs servent à évacuer les liquides pour renouvellement ou juste maintenance sur les bacs. - Système de ventilation placé au niveau des couvercles. - Système de pompe ou de balancier pour jouer sur le séchage/vidange entre bac. Le sujet de deux meubles verticaux sur balancier est abordé afin de connecter 4 à 6 bacs deux par deux. Emergence de l'idée de Ferme Bactérienne. ++**OCEDAYS:**++ Rencontre autour de l'économie circulaire et open source Aurec sur loire avec Yoann Duriaux et l'équipe stéphanoise, pour workshop palette et réaménagement de la maison Jules Verne. Yoann et moi meme réfléchissons sur la possibilité de connecté un module dans un poulaillé connecté ( Poulailler avec Borne Wifi et gestion modulaire pluguable). Initialisation de la présence de la Ferme Bactérienne à La biennale de Saint Etienne. Retour Lyon et travaille sur l'espace de culture à ENSBA Perrache, On réfléchie le positionnement de structure... Mise à disposition d'un meuble ayant la dimension idéal pour la culture des bacs par Bruno Yvonnet. On prend les côtes et travaillons sur l'idée du bloc à bascule. Abandons de la construction du modèle 0, l'espace horizontale et la praticité est éprouvée les boutons au dessus... et les bacs mobiles. Ca conviens pas. **++Modèle V1++** Initialisation du projet Ferme Bactérienne pour la Biennale Boot Camp Open city Lab Novembre/Decembre/janvier 2017 **++Phase 1 . Définir les spécificités :++** Limiter l'investissement. S'appuyer sur le modèle du meuble fournis par PAA 80*80*40. Mixer des projets OpenSource de la myne. Aborder la notion de réemplois et hack. Répondre aux besoins Lié au controle température Développé un contrôle mesure et capture data. Créer un lien d'intégration à Doze Parc avec D.Barthelomeo Projet openSource Myne: - Capteur Température Arduino - Bar à couleur: Couleur Bactérienne - Atelier Soudé: Aspect Electronique et prototypage ... Détournement et rétron-ingénieurie système gestion Chaud/Froid (ça tombe bien je viens de trouver une glacière). - Scoby Minois - Poulailler connecté (Pas de développement dans ce sens mais une réflexion dans un premier temps) module doit être forkable. - Connection donnée Daisee : Gestion énergie de paire à pair blockchaine Etherium. **Open City Lab: WorkShop "Boot Projet" & rencontre artistique Maker.** **++Phase 2 . Lancement réalisation++** ++Electronique:++ Le démontage de la glacière permet de mettre en avant l'usage d'un Module Pelletier contrôler par un système de bascule par bouton... On teste l'ensemble des composants et nettoie l'ensemble des circuits, remplacement d'un condensateur et du module pelletier qui subit des disfonctionnements. Afin de permettre une avancée rapide, la décision sera de ne pas concentré trop d'énergie sur refaire un système de chauffe mais de se concentrer sur le contrôle. Même constat sur la ventillation qui sera un ventilos de PC intégré dans un gonfleur à matelas (dont le moteur assez puissant nous à lâché), l'ensemble des batteries et boutons sera extrait du système de pompe et raccorder à la carte contrôle. On construit expérimente donc un système de contrôle extérieur par me biai d'une plaque possédant deux Relais 5 volts contrôler par un arduino, avec 3 lampes pour indiquer la mise en tension, l'activation du chauffage, la mise en ventillation pour répartir la chaleur dans l'ensemble. Le capteur de température sera intégré de sorte à permettre un relevé de data mais automatisera la mise en chauffe au delas de 25°. Un écran module arduino permettra l'affichage d'un message "Fork the world" ainsi que la température par cycle. Cacule besoin énergétique pour connection Daisee, pour simulation donnée ... L'arduino n'est pas équipé du Wifi... (je suis un boulet). ++Bac de culture:++ pour les bacs de culture, on achète 4 bacs de rangement pvc 78*56*37 cm On décide de connecter les bacs par le biai de robinet de jardin en plastique vers des connecteurs tuyaux/ embout 5/4 afin de les visés dans les bacs percé au préalable. Chaque bac aura donc 2 connecteurs (A) un devant en haut à gauche pour l'apport de liquide de l'autre bac connecté par le robinet, et le second à l'arrière en haut à droit ou gauche pour faire arriver la ventillation ou chauffage. A l'avant en bas à gauche on y place le robinet sur chaque bac afin de favoriser l'évacuation du liquide culture vers un autres bacs en cas de besoin. Orianne suppose que l'on incline les bacs depuis une calle arrière pour favoriser l'écoulement, On travaile sur un système d'extraction par plaque intérieur pour évacuation de la feuille. L'ensemble des connecteurs seront collés au pistoler à colle + silicone. On découpe des calles pour les placés dans les bacs de culture. On découpe les plaques pvc, et on les intègres dans les bacs de cultures. ++Structure Bois:++ Manque de temps, la constitution de la structure sera fait à partir de plaque de bois acheté 2 Plaques de bois 80*80*160 1cm epaisseur pour les cotés 1 plaque de bois fine pour l'arrière 80*60*160 2 plaque de bois épaisseur 1cm pour le haut et le bas 80*60 4 plaques de bois contre-plaqué pour les étagères et créer l'espace controle 80*60 1cm épaisseur. !Warning!: Le remplissage des bacs devrat être maxi de 8 à 10 litres afin de ne pas trop peser sur la structure. On espace les étages à minima de 45 cm afin de permettre un accès au bac même en place. L'espace du bas servant à héberger la glassière, les câbles et le l'ensemble de contrôle et la ventialtion aura une hauteur de 40 CM, séparé en 2 compartiments. Un pour la chauffe et ventillation, l'autre pour placé le box de contrôle et les connexions éléctrique. !! Warning !!: On intègre pour des besoins sécurités un disjoncteur 32 Ampères à l'arrivé éléctrique, et un détécteur incendie (Histoire de passer le contrôle sécurité de la biennale). L'isolation se fera par des plaques polystyrènes de faible épaisseur qui devront être remplacer sur le long terme par un isolant plus compétitif. On perce les plaques d'étage afin de favoriser la diffusion de chauffe du bas vers le haut à la cloche, 2 maxi par étage pour ne pas fragiliser la structure. La porte avant sera constituer de deux plaques PVC récupéré à Open Factory pour construire une sorte de Double Vitrage et monter ensemble par visserie sur Tasseau. Système pas optimale au niveau isolation, mais c'est un prototype. On vissera deux charnières pour insérer la porte. Dans le modèle 3D ça marchais.... Là la porte est trop lourde et est trop large après construction... On arrive à la Date butoir pour la biennale, on isole en rajoutant du polystirène au bout. (Détailler la mesure idéale pour la porte) !! Contrainte !! La ferme doit fermer à clef afin que les visiteurs de la biennale n'accède pas à l'intérieur. On va au plus simple en fermant par un cadena et deux fixations. ++Ventillation:++ Un tube PVC à l'arrière avec des connecteur de tuyaux de jardin Diam 16/ 5/4, on fixe le côté 5/4 dansle tube de PVC que l'on colle avec. On plade un toyaux d'angle pour connecter le tube avec le système de chauffe fixé à l'arrière droit de la ferme, et on fixe un bouchon au dessus. On isole le tous avec une mousse servant à isoler les toyos. et on perce des trous pour connecter au bacs depuis l'arrière (attention, aux hauteurs des étages et le positionnement des connexion au bacs. On connectera les bacs qu' à la fin après lise en place des bacs ... les embouts doivent aller se positionner à travers la paroie arrière pour faciliter le plug/ Deplug. Modélisation 3D de la Ferme V2: ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_bcdcd6fc3546c3656792be5626596e28.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_fb1add4f007e8bffd8c8b0332e045db8.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_38e8a5130c4dec57dcfe560b34aec048.png) Premier test branchements éléctronique: ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_4cba6bb41f9cb984071294b28a472fae.jpg) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_43991b2cd2c2db33eced23dc770e1623.jpg) Amenagement câblage sur la partie basse avec la zone d'emboitement de la glassière (on évacue le chaud ou froid vers l'extérieur) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_ccc4b5d7de63ebf868a77abb7bde457d.jpg) Aménagement de la zone éléctronique sur la partie basse et pose de roulette pour bouger plus facilement la ferme qui pèse son poid: ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_b65e61b609f3b36679f898218787b9b4.jpg) Sketch ino pour Arduino : <P> #include <LiquidCrystal.h> LiquidCrystal lcd(8,9,4,5,6,7); // ATTENTION, REMPLACER LES NOMBRES PAR VOS BRANCHEMENTS À VOUS ! int in1 = A1; int in2 = A2; /** * Exemple de code pour la lecture d'un capteur DHT11 ou DHT22. */ /** Broche "DATA" du capteur */ const byte BROCHE_CAPTEUR = A3; /* Code d'erreur de la fonction readDHT11() et readDHT22() */ const byte DHT_SUCCESS = 0; // Pas d'erreur const byte DHT_TIMEOUT_ERROR = 1; // Temps d'attente dépassé const byte DHT_CHECKSUM_ERROR = 2; // Données reçues erronées void setup() { lcd.begin(16, 4); lcd.setCursor(0,1); lcd.print("FORK THE WORLD !!!"); pinMode(in1, OUTPUT); digitalWrite(in1, HIGH); pinMode(in2, OUTPUT); digitalWrite(in2, HIGH); /* Initialisation du port série */ Serial.begin(115200); Serial.println(F("Demo DHT11 et DHT22")); /* Place la broche du capteur en entrée avec pull-up */ pinMode(BROCHE_CAPTEUR, INPUT_PULLUP); } void loop() { digitalWrite(in1, LOW); digitalWrite(in2, LOW); float temperature, humidity; /* Lecture de la température et de l'humidité, avec gestion des erreurs */ // N.B. Remplacer readDHT11 par readDHT22 en fonction du capteur utilisé ! switch (readDHT11(BROCHE_CAPTEUR, &temperature, &humidity)) { case DHT_SUCCESS: /* Affichage de la température et du taux d'humidité */ Serial.print(F("Humidite (%): ")); Serial.println(humidity, 2); Serial.print(F("Temperature (^C): ")); Serial.println(temperature, 2); if (temperature<=25) { lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("Temperature (^C): "); lcd.setCursor(0,1); lcd.print(temperature); digitalWrite(in1, HIGH); delay(640000); digitalWrite(in2, HIGH); delay(100000); } else { delay(16000); } break; case DHT_TIMEOUT_ERROR: Serial.println(F("Pas de reponse !")); digitalWrite(in1, HIGH); delay(160000); digitalWrite(in2, HIGH); delay(160000); break; case DHT_CHECKSUM_ERROR: Serial.println(F("Pb de communication !")); break; } /* Pas plus d'une mesure par seconde */ // N.B. Avec le DHT22 il est possible de réaliser deux mesures par seconde delay(1000); } /** * Lit la température et le taux d'humidité mesuré par un capteur DHT11. * * @param pin Broche sur laquelle est câblée le capteur. * @param temperature Pointeur vers la variable stockant la température. * @param humidity Pointeur vers la variable stockant le taux d'humidité. * @return DHT_SUCCESS si aucune erreur, DHT_TIMEOUT_ERROR en cas de timeout, ou DHT_CHECKSUM_ERROR en cas d'erreur de checksum. */ byte readDHT11(byte pin, float* temperature, float* humidity) { /* Lit le capteur */ byte data[5]; byte ret = readDHTxx(pin, data, 18, 1000); /* Détecte et retourne les erreurs de communication */ if (ret != DHT_SUCCESS) return ret; /* Calcul la vraie valeur de la température et de l'humidité */ *humidity = data[0]; *temperature = data[2]; /* Ok */ return DHT_SUCCESS; } /** * Lit la température et le taux d'humidité mesuré par un capteur DHT22. * * @param pin Broche sur laquelle est câblée le capteur. * @param temperature Pointeur vers la variable stockant la température. * @param humidity Pointeur vers la variable stockant le taux d'humidité. * @return DHT_SUCCESS si aucune erreur, DHT_TIMEOUT_ERROR en cas de timeout, ou DHT_CHECKSUM_ERROR en cas d'erreur de checksum. */ byte readDHT22(byte pin, float* temperature, float* humidity) { /* Lit le capteur */ byte data[5]; byte ret = readDHTxx(pin, data, 1, 1000); /* Détecte et retourne les erreurs de communication */ if (ret != DHT_SUCCESS) return ret; /* Calcul la vraie valeur de la température et de l'humidité */ float fh = data[0]; fh *= 256; fh += data[1]; fh *= 0.1; *humidity = fh; float ft = data[2] & 0x7f; ft *= 1; ft += data[3]; ft *= 0.1; if (data[2] & 0x80) { ft *= -1; } *temperature = ft; /* Ok */ return DHT_SUCCESS; } /** * Fonction bas niveau permettant de lire la température et le taux d'humidité (en valeurs brutes) mesuré par un capteur DHTxx. */ byte readDHTxx(byte pin, byte* data, unsigned long start_time, unsigned long timeout) { data[0] = data[1] = data[2] = data[3] = data[4] = 0; // start_time est en millisecondes // timeout est en microsecondes /* Conversion du numéro de broche Arduino en ports / masque binaire "bas niveau" */ uint8_t bit = digitalPinToBitMask(pin); uint8_t port = digitalPinToPort(pin); volatile uint8_t *ddr = portModeRegister(port); // Registre MODE (INPUT / OUTPUT) volatile uint8_t *out = portOutputRegister(port); // Registre OUT (écriture) volatile uint8_t *in = portInputRegister(port); // Registre IN (lecture) /* Conversion du temps de timeout en nombre de cycles processeur */ unsigned long max_cycles = microsecondsToClockCycles(timeout); /* Evite les problèmes de pull-up */ *out |= bit; // PULLUP *ddr &= ~bit; // INPUT delay(100); // Laisse le temps à la résistance de pullup de mettre la ligne de données à HIGH /* Réveil du capteur */ *ddr |= bit; // OUTPUT *out &= ~bit; // LOW delay(start_time); // Temps d'attente à LOW causant le réveil du capteur // N.B. Il est impossible d'utilise delayMicroseconds() ici car un délai // de plus de 16 millisecondes ne donne pas un timing assez précis. /* Portion de code critique - pas d'interruptions possibles */ noInterrupts(); /* Passage en écoute */ *out |= bit; // PULLUP delayMicroseconds(40); *ddr &= ~bit; // INPUT /* Attente de la réponse du capteur */ timeout = 0; while(!(*in & bit)) { /* Attente d'un état LOW */ if (++timeout == max_cycles) { interrupts(); return DHT_TIMEOUT_ERROR; } } timeout = 0; while(*in & bit) { /* Attente d'un état HIGH */ if (++timeout == max_cycles) { interrupts(); return DHT_TIMEOUT_ERROR; } } /* Lecture des données du capteur (40 bits) */ for (byte i = 0; i < 40; ++i) { /* Attente d'un état LOW */ unsigned long cycles_low = 0; while(!(*in & bit)) { if (++cycles_low == max_cycles) { interrupts(); return DHT_TIMEOUT_ERROR; } } /* Attente d'un état HIGH */ unsigned long cycles_high = 0; while(*in & bit) { if (++cycles_high == max_cycles) { interrupts(); return DHT_TIMEOUT_ERROR; } } /* Si le temps haut est supérieur au temps bas c'est un "1", sinon c'est un "0" */ data[i / 8] <<= 1; if (cycles_high > cycles_low) { data[i / 8] |= 1; } } /* Fin de la portion de code critique */ interrupts(); /* * Format des données : * [1, 0] = humidité en % * [3, 2] = température en degrés Celsius * [4] = checksum (humidité + température) */ /* Vérifie la checksum */ byte checksum = (data[0] + data[1] + data[2] + data[3]) & 0xff; if (data[4] != checksum) return DHT_CHECKSUM_ERROR; /* Erreur de checksum */ else return DHT_SUCCESS; /* Pas d'erreur */ } </P> *Ce Code est un fork d'exemple arduino, inspiré de base par le "capteur température" utilisé à Super Demain. Le code final s'appuie sur les modèles présents sur la plateforme Arduino, costumisé pour "Fork the World" et permettre la gestion temporisation. Plein de comment et du code pas épuré ... Un peu de sérieux JM (moi même)* **Premier montage complêt = direct exposé pour le rendu Open City Lab (On fera des pause plus tard)** ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_a3e6d95d8938c6cb19e1e4cf447ec8c0.jpg) La ferme est fonctionnelle, On a isoler rapidement... Les bacs sont percés (Merci Orianne de pas avoir cassé tous les bacs). En parallèle pendant l'évènement, on a rapidement construit sur la même logique le Rhombi pour Cyber Garden ... malheureusement, pas le temps et pas le budget pour l'arduino ect. ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_553711af1e520c0fc8d79e0ec464ad16.jpg) Projection conceptuelle: "Travail Maker intégré dans une oeuvre artistique" "UNE RENCONTRE" de deux univers. Pour la chauffe, on se servira d'un tapis de terrarium et de trois bac connecté du haut vers le bas par des robinets et des tuyaux de très petites tailles. On renforce le Rhombi avec une barre de maintient qui peut servire de séchoir, et de bouteille contenant le vinaigre et le sucre pour gérer l'apport en goutte à goutte en cas de manque dans le liquide. Un système de ventillation Pc, et quelques lumières internes (Bleu) mette en place l'idée de l'influence de la lumière et de la couleur dans une culture vivante (bah ouai ça marche pas quand tu coule du plastique). On colore le rhombi dans l'idée d'un module spacial que l'on pourrait envoyé sur mars ... #Mission To Mars et conquête par une colonisation grâce avec le renfort des Scoby. Orianne expérimente un aspect artistique qui nous fait bien marré : La petite fleur de scoby le petit goodies fleur bleue. Elle expériementera aussi la peinture sur scoby pour mettre en avant les liens possible entre artistes et Maker... Comment par un choix de matière, on limite son impact. Du scoby plutôt que des matériaux exotiques. ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_60b0cf54f61597a5cd47f364c374368f.jpg) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_9afe19fd0ec4f18ae5db034545b33b53.jpg) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_52abd69e47e4e07003e1f80f8e0c0553.jpg) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_c25e8198637d2a624a1728310837c25d.jpg) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_4e80ee49db53308cf962ae3d67fd70a5.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_aa97cf99dd69259481810fe1d4265988.png) ![](https://hot-objects.liiib.re/pad-lamyne-org/uploads/upload_20e63caea440503fa45a6273dff6c737.png)