2018-03-29 15:16:26 -07:00
# Make a Sound Machine
Make a Sound Machine that can play a rhythm, music or just noise!

## Connect
Music is made up of a combination of sounds, notes and rhythm. A rhythm is a regular movement or repeated pattern of movements that can be used in many different ways. In mechanical machines, a rhythm can help keep a machine running smoothly. It can also be used to generate different sounds in music.

Look at the photos and think about:
* What do you see?
* Can you see any new design opportunities?
* What problems can you see?
* How could you make use of the LEGO bricks, the EV3 Programmable Brick, motors, and sensors?
### Things You’ ll Need
2018-04-13 09:05:34 -07:00
* [@boardname@ Core Set ](https://education.lego.com/enus/products/legomindstormseducationev3coreset/5003400 )
2018-03-29 15:16:26 -07:00
Additional materials to add to your Sound Machine:
* Small musical instruments, such as chimes, bells, and small drums
* Arts and crafts materials such as:
>* Cardboard
>* Construction paper
>* Pipe cleaners
>* Plastic or paper cups
>* Recycled materials
>* Rubber bands
>* Wire
### Prior Knowledge
This activity uses motor rotations and sensor inputs. You may want to try the [Use ](/getting-started/use ) or [Object Detection ](/coding/object-detection ) activity before this one. Or, you can start out with this activity and tinker with coding motor and sensor inputs on your own.
## Contemplate
2018-04-18 13:15:53 -07:00
Follow the steps of the _Maker Design Process_ for this lesson:
2018-03-29 15:16:26 -07:00
2018-04-18 13:15:53 -07:00
| | |
|-|-|
|  | **Define the Problem** |
|  | **Brainstorming** |
|  | **Define the Design Criteria** |
|  | **Go Make** |
|  | **Review and Revise Your Solution** |
|  | **Communicate Your Solution** |
2018-03-29 15:16:26 -07:00
### Defining the Problem
1. What problems did you imagine?
2. Pick one problem and explain it to a partner.
### Brainstorm
Now that you have defined a problem, start to generate ideas for solving it.
### ~hint
Some things to do while brainstorming:
* Use the bricks from the LEGO set to help you brainstorm or sketch your ideas on paper.
* The goal of brainstorming is to explore as many solutions as possible. You can use the tinkering examples in the Sample Solutions section below as inspiration for getting started.
* Share your ideas and get some feedback. It may lead to more ideas!
### ~
### Define the Design Criteria
* You should have generated a number of ideas. Now select the best one to make.
* Write out two or three specific design criteria your design must meet.
### Go Make
It is time to start making!
2018-04-13 09:05:34 -07:00
* Use the components from the @boardname @ Core Set and additional materials to make your chosen solution.
2018-03-29 15:16:26 -07:00
* Test and analyze your design as you go and record any improvements that you make.
### Review and Revise Your Solution
* Have you managed to solve the problem that you defined?
* Look back at your design criteria. How well does your solution work?
* How can you improve your design?
### Communicate Your Solution
Now that you have finished you can:
* Make a sketch or take a photo or video of your model.
* Label the three most important parts and explain how they work.
* Share your work with others.
## Continue
### Rhythm Maker - Sample Solution
2017-10-26 22:19:16 -07:00
This example program combined with the small model will make a beat and rhythm on any surface when the program is run.
2018-03-29 15:16:26 -07:00

#### Programming
1. Drag a run ``||motors:large motor A||`` block inside the ``||loops:forever||` ` loop.
2. Press the ** (+)**.
3. Change the rotations to `2` .
4. Drag a ``||loops:pause||` ` block and place it under the motor block.
5. Change the duration to ``200` ` ms.
6. Drag a ``||run large motor A||`` block inside the ``||loops:forever||` ` loop.
7. Press the ** (+)**.
8. Change the power to `100` .
9. Change the rotations to `1` .
2017-10-26 22:19:16 -07:00
```blocks
2018-02-14 16:05:31 -08:00
forever(function () {
2018-03-29 15:16:26 -07:00
motors.largeA.run(50, 2, MoveUnit.Rotations)
2018-02-14 16:05:31 -08:00
pause(200)
2018-03-29 15:16:26 -07:00
motors.largeA.run(100, 1, MoveUnit.Rotations)
2017-10-26 22:19:16 -07:00
})
2018-03-29 15:16:26 -07:00
```
Click **Download** and follow the instructions to get your code onto your EV3 Brick. Press the ``center` ` button on the EV3 Brick to run the program.
### Color Sensor Sounds - Sample Solution
You can also tinker with the use of sensors.

#### Programming
1. Drag an ``||logic:if else||`` Logic block and place it inside the ``||loops:forever||` ` loop.
2. Drag a ``||sensors:pause color sensor||`` block and place it inside the ``||logic:if true then||` ` block.
3. Change the color to ``blue` `.
4. Drag a ``||music:play tone||` ` block and place under the sensor block.
5. Change the tone to ``Middle G` ` (392 Hz).
6. Drag a ``||sensors:pause color sensor||`` block and place it inside the ``||logic:else||` ` block.
7. Change the color to ``red` `.
8. Drag a ``||music:play tone||` ` block and place under the new sensor block.
9. Change the tone to ``High C` ` (523 Hz).
10. Press the ** (+)**.
11. Drag a ``||sensors:pause color sensor||`` block and place it inside the ``||logic:else if||` ` block.
12. Change the color to ``green` `.
13. Drag a ``||music:play tone||` ` block and place under the new sensor block.
14. Change the tone to ``High D` ` (587 Hz).
```blocks
forever(function () {
if (true) {
2018-04-03 05:05:01 -07:00
sensors.color3.pauseUntilColorDetected(ColorSensorColor.Blue)
2018-03-29 15:16:26 -07:00
music.playTone(392, music.beat(BeatFraction.Whole))
} else if (false) {
2018-04-03 05:05:01 -07:00
sensors.color3.pauseUntilColorDetected(ColorSensorColor.Red)
2018-03-29 15:16:26 -07:00
music.playTone(523, music.beat(BeatFraction.Half))
} else {
2018-04-03 05:05:01 -07:00
sensors.color3.pauseUntilColorDetected(ColorSensorColor.Green)
2018-03-29 15:16:26 -07:00
music.playTone(587, music.beat(BeatFraction.Half))
}
})
```
Click **Download** and follow the instructions to get your code onto your EV3 Brick. Press the ``center` ` button on the EV3 Brick to run the program.