A USB volume knob enables you to finely tune your music on your computer. Rather than using the keys on the upper right side of my macbook's keyboard I like to use a physical knob. I decided to make my own :)
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: The Electronics
Emulating a keyboard is relatively simple and easy with the help of a Trinket. The Trinket's USB port is used for uploading the code, but you can also use it for some basic USB 1.1 devices (such as a volume control input). Since I wanted to us a physical turning knob I decided to use a rotary encoder as an input.
I decided to buy the Pro trinket, more pins so an expansion later on would be possible.
The rotary encoders pins are connected as seen in the diagram: common pin on ground, "A" signal encoder's pin on pin #0 and "B" on pin #2. For an extra mute function the encoder's last pin is connected to pin #1. I used pin 3, 4 & 5 on the Pro trinket. As long as you make sure the pins correspond to the pins in your code it is ok to switch to a different set.
The next step would be uploading the code and testing. Adafruit made a great turorial on that:
You download the latest Trinket library, install it in Arduino, copy the code from their website (adjust it if you want extra features) and upload the sketch
Step 2: ENCLOSURE DESIGN
The 5 enclosure parts were designed in Rhino. Consisting of a bottom and top aluminium case (CNC milled), a wooden cover (CNC milled), an acrylic/aluminium knob and the trinket. Everything is kept together with countersunk hex M3 bolts.
The wooden cover should represent the waves of the sound. These were actually modelled in combination with the CAM generated code for the CNC mill. Inspiration was found in parametrically designed waves.
Step 3: CNC'ing the Wooden Cover With RhinoCAM
In this step by step screenshot overview I will explain the process. All toolpaths were directly created in RhinoCAM and exported to a .iso file; the gcode. This code is then interpreted by my CNC milling machine in Mach3
This short RhinoCAM tutorial is focussing on the main steps of the process. To use RhinoCAM you would also need to setup your machine parameters, tool parameters, cutting parameters (depth of cut, entry and exit of the tool, etc.) and a work zero. This depends of course on the machine, cutting tools and stock material you select.
In the PMB the CNC mill works with toolpaths block or parallel strategy tool paths. This can result in some unwanted texture in the material (the finer the distance between tool path and smaller the cutter, the less texture we will see)I made me look for a different way of milling. Would it be possible to mill each wave in one single toolpath? After some research I found out the Plug-in "RhinoCAM" would allow me to make a code to mill everything in one go. There is a very nice tutorial online explaining the process. The author calls process is called 'IsocurveTexture' and there is a tutorial in these links: http://www.christopherwhitelaw.us/?p=866
Step 4: NURBS STEP 1 | 2 | 3
Step 1: The curves for the doubled surface was created together with the overall design. I started with a contour curve and 2 guiding curves for a patch surface.
Step 2: The double curved top surface was created with a patch surface, the side with a extrusion form a contour curve and the bottom from a trimmed planar surface. this creates a closed polysurface.
Step 3: The engraving lines are created with the help of a cage editing. A set of polylines is divided into a fixed amount of control points. The cage (black line) edits multiple points at the same time, resulting a in flowing characteristic (blue lines). I've also experimented with grasshopper to create boundary regions (white lines). Later on I decided to use just the singular isocurves in the milling process instead of the boundary regions.
Step 5: CNC STEPS
Step 1: selecting your curves and geometry to CNC. From the main design I copied the top cover with all necessary curves into a new file to start the milling operations.
Step 2: Since I was using a thicker peace of Tasmanian Blackwood, I had to reduce the overall thickness of the plank first. This was done in a rough cutting operation. The biggest tool I have (10 mm end mill) mills large bits of material in a spiraling manner. I ended with a rough dome shape. The RhinoCAM simulation shows the final milling paths.
Step 3: A 6 mm ballnose creates the double curved dome shape from the rough blank. In a parallel finishing path (climbing cut to create a good surface finish!) the dome shape was milled. Some light sanding before the next step resulted in a smooth double curved surface.
Step 4: The decorative ripple effect was created with the same ballnose mill. They were created with an engraving toolpath, slightly different from the tutorial. Because of the double curved surface, all ripples seem to fade into the surface.
Step 5: The inner ring and outer contour was cut with a 2.5 mm end mill in a profiling operation. The part was lightly sanded again, removed from the inc machine and finished with some oil and wax.
Step 6: RESULT
The oiled and waxed top cover.
Step 7: ALUMINIUM ENCLOSURE
I could have milled the aluminium enclosure on the same machine as the wooden top cover, but I decided to to this on the machine in my university's workshop. Very accurate and fast :)
Step 8: THE KNOB
The knob was turned first in 2 separate part. An acrylic ring first and secondly a aluminium cylinder. Pressed together they formed the knob. I first thought of using a small set screw to mount the knob on the encoder. To not show any imperfections I chose to press fit the knob with a small leaf spring.
Step 9: ASSEMBLY
I decided to add a NEOPIXEL LED ring to improve aesthetics. The code was adapted to adjust the color of each neopixel according to the position of the volume knob.
All of the effort resulted in a functional and aesthetic desk accessory
Runner Up in the
Arduino Contest 2016
Runner Up in the
CNC Contest 2016
Participated in the
Epilog Contest 8
1 Person Made This Project!
fuddlebut made it!