{"id":1805,"date":"2020-11-09T16:44:08","date_gmt":"2020-11-09T21:44:08","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/?p=1805"},"modified":"2020-11-10T19:08:05","modified_gmt":"2020-11-11T00:08:05","slug":"hearing-the-colors","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/?p=1805","title":{"rendered":"Hearing the Colors"},"content":{"rendered":"<p><strong>Context:<\/strong> One of the main contributions of technology is mediation: technology mediates the agency of both disabled and fully enabled humans in the world, rebuilding their relation with the environment.<\/p>\n<p><strong>Problem:<\/strong> For visually impaired people, many applications \u00a0have been developed that scan and recognise objects in space for visually impaired people. This way, the user can perceive spatial information without employing touch. The visual information is translated into auditory words, which describe an object or a spatial condition.<\/p>\n<p>This method facilitates the daily life for people with visual impairment. However, it is inadequate when it comes to the perception of art. A \u00a0colourful painting cannot be described through a sequence of colour matches that may bear no meaning to people with congenital vision disability.<\/p>\n<p><strong>Solution: <\/strong>\u2018Hearing the\u00a0colours \u00a0is a wearable interface that turns the experience of colours and visual art into an audio performance. The wearable prompts the user to move their hand and &#8216;grasp&#8217; the sounds of the colours in a similar way with that they execute to &#8216;grasp&#8217; the Braille dots for reading.<\/p>\n<p>The interface plays the role of a sensory substitution device (SSD). After practice, the user learns to stimulate spontaneously the experiential quality of \u201cseeing a color\u201d through a new set of sensoricognitive skills. . This changes the classical definition of sensory modalities and contributes to the emergence of a form of &#8220;artificial synaesthesia&#8221;.<\/p>\n<p>The interface is designed to transform the static observation of art into an interplay of visuals, sound and body movement. However, hearing the colors through a wearable device should not only be constrained to the spectrum of artwork. It contains the potential to turn the body into a scanning device, that moves and interacts with the space itself, even with other human beings.<\/p>\n<figure id=\"attachment_1807\" aria-describedby=\"caption-attachment-1807\" style=\"width: 2233px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"wp-image-1807 size-full\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199.jpg\" alt=\"\" width=\"2233\" height=\"1786\" srcset=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199.jpg 2233w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199-300x240.jpg 300w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199-1024x819.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199-768x614.jpg 768w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199-1536x1229.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199-2048x1638.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Diagram-scaled-e1604957961199-1200x960.jpg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption id=\"caption-attachment-1807\" class=\"wp-caption-text\">Idea<\/figcaption><\/figure>\n<figure id=\"attachment_1812\" aria-describedby=\"caption-attachment-1812\" style=\"width: 487px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" class=\"wp-image-1812 size-full\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/5.png\" alt=\"\" width=\"487\" height=\"295\" srcset=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/5.png 487w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/5-300x182.png 300w\" sizes=\"(max-width: 487px) 85vw, 487px\" \/><figcaption id=\"caption-attachment-1812\" class=\"wp-caption-text\">Perceiving the colours in art<\/figcaption><\/figure>\n<figure id=\"attachment_1813\" aria-describedby=\"caption-attachment-1813\" style=\"width: 480px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" class=\"wp-image-1813\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Picture1.png\" alt=\"\" width=\"480\" height=\"304\" \/><figcaption id=\"caption-attachment-1813\" class=\"wp-caption-text\">Perceiving people through their skin colour<\/figcaption><\/figure>\n<p><strong>Color as a R:G:B and H:S:B code<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-1811 size-full\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/1W30TLUP9avQwyyLfwu7WYA.jpg\" alt=\"\" width=\"850\" height=\"326\" srcset=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/1W30TLUP9avQwyyLfwu7WYA.jpg 850w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/1W30TLUP9avQwyyLfwu7WYA-300x115.jpg 300w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/1W30TLUP9avQwyyLfwu7WYA-768x295.jpg 768w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Computational Logic:<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-1810 size-full\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1374\" srcset=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-300x161.jpg 300w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-1024x550.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-768x412.jpg 768w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-1536x825.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-2048x1100.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/Design-Strategy-1200x644.jpg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><strong>Demonstration Demo:<\/strong><\/p>\n<p><iframe title=\"1\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/RJWjC6J7U9k?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><iframe title=\"2\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/uELDxcZzw5k?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><iframe title=\"3\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/QWzab2cdnpA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Circuit design:<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-1815 size-large\" src=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/schematic-1024x816.jpg\" alt=\"\" width=\"840\" height=\"669\" srcset=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/schematic-1024x816.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/schematic-300x239.jpg 300w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/schematic-768x612.jpg 768w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/schematic-1536x1224.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/schematic-1200x956.jpg 1200w, https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/wp-content\/uploads\/2020\/11\/schematic.jpg 1995w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><strong>Code:\u00a0<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">#include &lt;Wire.h&gt;\r\n#include \"Adafruit_TCS34725.h\"\r\n\r\n\/* Initialise with specific int time (700ms) and gain(1x) values\r\n  Integration time = how often it reads the colors\r\n\r\n  Longer integration times can be used for increased sensitivity at low light levels.\r\n  Valid integration times are: 2.4MS, 24MS, 50MS, 101MS, 154MS, 700MS\r\n\r\n  Sets the gain of the ADC to control the sensitivity of the sensor.\r\n  Valid gain settings are: 1x(no gain), 4x, 16x, 60x\r\n*\/\r\n\r\nAdafruit_TCS34725 myRGB = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);\r\n\r\nint R = 0;\r\nint G = 0;\r\nint B = 0;\r\nint hsv [3];\r\n\r\nconst int speaker = 11;\r\nint pitch; int duration; int delayT;\r\n\r\n\/*********************************************************************************************\/\r\n\r\nvoid setup() {\r\n\r\n  Serial.begin(9600);\r\n\r\n  if (myRGB.begin()) {\r\n    Serial.println(\"The colorSensor is found\");\r\n  } else {\r\n    Serial.println(\"No colorSensori is found\");\r\n    while (1);\r\n  }\r\n\r\n  Serial.println(\"*****************************************************\");\r\n  Serial.println();\r\n\r\n}\r\n\/*********************************************************************************************\/\r\n\r\nvoid loop() {\r\n  getRGBValues();\r\n  rgb2Hsv(R, G, B, hsv);\r\n  colors2Sounds();\r\n\r\n  tone(speaker, pitch, duration);\r\n  delay(delayT);\r\n\r\n} \/\/ loop\r\n\r\n\/*********************************************************************************************\/\r\nvoid colors2Sounds() {\r\n\r\n  if (hsv[0] &lt;= 1) {\r\n    pitch = 100;\r\n    duration = 400;\r\n    delayT = 0;\r\n    Serial.println(\"red\");\r\n  } else if (hsv[0] &lt;= 5) {\r\n    pitch = 300;\r\n    duration = 400;\r\n    delayT = 50;\r\n    Serial.println(\"purple\");\r\n  } else if (hsv[0] &lt;= 13) {\r\n    pitch = 500;\r\n    duration = 400;\r\n    delayT = 100;\r\n    Serial.println(\"orange\");\r\n  } else if (hsv[0] &lt;= 17) {\r\n    pitch = 1000;\r\n    duration = 400;\r\n    delayT = 180;\r\n    Serial.println(\"yellow\");\r\n  } else if (hsv[0] &lt;= 25) {\r\n    pitch = 1800;\r\n    duration = 400;\r\n    delayT = 230;\r\n    Serial.println(\"green\");\r\n  } else if (hsv[0] &lt;= 33) {\r\n    pitch = 2400;\r\n    duration = 400;\r\n    delayT = 300;\r\n    Serial.println(\"greenish blue\");\r\n  } else if (hsv[0] &lt;= 55) {\r\n    pitch = 3000;\r\n    duration = 400;\r\n    delayT = 400;\r\n    Serial.println(\"blue\");\r\n\r\n  }\r\n}\r\n\r\nvoid getRGBValues() {\r\n\r\n  float _red, _green, _blue;\r\n  myRGB.setInterrupt(false);\r\n  delay(60);\r\n  myRGB.getRGB(&amp;_red, &amp;_green, &amp;_blue);\r\n  myRGB.setInterrupt(true);\r\n\r\n  \/\/Print RGB values\r\n  \/* Serial.print(\"Red: \"); Serial.print(_red); Serial.print(\" *** \");\r\n    Serial.print(\"Green: \"); Serial.print(_green); Serial.print(\" *** \");\r\n    Serial.print(\"Blue: \"); Serial.print(_blue); Serial.print(\" *** \");\r\n    Serial.println(); *\/\r\n\r\n  R = _red;\r\n  G = _green;\r\n  B = _blue;\r\n\r\n} \/\/ getRGBValues\r\n\r\n\r\nvoid rgb2Hsv(byte r, byte g, byte b, int hsv[]) {\r\n  float rd = (float) r \/ 255;\r\n  float gd = (float) g \/ 255;\r\n  float bd = (float) b \/ 255;\r\n  float max = threeway_max(rd, gd, bd), min = threeway_min(rd, gd, bd);\r\n  float h, s, v = max;\r\n\r\n  float d = max - min;\r\n  s = max == 0 ? 0 : d \/ max;\r\n\r\n  if (max == min) {\r\n    h = 0; \/\/ achromatic\r\n  } else {\r\n    if (max == rd) {\r\n      h = (gd - bd) \/ d + (gd &lt; bd ? 6 : 0);\r\n    } else if (max == gd) {\r\n      h = (bd - rd) \/ d + 2;\r\n    } else if (max == bd) {\r\n      h = (rd - gd) \/ d + 4;\r\n    }\r\n    h \/= 6;\r\n  }\r\n\r\n  hsv[0] = int(h * 100);\r\n  hsv[1] = int(s * 100);\r\n  hsv[2] = int(v * 100);\r\n\r\n  Serial.println((String)\"Hue: \" + hsv[0] + \" Saturation: \" + hsv[1] + \" Value: \" + hsv[2]);\r\n}\r\n\r\nfloat threeway_max(float r, float g, float b) {\r\n  float res;\r\n  res = r;\r\n  if (g &gt; res) {\r\n    res = g;\r\n  }\r\n  if (b &gt; res) {\r\n    res = b;\r\n  }\r\n  return res;\r\n}\r\n\r\nfloat threeway_min(float r, float g, float b) {\r\n  float res;\r\n  res = r;\r\n  if (g &lt; res) {\r\n    res = g;\r\n  }\r\n  if (b &lt; res) {\r\n    res = b;\r\n  }\r\n  return res;\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Context: One of the main contributions of technology is mediation: technology mediates the agency of both disabled and fully enabled humans in the world, rebuilding their relation with the environment. Problem: For visually impaired people, many applications \u00a0have been developed that scan and recognise objects in space for visually impaired people. This way, the user &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/?p=1805\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Hearing the Colors&#8221;<\/span><\/a><\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[20],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts\/1805"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1805"}],"version-history":[{"count":5,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts\/1805\/revisions"}],"predecessor-version":[{"id":1857,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=\/wp\/v2\/posts\/1805\/revisions\/1857"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/48-339\/f2020\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}