diff --git a/docs/projects/guitar.md b/docs/projects/guitar.md index 7830d925..3a1dcbc1 100644 --- a/docs/projects/guitar.md +++ b/docs/projects/guitar.md @@ -6,7 +6,7 @@ ### ~avatar avatar -Make a micro:bit guitar with this guided tutorial! +Make a micro:bit guitar with this guided tutorial! ### ~ *playing micro:bit guitar* @@ -14,15 +14,15 @@ https://youtu.be/GYmdTFvxz80 ## Duration -5 Activities, approx 30-45 min each based on familiarity with the coding concepts +5 Activities, approx 30-45 min each based on familiarity with the coding concepts ## Materials * Cardboard large pieces (recycle!) -* Tape (masking, duct Tape, and/or packing tape) +* Tape (masking, duct tape, and/or packing tape) * Markers and/or paint * Aluminum Foil -* Scissors that can cut cardboard +* Scissors that can cut cardboard * 1 micro:bit, battery holder and 2 AAA batteries * 4-5 Crocodile clips * Headphones @@ -36,5 +36,7 @@ https://youtu.be/GYmdTFvxz80 * [Pin Press Switch](/projects/guitar/pinpress) ### ~button /projects/guitar/making + Let's get started! + ### ~ diff --git a/docs/projects/guitar/displaybuttons.md b/docs/projects/guitar/displaybuttons.md index b88da6a3..1cf4d344 100644 --- a/docs/projects/guitar/displaybuttons.md +++ b/docs/projects/guitar/displaybuttons.md @@ -2,7 +2,7 @@ ### @description micro:bit guitar: using buttons with display and sound ### ~avatar avatar -Use Button Events to control LED Display and play Sound +Use Button Events to control LED Display and play Sound * **Concepts:** * Events * Tone/Note @@ -42,8 +42,8 @@ music.rest(music.beat(BeatFraction.Whole)) music.beat(BeatFraction.Quarter) ``` -## Step 1: Make a Smiley -Open [codethemicrobit.com](https://codethemicrobit.com) in your web browser +## Step 1: Make a Smiley +Open [codethemicrobit.com](https://codethemicrobit.com) in your web browser ```blocks basic.showLeds(` . # . # . @@ -53,14 +53,14 @@ Open [codethemicrobit.com](https://codethemicrobit.com) in your web browser . # # # . `); ``` -From **Basics**, drag a **show LEDs** block into the coding area - * Create a face with LEDs +From **Basics**, drag a **show LEDs** block into the coding area + * Create a face with LEDs -![micro:bit USB connection](/static/mb/projects/guitar/connectmicrobit.jpg) -Connect your micro:bit to your computer via USB and click **`Download`**. -Follow the instructions to move the code to your micro:bit. +![micro:bit USB connection](/static/mb/projects/guitar/connectmicrobit.jpg) +Connect your micro:bit to your computer via USB and click **`Download`**. +Follow the instructions to move the code to your micro:bit. -## Step 2: Add Smiley LED Button Events +## Step 2: Add Smiley LED Button Events ```blocks input.onButtonPressed(Button.A, () => { basic.showLeds(` @@ -82,36 +82,36 @@ input.onButtonPressed(Button.B, () => { }) ``` -From **Input**, drag an **on button 'A' pressed** block into the coding area +From **Input**, drag an **on button 'A' pressed** block into the coding area -* Snap the LED face into the block +* Snap the LED face into the block -* Create a 'B' button block with a different LED face +* Create a 'B' button block with a different LED face -* Download the code to your micro:bit and try the A & B buttons +* Download the code to your micro:bit and try the A & B buttons ## Step 3: Add Headphone Speakers using Crocodile clips -![crocodile clips attached to pins 0 and GND](/static/mb/projects/guitar/crocclipintoboard.jpg) +![crocodile clips attached to pins 0 and GND](/static/mb/projects/guitar/crocclipintoboard.jpg) -![crocodile clips attached to headphone jack](/static/mb/projects/guitar/jacktocrocs.jpg) -Connect **GND** to the **base of the headphone jack** using a second crocodile clip (usually black) +![crocodile clips attached to headphone jack](/static/mb/projects/guitar/jacktocrocs.jpg) +Connect **GND** to the **base of the headphone jack** using a second crocodile clip (usually black) -Connect **pin 0** to the **tip of the headphone jack** with a crocodile clip +Connect **pin 0** to the **tip of the headphone jack** with a crocodile clip -*attaching batteries and micro:bit* -https://youtu.be/zwRTmpKIaVU -Attach the micro:bit & battery-pack to the guitar body +*attaching batteries and micro:bit* +https://youtu.be/zwRTmpKIaVU +Attach the micro:bit & battery-pack to the guitar body + +*connecting headphone speaker* +https://youtu.be/ewyEW_U5G9M +Connect the headphones with crocodile clips -*connecting headphone speaker* -https://youtu.be/ewyEW_U5G9M -Connect the headphones with crocodile clips - ### ~hint ## The micro:bit can play music -The **play tone** block allows a range letter note tones from **C** to **B5**. +The **play tone** block allows a range letter note tones from **C** to **B5**. Songs are played using sequences notes. Like the beginning of a birthday song (C, C, D, C, F, E). ```blocks input.onButtonPressed(Button.A, () => { @@ -152,20 +152,20 @@ input.onButtonPressed(Button.B, () => { `) music.playTone(Note.G, music.beat(BeatFraction.Whole)) }) -``` -From **Music**, drag **play tone *C* for *1* beat** block under the **show leds** in **Button A Pressed** +``` +From **Music**, drag **play tone *C* for *1* beat** block under the **show leds** in **Button A Pressed** - * modify **tone** by choosing a note (*letter*) and experiment with high and low pitches - * set **beat** to 1 - -**Repeat** for **Button B** event - -**Download the code** to the micro:bit + * modify **tone** by choosing a note (*letter*) and experiment with high and low pitches + * set **beat** to 1 + +**Repeat** for **Button B** event + +**Download the code** to the micro:bit **Try the A & B buttons** with headphones and power connected - -## Congratulations on completing the basic guitar! -**Challenge:** Create Samples of longer music to play for each button instead of the single tone + +## Congratulations on completing the basic guitar! +**Challenge:** Create samples of longer music to play for each button instead of the single tone * *Tip*: Search for "ABC music notation" or "Easy Music Notes" + the name of a song ## Extra diff --git a/docs/projects/guitar/lightsensor.md b/docs/projects/guitar/lightsensor.md index bfd7af7d..18572da6 100644 --- a/docs/projects/guitar/lightsensor.md +++ b/docs/projects/guitar/lightsensor.md @@ -4,7 +4,7 @@ ### ~avatar avatar -Use the Light Sensor to the control tone for this [Theremin](https://en.wikipedia.org/wiki/Theremin) inspired guitar +Use the Light Sensor to the control tone for this [Theremin](https://en.wikipedia.org/wiki/Theremin) inspired guitar * **Concepts:** * Inputs @@ -12,19 +12,19 @@ Use the Light Sensor to the control tone for this [Theremin](https://en.wikiped * Tone/Frequency * Ratio Mapping * Forever Loop - * Math (multiplication) with code properties -### ~ + * Math (multiplication) with code properties +### ~ -## Duration: 30 - 45 minutes - -*playing tones with light sensor* +## Duration: 30 - 45 minutes + +*playing tones with light sensor* https://youtu.be/2cKg9pokVC4 -## The micro:bit LEDs Light Sensors +## The micro:bit LEDs Light Sensors -- the micro:bit can detect external light level intensity reaching the LEDs +- the micro:bit can detect external light level intensity reaching the LEDs - the light level block reports a reading of values 0 (*dark*) to 255 (*bright*) -- a **Forever Loop** is required to continually use measure the current light level to control the tone +- a **Forever Loop** is required to continually measure the current light level and control the tone ## Forever Loop @@ -46,70 +46,70 @@ basic.forever(() => { }) ``` **Build the blocks** - * From **Basic** drag a **forever loop** block into the coding area - * From **Led** drag a **plot bar graph** block into the **forever loop** - * From **Input** drag a **light level** block into **plot bar graph *of*** - -**Set the *plot bar graph* value *up to* = *255* ** + * From **Basic** drag a **forever loop** block into the coding area + * From **Led** drag a **plot bar graph** block into the **forever loop** + * From **Input** drag a **light level** block into **plot bar graph *of*** -## Step 2: Test the light required to move the bar graph height +**Set the *plot bar graph* value *up to* = *255* ** -*graphing light input* -https://youtu.be/pqU7bTcfQ_s -Experiment to see the effect on graph height when the **plot bar graph** value ***up to*** is changed +## Step 2: Test the light required to move the bar graph height -**255 is the maximum light input reading**, try numbers smaller than 255 -**Find a value** that allows the graph to show 1 - 5 bars +*graphing light input* +https://youtu.be/pqU7bTcfQ_s +Experiment to see the effect on graph height when the **plot bar graph** value ***up to*** is changed + +**255 is the maximum light input reading**, try numbers smaller than 255 +**Find a value** that allows the graph to show 1 - 5 bars ### ~hint -### Frequency -**Frequency** measured in Hz which are cycles per second or vibrations per second - * A healthy human ear can detect frequencies in the range of 20Hz to 20,000Hz. - * The micro:bit + headphones reliably produce detectable output ~50Hz - 6,000Hz. +### Frequency +**Frequency** measured in Hz which are cycles per second or vibrations per second + * A healthy human ear can detect frequencies in the range of 20Hz to 20,000Hz. + * The micro:bit + headphones reliably produce detectable output ~50Hz - 6,000Hz. **261Hz** represents a C note ```blocks music.playTone(261, music.beat(BeatFraction.Half)) ``` -**play tone** blocks can specify a specific numeric **Frequency** -by replacing the letter note 261Hz represents a **C** note with a **number** block +**play tone** blocks can specify a numeric **Frequency** +by replacing the letter **C** note with a **number** block that has the value it represents ```blocks music.playTone(261, music.beat(BeatFraction.Half)) ``` -### ~ +### ~ ## Step 3: Multiply Frequency using Math blocks ```blocks input.onButtonPressed(Button.A, () => { music.playTone(261 * 2, music.beat(BeatFraction.Half)) }) -``` -create a **play tone** block using a **Math** section, **multiplication** block to set *tone* +``` +Create a **play tone** block using a **Math** section, **multiplication** block to set *tone* -### Next -**Add** a **B** button block that multiplies the **261** tone by a number other than 2 to set tone - -**Download the code to the micro:bit** +### Next +**Add** a **B** button block that multiplies the **261** tone by a number other than 2 to set tone + +**Download the code to the micro:bit** + +**Test the sound for multiples of the 261Hz *C* frequency** -**Test the sound for multiples of the 261Hz *C* frequency** - ## Step 4: Control the Frequency with the light input ```blocks basic.forever(() => { music.playTone(input.lightLevel() * 25, music.beat(BeatFraction.Quarter)) }) ``` -**Create a *forever loop* containing a *play tone* block** - -**Set *tone*, using *Math* multiplication block that multiplies *light level* input by 25** -or experiment with multipliers larger and smaller than 25 - -**Test light tone control on the guitar** -Cover the LEDs with your hand to vary light detected to control the tone +**Create a *forever loop* containing a *play tone* block** + +**Set *tone*, using *Math* multiplication block that multiplies *light level* input by 25** +or experiment with multipliers larger and smaller than 25 + +**Test light tone control on the guitar** +Cover the LEDs with your hand to vary light detected to control the tone ## Good work, this guitar is sounding good! -**Challenge:** Create a variable for the light level multiplier that you can change using buttons (optional) +**Challenge:** Create a variable for the light level multiplier that you can change using buttons (optional) -### ~button /projects/guitar/accelerometer -NEXT: Accelerometer Beat control +### ~button /projects/guitar/accelerometer +NEXT: Accelerometer Beat control ### ~ diff --git a/docs/projects/guitar/making.md b/docs/projects/guitar/making.md index 0f67e9ea..caef815b 100644 --- a/docs/projects/guitar/making.md +++ b/docs/projects/guitar/making.md @@ -1,5 +1,5 @@ # Making the Guitar Body -### @description Maker Project for Guitar Body for micro:bit +### @description Maker Project for Guitar Body for micro:bit ### ~avatar avatar @@ -11,9 +11,9 @@ Make the Guitar Body for your micro:bit Guitar ## Materials * Cardboard large pieces (recycle!) - * Tape (masking, duct Tape, and/or packing tape) - * Scissors that can cut cardboard - * Markers and/or paint + * Tape (masking, duct tape, and/or packing tape) + * Scissors that can cut cardboard + * Markers and/or paint ![Materials: cardboard, tape, scissors, markers](/static/mb/projects/guitar/materials.jpg) @@ -28,7 +28,7 @@ the shape of your guitar ### ~hint * Avoid small details that are difficult to cut into cardboard - * Unfolding a box gives longer pieces of cardboard, and creases can be reinforced + * Unfolding a box gives longer pieces of cardboard and creases can be reinforced ### ~ @@ -39,21 +39,21 @@ https://youtu.be/aUQkrFoEank ## Step 3: Personalize the Guitar -Create unique styling using tape, markers, paint and other available materials (*calling all artist!*) +Create unique styles using tape, markers, paint and other available materials (*calling all artists!*) *decorating the guitar* https://youtu.be/zNAZTJeSxY8 -Everyone can come up with a unique design! +Everyone can come up with a unique design! ![guitar design samples](/static/mb/projects/guitar/otherdesigns.jpg) ## Extra! -*strengthening the guitar* +*strengthening the guitar* https://youtu.be/q0GkQdJmxjE -Strengthen the guitar next with an angled cardboard strip (*optional*). - +Strengthen the guitar next with an angled cardboard strip (*optional*). + ### ~button /projects/guitar/displaybuttons NEXT: Buttons, Display and Sound ### ~ \ No newline at end of file diff --git a/docs/projects/guitar/pinpress.md b/docs/projects/guitar/pinpress.md index e7b377d4..65ed21b7 100644 --- a/docs/projects/guitar/pinpress.md +++ b/docs/projects/guitar/pinpress.md @@ -6,16 +6,16 @@ Use pin press to switch guitar play on/off * Concepts: - * Circuit - * Conductor - * Variable/Global-Variable - * Conditional: **`if`**, **`else`** + * Circuit + * Conductor + * Variable/Global-Variable + * Conditional: **`if`**, **`else`** * Boolean: **`True`/`False`** -### ~ +### ~ -## Duration: approximately 45 minutes +## Duration: approximately 45 minutes -## Materials: +## Materials: 2-3 Crocodile clips ## Blocks @@ -31,16 +31,16 @@ input.onPinPressed(TouchPin.P1, () => {}) ### ~hint ## Circuits & Switches -* **Circuits** need a power supply (battery), a resister (like a LED) & a conductor (metal, water, hand) -* **Switches** turn electric power on by closing (completing) a circuit with a conductor so power can flow +* **Circuits** need a power supply (battery), a resister (like a LED) & a conductor (metal, water, hand) +* **Switches** turn electric power on by closing (completing) a circuit with a conductor so power can flow -**Metal foil and wires make excellent conductors** +**Metal foil and wires make excellent conductors** -**In this activity we use YOU to conduct electricity** -**to close the circuit that switches the guitar ON and OFF!** +**In this activity we use YOU to conduct electricity** +**to close the circuit that switches the guitar ON and OFF!** ### ~ -## Step 1: Pin Press Test +## Step 1: Pin Press Test ```blocks input.onPinPressed(TouchPin.P0, () => { @@ -52,34 +52,34 @@ input.onPinPressed(TouchPin.P1, () => { input.onPinPressed(TouchPin.P2, () => { basic.showNumber(2) }) -``` -**Create the pin-press code** +``` +**Create the pin-press code** -**Download the code** on the micro:bit +**Download the code** on the micro:bit -https://youtu.be/PAIU-vHqyGU +https://youtu.be/PAIU-vHqyGU + +**Hold the micro:bit touching The GND pin with one hand** +**with the other hand alternately touch the 0, 1 and 2 pins** -**Hold the micro:bit touching The GND pin with one hand** -**with the other hand alternately touch the 0, 1 and 2 pins** - ### ~hint -**The electric signal traveled from pins, between your hands to `GND` and the micro:bit detected the electric signal!** -### ~ - -## Step 2: Installing conductive foil on the guitar -https://youtu.be/NX0ECcpXFes -**Add foil to the guitar body where it is easy to touch while playing** +**The electric signal traveled from pins, between your hands to `GND` and the micro:bit detected the electric signal!** +### ~ -**Connect the foil to `GND` using a crocodile clip** +## Step 2: Installing conductive foil on the guitar +https://youtu.be/NX0ECcpXFes +**Add foil to the guitar body where it is easy to touch while playing** -https://youtu.be/YkymZGNmkrE -**Add foil to the guitar neck** - -**Connect the foil to `pin 1` using a crocodile clip** +**Connect the foil to `GND` using a crocodile clip** -## Step 3: Add a switch to turn the guitar ON and OFF -**Using the `on` global variable we can switch the message on the micro:bit** -**between ON and OFF** +https://youtu.be/YkymZGNmkrE +**Add foil to the guitar neck** + +**Connect the foil to `pin 1` using a crocodile clip** + +## Step 3: Add a switch to turn the guitar ON and OFF +**Using the `on` global variable we can switch the message on the micro:bit** +**between ON and OFF** ```blocks let on = false basic.forever(() => { @@ -96,11 +96,11 @@ input.onPinPressed(TouchPin.P1, () => { on = true } }) -``` -**Create the ON/OFF switch code** +``` +**Create the ON/OFF switch code** + +**Download the code on the micro:bit** -**Download the code on the micro:bit** - **Test by touching `P1` to toggle the LED message between ON and OFF** *Final code* @@ -123,9 +123,9 @@ basic.forever(() => { input.onPinPressed(TouchPin.P1, () => { on = !on; }) -``` -## Now Play! -**Turn the guitar ON and OFF with a pin press on the connected foil** -**touching both pieces of foil at the same time to connect the switches** - -https://youtu.be/GYmdTFvxz80 \ No newline at end of file +``` +## Now Play! +**Turn the guitar ON and OFF with a pin press on the connected foil by** +**touching both pieces of foil at the same time to connect the switches** + +https://youtu.be/GYmdTFvxz80 \ No newline at end of file