{"id":2226,"date":"2015-01-23T10:33:35","date_gmt":"2015-01-23T09:33:35","guid":{"rendered":"http:\/\/telefab.fr\/?p=2226"},"modified":"2026-04-30T17:33:59","modified_gmt":"2026-04-30T15:33:59","slug":"synesthesia","status":"publish","type":"projet","link":"https:\/\/hub.imt-atlantique.fr\/fablab\/projet\/synesthesia\/","title":{"rendered":"Synesth\u00e9sia"},"content":{"rendered":"<p>Dans le cadre d&rsquo;un intersemestre ayant pour th\u00e8me la \u00ab\u00a0musique\u00a0\u00bb. Nous avons d\u00e9cid\u00e9 de travailler sur la production de son \u00e0 partir de la couleur de notre environnement. Bref de r\u00e9aliser une impression de synesth\u00e9sie.<\/p>\n<p>Le groupe est compos\u00e9 de membre venant de l&rsquo;EESAB et de TELECOM Bretagne ( Mathieu BARON , M\u00e9linda BOUKHANA , Sisi CHEN , Xing LI , Fran\u00e7ois N\u00c9RON , Chlo\u00e9 TROUSSIER , Gabriel VAUDOUR ).<br \/>\nNous avons cr\u00e9\u00e9 \u00e0 l&rsquo;aide de MAX\/MSP un programme permettant de d\u00e9terminer la couleur d&rsquo;une image et de jouer des notes en fonction de celle-ci. Nous avons aussi cr\u00e9er un tableau pr\u00e9sentant une grande palette de couleur. Ainsi chacun pourra se placer devant la cam\u00e9ra et modifier les sons produit en obstruant certaines couleurs et en ajoutant les siennes.<\/p>\n<p>Pour rendre l&rsquo;ensemble plus visuel, on ajoute des lumi\u00e8res montrants les couleurs majoritaires dans les images qui sont jou\u00e9es. A la fois sur l&rsquo;\u00e9cran de l&rsquo;ordinateur et sur un ruban de LEDs<\/p>\n<p>Partie Technique<\/p>\n<p>I- Mat\u00e9riel<br \/>\n&#8211; logiciel Max\/MSP<br \/>\n-une cam\u00e9ra (ici webcam int\u00e9gr\u00e9e \u00e0 un ordinateur portable)<br \/>\n-un arduino<br \/>\n-un ruban \u00e0 LED<br \/>\n-un c\u00e2ble USB (arduino)<br \/>\n-une capacit\u00e9 220 \u03bcF<br \/>\n-une alimentation ext\u00e9rieur par c\u00e2ble<br \/>\n-fer \u00e0 souder<br \/>\n-fils<br \/>\nII- Code<\/p>\n<p>Nous nous sommes organis\u00e9s en plusieurs modules\u00a0:<br \/>\n-D\u00e9termination des couleurs pr\u00e9sentes<br \/>\n-Traduction des donn\u00e9es couleur en son<br \/>\n-Contr\u00f4le des LEDs<\/p>\n<p>a. D\u00e9termination des couleurs pr\u00e9sentes<\/p>\n<p>Nous avons d\u00e9cid\u00e9 de d\u00e9couper l&rsquo;image film\u00e9e par la cam\u00e9ra en plusieurs bloc (ici 8) et de faire une moyenne sur ces blocs des coefficient de la coloration RVB (Rouge Vert Bleu). Afin de simplifier et de rendre plus rapide le traitement du flux continu d&rsquo;image ainsi que d&rsquo;\u00e9viter de nombreux sons trop proche entre eux.<br \/>\nEnsuite nous lisons les blocs de l&rsquo;image dans un sens pr\u00e9d\u00e9termin\u00e9 et produisons le son associ\u00e9 \u00e0 chaque coefficient selon un traitement d\u00e9fini ci-dessus.<\/p>\n<p>b. Traduction couleur son<\/p>\n<p>Le mode de traitement des donn\u00e9es est tout-\u00e0-fait subjectif et arbitraire. On a choisit d&rsquo;associer chaque couleurs \u00e0 un instrument puis chaque instrument \u00e0 une note. Les instruments sont chang\u00e9s de fa\u00e7on al\u00e9atoire afin de nous pr\u00e9server de la monotonie.<\/p>\n<p>c. Contr\u00f4le des LEDs<\/p>\n<p>On contr\u00f4le le ruban de LEDs avec Arduino<\/p>\n<p>&nbsp;<\/p>\n<p>#include &lt;Adafruit_NeoPixel.h&gt;<\/p>\n<p>#define PIN 6<br \/>\nchar incomingByte[10];\/\/ for incoming serial data<br \/>\nint i = 0;<br \/>\nint red;<br \/>\nint green;<br \/>\nint blue;<br \/>\nAdafruit_NeoPixel strip = Adafruit_NeoPixel(50, PIN, NEO_GRB + NEO_KHZ800);<br \/>\nvoid setup() {<br \/>\nstrip.begin();<br \/>\nstrip.show();<br \/>\nSerial.begin(9600); \/\/ opens serial port, sets data rate to 9600 bps<br \/>\n}<\/p>\n<p>void loop() {<\/p>\n<p>\/\/ send data only when you receive data:<br \/>\nif (Serial.available() &gt; 0) {<br \/>\n\/\/ read the incoming byte:<\/p>\n<p>incomingByte[i] = Serial.read();<br \/>\ni ++;<br \/>\nif (i==9){<br \/>\nfor (int j = 0; j &lt;9; j++){<br \/>\nSerial.println(incomingByte[j]);<br \/>\nif (j==8){<br \/>\ni=0;<br \/>\n}<br \/>\n}<br \/>\nred = (incomingByte[0]-48)*100+(incomingByte[1]-48)*10+(incomingByte[2]-48);<br \/>\ngreen = (incomingByte[3]-48)*100+(incomingByte[4]-48)*10+(incomingByte[5]-48);<br \/>\nblue = (incomingByte[6]-48)*100+(incomingByte[7]-48)*10+(incomingByte[8]-48);<br \/>\nSerial.println(\u00ab\u00a0rouge\u00a0\u00bb);<br \/>\nSerial.println(red);<br \/>\nSerial.println(\u00ab\u00a0bleu\u00a0\u00bb);<br \/>\nSerial.println(blue);<br \/>\nSerial.println(\u00ab\u00a0vert\u00a0\u00bb);<br \/>\nSerial.println(green);<br \/>\ncolorWipe(strip.Color(red,green, blue), 20);<br \/>\n}<\/p>\n<p>}<\/p>\n<p>}<br \/>\nvoid colorWipe(uint32_t c, uint8_t wait) {<br \/>\nfor(uint16_t i=0; i&lt;strip.numPixels(); i++) {<br \/>\nstrip.setPixelColor(i, c);<br \/>\nstrip.show();<br \/>\ndelay(wait);<br \/>\n}<br \/>\n}<\/p>\n<p>on utilise en parall\u00e8le l&rsquo;\u00e9cran de l&rsquo;ordinateur qui affiche la couleur dominante sur chaque blocs.<\/p>\n<p>III- Fabrication<\/p>\n<p>a.Sch\u00e9ma de montage<\/p>\n<figure id=\"attachment_2227\" aria-describedby=\"caption-attachment-2227\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/20150121_152058.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-2227\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/20150121_152058-300x225.jpg\" alt=\"Montage \" width=\"300\" height=\"225\" \/><\/a><figcaption id=\"caption-attachment-2227\" class=\"wp-caption-text\">Montage<\/figcaption><\/figure>\n<figure id=\"attachment_2228\" aria-describedby=\"caption-attachment-2228\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/20150121_152103.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-2228\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/20150121_152103-300x225.jpg\" alt=\"branchement ruban\/ arduino \" width=\"300\" height=\"225\" \/><\/a><figcaption id=\"caption-attachment-2228\" class=\"wp-caption-text\">branchement ruban\/ arduino<\/figcaption><\/figure>\n<p align=\"LEFT\">On soude ensemble les fils le condensateur et l&rsquo;alimentation du ruban de LEDs.<\/p>\n<p align=\"LEFT\">Les informations transmises par le logiciel MAX sont celles des 3 coefficients de couleur.<\/p>\n<p align=\"LEFT\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/20150121_152107.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2229\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/20150121_152107-300x225.jpg\" alt=\"20150121_152107\" width=\"300\" height=\"225\" \/><\/a><\/p>\n<p align=\"LEFT\">b. D\u00e9coration<\/p>\n<p align=\"LEFT\">Pour cr\u00e9er le tableau que nous utiliserons comme support de son, nous avons d\u00e9cider de cr\u00e9er un tableau qui pr\u00e9sentera des zones de couleurs diff\u00e9rentes. Nous nous sommes inspir\u00e9s du haut parleur\u00a0: de sa forme et de sa texture.<\/p>\n<p align=\"LEFT\">La sculpture est compos\u00e9e de carton et d&rsquo;un grand papier. Elle a \u00e9t\u00e9 peinte \u00e0 la bombe. Les photos pr\u00e9sentent plusieurs \u00ab\u00a0tapes de sa construction.<\/p>\n<p align=\"LEFT\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/image1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2230\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/image1-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" \/><\/a><\/p>\n<p align=\"LEFT\"><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/image4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2231\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2015\/01\/image4-288x300.jpg\" alt=\"image4\" width=\"288\" height=\"300\" \/><\/a><\/p>\n","protected":false},"author":1,"featured_media":2231,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"categories":[39,20],"type_projet":[],"class_list":["post-2226","projet","type-projet","status-publish","has-post-thumbnail","hentry","category-a-la-une","category-projets"],"acf":{"objectifs":"","categorie":false,"fichiers_associes":null},"_links":{"self":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/2226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet"}],"about":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/types\/projet"}],"author":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/2226\/revisions"}],"predecessor-version":[{"id":10521,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/2226\/revisions\/10521"}],"wp:attachment":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/media?parent=2226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/categories?post=2226"},{"taxonomy":"type_projet","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/type_projet?post=2226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}