2ae78fe6b8
* initial notes * updated code samples * splitting the page and preparing layout * missing gamepad api * added basic guitar activty md files added initial draft of guitar lesson - in progress * word smithing and adding detail for concepts listed * word smithing and adding detail for concepts listed * typo in file name * missing macro * replaced guitar.png with image from Julia Carlson * adding a few pictures * adding cards macros * few tweaks * image for accellerometer lesson xyz axis * fixed the numbering buttons page -fixed the numbering to restart for each section and asdded spaces after so they don't wrap * adding a few video links * pin-press - added circuit info * more vids * fixing latest commit * edits to light sensor and pin-press * updated descriptions, linking lesson * pin-press and display-buttons updates -added dode samples to pin press * updated making video * light-sensor updated numbering * Clean up Clean up of headings to template style, other fixes * putting display in template use h2 with "Step 1:" and image before text * removed numbered lists for display & light these topics are code complete * more consistent formating Acceleromenter, buttons, light sensosr * Acceleration Lesson, added art Lesson steps for Acceleration, art for degree F to C for Map anology+clean up of light sensor topic * Pin Press code complete some other basic fomats and edits * Removed dashes in lesson names renamed and fixed references to files with "-" in names * rest of fles w/ dash in name changes * fixed links to guitar activities * updated acceleraomter section * transparency 4 art, image text added transarency and renamed art, added descriptive text for video and still images * renamed art * fixing the merge * fixing hint * moved step 2 outside ~hint block * fixing snippets * remove guitar from project list * Duration/Materials consistent format moved out of ~avatar block
131 lines
3.2 KiB
Markdown
131 lines
3.2 KiB
Markdown
# Pin Press Switch
|
|
|
|
### @description micro:bit guitar: use pin press to toggle guitar play on/off
|
|
|
|
### ~avatar avatar
|
|
Use pin press to switch guitar play on/off
|
|
|
|
* Concepts:
|
|
* Circuit
|
|
* Conductor
|
|
* Variable/Global-Variable
|
|
* Conditional: **`if`**, **`else`**
|
|
* Boolean: **`True`/`False`**
|
|
### ~
|
|
|
|
## Duration: approximately 45 minutes
|
|
|
|
## Materials:
|
|
2-3 Crocodile clips
|
|
|
|
## Blocks
|
|
|
|
```cards
|
|
var on = false
|
|
on;
|
|
if (on) { } else {}
|
|
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
|
|
|
|
**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!**
|
|
### ~
|
|
|
|
## Step 1: Pin Press Test
|
|
|
|
```blocks
|
|
input.onPinPressed(TouchPin.P0, () => {
|
|
basic.showNumber(0)
|
|
})
|
|
input.onPinPressed(TouchPin.P1, () => {
|
|
basic.showNumber(1)
|
|
})
|
|
input.onPinPressed(TouchPin.P2, () => {
|
|
basic.showNumber(2)
|
|
})
|
|
```
|
|
**Create the pin-press code**
|
|
|
|
**Download the code** on the micro:bit
|
|
|
|
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**
|
|
|
|
### ~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**
|
|
|
|
**Connect the foil to `GND` using a crocodile clip**
|
|
|
|
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(() => {
|
|
if (on == true) {
|
|
basic.showString("ON")
|
|
} else {
|
|
basic.showString("OFF")
|
|
}
|
|
})
|
|
input.onPinPressed(TouchPin.P1, () => {
|
|
if (on == true) {
|
|
on = false
|
|
} else {
|
|
on = true
|
|
}
|
|
})
|
|
```
|
|
**Create the ON/OFF switch code**
|
|
|
|
**Download the code on the micro:bit**
|
|
|
|
**Test by touching `P1` to toggle the LED message between ON and OFF**
|
|
|
|
*Final code*
|
|
TODO: do we want to use `on = !on;` or be more direct in flipping the switch? `on = true; on = false;`
|
|
```blocks
|
|
var on = false
|
|
basic.forever(() => {
|
|
if (on) {
|
|
music.setTempo(pins.map(Math.abs(input.acceleration(Dimension.Y)),
|
|
0, 1023,
|
|
60, 320))
|
|
music.playTone(
|
|
input.lightLevel() * 25,
|
|
music.beat(BeatFraction.Quarter)
|
|
);
|
|
} else {
|
|
music.rest(music.beat())
|
|
}
|
|
})
|
|
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 |