I am a Makr, I sit at night in front of the tv with my family with a moleskin, or another one of my project notepads and sketch ideas. Many of my conversations are of the "wouldn't it be cool if _______" variety. Many of my ideas never leave my project pages. This one did. I think it is awesome. It is an enclosed Zen Garden built into an end Table. The movement was inspired from a cnc or a 3d printer. Actually started to use ramps 1.4 (a 3d printer arduino shield) until I thought of a much easier way to build it.
I wanted the end product to represent peacefulness, I wanted to bring some zen to my living-room. I think that I did.
Many of the things I build are not pretty, just the way it is. In the process of building this I never explained what exactly I was building to my wife. Just that it would be furniture that would be good-looking enough to want it in our house. To put this into context you should know that I share everything with my wife. She is my best friend. But on this project I simply promised her that the end result would be something that she would be proud to have in her living room. She knew it was an end table, but that was it. So I worked extra hard to make this end table look really nice, For her.
I have built 3d printers, I have also built some simple furniture (bookshelf, bench, etc), but I have never built anything that combines technology into furniture. So I really thought this would be a fun project.
I had the initial idea for this table about six months ago. The Tables and Desks contest (and all those beautiful black and yellow tools as prizes) inspired me to start this project.
I wanted to build an end table, something that would sit by itself or next to a couch, maybe have a lamp on it. I wanted it to be more "art" than anything, an infusion of technology into wood. I always see the rock gardens with the wooden rake, I always thought they were very peaceful. That is really what i was going for in this build, peaceful tech-infused art.
In order to accomplish this I thought about using a gantry similar to a 3d printer without the z - axis. In this way I could drive a ball bearing using magnets through some sort of medium, probably sand. I also thought about programing it to "print" pictures, or designs by itself.
I think im going to use arduino with 2 stepper motor drivers and some rather simple code. Rather than programming a set space into the code, I simply installed a endstop on the min and max for both axis, so 0,0 triggers motor stop, as well as XXX,XXX max triggers motor stop. This will make programming much easier.
Ok So this is a list of the parts that I Used. This does not mean that you have to use the same parts, I just want to give you a general idea of the the parts that I used to make this.
I started with some rough drawings and built the gantry. This is possibly not the most efficient way to build this, this is just the way i didi it keeping in mind that I was trying to use parts leftover from other builds and such. I has some 20/20 aluminum extrusion left over from another build so I used that for the frame for my gantry. I designed and 3d Printed the corner brackets and have included the files for those here.
I also Included the Laser-cut parts for the x and y axis. Study the pictures carefully to see exactly how I assembled the carriage and the separate axises. The way that I have assembled the carriage is maybe not the best way as there are many different ways to build a gantry, but i have used this method with several other builds and it seems to work fine with good reliability.
The first thing I did was to assemble the circuit on a prototyping breadboard and then when I was sure that everything worked the way I wanted it then I transferred it to the solder board. I have included the fritzing diagram above to help with assembly
The code we made for this is really simple. I put end-stops on both the min and max for both the x and y axis so there is nothing in the code that determines the size of the gantry. Because the size is not set up in the code it does not matter if your design is smaller or bigger than mine. Nothing will have to be adjusted in the code. The code is here in .TXT format and .INO so you can download it.
After Installing the code, I tested it thoroughly. I wanted the diagonal movement to go horizontal and then vertical and then horizontal, similar to an etch a sketch. It seems to work well. So now I am going to solder all the connections to the arduino to make it permanent and see about getting it installed into the table.
So I set about trying to decide how I was going to build what I had in my head. What I was thinking was a sort of two level box with the mechanics hidden from view in the bottom part of it. It would be controlled by a joystick hidden under a ledge. Beyond that I really had no idea how i was going to do it.
After searching the wood pile I found a 4x4 that i had salvaged from another project, and I found some select pine that was altogether rather nice. So after promising the boss that I would replace what I was about to take I took the lumber to the shop and started building.
After measuring and cutting the 1/4in plywood I wanted to try a new way of holding it together while glue sat. I hot-glued cardboard to the corners. This method seemed to work well as it held the box together long enough to get other measures into place to hold it together. After building the division for the top and bottom and assuring that it was level, I fastened a piano hinge so that the bottom of the table that will hold the gantry can drop out to be maintained.
For the table legs I wanted to reuse a pine 4x4 I pulled out of a playhouse that used to be in my kids toy room. To start I made sure that the 4x4 was free of screws and nails / staples . I measured and cut the 4x4 into 4 25in sections. Then I proceeded to Run the 4 legs through the plainer many times to remove the paint and clean it up.
After a few trips through the plainer I used a straightedge and clamps to make a makeshift jig so I could use a skill saw like a table saw. It worked well and left me with 4 cleaned and smooth L - Shaped legs that worked nicely for my purposes.
After the legs were attached I set about with the sides. Plenty of careful measuring ensued. You want to be as close as you can so that there are as little gaps as possible. I glued the pieces into place and ran a few screws into them from the bottom side of the bi-level box.
When building anything of form I recommend gratuitous sanding, starting with a meatier (like 80-120grit) sandpaper and working toward a finer (< 200 grit) sandpaper. The time you spend sanding out any imperfection will be rewarded when the project is completed.
Once I knew where the top would sit I fashioned a piece of 1/8in MDF to sit in-between the top and the base. I marked where the piece would sit and then flipped it upside down and fastened the LED light strip to the underside with zip ties and hot glue. From my experience it is foolhardy to wholly rely on hot glue on its own when fastening anything that could create heat on it own (ie, a light strip). I drilled a hole and ran the power wire for the lights to the underside of the bi-level box. I was going to run the lights from the same 12 as the stepper motors, but I was having issues where the lights were making the motors hum, so I gave the lights its own 12 power supply.
I do not have a lot of experience cutting miters, I am not a born carpenter. But after much trial and error I was able to fashion a good looking top. I used the kreg jig mentioned in the parts step to fasten the four sides of the top together and this worked remarkably well.
When you are measuring the pieces for the top, make sure you measure right. It is better to be too big and cut again or sand than to have it too small. After you cut the pieces for the top and make sure that they are going to fit together the way you want them too, router the individual pieces so that the glass will fit in there flush. Make sure of the depth of the router so that it matches your glass. In my case the the glass was 1/4in.
Once the Top was glued and screwed together I screwed it to the base using the kreg jig on the backs of the legs where it would not be noticeable.
I called a local car window repair shop and ordered 1/4in plate glass 1/16th in smaller than the opening. I also asked them to sand the edges so that It will not cut hands. I will not be using acrylic to fasten the glass down, simply because I would like to be able to remove the glass so that I can rearrange the rocks.
Because pine is such a porous wood I did not want it to look blotchy, so I used a wood pre-stain conditioner to even out the stain. Then I applied the Minnwax natural cherry polystain to it and let it dry. The next day I came back and lightly sanded the table with 320 grit sandpaper and then applied another coat of the polystain. If I had to do this again i would stain and poly it separate, it was a nightmare to get the stain and poly coating to not leave drip marks and such. Also if you want it darker you can not stain it again to get it darker. I ended up sanding it and re-coating it several times until I was happy with the results. I do not think I will be using the poly-stain again.
I built the trap door in the bottom so that the entire gantry can be mounted to the trap door and can drop down to be worked on and maintained or upgraded. I mounted the gantry to the trap door using plastic conduit 2 hole straps. I installed the straps around the 2020 extrusion. This seems to work well.
I tried several different routes as far as where to mount the arduino and the breadboard. I ended up cutting a hole in the bottom of the trap door about the center, ran all of the cables through that and mounted the electronics under the table.
When I mounted the joystick, I pondered for a long time how I was going to mount it. Honestly I could not think of anything clever, so I just glued it under the lip of the table. I pushed the cable for the joystick as far into the corner as I could and hot glued that as well. It is not the most regal solution, but you cant really see it unless you are crawling next to it, so I am happy with it.
On the underside I Mounted the boards with small screws and tried to tidy everything up as well as possible. I also moved the power plugs to the back side of the rear leg and glued it into place.
I was not sure how to attach the magnet to the bolt that I wanted to use. I thought the bolt would work good because I could easily adjust the "Z axis". What I ended up doing is cutting a small length (1 - 1 1/2in) of 3/4in dowel and drilling a hole that the bolt would fit into. Then I screwed the magnet into the top of it. now I can adjust it up and down by loosening the nut on the bottom.
Once the electronics were installed I set about creating the rock garden. I was not sure how much sand it would take, so I bought a 25lb box of sand. In hindsight I think I could have gotten away with 5 to 10 pounds. Most of the sand is still in the box. After spreading the sand, I ran the ball around a little. I wanted to check to make sure you could not see the bottom of the box when the ball rolled around. I added sand and kept testing until I found the depth of sand that I was happy with.
Then I added the 2 bags of smooth river rocks around the edges. I tried to spread them evenly. I thought about maybe gluing the river rocks down, but I thought it would be better to be able to rearrange them in the future if I wanted to.
Alas, the table, she moves. Once I got the table moving I just stood there and drove the ball around, for way too long, lol. There is something extremely gratifying about watching that metal ball push the sand around. It was a long journey to get to this point and it is so awesome to see this table moving the way I envisioned.
This was a Long Hard Project. It was a lot of fun though. I would not have been able to finish it as fast or as well without the help of my good friends.
Ernie Garner(Dad and Master Wizard of all Automation)
Layne Garner (My Inspiration, Motivation, Boss, and Wife)
David (Badge) Badgley (Friend and Master Carpenter)
Kristina Badgley (Master of Opinions)
Anthony Badgley (Giant Munchkin)
For all your Help