class: center, middle # BlinkyTile Beta Test Workshop ## October 25, 2014 · Baltimore Node ## Marty McGuire · Amy Hurst --- class: center, middle # Welcome! ??? 1. Welcome to the Node 2. What is the Node? 3. Who are you? * Who has experience in electronics? * Programming? * Who has soldered before? --- # Meet the BlinkyTile .center[
] --- # Meet the BlinkyTile .center[![BlinkyTile PCB](blinkytile-pack.jpg)] ??? BlinkyTile is a pentagonal circuitboard with a programmable RGB LED Tiles are soldered together by 5 connections along their edges A controller board tells each tile what color to be Each tile has an ID that is its address **Note:** This is BETA hardware * We need your feedback and any ideas you're willing to share * The controller is not the final version --- # What is This Stuff? ## Meet the BlinkyTile .center[![BlinkyTile PCB](blinkytile-pack-annotated.jpg)] --- # What Can We Make? ![BlinkyTile Picture Frame and Dodecahedron Lamp](blinkytile-frame-lamp.jpg) .left[Picture Frame (10 tiles)] .right[Dodecahedron Lamp (12 tiles)] --- # What Can We Make? ![BlinkyTile Abstract Sculptuer](blinkytile-sculpture.jpg) Abstract Sculpture (up to 14 tiles) --- # Agenda * ## Prep and Solder Tiles Together -- * ## Attach Controller Board -- * ## Program Controller Board -- * ## Make our First Animation -- * ## Questions and Next Steps --- # Tile Prep 1. ## Cut or snap each tile from the circuit board 2. ## Use snips to remove leftover bits along edges 3. ## Use file or sandpaper to smooth down any stubborn bits --- # Soldering .center.middle[
] --- # Soldering 1. ## Use soldering iron to “weld” two tiles together along the edge. 2. ## **Pro-Tip:** Start with only one connection on each edge so you can make adjustments. 3. ## [Demo!] --- # Attach Controllers 1. ## Cut and strip 3 wires (red, black, and yellow) to go between your controller and sculpture. 2. ## Solder wires to controller. * ### Black for GND * ### Red for 5V * ### Yellow for SIG 3. ## Choose a tile edge and solder the other side of each wire. * ### Black for GND * ### Red for 5V * ### Yellow for SIG --- # Power it Up! 1. ## Wrap your USB cable around a sturdy part of the sculpture for strain relief. * ## **NEVER HANG YOUR SCULPTURE BY THE SOLDERED WIRES** 2. ## Plug in your USB cable into your laptop. 3. ## Watch it light up! -- # Troubleshooting * ## Not lighting up at all? * ### Quickly unplug in case of a short! * ### Check connections between controller and tile. * ## Some tiles not lighting up? * ### Check connections between tiles. --- # Programming — download all the things 1. ## Arduino — Download it at [arduino.cc](http://arduino.cc) 2. ## Blinkinlabs 32u4 Board definitions — Download it [from GitHub](https://github.com/Blinkinlabs/Blinkinlabs32u4_boards) * ### https://github.com/Blinkinlabs/Blinkinlabs32u4_boards * ### Choose **"Download ZIP"** link 3. ## Example Code — Download it [from GitHub](https://github.com/martymcguire/BlinkyTile_Arduino_Example) * ### https://github.com/martymcguire/BlinkyTile_Arduino_Example --- # Programming — Program the Controller 1. ## Plug in your controller to your computer via USB. 1. ## In the `Tools | Board` menu, choose `"BlinkyTape"` 1. ## Choose the right entry from the `Tools | Serial Port` menu * ### This varies by OS X vs. Windows vs. Linux -- # Upload the Program (Tricky) 1. ## Unplug the USB from your computer 2. ## Click the `"Upload"` button (➡) 3. ## As soon as you see `"Binary sketch size: x,xxx bytes (of a xx,xxx byte maximum)"`, plug the USB back in! 4. ## If successful, you will see a "`Finished Uploading`" message. 5. ## This may take several tries. --- # Your First Program Edit the code in `color_loop()` ``` void color_loop() { static uint8_t i = 0; static int j = 0; static int f = 0; static int k = 0; static int pixelIndex; for (uint16_t i = 0; i < maxPixel*10; i+=10) { writePixel(i/10+1, 128*(1+sin(i/30.0 + j/1.3)), // Red 128*(1+sin(i/10.0 + f/2.9)), // Green 128*(1+sin(i/25.0 + k/5.6)) // Blue ); } j = j + 1; f = f + 1; k = k + 2; } ``` --- class: center, middle # Thank You!! ## Troubleshooting, Advanced Topics, Program Ideas, Other Questions…