Light Music
Derived from /www.electroschematics.com
At the heart of this circuit is the UM66 IC, a sound generator. The IC is a CMOS LSI designed for using in door bell, telephone and toy application. When light shines on the LDR, the resistance drops and sends a signal to the T1 transistor. Power flows through the transistor to the UM66 musical integrated circuit, and a note will be amplified by transistor T2 and fed into the 8Ω speaker. T3 turns on a DC motor. The IC is preprogrammed to generate certain frequencies. When powered, the melody generator is reset and melody begins from the first note.
Part List
- Breadboard—Jameco
- Wire—Jameco
- 2 coin cell batteries—Jameco
- Coin Cell Battery Holder—Adafruit
- UM66T—eBay
- 8Ω Speaker—Jameco
- 2 NPN Transistors (T1, T2)—Jameco
- 1 NPN Transistors (T3)—Jameco
- 10K Ω Resistor —Jameco
- 1 LDR—Jameco
- 2 1KΩ Resistors—Jameco
- 470 Ω Resistor—Jameco
- KidWind Wind Turbine Generator—ecodirect
- On/Off Switch—Jameco
- 1/2 Dual Mini Board with 213 Holes Protoboard—RadioShack
Instructions
Derived from /www.electroschematics.com
NPN
- Breadboard the circuit first to test it.
- Connect the power to power and gnd to gnd:
- Add the NPN transistor (T1):
- Connect the base of the T1 to gnd through a 10K resistor:
- Connect the base of the T1 to power through an LDR and the collector of the T1 to power through a 1K resistor:
- Add T2
- Connect the emitter of the T2 to gnd and the collector of the T2 to power through a speaker:
- Connect the base of the T2 to a 470 Ω resistor:
- Add the UM66 chip:
- Connect the other lead of the 470 Ω resistor to the out pin of the UM66 chip:
-
Connect pin 2 (Vcc) of the UM66 to the emitter of the T1 transistor:
- Connect pin 1 (gnd) of the UM66 to GND:
- Add T3:
- Connect pin 3 (the out pin) of the UM66 to the base of T3 through a 1K resistor
- Connect the emitter of the T3 to gnd:
- Connect the collector of the T3 to the IN4004 diode
- Connect the DC motor between the diode:
- Connect the positive terminal if the motor to power:
- Add a power supply:
- Connect the power to power and gnd to gnd:
- Freeform solder or use the protoboard to make your design more permanent
-
Place a NPN 3904 in the board and solder the leads on the back:
- Add the second NPN 3904 transistor:
- Connect the base of the first transistor to one side of the board (this will later be gnd)
- Connect the base of the first transistor to the other side of the board (this will later be pwr):
- Connect the collector of the first transistor to pwr through the 1K resistor:
- Add the UM66 chip:
- Connect the UM66 to gnd:
- Connect the um66 to the collector of the first transistor:
- Connect the base of the second transistor to the UM66:
- Connect the gnd lead of the speaker to the collector of the second transistor and the power lead of the speaker to the side of the board with power:
- Connect the battery pack to the board to test the circuit so far:
- Turn off the power and add the third transistor:
- Connect the emitter of T3 to the gnd side of the board:
- Connect the gnd lead of the motor to the collector of T3. Connect the pwr lead to :
- Connect the diode to the gnd and pwr leads of the motor:
- Connect the UM66 to the base of T3:
- Connect the power lead of the motor to the pwr side of the board:
- After testing the circuit, turn off the battery pack and clip the extra leads:
- Place tape on the soldered side of the board:
-
Place a NPN 3904 in the board and solder the leads on the back:
- Use a digital caliper to measure your components. Write down the dimensions.
- Think about how people hold, open, display and store music boxes. Follow the steps of the design process, then design the housing that reflects your thought process.
- You can start with a hinged box and design the interior:
- Open OpenSCAD and paste the following code in the editor. This program is a derivative of member Aaron Newsome's Buckle Box, Printable In One Piece:
$fn = 100; width = 80; depth = 60; height = 20; wallThickness = 1.5; hingeOuter = 7; hingeInner = 3; hingeInnerSlop = .5; hingeFingerSlop = .4; fingerLength = hingeOuter/1.65; fingerSize = 6.8; topFingerSize = fingerSize; latchWidth = 15; bottom(); top(); bottomLatch(); module bottom() { union() { // main box and cutout difference() { translate([-width - fingerLength, -depth/2, 0]) { cube([width,depth,height]); } translate([(-width - fingerLength) + wallThickness, -depth/2 + wallThickness, wallThickness]) { cube([width - (wallThickness * 2), depth - (wallThickness * 2), height]); } } // new latch difference() { hull() { translate([-(fingerLength*2) - width,-latchWidth,height-2.25]) { rotate([-90,0,0]) { cylinder(r = hingeOuter/2, h = latchWidth*2); } } translate([-width - fingerLength, -latchWidth, height-hingeOuter-2.25]) { cube([.1, latchWidth * 2, hingeOuter]); } translate([-(fingerLength*2) -width, -latchWidth,height-2.25]){ cube([fingerLength,latchWidth * 2,.1]); } translate([-(fingerLength*2) -width, -latchWidth,height-2.25]){ rotate([0,-20,0]) { cube([hingeOuter-wallThickness,latchWidth*2,.01]); } } } translate([-(fingerLength*3) - width, -(latchWidth/2) - hingeFingerSlop,0]) { cube([fingerLength*3, latchWidth + hingeFingerSlop * 2,height*2]); } } // latch rod translate([-(fingerLength*2) -width, -latchWidth/2 - hingeFingerSlop, height-2.25]) { rotate([-90,0,0]) { cylinder(r = hingeInner /2, h = latchWidth + (hingeFingerSlop*2)); } } difference() { hull() { translate([0,-depth/2,height]) { rotate([-90,0,0]) { cylinder(r = hingeOuter/2, h = depth); } } translate([-fingerLength - .1, -depth/2,height - hingeOuter]){ cube([.1,depth,hingeOuter]); } translate([-fingerLength, -depth/2,height-.1]){ cube([fingerLength,depth,.1]); } translate([0, -depth/2,height]){ rotate([0,45,0]) { cube([hingeOuter/2,depth,.01]); } } } // finger cutouts for (i = [-depth/2 + fingerSize:fingerSize*2:depth/2]) { translate([-fingerLength,i - (fingerSize/2) - (hingeFingerSlop/2),0]) { cube([fingerLength*2,fingerSize + hingeFingerSlop,height*2]); } } } // center rod translate([0, -depth/2, height]) { rotate([-90,0,0]) { cylinder(r = hingeInner /2, h = depth); } } } } module top() { union() { difference() { translate([fingerLength, -depth/2, 0]) { cube([width,depth,height - .5]); } translate([fingerLength+1.5, -depth/2+1.5, 0]) { cube([width-3,depth-3,height]); } translate([fingerLength + wallThickness, -depth/2 + wallThickness, wallThickness]) { cube([width - (wallThickness * 2), depth - (wallThickness * 2), height]); } } // new latch difference() { hull() { translate([(fingerLength*2) + width,-latchWidth,height/2]) { rotate([-90,0,0]) { cylinder(r = hingeOuter/2, h = latchWidth*2); } } translate([width + fingerLength, -latchWidth, 0]) { cube([.1, latchWidth * 2, hingeOuter]); } translate([fingerLength + width, -latchWidth,height/2]){ cube([fingerLength,latchWidth * 2,.1]); } translate([fingerLength + width, -latchWidth,(height/2) + (hingeOuter/1.5)]){ rotate([0,45,0]) { cube([hingeOuter,latchWidth*2,.01]); } } } translate([fingerLength + width, -(latchWidth/2) - hingeFingerSlop,0]) { cube([fingerLength*2, latchWidth + (hingeFingerSlop * 2),height*2]); } } // latch rod translate([(fingerLength*2) + width, -latchWidth/2 - hingeFingerSlop, height/2]) { rotate([-90,0,0]) { cylinder(r = hingeInner /2, h = latchWidth + (hingeFingerSlop*2)); } } difference() { hull() { translate([0,-depth/2,height]) { rotate([-90,0,0]) { cylinder(r = hingeOuter/2, h = depth); } } translate([fingerLength, -depth/2,height - hingeOuter - .5]){ cube([.1,depth,hingeOuter - .5]); } translate([-fingerLength/2, -depth/2,height-.1]){ cube([fingerLength,depth,.1]); } translate([0, -depth/2,height]){ rotate([0,45,0]) { cube([hingeOuter/2,depth,.01]); } } } // finger cutouts for (i = [-depth/2:fingerSize*2:depth/2 + fingerSize]) { translate([-fingerLength,i - (fingerSize/2) - (hingeFingerSlop/2),0]) { cube([fingerLength*2,fingerSize + hingeFingerSlop,height*2]); } if (depth/2 - i < (fingerSize * 1.5)) { translate([-fingerLength,i - (fingerSize/2) - (hingeFingerSlop/2),0]) { cube([fingerLength*2,depth,height*2]); } } } // center cutout translate([0, -depth/2, height]) { rotate([-90,0,0]) { cylinder(r = hingeInner /2 + hingeInnerSlop, h = depth); } } } } } module bottomLatch() { difference() { union() { hull() { translate([-(fingerLength *2) - width,-latchWidth/2,height-2.25]) { rotate([-90,0,0]) { cylinder( r = hingeOuter /2, h = latchWidth); } } translate([-fingerLength*2 - width,-latchWidth/2,height-hingeOuter-2.25]) { rotate([0,20,0]) { cube([.1,latchWidth,hingeOuter]); } } } translate([-fingerLength*2 - width -2.6 + hingeOuter/2 - wallThickness,-latchWidth/2,0]) { cube([2.5,latchWidth,height-4.5]); } // latch foot translate([-fingerLength*3 - width - 2.6,-latchWidth/2,0]) { cube([hingeOuter/2 + fingerLength,latchWidth,wallThickness]); } // latch cylinder catch translate([-fingerLength*3 - width + 1 - 2.6,-latchWidth/2,wallThickness]) { rotate([-90,0,0]) { cylinder(r = 1, h = latchWidth); } } } translate([-(fingerLength *2) - width,-latchWidth/2 - .1,height-2.25]) { rotate([-90,0,0]) { cylinder( r = hingeInner /2 + hingeInnerSlop, h = latchWidth + .2); } } } }
- Press F6 and then select Design>Export stl
- Open the file in Makerware. Use an infill of 8%, with 2 shells and .25 layer height.
- Print the hinged box.
- Download the cover of the box from
- Use 123D Catch to create the thing that spins on the motor. Use NetFabb to clean the mesh up.
- Design the interior of the box.
- Open OpenSCAD and paste the following code in the editor. This program is a derivative of member Aaron Newsome's Buckle Box, Printable In One Piece:
Basic steps of the Design Process
The Design Process requires- Describe the general situation or problem you are trying to solve. Instead of asking what do you want to design? ask why do you want to design that? and what problem and or need will your design ultimately be solving?
- Identify your target audience, the group that will benefit from your project. Is the target population an individual, a group, a specific community, or a larger, identifiable population? Is the target population from a specific location (country, region, town), demographic (age or gender), or other identifying characteristics (health condition or employment)? Think about how is your target population connected?
-
Identify the requirements and constraints. A requirement is a need or a necessity; it's what a particular product or service should do. A constraint is a restriction on the degree of freedom you have in providing a solution to a need or problem.
- Ask what would make this fun to play with?
- Ask what compromises need to be made when you design?
- Determine if the compromises are absolutely necessary?
- Determine if your solution can be improved?
- By taking a new approach.
- By making the design more accurate.
- By making the design more safe.
- By making the design more convenient.
- By making the design easier to maintain.
- By making the design cheaper to produce.
- By making the design more attractive.
- Determine if you can reduce the costs by eliminating parts, using different materials, changing the way the product is manufactured?
In a nutshell
- Design Step 1: Identify the Need
- Design Step 2: Research the Problem
- Design Step 3: Brainstorm Possible Solutions
- Design Step 4: Engineering Analysis-select the most promising solution
- Design Step 5: Construct a Prototype
- Design Step 6: Evaluate/Manufacture a Final Product-Reiterate
Getting Started
Keep a notebook to keep track of your questions and answers. The design process will help inform your choices and should be an integral part of your creative process.-
Research existing solutions. What aspects of the design appeal to you, why?
- Research how people hold things, and how they play instruments. Make sure you know more about this problem than what is provided here on this web page.
- What are your constraints? Make a list.
- Observe how people make music, when, where, and with whom?
- Make sketches. Draw a top view, a side view, an isometric view and include dimensions. Your drawings are your blueprints. Someone else should be able to use your drawings to build an identical model.