{"id":658,"date":"2018-11-14T15:15:18","date_gmt":"2018-11-14T20:15:18","guid":{"rendered":"http:\/\/wordpress.cs.vt.edu\/ccs2018f\/?p=658"},"modified":"2018-11-14T15:16:16","modified_gmt":"2018-11-14T20:16:16","slug":"tools-resources-for-creative-computing-arduino-led-strip-lights","status":"publish","type":"post","link":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/2018\/11\/14\/tools-resources-for-creative-computing-arduino-led-strip-lights\/","title":{"rendered":"Tools Resources for Creative Computing: Arduino\/LED Strip Lights"},"content":{"rendered":"<p>Items to get:<br \/>\n&#8211; Arduino Uno<br \/>\n&#8211; LED strip lights (RGB)<br \/>\n&#8211; USB cable to connect Arduino<br \/>\n&#8211; Arduino jumper wires<br \/>\n&#8211; Soldering iron\/solder<\/p>\n<p>It\u2019s relatively affordable if you shop around online for deals, but I won\u2019t do an exact breakdown. You could even opt for knockoffs at your own risk since the technology really isn\u2019t that advanced.<br \/>\nDownload Arduino and plug your device into your computer via USB. Sketch-&gt;Include Library-&gt;Manage Libraries and search for \u201cfastLED\u201d and install it. Source code (just a skeleton project I found online):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-662 size-full\" src=\"http:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-content\/uploads\/sites\/89\/2018\/11\/Messages-Image2080021288.png\" alt=\"\" width=\"852\" height=\"1334\" srcset=\"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-content\/uploads\/sites\/89\/2018\/11\/Messages-Image2080021288.png 852w, https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-content\/uploads\/sites\/89\/2018\/11\/Messages-Image2080021288-192x300.png 192w, https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-content\/uploads\/sites\/89\/2018\/11\/Messages-Image2080021288-768x1202.png 768w, https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-content\/uploads\/sites\/89\/2018\/11\/Messages-Image2080021288-654x1024.png 654w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Note: some changes will need to be made such as &#8220;#define NUM_LEDS 27&#8221; since LEDs per chip may vary across different hardware. &#8220;#define LED_TYPE WS2811&#8221; may also be incorrect, again, depending on the hardware that you purchase. Verify and upload upon completion.<\/p>\n<p>Cut your light strip and be extra careful in cutting it along a connection point.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/goARWDp.png\" \/><br \/>\nI personally keep the power adapter and Arduino on the same side but this isn\u2019t terribly important. If they are on the same side, then you must wire it to the side that says \u201cDI\u201d (i.e. DATA IN). For WS2811 lights, you will have 3 pins on the light strip.<\/p>\n<p>Upon selecting the side where the power adapter will be placed, you must then solder the negative wire from the adapter to \u201cGND\u201d (i.e. ground) and the positive wire to +12V. The negative will be black and the positive will be red or white. On the \u201cDI\u201d side you will then need to solder 2 jumper wires to the DI and GND. Now you can mount your LED strip to your liking but currently there will be no way to control the lights.<\/p>\n<p>Just a quick aside: mounting shouldn\u2019t be difficult, arguably one of the easiest steps in this process but I don\u2019t like committing to a single location for LED strips so I typically use command strips that you can essentially thread your light strip through.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/multimedia.3m.com\/mws\/media\/1084311J\/17006es-commandtm-mini-white-hooks-with-white-strips.jpg\" alt=\"Image result for command stirps\" \/><\/p>\n<p>You can pick this up at Home Depot or even Kroger (where I got mine).<\/p>\n<p>Atmowin (https:\/\/www.dropbox.com\/s\/73ihdd88pss0ppf\/Atmowin.zip?dl=0) is a great start albeit a bit daunting when initially opening the program. Under \u201cDevice\u201d select \u201cAtmoDuino v2\u201d and configure the device by entering in relevant information based on your hardware (e.g. number of LEDs). Go to Effect Active and select \u201cLive.\u201d Under \u201cZones Top,\u201d \u201cZones Left\/Right,\u201d and \u201cZones Bottom\u201d we need to enter the LEDs accordingly. A bit more tweaking and we\u2019ll get start seeing some magic.<\/p>\n<p>Next, click on \u201cChange channel assignments\u201d and rename the mapping to something that isn\u2019t \u201cStandard.\u201d Now you have to figure out the directionality of your LEDs based on how it physically configured. The LEDs are enumerated (e.g. LED[1], LED[2], etc.).<\/p>\n<p>The following settings are customizable but may take a fair amount of time to suit your preferences:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/bKkxCQz.png\" \/><\/p>\n<p>Now you should fix the colors by selecting \u201cConfigure software adjustment.\u201d Under \u201cSoftware Gamma adjustment\u201d you can play around with \u201cGlobal\u201d settings to try to get more accurate colors that match your monitor. The orders for the colors may vary for the LED strips which can also be manipulated as follows by simply shifting the numbers until the colors are correctly rendered:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/TGWVxRh.png\" \/><\/p>\n<p>There may be a delay depending on the capture frame rate and on part due to the fact that the LEDs come in 3s which means they can\u2019t be adjust individually which may appear to \u201cjump around\u201d more sporadically than you\u2019d like. There is a lot I would like to learn, although from some light reading I\u2019ve found music visualization to be ambitious (while I was brainstorming for project ideas at the beginning of the semester).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Items to get: &#8211; Arduino Uno &#8211; LED strip lights (RGB) &#8211; USB cable to connect Arduino &#8211; Arduino jumper wires &#8211; Soldering iron\/solder It\u2019s relatively affordable if you shop around online for deals, but I won\u2019t do an exact breakdown. You could even opt for knockoffs at your own risk since the technology really&#8230;<\/p>\n","protected":false},"author":193,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-658","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/posts\/658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/comments?post=658"}],"version-history":[{"count":2,"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":663,"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/posts\/658\/revisions\/663"}],"wp:attachment":[{"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/media?parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/categories?post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.cs.vt.edu\/ccs2018f\/wp-json\/wp\/v2\/tags?post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}