====== Affiche Tactile ====== * **Porteur du projet :** Camille Cornec, Manon Ménard, Anaëlle Couëllan, Aygul Razyapova, Maïwenn Renault, Tanguy Vanlaeys, Flora Wierzbicki * **Date :** du mardi 10 novembre au vendredi 11 décembre 2015 * **Contexte :** Médiation graphique d'œuvres artistiques présentées dans le cadre de l'exposition Histoires Parallèles. ===== Anne-Valérie GASC / Bouquet Final ===== {{:wiki:projets:open-frac-2:affiche_tactile_gasc_tour_genet.jpg?200|}} {{:wiki:projets:open-frac-2:affiche_tactile_gasc_tour_hortensia.jpg?200|}} {{:wiki:projets:open-frac-2:affiche_tactile_gasc_tour_iris.jpg?200|}} Tour Genêt, Tour Hortensia, Tour Iris (série Bouquet Final) 2011 Sérigraphie à la poudre de béton de la Tour Genêt démolie à l’explosif le 26 juin 2011 à Meaux, 70 x 100 cm 8 tirages + 2 épreuves d’artiste, Les Éditions du Tingre, Marseille, 2011 ===== Description & Problématique ===== Nous avons choisis de faire la médiation de Bouquet Final de Anne-Valérie GASC. Il s’agit d’un triptyque de sérigraphie imprimé à base de la poudre de béton des trois immeubles représentés : La tour Iris, la tour Genêt, la tour Hortensia, toutes détruites à Meaux à l’explosif le 26 juin 2011. \\ L’__éphémère__, la __destruction créative__, et la __trace__ sont des notions qui nous semblaient intéressantes d’investir dans notre production. \\ En écho au propos d’Anne Valérie GASC, nous avons voulu travailler sur l’actualité, et mettre en évidence la fréquence des démolitions d’immeubles en France. De fait, nous avons produit une affiche tactile reliée à un haut parleur et à une imprimante thermique. \\ Sur l’affiche sont représentés des fragments d’immeubles détruits ou allant être détruits cette année. Au toucher, le visiteur déclenche l’impression de son ticket témoin. \\ Cette impression est accompagnée d’un son de démolition si l’immeuble est détruit, ou de bruits quotidiens si la démolition est en cours. \\ Le visiteur est invité à emporter le ticket avec lui : il représente l’unique trace de la démolition. \\ L’imprimante thermique renvoie aux imprimantes de tickets de caisse, et évoque ainsi la politique du tout jetable. L’impression thermique est quant à elle destinée à disparaître. \\ ===== Technique ===== D’un point de vue technique, cette production a été possible grâce à un circuit en cuivre au dos de l’affiche relié à la carte arduino (circuit imprimé + micro-contrôleur sur lequel un programme est enregistré). Un module son a été fixée à celle-ci pour pouvoir y stocker les sons. \\ Le passage du courant s’effectue quant à lui grâce à des capteurs capacitifs, sur l’affiche (boutons tactiles en cuivre). \\ {{:wiki:projets:open-frac-2:wiki-projets-open-frac-2-wiki2.jpg|}} {{:wiki:projets:open-frac-2:nume_riser_5.jpg|}} ===== Matériaux ===== * [[https://www.arduino.cc | Carte Arduino]] * [[http://tronixstuff.com/2011/07/08/tutorial-arduino-and-a-thermal-printer/ | Imprimante thermique]] * Scotch de Cuivre * Papiers * Papiers thermiques * Boite-caisson * Câbles jumpers * Module capacitif (MPR121QR2) * Enceintes * Alimentation 9V * Breadboard * Module son (DFPlayer Mini) * 8 pinces croco ===== Projet ===== \\ **Restitution des démarches** \\ __Organisation du groupe:__ \\ **Semaine 1:** Recherches créatives \\ **Semaines 2:** Recherches encre thermosensible : grossiste, coût, contraintes \\ **Semaines 3:** Changement d'avis : volonté d'utiliser une imprimante thermique. Recherches d'un programme permettant une automatisation d'impression. \\ **Semaine 4:** Division du groupe. Flora, Maïwenn, Anaëlle, et Tanguy collectent des informations relatives aux différentes destructions (textes, photos). Aygul, Manon, Camille s'occupent de la partie technique : circuit, tests du code avec l'équipe de Réso-nance \\ **Semaine 5:** Flora, Manon, Camille et Aygul continuent la collecte des informations. Maïwenn et Anaëlle s'occupent de la réalisation du meuble et de son emplacement dans l'espace d'exposition. Tanguy s'occupe de la réalisation graphique de l'affiche. \\ **Semaine 6:** Peaufinage du code, impression et réalisation du circuit en cuivre de l'affiche et assemblage du meuble. \\ **Cahier des charges** \\ __Techniques et problèmes rencontrés:__ \\ Difficulté à trouver quel software utiliser pour permettre une automatisation d'impression en série via l'imprimante thermique. Premières pistes trouvées auprès de Guillaume Bertrand, graphiste-ingénieur dans le collectif [[http://bien-urbain.fr/fr/actions-culturelles/3615-senor/|3615 seno]]r, à Besançon. Programmation sur OpenFrameworks : niveau de programmation trop élevé pour notre niveau. \\ Marion Estavoyer du [[http://reso-nance.org/lfo/|LFO]], FabLab de la Friche, nous informe qu'elle a déjà utilisé le logiciel OS X “Automator” pour de l'automatisation d'impression en série via une imprimante basique. L'imprimante thermique marche seulement lorsqu'elle est branchée sur une carte type Arduino : elle ne peux pas se brancher directement à un ordinateur. \\ Grâce à des échanges avec l'équipe de Réso-nance Numérique, automatisation d'impression envisageable avec [[https://forum.processing.org/two/discussion/554/how-to-print-on-printer-out-of-processing-sketch|Processing]]. \\ __Solutions choisies:__ \\ L'obligation d'utiliser la carte Arduino dans le circuit avec l'imprimante rendait le circuit plus simple en programmant l'automatisation via le sofware Arduino directement. \\ __Problèmes rencontrés:__ \\ Dans un premier temps, nous voulions utiliser un circuit en graphite au dos de l'affiche pour pouvoir retrouver l'esthétique brute des logements sociaux. Il s'est avéré que ce type de circuit n'était pas totalement stable car la répartition du graphite dans la colle est non uniforme. \\ Mauvaise isolation du circuit en cuivre car peinture du meuble pas tout à fait sèche. \\ Instabilité du module capacitif car mal isolé (effet antenne malvenu). Besoin d'avoir accès à la prise du courant pour pouvoir rebooter l'Arduino en cas de bug lors de l'installation. ===== Programme & circuit ===== **Circuit ** Avant de commencer le circuit, voici quelques informations sur ses différents composants : __**L'imprimante thermique**__ imprime grâce à une source d'alimentation (ici, 9V). Un signal électrique est alors envoyé la tête d’impression, elle-même constituée d’un ensemble de micro résistances, qui provoquent un point de chaleur. La chaleur noircit le papier thermique : on obtient ainsi l'impression. Les informations à imprimer sont communiquées à l'imprimante via l'Arduino, branchée à l'imprimante par des câbles jumper. \\ **Notice pour imprimante thermique Raspberry :** \\ [[http://tronixstuff.com/2011/07/08/tutorial-arduino-and-a-thermal-printer/]] \\ [[http://www.gotronic.fr/pj-1134.pdf]] __ **Le DFPlayer Mini (module son)**__ est un petit module MP3 peu coûteux avec une sortie simplifiée haut-parleur. Il peut prendre en charge jusqu'à 100 dossiers, chaque dossier pouvant contenir jusqu'à 255 chansons. \\ Pour ajouter des sons, il suffit de les enregistrer dans un dossier sur la carte SD amovible qui est fixée sur ce dernier. Il faudra ensuite les appeler depuis le programme pour les actionner. \\ **Plus d'informations :** \\ [[http://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299|http://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299]] __**Le module capacitif MPR121QR2**__ est un contrôleur de capteur tactile capacitif qui rend très facile l'intégration de la détection tactile dans un projet. Il communique par l'intermédiaire d'un I2C, et fonctionne en mesurant la capacité de douze points de l'électrode. Quand un objet est près du connecteur d'électrode, les capacités mesurées changent : cela indique que quelque chose a touché le “bouton”. \\ **Plus d'informations :** \\ [[https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/overview|https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/overview]] \\ [[https://learn.sparkfun.com/tutorials/mpr121-hookup-guide|https://learn.sparkfun.com/tutorials/mpr121-hookup-guide]] Se munir de l'affiche préalablement imprimée ainsi que d'un support rigide A2. \\ Ensuite, trouer l'affiche aux endroits souhaités : ces trous feront office de "boutons". Il s'agit dans un premier temps de téléverser le programme sur la carte Arduino, dans l'IDE (Interface de développement) d'Arduino. Le programme associe à chaque touche un son et un texte qui sera imprimé. \\ Ensuite, effectuer les branchements en branchant tous les composants sur une breadboard. Connecter ensuite l'imprimante à la carte Arduino elle-même reliée à la breadbord sur laquelle est disposé le module son (DFPlayer Mini SKU:DFR0299) ainsi que le module capacitif (MPR121QR2). Faire partir 8 câbles jumper du module. Brancher 8 pinces crocos sur chaque câble jumper. Sur la surface rigide, disposer des bandes de scotchs de cuivre là ou seront situés les trous l'affiche. \\ Relier les bandes de cuivres aux pinces crocos : le module capacitif va permettre d'actionner les sons et l'impression lors du simple touché du doigt. {{ :wiki:projets:open-frac-2:tb1.png |}} {{:wiki:projets:open-frac-2:img_9827.jpg|}} {{ :wiki:projets:open-frac-2:tb2.jpg |}} {{:wiki:projets:open-frac-2:sche_ma_bouquet_final.jpg|}} \\ **Présentation du programme** \\ __Algorithmes:__ \\ Lorsque un bouton est touché, le programme va associer le numéro du bouton à un son et à une classe d'impression. \\ Le programme va chercher le son dans la carte SD fixée sur le module son et l'envoyer à l'enceinte depuis ce dernier. \\ Le programme va chercher l'impression dans la classe relative à la touche : texte et mise en page y sont détaillés \\ Chaque contact sur les boutons tactiles vont être mis en attente si l'action en cours n'est pas terminée. \\ **Tutoriel** \\ Télécharger [[https://www.arduino.cc/|Arduino]] \\ Tuto arduino : [[http://eskimon.fr/ebook-tutoriel-arduino]] ==== Code Arduino ==== // CONNECTIONS CAPACITIF mrp 121 : a5>scl A4>sda 3.3V GND // CONNECTIONS MP3 (coté droit en regardant le module vu de dessus carte sd en bas): 1:5V 2:1Kohm>D1 3:1Kohm>D0 6:speaker- 7:GND 8:SPEAKER+ // CONNECTIONS IMPRIMANTE THERMIQUE : D2,D3... // la documentation sur l'imprimante thermale est disponible sur : http://www.gotronic.fr/pj-1134.pdf // toutes les options de mises en forme (surligné, gras, sousligné, etc...) y sont disponibles // le tutoriel arduino sur l'imprimante thermique: http://tronixstuff.com/2011/07/08/tutorial-arduino-and-a-thermal-printer/ // LIB MP3 - gestion de la carte son #include // appel de la librairie permettant la communication en série #include // appel du module son // LIB PRINT - gestion de l'imprimate thermique // gestion du code barre SoftwareSerial Thermal(2, 3); //création de l'instance de la classe “Thermal” pour permettre l'impression thermique int zero=0; //variable zero = 0 int heatTime = 80; //variable heatTime = 0 int heatInterval = 255; //variable heatInterval = 255 char printDensity = 15; //densité de l'impression des caractères char printBreakTime = 15; //pause de l'impression des caractères const char barCode[]={ '9','2','3','0','5','6','4','8','9','8','4','4'}; //constante du caractère code barre const char barCodeauvergne[]={ 'A','U','V','E','R','G','N','E'}; //constante du caractère code barre d'Auverge const char barCodebarredm[]={ 'B','A','R','R','E','D','M','A','R','R','E'}; //constante du caractère code barre de Marre const char barCodebordeaux[]={ 'B','O','R','D','E','A','U','X','7','0','M','E','T','R','E','S'}; //constante du caractère code barre de Bordeaux const char barCodecroix[]={'C','R','O','I','X'}; //constante du caractère code barre de Croix const char barCodeelbeuf[]={'E','L','B','E','U','F'}; //constante du caractère code barre de Elbeuf const char barCodelyon[]{'I','M','M','E','U','B','L','E','B','1','0','L','Y','0','N'}; //constante du caractère code barre de Lyon const char barCodemeru[]={'M','E','R','U'}; //constante du caractère code barre de Meru const char barCodenanterre[]={'N','A','N','T','E','R','R','E'}; //constante du caractère code barre de Nanterre // MRP121 - Gestion du module capacitif composée de 12 "boutons" tactiles // voir : https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/wiring // protocole de transfert I2C entre la carte ARduino et la carte tactile: https://fr.wikipedia.org/wiki/I2C #include //appel d'une librairie permettant de communiquer avec les périphériques TWI I2C #include "Adafruit_MPR121.h"//appel de du module capacitif Adafruit_MPR121 cap = Adafruit_MPR121(); // cap : objet de la classe Adafruit_MPR121 instancié par le constructeur Adafruit_MPR121() // assure le suivi des derniers boutons touchés uint16_t lasttouched = 0; // numéro du dernier bouton touché uint16_t :unsingned short contant de 0 à 65,535 uint16_t currtouched = 0; // numéro du bouton touché actuellement int touched=0; // variable permettant de savoir si un bouton est touché int led = 13; // SETUP //////////////////////////////////////////////////////////////// void setup() { //fonction qui commence // PRINT Thermal.begin(19200); //appel instanciation imprimante thermique initPrinter(); // MP3 mp3_set_serial (Serial); //appel son stocké dans le dossier “serial” dans le DFPlayer-mini mp3 module mp3_set_volume (15); //volume à 15 while (!Serial); // boucle Serial.begin(9600); // Transmission des données en séries en bits (9600) //Serial.println("Adafruit MPR121 Capacitive Touch sensor test"); // Default address is 0x5A, if tied to 3.3V its 0x5B // If tied to SDA its 0x5C and if SCL then 0x5D if (!cap.begin(0x5A)) { //Serial.println("MPR121 not found, check wiring?"); while (1); } //Serial.println("MPR121 found!"); pinMode(led, OUTPUT); } // LOOP //////////////////////////////////////////////////////////////// void loop() { //fonction boucle à partir des boutons touchés currtouched = cap.touched(); // récupération du numéro du bouton touché // voir https://github.com/adafruit/Adafruit_MPR121_Library/blob/master/Adafruit_MPR121.h // conditions : for (uint8_t i=0; i<12; i++) { // s'il a été touché et qu'il ne l'est plus, arrêter if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) { //Serial.print(i); Serial.println(" touched"); if (i==1){digitalWrite(led,HIGH); mp3_play (5);meru();}; // si le bouton correspond à 1, appel classe meru + son mp3 1 if (i==2){digitalWrite(led,HIGH); mp3_play (2);elbeuf();}; // si le bouton correspond à 2, appel classe elbeuf + son mp3 2 if (i==3){digitalWrite(led,HIGH); mp3_play (3);barredm();}; // si le bouton correspond à 3, appel classe barredm + son mp3 3 if (i==4){digitalWrite(led,HIGH); mp3_play (4);auvergne();}; // si le bouton correspond à 4, appel classe auverge + son mp3 4 if (i==5){digitalWrite(led,HIGH); mp3_play (1);lyon();}; // si le bouton correspond à 5, appel classe lyon + son mp3 5 if (i==6){digitalWrite(led,HIGH); mp3_play (6);nanterre();}; // si le bouton correspond à 6, appel classe nanterre + son mp3 6 if (i==7){digitalWrite(led,HIGH); mp3_play (7);bordeaux();}; // si le bouton correspond à 7, appel classe bordeaux + son mp3 7 if (i==8){digitalWrite(led,HIGH); mp3_play (8);croix();}; si le bouton correspond à 8, appel classe elbeuf + son mp3 8 } // s'il a été touché et qu'il ne l'est plus, arrêter if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) { //Serial.print(i); Serial.println(" released"); if (i==5){digitalWrite(led,LOW);}; } } // reset our state lasttouched = currtouched; ///////////////////////////////////////////////////////////////// MRP121 debug.... // // débugger le module capacitif // return; // // // debugging info, what // Serial.print("\t\t\t\t\t\t\t\t\t\t\t\t\t 0x"); Serial.println(cap.touched(), HEX); // Serial.print("Filt: "); // for (uint8_t i=0; i<12; i++) { // Serial.print(cap.filteredData(i)); Serial.print("\t"); // } // Serial.println(); // Serial.print("Base: "); // for (uint8_t i=0; i<12; i++) { // Serial.print(cap.baselineData(i)); Serial.print("\t"); // } // Serial.println(); ////////////////////////////////////////////////////////////////// // mettre en attente de façon à ne pas surcharger delay(100); } /// Méthodes personelles // PRINTER VOID void initPrinter() { //Modifier la rapidité d'impression et la chaleur Thermal.write(27); Thermal.write(55); Thermal.write(7); //Default 64 dots = 8*('7'+1) Thermal.write(heatTime); //Default 80 or 800us Thermal.write(heatInterval); //Default 2 or 20us //Modifier la densité et le temps de pause Thermal.write(18); Thermal.write(35); int printSetting = (printDensity<<4) | printBreakTime; Thermal.write(printSetting); //Combination de printDensity et printBreakTime Serial.println(); //Serial.println("Printer ready"); } void printBarcode(const char zz[]) { /// voir p22 de la documentation http://www.gotronic.fr/pj-1134.pdf // les 3 lignes suivantes définissent les symboles utilisés par l'imprimante pour dessiner le code barre Thermal.write(29); //GS Thermal.write(107); //k Thermal.write(zero); //m = 0 for (int z=0; z<12; z++){ Thermal.write(zz[z]); } Thermal.write(zero); delay(3000); // necessary delay Thermal.write(10); Thermal.write(10); Thermal.write(10); } ===== Code immeuble ===== Code immeuble B10 void lyon () {// nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné Thermal.println("IMMEUBLE B10"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné Thermal.println("19,20 Place Charles Beraudier"); Thermal.println("LYON"); Thermal.println("25m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.45 45'37.741"); Thermal.println("E 4 51'31.779"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("165"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("22/11/2015"); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné Thermal.println("Amiante - Reamenagement de la place Charles Beraudier"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCode); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } Code IMMEUBLE AUVERGNE ET ARTOIS void auvergne () { // nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // pour tous les format d'affichage voir : http://www.gotronic.fr/pj-1134.pdf // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné et écriture en gras (voir : http://www.gotronic.fr/pj-1134.pdf : écrire séparément 29, 66 et n avec n= 1 : activer le mode surligner en gras et n=0: désactiver le mode) Thermal.println("IMMEUBLE AUVERGNE ET ARTOIS"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné et écriture en gras Thermal.println("Rue Abelard"); Thermal.println("MEAUX"); Thermal.println("50m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.48 57'10.4478"); Thermal.println("E 2 54'35.504"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("211"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("22/11/2015"); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné. (voir : http://www.gotronic.fr/pj-1134.pdf : écrire séparément 27, 45 et n avec n vallant 0, 1 ou 2 points) Thermal.println("Projet de reconstruction de logements sociaux taille humaine"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné (voir : http://www.gotronic.fr/pj-1134.pdf : écrire séparément 27, 45 et n avec n vallant 0, 1 ou 2 points) // ATTENTION: ici, zero = 0 est considéré comme un caractère ascii (https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange) dont la valeur est 30 en hexadécimal. Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCodeauvergne); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } Code immeuble Barre des Mille void barredm () { // nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné Thermal.println("IMMEUBLE BARRE DES MILLE BAT 230"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné Thermal.println("Boulevard de la Duchre"); Thermal.println("LYON"); Thermal.println("54m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.48 51'23.81"); Thermal.println("E 2 21'7.998"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("78"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("02/07/2015"); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné Thermal.println("Construction du premier ecoquartier de France"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCodebarredm); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } Code immeuble Elbeuf void elbeuf () { // nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné Thermal.println("IMMEUBLE CREA ELBEUF"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné Thermal.println("16 Jean-Jaurs"); Thermal.println("ELBEUF"); Thermal.println("18,73m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.49 17'26.78"); Thermal.println("E 1 0'34.756"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("198"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("du 17/08/2015 au ..."); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné Thermal.println("Amiante - Etat de degradation irremediable"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCodeelbeuf); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } Code immeuble Méru void meru () { // nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné Thermal.println("TOUR DU QUARTIER DE LA NACRE"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné Thermal.println("Rue Jean Moulin"); Thermal.println("MERU"); Thermal.println("28m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.45 45'37.741"); Thermal.println("E 4 51'31.779"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("247"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("08/09/2015"); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné Thermal.println("Operation de renovation urbaine"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCodemeru); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } Code immeuble Bordeaux void bordeaux () { // nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné Thermal.println("IMMEUBLE LA CROIX DU MAIL"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné Thermal.println("Quartier Meriadeck, 1 Place Tartas"); Thermal.println("Bordeaux"); Thermal.println("70m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.35 55'27.88"); Thermal.println("E 1 28'9.328"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("347"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("18/04/2015"); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné Thermal.println("Reconstruction de la cite municipale"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCodebordeaux); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } Code TOUR DU QUARTIER DE LA NACRE void meru () { // nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné Thermal.println("TOUR DU QUARTIER DE LA NACRE"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné Thermal.println("Rue Jean Moulin"); Thermal.println("MERU"); Thermal.println("28m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.45 45'37.741"); Thermal.println("E 4 51'31.779"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("247"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("08/09/2015"); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné Thermal.println("Operation de renovation urbaine"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCodemeru); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } Code IMMEUBLE LE BATEAU void nanterre () { // nom de la fonction a appelé dans le code initial pour imprimer le ticket correspondant // mise en page du texte Thermal.println("________________________________"); Thermal.write(29);Thermal.write(66);Thermal.write(1); // surligné Thermal.println("IMMEUBLE LE BATEAU"); Thermal.write(29);Thermal.write(66);Thermal.write(zero);//non surligné Thermal.println("Rue Jean Jaures"); Thermal.println("NANTERRE"); Thermal.println("200m"); Thermal.println(); Thermal.println("GPS :"); Thermal.println("N.48 53'25.901"); Thermal.println("E 2 11'21.465"); Thermal.println(); Thermal.println("Nombre d'habitants :"); Thermal.println("235"); Thermal.println(); Thermal.println("Date de destruction :"); Thermal.println("31/03/2015"); Thermal.println(); Thermal.println("Cause de destruction :"); Thermal.write(27);Thermal.write(45);Thermal.write(2); // sousligné Thermal.println("Reconstruction de 250 logements sociaux"); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println(); Thermal.println("Ticket temoin a conserver"); Thermal.println(); printBarcode(barCodenanterre); Thermal.write(27);Thermal.write(45);Thermal.write(zero); // non sousligné Thermal.println("________________________________"); } ===== Réalisation finale ===== {{ :wiki:projets:open-frac-2:open_frac_2.jpg |}} {{ :wiki:projets:open-frac-2:ticket_boom1.gif |}} {{ :wiki:projets:open-frac-2:ticket_boom2.gif |}} === Vidéo === Étapes de réalisation, installation finale et vernissage. {{vimeo>151884364?medium}} // Vidéo par Rémi Bargier // ===== Échanges ===== **AVG :**Aujourd'hui même il y a une démolition à Meaux : http://www.meaux-habitat.fr/Actualites/Dimanche-22-novembre-2015-a-13h00-aura-lieu-la-demolition-des-residences-Auvergne-et-Artois Peut-être est ce encore plus intéressant de travailler cette actualité à votre manière et comme suite à mon propre travail ? **ACC:**À propos d'affiches rétroéclairées, ce travail de Thomas Huot-Marchand, utilisant le rétroéclairage urbain des sucettes Decaux pour révéler différentes informations imprimées au recto de l'affiche papier et invisibles le jour : [[http://www.thomashuotmarchand.com/new/safari-fourier/]] > la page réalisée par les médiatrices du FRAC sur cette œuvre :{{:wiki:projets:open-frac-2:anne-vale_rie_gasc.docx|}} **AA:** Voici le lien sur un projet de l'artiste Daniel Purroy qui a travaillé sur la destructions de barres d'immeubles à Paris : http://www.kisskissbankbank.com/fr/projects/la-cite-balzac-a-paris--2 **AA+SP:** On adore l'idée de l'encre thermotactile. Point de vu budget, il faut voir les besoins financiers des autres groupes. Un pot est envisageable. **AA:** L'imprimante et les rouleaux ont bien été livré au FRAC. Je ne suis pas à mon bureau demain mais vous pouvez passer les récupérer. Le carton est sur mon bureau au 2 bis. A mardi ===== Contact ===== **Anne-Catherine Céard**, enseignant DSAA d'Art Graphique * 06 83 77 85 19 * ac.ceard@gmail.com **Thomas Ricordeau**, enseignant DSAA de Design Graphique * 06 09 04 88 19 * thomas.ricordeau@gmail.com **Reso-nance Numérique** * contact@reso-nance.org ** Annabelle Arnaud**, responsable projets milieu scolaire et formation * 04 91 90 28 72 * annabelle.arnaud@fracpaca.org **Stéphanie Putaggio**, projets milieu scolaire * 04 91 90 28 72 * stephanie.putaggio@fracpaca.org