Introduction: A Painting With a Twist

Well, this all started due to a semester-long class project. The goal was to create something or combine projects from others on the web into a project all our own. Then, we were to create an Instructable on what we did. Well, while searching for something to spark my interest, I stumbled onto the Aurora projects and a LED cherry blossom tree painting. Well, seeing as how I love Asian decor and artwork that has Asian influences, I decided to create a piece of art that incorporated the LEDs into a cherry blossom tree, but keeping a more three-dimensional effect. So, this is my journey to getting that little piece of art that I'll be proud to display.

Step 1: Inspiration

I figured I'd take a moment to include what inspired me to do this project in the first place.

First off, there's the Aurora project(s): this was the original one that I looked at and liked the idea.

https://www.instructables.com/id/Aurora-9x18-RGB-LED-art/

Next, there's the cherry blossom led tree:

https://www.instructables.com/id/The-Glowing-Cherry-Blossoms/

I just have one major note about this project. When shopping for items for this project (or for any project for that matter) it's a good idea to know exactly what you plan for it to be. I went through many different ideas during the creation of my project, and even then I'm not really happy with it. There are about a hundred things I'd do differently if I did this over again.

Step 2: The Idea and Shopping List

Okay, well, this Instructable is just going to be about the section of my original plan that involves the cherry blossom tree.

Below, is an original sketch of my master plan, but I figured I'd focus on the one third. It seemed to be the most interesting third and I plan on creating the remaining two over the summer.

For the entire project, I used these materials:

copper clad PCB
acrylic paint
Ferric Chloride
48 pink and 24 red LEDs
12  74HC595 shift registers
Paralax PIR sensor
Arduino UNO
what seemed like a couple hundred feet of wiring
various vegetation for decor
square wooden dowels
vellum paper
shadow box frame for display and hiding wires
molds for making cherry blossom flowers

Step 3: Preparing the Copper PCB, Design, and Burning

There are many sites, especially Instructables, that'll give you many ways to prepare your PCB. But, just to recap the process that I did, here goes. First, you take the copper PCB and scrub it clean and smooth with a scrub pad. Then, once clean and dry, you take the board and draw on, in permanent marker, the design you want, in my case the tree. Once you get the design you want, with a fair amount of ink applied, you should wait and, basically, "bake" the ink onto the board. Once the ink has "baked" you take the ferric chloride and use it to burn away the copper not covered by the ink. You have two options for the ferric chloride. One, you could submerse the PCB if it's small enough or you have a large enough container. Two, you could scrub away the copper by hand with the ferric chloride. Neither way is convenient, but the scrub by hand method is exhausting. I got lucky and was able to submerse my 16x20" PCBs in a large container used by the printmaking students and faculty and just forget about it.

Step 4: Drilling Holes

The next priority in the creation of this project was to drill a couple hundred tiny holes into the PCB. This can take a bit of time and can be a little frustrating. Pretty much, I just scattered them randomly, but I tried to get an even number of holes in a "cluster" just so that I don't have to worry about trying to stretch a wire too far. Once all of the holes are drilled, the next step is to pass the nodes through the holes.

Step 5: Painting and Design

The next logical step would be to paint. What I did, was I painted everything to look relatively realistic (color wise) and I tried very hard not to cover the copper that was left over after the burning. If you have a deadline, I suggest you work this step as soon as possible since it has to be done to move on. I also decided to include a little bit of the tea house that would take up the majority of the second piece of my master plan had I continued with it. To create it, I took a few long lengths of the square wooden dowels and cut them down to size and kind of free formed them into a fairly nice version (once completed). These were attached with hot glue since it has a fair grip and quick and easy to use. Also, for the flowers, what I did was I ordered a flower mold off of eBay and then pressed some Sculpey III clay into it. Then I turned them all out and baked them until they were cured.

Step 6: Beginning Wiring

With the LEDs threaded through, now's as good a time as any to begin soldering. With the wiring diagram I used, it suggested that each anode of the LED be soldered to it's own spot on the shift registers mentioned earlier. Connected to each pin (well, 7 of the 8 available ones) is a 180 ohm resistor. For the negative/ground, pretty much each is connected to the other so that there's only one lead going off from the back of the board. And from here, the only thing you can do is solder. And I suggest you get to it. That's a lot of soldering to do.

So, ultimately, what you want to end up with is this:
For the shift registers: If you want to daisy chain the shift registers together,  you will also have to connect several pins on the shift register together. It's frustrating, but worth it. You want to connect the

Step 7: Programming and Finishing Touches

Once everything has been soldered to the board, it's time to add the last couple of finishing touches. For instance, on mine, I went to Hobby Lobby and got some grass and some moss that I used to decorate around the tree.

In the meantime, you should get some programming going for the Arduino. Here's the code that I'm using right now with mine. It has the effect of randomizing the LEDs and a cool flashing effect. The reason it's random, however, is because I randomly soldered the anodes to the PCB. Here's my code:
int dataPin = 9;        //Define which pins will be used for the Shift Register control
int latchPin = 10;
int clockPin = 11;

int seq1[14] = {1,2,4,8,16,32,64,128,64,32,16,8,4,2};  //The array for storing the 
						// byte #1 value
int seq2[14] = {128,64,32,16,8,4,2,1,2,4,8,16,32,64};  //The array for storing the 
						// byte #2 value

void setup()
{
    Serial.begin(100);
    
    pinMode(dataPin, OUTPUT);       //Configure each IO Pin
    pinMode(latchPin, OUTPUT);
    pinMode(clockPin, OUTPUT);
}

void loop()
{
  if (digitalRead(2))
  {
    for (int x = 0; x < 14; x++)         //Array Index
    {
        digitalWrite(latchPin, LOW);            //Pull latch LOW to start sending data
        shiftOut(dataPin, clockPin, MSBFIRST, seq1[x]);         //Send the data byte 1
        shiftOut(dataPin, clockPin, MSBFIRST, seq2[x]);         //Send the data byte 2
        digitalWrite(latchPin, HIGH);           //Pull latch HIGH to stop sending data
        delay(500);
    }
  }
  
  
}
Now, I must admit, I didn't come up with this particular piece of code, though I did alter it. The original code come from:

http://www.codeproject.com/Articles/144606/Arduino-Platform-Working-with-Shift-Registers

Now is also a good time to add the sensor in and it's relatively simple to incorporate. All you have to do is hook up a couple of wires (the spec sheet for your particular sensor will tell you what each pin is for and where to connect them...or it may have it etched onto the sensor itself) and then just nest your code for the LEDs inside of the code included with the sensor. My particular sensor has the option of triggering between 15 and 30 feet and, depending on if you connect the power wire to the 3.3v or 5v option on the Arduino UNO, it'll have a shorter or longer (respectively) timer until the sensor shuts off. 

Step 8: Wrap Up

Once everything is soldered and decorated, it's time to organize the wires and then put the PCB inside of the shadow box frame. Tape (or connect however you can) your Arduino to the back and simply connect your lead wires to it, upload a sketch, and go! And there you have it!