Compare commits
40 Commits
Author | SHA1 | Date | |
---|---|---|---|
5b1ccd3978 | |||
5552b42c6e | |||
a23042a787 | |||
130768301c | |||
5ead39cf51 | |||
e6a1728f6e | |||
b210e505a2 | |||
984fa83ff8 | |||
31fdadbb08 | |||
b6d81f73bc | |||
1439942b45 | |||
7c862ce0f5 | |||
28e397bc99 | |||
dea2f33234 | |||
6341f795c6 | |||
ec36eaa4cf | |||
abed962eab | |||
24ce19654c | |||
d1bf09b084 | |||
529b18e423 | |||
612142a292 | |||
5899647865 | |||
8ede130a95 | |||
545fff44d0 | |||
ac58002462 | |||
bbb153305a | |||
03d7799afc | |||
5922135073 | |||
b83a845854 | |||
ba6c9f9d92 | |||
a14585d36f | |||
b76b32a825 | |||
1e77491b16 | |||
7cbba949db | |||
f00491df52 | |||
899183f8f4 | |||
61dd0075b2 | |||
059539b954 | |||
45aa780934 | |||
0ccddf9fe8 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -7,3 +7,4 @@ tmp/
|
||||
*.tgz
|
||||
temp/
|
||||
*.db
|
||||
projects/
|
||||
|
@ -1,7 +1,5 @@
|
||||
# Lessons
|
||||
|
||||
Overview of lessons for the BBC micro:bit.
|
||||
|
||||
### @short Lessons
|
||||
|
||||
### ~column
|
||||
@ -52,17 +50,19 @@ Overview of lessons for the BBC micro:bit.
|
||||
### ~column
|
||||
|
||||
## Maker
|
||||
|
||||
* [The Watch](/microbit/lessons/the-watch), design and create The Watch
|
||||
* [Hack your Headphones](/microbit/lessons/hack-your-headphones), create music on the BBC micro:bit by hacking your headphones
|
||||
* [Banana Keyboard](/microbit/lessons/banana-keyboard), create music with fruits
|
||||
* [Telegraph](/microbit/lessons/telegraph), play the telegraph game between two BBC micro:bits
|
||||
* [Ornament Chain](/microbit/lessons/ornament-chain), play the ornament chain game between two BBC micro:bits
|
||||
* [Pogo](/microbit/lessons/pogo), create a pogo game to test your jumping abilities
|
||||
|
||||
## Advanced
|
||||
|
||||
* [Charting](/microbit/lessons/charting), create a charting app between 2 BBC micro:bits
|
||||
* [Prank WiFi](/microbit/lessons/prank-wifi), create fake WiFi to trick your friends
|
||||
* [Speed Button](/microbit/lessons/speed-button), code a speed game with running time
|
||||
* [Headbands](/microbit/lessons/headbands), create a charades game with a collection of strings that hold the words
|
||||
* [Hero](/microbit/lessons/hero), reconstruct the classic arcade game pac man with the BBC micro:bit
|
||||
|
||||
* [Catch the Egg](/microbit/lessons/catch-the-egg-game), catch falling eggs in a basket with an acceleration controller
|
||||
### ~
|
||||
|
||||
### @section full
|
||||
|
@ -4,13 +4,9 @@ a game similar to "Simon Says" with the BBC micro:bit. #docs
|
||||
|
||||
## Before we get started
|
||||
|
||||
Complete the following guided tutorial:
|
||||
Complete the following guided tutorial. Your code should look like this:
|
||||
|
||||
* [tutorial](/microbit/lessons/bop-it/tutorial)
|
||||
|
||||
At the end of the tutorial, click `keep editing`. Your code should look like this:
|
||||
|
||||
```
|
||||
```blocks
|
||||
newAction() // ***
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
if (action == 0) {
|
||||
@ -21,27 +17,27 @@ input.onButtonPressed(Button.A, () => {
|
||||
input.onLogoDown(() => {
|
||||
if (action == 1) {
|
||||
game.addScore(1) // ***
|
||||
newAction() // ***
|
||||
newAction()
|
||||
}
|
||||
}) // ***
|
||||
})
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
if (action == 2) {
|
||||
game.addScore(1) // ***
|
||||
newAction() // ***
|
||||
game.addScore(1)
|
||||
newAction()
|
||||
}
|
||||
}) // ***
|
||||
})
|
||||
input.onButtonPressed(Button.B, () => {
|
||||
basic.showNumber(game.score(), 150) // ***
|
||||
basic.pause(2000) // ***
|
||||
newAction() // ***
|
||||
}) // ***
|
||||
})
|
||||
```
|
||||
|
||||
### Challenge 1
|
||||
|
||||
Now let's add some more types of instructions for the player to follow. Let's add `PRESS PIN 0`. Change the global variable `action` to `math->random(4)` so that we can add a new **IF** statement that checks if `action=3`. If it does, display instructions to press pin 0.
|
||||
|
||||
```
|
||||
```blocks
|
||||
/**
|
||||
* {highlight}
|
||||
*/
|
@ -10,14 +10,9 @@ Variables
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [tutorial](/microbit/lessons/catch-the-egg-game/tutorial)
|
||||
* [activity](/microbit/lessons/catch-the-egg-game/activity)
|
||||
* [quiz](/microbit/lessons/catch-the-egg-game/quiz)
|
||||
* [quiz answers](/microbit/lessons/catch-the-egg-game/quiz-answers)
|
||||
* [challenges](/microbit/lessons/catch-the-egg-game/challenges)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
@ -40,7 +35,7 @@ Learn how to create a catch the egg game game with **plot**, `led->plot` , **unp
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to create a global variable as a place where you can store data so that you can use it later in your code, accessible across functions and in nested code blocks
|
||||
* learn how to create a variable as a place where you can store data so that you can use it later in your code, accessible across functions and in nested code blocks
|
||||
* learn how to repeat code in the background forever
|
||||
* learn how to turn off a LED light on the LED screen
|
||||
* learn how to turn on a LED light on the LED screen
|
||||
@ -52,40 +47,3 @@ Learn how to create a catch the egg game game with **plot**, `led->plot` , **unp
|
||||
* learn how to return the modulus
|
||||
* learn how to show a number of the BBC micro:bit screen
|
||||
* learn how to pause your code for the specified number of milliseconds
|
||||
|
||||
## Progression Pathways / Computational Thinking Framework
|
||||
|
||||
#### Algorithms
|
||||
|
||||
* Designs solutions (algorithms) that use repetition and two-way selection, ie if, then and else.(AL)
|
||||
* Uses logical reasoning to predict outputs, showing an awareness of inputs (AL)
|
||||
* Recognises that different solutions exist for the same problem (AL) (AB) Understands that iteration is the repetition of a process such as a loop (AL)
|
||||
* Represents solutions using a structured notation (AL) (AB)
|
||||
|
||||
#### Programming & Development
|
||||
|
||||
* Creates programs that implement algorithms to achieve given goals (AL)
|
||||
* Declares and assigns variables(AB)
|
||||
* Understands the difference between, and appropriately uses if and if, then and else statements(AL)
|
||||
* Uses a variable and relational operators within a loop to govern termination (AL) (GE)
|
||||
* Has practical experience of a high-level textual language, including using standard libraries when programming(AB) (AL)
|
||||
* Uses a range of operators and expressions e.g. Boolean, and applies them in the context of program control. (AL)
|
||||
* Selects the appropriate data types(AL) (AB
|
||||
|
||||
Computational Thinking Concept: AB = Abstraction; DE = Decomposition; AL = Algorithmic Thinking; EV = Evaluation; GE = Generalisation
|
||||
|
||||
## Activity
|
||||
|
||||
* time: 20 min.
|
||||
* [tutorial](/microbit/lessons/catch-the-egg-game/tutorial)
|
||||
* [quiz](/microbit/lessons/catch-the-egg-game/quiz)
|
||||
|
||||
## Extended Activity
|
||||
|
||||
* time: 20 min.
|
||||
* [challenges](/microbit/lessons/catch-the-egg-game/challenges)
|
||||
|
||||
## Homework
|
||||
|
||||
* Extended Activity: [challenges](/microbit/lessons/catch-the-egg-game/challenges)
|
||||
|
@ -4,13 +4,9 @@ Coding challenges for catch the egg game.
|
||||
|
||||
## Before we get started
|
||||
|
||||
Complete the following guided tutorial:
|
||||
Your starting code should look like this:
|
||||
|
||||
* [tutorial](/microbit/lessons/catch-the-egg-game/tutorial)
|
||||
|
||||
At the end of the tutorial, click `keep editing`. Your code should look like this:
|
||||
|
||||
```
|
||||
```blocks
|
||||
let basketX = 2
|
||||
let eggX = 2
|
||||
let eggY = 0
|
||||
@ -20,7 +16,7 @@ basic.forever(() => {
|
||||
eggY = eggY + 1
|
||||
led.plot(eggX, eggY)
|
||||
basic.pause(300)
|
||||
let accX = input.acceleration("x")
|
||||
let accX = input.acceleration(Dimension.X)
|
||||
basketX = 2 + Math.min(2, Math.max(-2, accX / 200))
|
||||
led.plot(basketX, 4)
|
||||
if (eggY > 4) {
|
||||
@ -35,21 +31,13 @@ basic.forever(() => {
|
||||
|
||||
### Challenge 1
|
||||
|
||||
Let's start by adding the **game** library.
|
||||
|
||||
### ~
|
||||
|
||||
### ~avatar avatar improvised
|
||||
|
||||
### Challenge 2
|
||||
|
||||
Let's use an **IF** statement to detect if the egg and the basket are lined up.
|
||||
|
||||
Now that we know when an egg is caught, we can keep track of the score! We need to use the `add score` function built into the game library to add `1` point for every egg that is caught. However, let's not forget to `remove life` if an egg falls off the display before it's caught!
|
||||
|
||||
### ~
|
||||
|
||||
```
|
||||
```blocks
|
||||
let basketX1 = 2
|
||||
let eggX1 = 2
|
||||
let eggY1 = 0
|
||||
@ -59,8 +47,8 @@ basic.forever(() => {
|
||||
eggY1 = eggY1 + 1
|
||||
led.plot(eggX1, eggY1)
|
||||
basic.pause(300)
|
||||
let accX1 = input.acceleration("x")
|
||||
basketX1 = 2 + Math.min(2, Math.max(-2, accX1 / 200))
|
||||
let accX = input.acceleration(Dimension.X)
|
||||
basketX1 = 2 + Math.min(2, Math.max(-2, accX / 200))
|
||||
led.plot(basketX1, 4)
|
||||
if (eggY1 > 4) {
|
||||
eggY1 = -1
|
||||
@ -81,13 +69,13 @@ basic.forever(() => {
|
||||
|
||||
### ~avatar avatar encourage
|
||||
|
||||
### Challenge 3
|
||||
### Challenge 2
|
||||
|
||||
Catching eggs gets easier with practice so let's make the eggs fall faster every 5 catches. We can do this by tracking how long the egg pauses in each position while falling with a global variable called **falling pause**. Let's create this variable and set it to `300` initially. Don't forget to also create a condition that will be true every 5 catches.
|
||||
|
||||
### ~
|
||||
|
||||
```
|
||||
```blocks
|
||||
let basketX2 = 2
|
||||
let eggX2 = 2
|
||||
let eggY2 = 0
|
||||
@ -98,7 +86,7 @@ basic.forever(() => {
|
||||
eggY2 = eggY2 + 1
|
||||
led.plot(eggX2, eggY2)
|
||||
basic.pause(300)
|
||||
let accX2 = input.acceleration("x")
|
||||
let accX2 = input.acceleration(Dimension.X)
|
||||
basketX2 = 2 + Math.min(2, Math.max(-2, accX2 / 200))
|
||||
led.plot(basketX2, 4)
|
||||
if (eggY2 > 4) {
|
||||
@ -108,7 +96,7 @@ basic.forever(() => {
|
||||
if (eggY2 == 4) {
|
||||
if (basketX2 == eggX2) {
|
||||
game.addScore(1)
|
||||
if (math.mod(game.score(), 5) == 0) {
|
||||
if (game.score() %5 == 0) {
|
||||
}
|
||||
} else {
|
||||
game.removeLife(1)
|
||||
@ -120,13 +108,13 @@ basic.forever(() => {
|
||||
|
||||
### ~avatar avatar surprised
|
||||
|
||||
### Challenge 4
|
||||
### Challenge 3
|
||||
|
||||
### @video td/videos/catch-the-egg-game-4
|
||||
|
||||
Let's make the egg fall faster by decreasing the amount of time it pauses in each position by decreasing **falling pause** by `25` every 5 catches. Now, instead of pausing for 300 milliseconds we can pause for the value of **falling pause**.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let basketX3 = 2
|
||||
let eggX3 = 2
|
||||
let eggY3 = 0
|
||||
@ -137,7 +125,7 @@ basic.forever(() => {
|
||||
eggY3 = eggY3 + 1
|
||||
led.plot(eggX3, eggY3)
|
||||
basic.pause(300)
|
||||
let accX3 = input.acceleration("x")
|
||||
let accX3 = input.acceleration(Dimension.X)
|
||||
basketX3 = 2 + Math.min(2, Math.max(-2, accX3 / 200))
|
||||
led.plot(basketX3, 4)
|
||||
if (eggY3 > 4) {
|
||||
@ -147,7 +135,7 @@ basic.forever(() => {
|
||||
if (eggY3 == 4) {
|
||||
if (basketX3 == eggX3) {
|
||||
game.addScore(1)
|
||||
if (math.mod(game.score(), 5) == 0) {
|
||||
if (game.score()% 5 == 0) {
|
||||
fallingPause1 = fallingPause1 - 25 // ***
|
||||
}
|
||||
} else {
|
||||
@ -156,6 +144,7 @@ basic.forever(() => {
|
||||
}
|
||||
basic.pause(fallingPause1) // ***
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
Fantastic! Your game is now ready to show off.
|
@ -22,7 +22,10 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let basketX = 2
|
||||
let eggX = 2
|
||||
let eggY = 0
|
||||
led.plot(eggX, eggY)
|
||||
led.plot(basketX, 4)
|
||||
```
|
||||
@ -31,28 +34,22 @@ led.plot(basketX, 4)
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let basketX = 2
|
||||
let eggX = 2
|
||||
let eggY = 0
|
||||
led.unplot(eggX, eggY)
|
||||
eggY = eggY + 1
|
||||
led.plot(eggX, eggY)
|
||||
```
|
||||
|
||||
## 4. Write the code that calculates 'basket x' given the variable 'acc x'.
|
||||
## 4. . Write the code that resets the egg after it has fallen past the bottom of the BBC micro:bit.
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
let accX = input.acceleration("x")
|
||||
basketX = 2 + Math.min(2, Math.max(-2, accX / 200))
|
||||
```
|
||||
|
||||
Note: the first line of code in this answer is optional.
|
||||
|
||||
## 5. Write the code that resets the egg after it has fallen past the bottom of the BBC micro:bit.
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let eggX = 2
|
||||
let eggY = 0
|
||||
if (eggY > 4) {
|
||||
eggY = -1
|
||||
eggX = Math.random(5)
|
@ -6,11 +6,11 @@ Programming a game of catch the egg using the accelerometer.
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [catch the egg tutorial](/microbit/lessons/catch-the-egg-game/tutorial)
|
||||
Use this activity document to guide your work in the [catch the egg challenges](/microbit/lessons/catch-the-egg-game/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
## 1. Write the data type for the global variables 'basket' and 'egg'.
|
||||
## 1. Write the data type for the variables 'basket' and 'egg'.
|
||||
|
||||
<br/>
|
||||
|
||||
@ -24,11 +24,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
<br/>
|
||||
|
||||
## 4. Write the code that calculates 'basket x' given the variable 'acc x'.
|
||||
|
||||
<br/>
|
||||
|
||||
## 5. Write the code that resets the egg after it has fallen past the bottom of the BBC micro:bit.
|
||||
## 4. Write the code that resets the egg after it has fallen past the bottom of the BBC micro:bit.
|
||||
|
||||
<br/>
|
||||
|
@ -10,9 +10,6 @@ Acceleration
|
||||
|
||||
* [activity](/microbit/lessons/charting/activity)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -11,9 +11,7 @@ Music
|
||||
* [activity](/microbit/lessons/classic-beatbox/activity)
|
||||
* [challenges](/microbit/lessons/classic-beatbox/challenges)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
@ -23,40 +21,3 @@ Learn how to make a beatbox music player using pins P1 and P2. We will be learni
|
||||
|
||||
* learn how to code music on the BBC micro:bit
|
||||
|
||||
## Progression Pathways / Computational Thinking Framework
|
||||
|
||||
#### Algorithms
|
||||
|
||||
* Uses diagrams to express solutions.(AB)
|
||||
* Represents solutions using a structured notation (AL) (AB)
|
||||
|
||||
#### Programming & Development
|
||||
|
||||
* Creates programs that implement algorithms to achieve given goals (AL)
|
||||
* Selects the appropriate data types(AL) (AB
|
||||
|
||||
#### Communication Networks
|
||||
|
||||
* Demonstrates responsible use of technologies and online services, and knows a range of ways to report concerns Understands how search engines rank search results (AL)
|
||||
|
||||
#### Information Technology
|
||||
|
||||
* Collects, organizes, and presents data and information in digital content (AB)
|
||||
* Makes appropriate improvements to solutions based on feedback received, and can comment on the success of the solution (EV)
|
||||
|
||||
Computational Thinking Concept: AB = Abstraction; DE = Decomposition; AL = Algorithmic Thinking; EV = Evaluation; GE = Generalisation
|
||||
|
||||
## Activity
|
||||
|
||||
* time: 20 min.
|
||||
* [activity](/microbit/lessons/classic-beatbox/activity)
|
||||
|
||||
## Extended Activity
|
||||
|
||||
* time: 20 min.
|
||||
* [challenges](/microbit/lessons/classic-beatbox/challenges)
|
||||
|
||||
## Homework
|
||||
|
||||
* Extended Activity: [challenges](/microbit/lessons/classic-beatbox/challenges)
|
||||
|
||||
|
@ -12,7 +12,8 @@ If (Conditionals)
|
||||
|
||||
* [activity](/microbit/lessons/compass/activity)
|
||||
* [challenges](/microbit/lessons/compass/challenges)
|
||||
|
||||
* [quiz](/microbit/lessons/compass/quiz)
|
||||
* [quiz answers](/microbit/lessons/compass/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -41,7 +41,7 @@ If `degrees` is less than 135, the micro:bit is mostly pointing East. Display `E
|
||||
|
||||
|
||||
```blocks
|
||||
let degrees = null;
|
||||
let degrees = 0;
|
||||
basic.forever(() => {
|
||||
degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
@ -57,7 +57,7 @@ If `degrees` is less than 225, the micro:bit is mostly pointing South. Display `
|
||||
|
||||
|
||||
```blocks
|
||||
let degrees = null;
|
||||
let degrees = 0;
|
||||
basic.forever(() => {
|
||||
degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
@ -76,7 +76,7 @@ basic.forever(() => {
|
||||
If none of these conditions returned true, then the micro:bit must be pointing West. Display `W` on the micro:bit.
|
||||
|
||||
```blocks
|
||||
let degrees = null;
|
||||
let degrees = 0;
|
||||
basic.forever(() => {
|
||||
degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
|
@ -7,7 +7,7 @@ Display the direction that the micro:bit is facing using the compass
|
||||
Complete the following [guided tutorial](/microbit/lessons/compass/activity), your code should look like this:
|
||||
|
||||
```blocks
|
||||
let degrees = null;
|
||||
let degrees = 0;
|
||||
basic.forever(() => {
|
||||
degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
@ -30,7 +30,7 @@ basic.forever(() => {
|
||||
Instead of displaying `N` when the BBC micro:bit is pointing North, display a star to indicate the north star.
|
||||
|
||||
```blocks
|
||||
let degrees = null;
|
||||
let degrees = 0;
|
||||
basic.forever(() => {
|
||||
degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
@ -61,7 +61,7 @@ basic.forever(() => {
|
||||
Instead of displaying just `N`, `W`, `S`, or `E`, display the full word.
|
||||
|
||||
```blocks
|
||||
let degrees = null;
|
||||
let degrees = 0;
|
||||
basic.forever(() => {
|
||||
degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
|
@ -26,6 +26,7 @@ let degrees = input.compassHeading()
|
||||
|
||||
|
||||
```blocks
|
||||
let degrees = input.compassHeading()
|
||||
if (degrees < 45) {
|
||||
basic.showString("N", 150)
|
||||
}
|
||||
@ -35,6 +36,7 @@ if (degrees < 45) {
|
||||
|
||||
|
||||
```blocks
|
||||
let degrees = input.compassHeading()
|
||||
if (degrees < 135) {
|
||||
basic.showString("E", 150)
|
||||
}
|
||||
@ -44,6 +46,7 @@ if (degrees < 135) {
|
||||
|
||||
|
||||
```blocks
|
||||
let degrees = input.compassHeading()
|
||||
if (degrees < 225) {
|
||||
basic.showString("S", 150)
|
||||
}
|
||||
|
@ -12,6 +12,8 @@ Variables
|
||||
|
||||
* [activity](/microbit/lessons/counter/activity)
|
||||
* [challenges](/microbit/lessons/counter/challenges)
|
||||
* [quiz](/microbit/lessons/counter/quiz)
|
||||
* [quiz answers](/microbit/lessons/counter/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -23,10 +23,10 @@ We create a **variable**, `count` to keep track of the current count. The number
|
||||
## 3. Draw which LEDs are ON after running this code and pressing button "A" once. Explain you chose to draw that number
|
||||
|
||||
```blocks
|
||||
let count_ = 0
|
||||
let count = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count, 150)
|
||||
count = count + 1
|
||||
basic.showNumber(count)
|
||||
})
|
||||
```
|
||||
|
||||
@ -39,10 +39,10 @@ We are only pressing on button pressed once. So the number to display on the mic
|
||||
## 4. Draw which LEDs are ON after running this code and pressing button "A" three times. Explain you chose to draw that number
|
||||
|
||||
```blocks
|
||||
count_ = 0
|
||||
let count = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count_, 100)
|
||||
count = + 1
|
||||
basic.showNumber(count)
|
||||
})
|
||||
```
|
||||
|
||||
|
@ -27,10 +27,10 @@ let count = 0
|
||||
## 3. Draw which LEDs are ON after running this code and pressing button "A" once. Explain you chose to draw that number
|
||||
|
||||
```blocks
|
||||
let count_ = 0
|
||||
let counts = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count_, 100)
|
||||
counts = counts + 1
|
||||
basic.showNumber(counts, 150)
|
||||
})
|
||||
```
|
||||
|
||||
@ -41,10 +41,10 @@ input.onButtonPressed(Button.A, () => {
|
||||
## 4. Draw which LEDs are ON after running this code and pressing button "A" three times. Explain you chose to draw that number
|
||||
|
||||
```blocks
|
||||
count_ = 0
|
||||
let counting= 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count_, 100)
|
||||
counting = counting + 1
|
||||
basic.showNumber(counting, 100)
|
||||
})
|
||||
```
|
||||
|
||||
|
@ -12,7 +12,8 @@ If (Conditionals)
|
||||
|
||||
* [activity](/microbit/lessons/die-roll/activity)
|
||||
* [challenges](/microbit/lessons/die-roll/challenges)
|
||||
|
||||
* [quiz](/microbit/lessons/die-roll/quiz)
|
||||
* [quiz answers](/microbit/lessons/die-roll/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -8,7 +8,7 @@ These are the answers to the [die roll quiz](/microbit/lessons/die-roll/quiz).
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let roll = Math.random(6)
|
||||
```
|
||||
|
||||
@ -18,9 +18,10 @@ let roll = Math.random(6)
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let roll = Math.random(6)
|
||||
if (roll == 5) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. . . . .
|
||||
. # . # .
|
||||
@ -36,9 +37,11 @@ if (roll == 5) {
|
||||
|
||||
<br />
|
||||
|
||||
```
|
||||
```blocks
|
||||
|
||||
let roll = Math.random(6)
|
||||
if (roll == 5) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. . . . .
|
||||
. # . # .
|
||||
@ -46,7 +49,7 @@ if (roll == 5) {
|
||||
. # . # .
|
||||
`)
|
||||
} else if (roll == 4) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
@ -64,9 +67,10 @@ Note: students are only required to write the bottom half of this answer, starti
|
||||
|
||||
<br />
|
||||
|
||||
```
|
||||
```blocks
|
||||
let roll = Math.random(6)
|
||||
if (roll == 4) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
@ -74,7 +78,7 @@ if (roll == 4) {
|
||||
. . . . .
|
||||
`)
|
||||
} else if (roll == 3) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . . . .
|
||||
@ -92,9 +96,10 @@ Note: students are only required to write the bottom half of this answer, starti
|
||||
|
||||
<br />
|
||||
|
||||
```
|
||||
```blocks
|
||||
let roll = Math.random(6)
|
||||
if (roll == 3) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . . . .
|
||||
@ -102,7 +107,7 @@ if (roll == 3) {
|
||||
. . . . .
|
||||
`)
|
||||
} else if (roll == 2) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
# . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
|
@ -6,7 +6,7 @@ Create a die when the BBC micro:bit is shaken
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [die roll tutorial](/microbit/lessons/die-roll/tutorial).
|
||||
Use this activity document to guide your work in the [die roll tutorial](/microbit/lessons/die-roll/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -12,6 +12,8 @@ While Loop
|
||||
|
||||
* [activity](/microbit/lessons/digi-yoyo/activity)
|
||||
* [challenges](/microbit/lessons/digi-yoyo/challenges)
|
||||
* [quiz](/microbit/lessons/digi-yoyo/quiz)
|
||||
* [quiz answers](/microbit/lessons/digi-yoyo/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
@ -20,20 +22,12 @@ Learn how to creating a **while loop**, `while condition do` to repeat code whil
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
|
||||
let x = 0
|
||||
|
||||
basic.showNumber(0)
|
||||
|
||||
|
||||
while (true) {
|
||||
|
||||
basic.pause(20)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -18,7 +18,6 @@ let count = 0
|
||||
|
||||
Add a while loop that will loop over and over until the variable `count` equals 10.
|
||||
|
||||

|
||||
|
||||
```blocks
|
||||
let count = 0
|
||||
@ -48,7 +47,7 @@ let count = 0
|
||||
while (count < 10) {
|
||||
basic.pause(100)
|
||||
basic.showNumber(count)
|
||||
count == count + 1
|
||||
count = count + (count - 1)
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -69,5 +69,7 @@ Now, we need `count` to decrease by one after the micro:bit has displayed the va
|
||||
We can do this by adding this line:
|
||||
|
||||
```blocks
|
||||
let count = count + (count - 1);
|
||||
let count = 0;
|
||||
count = count + (count - 1);
|
||||
|
||||
```
|
||||
|
@ -16,7 +16,7 @@ A loop that repeats code while a condition is true.
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let count = 0
|
||||
```
|
||||
|
||||
@ -26,7 +26,8 @@ let count = 0
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let count = 0
|
||||
while (count < 5) {
|
||||
count = count + 1
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ Create a counter with a while loop
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [digi yoyo tutorial](/microbit/lessons/digi-yoyo/tutorial)
|
||||
Use this activity document to guide your work in the [digi yoyo tutorial](/microbit/lessons/digi-yoyo/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -10,10 +10,8 @@ Acceleration
|
||||
|
||||
* [activity](/microbit/lessons/glowing-pendulum/activity)
|
||||
* [challenges](/microbit/lessons/glowing-pendulum/challenges)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
* [quiz](/microbit/lessons/glowing-pendulum/quiz)
|
||||
* [quiz answers](/microbit/lessons/glowing-pendulum/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -29,16 +29,19 @@ let acceleration = input.acceleration("y")
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let acceleration = math.abs(acceleration)
|
||||
let acceleration = input.acceleration(Dimension.X)
|
||||
let accelerationAbsolute = Math.abs(acceleration)
|
||||
```
|
||||
|
||||
## 4. Write the code that uses the acceleration value from question #3 to set the brightness on the BBC micro:bit.
|
||||
## 4. Write the code to use the acceleration value from question 3 to set the brightness on the BBC micro:bit.
|
||||
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let acceleration = acceleration / 4
|
||||
led.setBrightness(acceleration)
|
||||
let accelerationX = input.acceleration(Dimension.X)
|
||||
let accelerationAbsolute = Math.abs(accelerationX)
|
||||
let accelerationDivided = accelerationX / 4
|
||||
led.setBrightness(accelerationX)
|
||||
```
|
||||
|
||||
## 5. Write the code that tuns all the LEDs on (as the image displays below)
|
||||
|
@ -6,7 +6,7 @@ construct a pendulum that glows using acceleration #LED #number #math #accelerat
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [glowing pendulum tutorial](/microbit/lessons/glowing-pendulum/tutorial)
|
||||
Use this activity document to guide your work in the [glowing pendulum tutorial](/microbit/lessons/glowing-pendulum/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
@ -22,7 +22,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
<br/>
|
||||
|
||||
## 4. Write the code that uses the acceleration value from question #3 to set the brightness on the BBC micro:bit.
|
||||
## 4. Write the code to include acceleration value question 3 to set the brightness on the BBC micro:bit.
|
||||
|
||||
<br/>
|
||||
|
||||
|
@ -12,6 +12,8 @@ Math - Pick Random
|
||||
|
||||
* [activity](/microbit/lessons/guess-the-number/activity)
|
||||
* [challenges](/microbit/lessons/guess-the-number/challenges)
|
||||
* [quiz](/microbit/lessons/guess-the-number/quiz)
|
||||
* [quiz answers](/microbit/lessons/guess-the-number/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -31,7 +31,7 @@ let randomNumber = Math.random(10)
|
||||
If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed. Explain why that particular area is shaded.
|
||||
|
||||
```blocks
|
||||
randomNumber = Math.random(10)
|
||||
let randomNumber = Math.random(10)
|
||||
```
|
||||
|
||||
|
||||
|
@ -6,7 +6,7 @@ Learn how to generate a random number on the micro:bit. #math #random #docs
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [guess the number tutorial](/microbit/lessons/guess-the-number/tutorial).
|
||||
Use this activity document to guide your work in the [guess the number tutorial](/microbit/lessons/guess-the-number/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -10,10 +10,6 @@ Hack your headphone
|
||||
|
||||
* [activity](/microbit/lessons/hack-your-headphones/activity)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to convert your BBC micro:bit into a music player using pins P0 and GND, headphones (or speakers), as well as crocodile clips (or spring clips).
|
||||
|
@ -12,6 +12,9 @@ For Loop
|
||||
|
||||
* [activity](/microbit/lessons/looper/activity)
|
||||
* [challenges](/microbit/lessons/looper/challenges)
|
||||
* [quiz](/microbit/lessons/looper/quiz)
|
||||
* [quiz answers](/microbit/lessons/looper/quiz-answers)
|
||||
|
||||
|
||||
## Class
|
||||
|
||||
|
@ -10,7 +10,7 @@ Answers will vary. In general, for loop refers to the code that repeats for a fi
|
||||
|
||||
## 2. Consider the following code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i = 0; i < 4; i++) {
|
||||
basic.showNumber(i, 150)
|
||||
}
|
||||
@ -24,7 +24,7 @@ Let's create a for loop where `0` is the loop's starting value, `i` is the index
|
||||
|
||||
## 3. Consider the following code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i1 = 0; i1 < 6; i1++) {
|
||||
basic.showNumber(i1, 150)
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ Learn how to create a series of numbers with a for loop. #LED #screen #plot #doc
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [looper tutorial](/microbit/lessons/looper/tutorial)
|
||||
Use this activity document to guide your work in the [looper tutorial](/microbit/lessons/looper/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
@ -16,7 +16,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
## 2. Draw the areas where the LEDs will be lit based on the code below. Explain why you chose to draw those numbers.
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i = 0; i < 4; i++) {
|
||||
basic.showNumber(i, 150)
|
||||
}
|
||||
@ -28,7 +28,7 @@ for (let i = 0; i < 4; i++) {
|
||||
|
||||
## 3. Draw the areas where the LEDs will be lit based on the code below. Explain why you chose to draw those numbers.
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i1 = 0; i1 < 6; i1++) {
|
||||
basic.showNumber(i1, 150)
|
||||
}
|
||||
|
@ -10,6 +10,8 @@ If (Conditionals)
|
||||
|
||||
* [activity](/microbit/lessons/magic-8/activity)
|
||||
* [challenges](/microbit/lessons/magic-8/challenges)
|
||||
* [quiz](/microbit/lessons/magic-8/quiz)
|
||||
* [quiz answers](/microbit/lessons/magic-8/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
@ -28,7 +30,6 @@ input.onGesture(Gesture.Shake, () => {
|
||||
basic.showNumber(7)
|
||||
basic.clearScreen()
|
||||
basic.showString("Hello!")
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -18,21 +18,23 @@ An if statement will conditionally run code depending on whether or not a condit
|
||||
|
||||
## 2. Create a Variable called ``x`` and assign it to a random number between 0 and 2.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let x = Math.random(3)
|
||||
```
|
||||
|
||||
## 3. Write the 'if statement' to check if ``x`` is equal to 2. Inside the 'if statement', display the string "Yes".
|
||||
|
||||
```
|
||||
```blocks
|
||||
let x = Math.random(3)
|
||||
if (x == 2) {
|
||||
basic.showString("Yes", 150)
|
||||
}
|
||||
```
|
||||
|
||||
## 3. Write the 'if statement' to check if ``x`` is equal to 1. Inside the 'if statement', display the string "No."
|
||||
## 4. Write the 'if statement' to check if ``x`` is equal to 1. Inside the 'if statement', display the string "No."
|
||||
|
||||
```
|
||||
```blocks
|
||||
let x = Math.random(3)
|
||||
if (x == 2) {
|
||||
basic.showString("Yes", 150)
|
||||
} else if (x == 1) {
|
||||
@ -42,7 +44,8 @@ if (x == 2) {
|
||||
|
||||
## 5. Write the code to display the string "I don't know" if the Variable ``x`` is neither 2 nor 1.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let x = Math.random(3)
|
||||
if (x == 2) {
|
||||
basic.showString("Yes", 150)
|
||||
} else if (x == 1) {
|
||||
|
@ -6,7 +6,7 @@ create a magic 8 ball on the BBC micro:bit #math #random #docs
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [magic 8 tutorial](/microbit/lessons/magic-8/tutorial).
|
||||
Use this activity document to guide your work in the [magic 8 tutorial](/microbit/lessons/magic-8/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
@ -22,7 +22,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
<br />
|
||||
|
||||
## 3. Write the 'if statement' to check if ``x`` is equal to 1. Inside the 'if statement', display the string "No."
|
||||
## 4. Write the 'if statement' to check if ``x`` is equal to 1. Inside the 'if statement', display the string "No."
|
||||
|
||||
<br />
|
||||
|
||||
|
@ -12,6 +12,8 @@ On Logo Up
|
||||
|
||||
* [activity](/microbit/lessons/magic-logo/activity)
|
||||
* [challenges](/microbit/lessons/magic-logo/challenges)
|
||||
* [quiz](/microbit/lessons/magic-logo/challenges)
|
||||
* [quiz answers](/microbit/lessons/magic-logo/challenges)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -22,7 +22,7 @@ When the micro:bit goes logo up, the code nested under the `on logo up` function
|
||||
|
||||
```blocks
|
||||
input.onLogoUp(() => {
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
@ -31,6 +31,7 @@ input.onLogoUp(() => {
|
||||
`)
|
||||
})
|
||||
|
||||
|
||||
```
|
||||
|
||||
Run your code and try to turn around the micro:bit to see the **logo up** event in action!
|
||||
|
@ -8,7 +8,7 @@ Complete the [magic logo](/microbit/lessons/magic-logo/activity) activity and yo
|
||||
|
||||
```blocks
|
||||
input.onLogoUp(() => {
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
@ -28,7 +28,7 @@ How about when the logo is down? We should display an arrow pointing downward!
|
||||
|
||||
```blocks
|
||||
input.onLogoUp(() => {
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
@ -37,7 +37,7 @@ input.onLogoUp(() => {
|
||||
`)
|
||||
})
|
||||
input.onLogoDown(() => {
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# # # # #
|
||||
|
@ -16,30 +16,35 @@ A function that will run code when the BBC micro:bit screen is facing up and ver
|
||||
|
||||
<br/>
|
||||
|
||||
## 2. Consider the following directions
|
||||
## 2. Write the condition that detects when the BBC micro:bit logo is facing up and vertically orientated.
|
||||
|
||||
The `logo up` event is raised when...
|
||||
|
||||
* the screen is facing up and the board is horizontal
|
||||
* the screen is facing down and the board is horizontal
|
||||
* the board is vertical and the logo is facing up
|
||||
|
||||
Write the condition that detects when the BBC micro:bit logo is facing up and vertically orientated.
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
input.onLogoUp(() => {
|
||||
})
|
||||
```
|
||||
|
||||
<br/>
|
||||
|
||||
## 3. Consider the following animation
|
||||
## 3. Write the code to display a downward pointing arrow when the logo is down.
|
||||
|
||||

|
||||
|
||||
Write the code to display a downward pointing arrow when the logo is down.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
input.onLogoDown(() => {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# # # # #
|
||||
|
@ -12,15 +12,11 @@ Use the hints from the [magic logo activity](/microbit/lessons/magic-logo/activi
|
||||
|
||||
<br/>
|
||||
|
||||
## 2. The `logo up` event is raised when...
|
||||
## 2. Write the condition that detects when the BBC micro:bit logo is facing up and vertically orientated.
|
||||
|
||||
* the screen is facing up and the board is horizontal
|
||||
* the screen is facing down and the board is horizontal
|
||||
* the board is vertical and the logo is facing up
|
||||
|
||||
## 3. Consider the following animation
|
||||
## 3. Write the code to display a downward pointing arrow when the BBC micro:bit logo is down.
|
||||
|
||||

|
||||
|
||||
Write the code to display a downward pointing arrow when the BBC micro:bit logo is down.
|
||||
|
||||
|
||||
|
@ -12,6 +12,8 @@ Set Brightness
|
||||
|
||||
* [activity](/microbit/lessons/night-light/activity)
|
||||
* [challenges](/microbit/lessons/night-light/challenges)
|
||||
* [quiz](/microbit/lessons/night-light/quiz)
|
||||
* [quiz answers](/microbit/lessons/night-light/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -16,9 +16,15 @@ If the rectangle above represents the BBC micro:bit, write the code to set all t
|
||||
|
||||
<br />
|
||||
|
||||
```
|
||||
```blocks
|
||||
led.setBrightness(255)
|
||||
led.plotAll()
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# # # # #
|
||||
# # # # #
|
||||
# # # # #
|
||||
# # # # #
|
||||
`)
|
||||
```
|
||||
|
||||
## 3. Consider the following image
|
||||
@ -29,9 +35,15 @@ If the rectangle above represents the BBC micro:bit, write the code to set the s
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
led.setBrightness(128)
|
||||
led.plotAll()
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# # # # #
|
||||
# # # # #
|
||||
# # # # #
|
||||
# # # # #
|
||||
`)
|
||||
```
|
||||
|
||||
## 4. Consider the following image
|
||||
@ -40,7 +52,7 @@ led.plotAll()
|
||||
|
||||
If the rectangle above represents the BBC micro:bit, write the code to turn off all the LEDs.
|
||||
|
||||
```
|
||||
```blocks
|
||||
led.setBrightness(0)
|
||||
```
|
||||
|
||||
|
@ -6,7 +6,7 @@ change the brightness of the BBC micro:bit #LED #image #brightness #fade #docs
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [night light tutorial](/microbit/lessons/night-light/tutorial)
|
||||
Use this activity document to guide your work in the [night light tutorial](/microbit/lessons/night-light/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -4,13 +4,9 @@ Coding challenges for the offset image tutorial. #docs
|
||||
|
||||
## Before we get started
|
||||
|
||||
Complete the following guided tutorial:
|
||||
Complete the following exercise. Your code should look like this:
|
||||
|
||||
* [tutorial](/microbit/lessons/offset-image/tutorial)
|
||||
|
||||
At the end of the tutorial, click `keep editing`. Your code should look like this:
|
||||
|
||||
```
|
||||
```blocks
|
||||
offset = 0
|
||||
basic.forever(() => {
|
||||
if (offset == -4) {
|
@ -1,80 +0,0 @@
|
||||
# ornament chain activity
|
||||
|
||||
Build a telgraph
|
||||
|
||||
# micro:bit Ornament Chain
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
In this project, you will build your ornament chain between micro:bits. Project duration: 15 minutes.
|
||||
|
||||
## Materials
|
||||
|
||||
* micro:bit, battery holder and 2 AAA batteries
|
||||
* Crocodile clips
|
||||
|
||||
## Steps
|
||||
|
||||
### Step 1
|
||||
|
||||

|
||||
|
||||
Using the 1st crocodile clip, connect the end of the crocodile clip onto GND pin on the micro:bit.
|
||||
|
||||
### Step 2
|
||||
|
||||

|
||||
|
||||
Using the 2nd crocodile clip, connect the end of the crocodile clip onto the 3V pin on the micro:bit.
|
||||
|
||||
### Step 3
|
||||
|
||||

|
||||
|
||||
Using the 3rd crocodile clip, connect the end of the crocodile clip onto pin 1 of the micro:bit.
|
||||
|
||||
### Step 4
|
||||
|
||||

|
||||
|
||||
Using the 4th crocodile clip, connect the end of the crocodile clip onto pin 2 of the micro:bit.
|
||||
|
||||
### Step 5
|
||||
|
||||

|
||||
|
||||
Using the 1st crocodile clip, connect the unattached end of the crocodile clip onto the GND on the 2nd micro:bit.
|
||||
|
||||
### Step 6
|
||||
|
||||

|
||||
|
||||
Using the 2nd crocodile clip, connect the unattached end of the crocodile clip onto the 3V pin on the 2nd micro:bit.
|
||||
|
||||
### Step 7
|
||||
|
||||

|
||||
|
||||
Using the 3rd crocodile clip, connect the unattached end of the crocodile clip onto pin 2 of the 2nd micro:bit.
|
||||
|
||||
### Step 8
|
||||
|
||||

|
||||
|
||||
Using the 4th crocodile clip, connect the unattached end of the crocodile clip onto pin 1 of the 2nd micro:bit
|
||||
|
||||
### Step 9
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Your ornament chain is ready!
|
||||
|
||||
### Step 10
|
||||
|
||||
* Connect the first micro:bit to your computer using your USB cable and run the [ornament chain](/microbit/fcicvk) script on it.
|
||||
* Connect the second micro:bit to your computer using your USB cable and run the [ornament chain](/microbit/fcicvk) script on it.
|
||||
* The first person and second person take turns pressing button A to start the ornament chain game!
|
@ -10,24 +10,34 @@ Running Time
|
||||
|
||||
* [activity](/microbit/lessons/pogo/activity)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to use running time. We will be learning how to create a pogo game using variables, forever loop, conditionals, on button pressed, as well as simple commands, such as show LEDs and clear screen.
|
||||
|
||||
## Documentation
|
||||
```docs
|
||||
let jumps = 0
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
basic.showNumber(jumps)
|
||||
basic.showNumber(radio.receiveNumber())
|
||||
led.stopAnimation()
|
||||
jumps = jumps + 1;
|
||||
radio.sendNumber(jumps)
|
||||
basic.forever(() => { })
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.clearScreen()
|
||||
if (acc > 2000) {
|
||||
|
||||
* **variable** : [read more...](/microbit/reference/variables/var)
|
||||
* **arithmetic operator** : [read more...](/microbit/reference/types/number)
|
||||
* **forever** : [read more...](/microbit/reference/basic/forever)
|
||||
* **on button pressed** : [read more...](/microbit/reference/input/on-button-pressed)
|
||||
* **if** : [read more...](/microbit/reference/logic/if)
|
||||
* **clear screen** : [read more...](/microbit/reference/basic/clear-screen)
|
||||
* **show LEDs** : [read more...](/microbit/reference/basic/show-leds)
|
||||
}
|
||||
radio.onDataReceived(() => { })
|
||||
|
||||
```
|
||||
## Objectives
|
||||
|
||||
* learn how to create a function as a unit of code that performs a specific task and returns a result
|
||||
@ -36,25 +46,3 @@ Learn how to use running time. We will be learning how to create a pogo game usi
|
||||
* learn how to conditionally run code depending on whether a condition is true or not
|
||||
* learn how to run code when an input button is pressed
|
||||
* learn how to pause your code for the specified number of milliseconds
|
||||
|
||||
## Progression Pathways / Computational Thinking Framework
|
||||
|
||||
#### Algorithms
|
||||
|
||||
* Designs solutions (algorithms) that use repetition and two-way selection, ie if, then and else.(AL)
|
||||
* Uses diagrams to express solutions.(AB)
|
||||
* Uses logical reasoning to predict outputs, showing an awareness of inputs (AL)
|
||||
* Represents solutions using a structured notation (AL) (AB)
|
||||
|
||||
#### Programming & Development
|
||||
|
||||
* Creates programs that implement algorithms to achieve given goals (AL)
|
||||
* Declares and assigns variables(AB)
|
||||
* Uses post-tested loop e.g.‘until’,and a sequence of selection statements in programs,including an if,then and else statement(AL)
|
||||
* Understands the difference between, and appropriately uses if and if, then and else statements(AL)
|
||||
* Uses a variable and relational operators within a loop to govern termination (AL) (GE)
|
||||
* Uses a range of operators and expressions e.g. Boolean, and applies them in the context of program control. (AL)
|
||||
* Selects the appropriate data types(AL) (AB
|
||||
|
||||
Computational Thinking Concept: AB = Abstraction; DE = Decomposition; AL = Algorithmic Thinking; EV = Evaluation; GE = Generalisation
|
||||
|
||||
|
@ -8,29 +8,159 @@ Welcome! This activity will teach how to construct a pendulum that glows using a
|
||||
|
||||
Create a **forever** loop that will constantly display the appropriate brightness on the LED display. Now let's measure the acceleration on the `y` axis and store that value in a variable. The `acceleration(y)` function will provide the value.
|
||||
|
||||

|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
})
|
||||
```
|
||||
|
||||
Since the micro:bit will be swinging up and down, we need to store the variable called jumps. We will set the variable called jumps to 0 to store the number 0.
|
||||
|
||||

|
||||
```blocks
|
||||
let jumps = 0
|
||||
basic.forever(() => {
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
})
|
||||
```
|
||||
|
||||
The function `acceleration(y)` gets the acceleration value (milli g-force), in the `y` dimension. If the `acceleration(y)`is greater than 2000 milli g-force, we will change jumps by 1.
|
||||
The function `acceleration(y)` gets the acceleration value (milli g-force), in the `y` dimension. If the `acceleration(y)`is greater than 2000 milli g-force, we will change jumps by 1. If jumping is greater than 2000 milli-gravities, then change jumps by 1 and display a smiley on the BBC micro:bit. Finally, we will remove the smiley image from the screen
|
||||
|
||||
If the `acceleration(y)`is greater than 2000 milli g-force, we will display the image with `show LEDs` to display a smiley face on the LEDs and `clear screen` to to turn off all the LED lights on the LED screen.
|
||||
|
||||

|
||||
```blocks
|
||||
let jumps = 0
|
||||
basic.forever(() => {
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
if (acc > 2000) {
|
||||
jumps = jumps + 1;
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.clearScreen()
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
Now let's register an event handler that will execute whenever an input button (A) is pressed during program execution.
|
||||
Now let's register an event handler that will execute whenever an input button (A) is pressed during program execution. If you press button A, then show the number of jumps greater than 2000 milli-gravities on the BBC micro:bit.
|
||||
|
||||

|
||||
```blocks
|
||||
let jumps = 0
|
||||
basic.forever(() => {
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
if (acc > 2000) {
|
||||
jumps = jumps + 1;
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.clearScreen()
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showNumber(jumps)
|
||||
})
|
||||
```
|
||||
|
||||
Let's show what the brightness of the micro:bit is by turning all the LEDs on!
|
||||
If you press button A+B together, then reset the jump counter to 0 on the BBC micro:bit. Finally, we will show the show the jump counter on the micro:bit
|
||||
|
||||

|
||||
|
||||
### ~avatar avatar
|
||||
```blocks
|
||||
let jumps = 0
|
||||
basic.forever(() => {
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
if (acc > 2000) {
|
||||
jumps = jumps + 1;
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.clearScreen()
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showNumber(jumps)
|
||||
})
|
||||
input.onButtonPressed(Button.AB, () => {
|
||||
let jumps = 0
|
||||
basic.showNumber(jumps)
|
||||
})
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/glowing-pendulum/challenges)!
|
||||
```
|
||||
|
||||
### ~
|
||||
We want to setup the radio communication between an additional micro:bit. We first must send number for jumps. The additional micro:bit will receive the number and show number on data received. We are now displaying the current jump count on the second micro:bit
|
||||
|
||||
```blocks
|
||||
let jumps = 0
|
||||
basic.forever(() => {
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
if (acc > 2000) {
|
||||
jumps = jumps + 1;
|
||||
radio.sendNumber(jumps)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.clearScreen()
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showNumber(jumps)
|
||||
})
|
||||
input.onButtonPressed(Button.AB, () => {
|
||||
let jumps = 0
|
||||
basic.showNumber(jumps)
|
||||
})
|
||||
radio.onDataReceived(() => {
|
||||
basic.showNumber(radio.receiveNumber())
|
||||
})
|
||||
|
||||
```
|
||||
We want to stop animation so every time the number of jumps increase by 1 the second micro:bit will not also display smiley from show leds. So we add the code stop animation
|
||||
|
||||
```blocks
|
||||
let jumps = 0
|
||||
basic.forever(() => {
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
if (acc > 2000) {
|
||||
jumps = jumps + 1;
|
||||
radio.sendNumber(jumps)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . # . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.clearScreen()
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showNumber(jumps)
|
||||
})
|
||||
input.onButtonPressed(Button.AB, () => {
|
||||
let jumps = 0
|
||||
basic.showNumber(jumps)
|
||||
})
|
||||
radio.onDataReceived(() => {
|
||||
basic.showNumber(radio.receiveNumber())
|
||||
led.stopAnimation()
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
|
||||
Connect the first micro:bit to your computer using your USB cable and run the pogo script on it.
|
||||
Connect the second micro:bit to your computer using your USB cable and run the pogo script on it.
|
||||
The first person and second person take turns jumping in the “y” direction while the other player uses the micro:bit to track the results on the micro:bit!
|
||||
|
@ -4,6 +4,6 @@ create a fake wifi app to trick your friends #abs #acceleration #if #math #plot
|
||||
|
||||
create a fake wifi app to trick your friends
|
||||
|
||||
* [tutorial](/microbit/lessons/prank-wifi/tutorial)
|
||||
* [activity](/microbit/lessons/prank-wifi/activity)
|
||||
* [quiz](/microbit/lessons/prank-wifi/quiz)
|
||||
* [challenges](/microbit/lessons/prank-wifi/challenges)
|
||||
|
@ -4,46 +4,42 @@ create a fake wifi app to trick your friends. #docs
|
||||
|
||||
## Before we get started
|
||||
|
||||
Complete the following guided tutorial:
|
||||
Complete the following exercise. Your code should look like this:
|
||||
|
||||
* [tutorial](/microbit/lessons/prank-wifi/tutorial)
|
||||
|
||||
At the end of the tutorial, click `keep editing`. Your code should look like this:
|
||||
|
||||
```
|
||||
```blocks
|
||||
basic.showString("Check Wifi", 150)
|
||||
basic.forever(() => {
|
||||
let xAccel = math.abs(input.acceleration("x"))
|
||||
let yAccel = math.abs(input.acceleration("y"))
|
||||
let zAccel = math.abs(input.acceleration("z"))
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum < 1400) {
|
||||
basic.plotImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # . .
|
||||
`)
|
||||
} else if (sum >= 1400 && sum < 1680) {
|
||||
basic.plotImage(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
. # # # .
|
||||
# # # # .
|
||||
`)
|
||||
}
|
||||
else if (sum >= 1680) {
|
||||
basic.plotImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
# . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
. # # # .
|
||||
# # # # .
|
||||
`)
|
||||
} else if (sum >= 1680) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
# . . . .
|
||||
`)
|
||||
}
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
**Challenge 1**
|
||||
@ -52,19 +48,17 @@ What if wanted to show the maximum connectivity of wifi instead of just 1, 3, or
|
||||
|
||||
Let's start by changing the first **IF** statement to `if sum <1200`.
|
||||
|
||||
Edit this line: **if** sum <1400 **then**
|
||||
Edit this line: if sum is greater than 1400 then just click on the `1400` and backspace until you can add your own number of `1200`.
|
||||
|
||||
Just click on the `1400` and backspace until you can add your own number of `1200`.
|
||||
|
||||
```
|
||||
```blocks
|
||||
basic.showString("Check Wifi", 150)
|
||||
basic.forever(() => {
|
||||
let xAccel1 = math.abs(input.acceleration("x"))
|
||||
let yAccel1 = math.abs(input.acceleration("y"))
|
||||
let zAccel1 = math.abs(input.acceleration("z"))
|
||||
let xAccel1 = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel1 = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel1 = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum1 = xAccel1 + yAccel1 + zAccel1
|
||||
if (sum1 < 1200) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
@ -72,7 +66,7 @@ basic.forever(() => {
|
||||
# # # . .
|
||||
`)
|
||||
} else if (sum1 >= 1400 && sum1 < 1680) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
@ -81,7 +75,7 @@ basic.forever(() => {
|
||||
`)
|
||||
}
|
||||
else if (sum1 >= 1680) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -96,15 +90,15 @@ basic.forever(() => {
|
||||
|
||||
Let's add an **IF** at the bottom of your code that checks to see if `sum >= to 1200` **and** if `sum <1400`
|
||||
|
||||
```
|
||||
```blocks
|
||||
basic.showString("Check Wifi", 150)
|
||||
basic.forever(() => {
|
||||
let xAccel2 = math.abs(input.acceleration("x"))
|
||||
let yAccel2 = math.abs(input.acceleration("y"))
|
||||
let zAccel2 = math.abs(input.acceleration("z"))
|
||||
let xAccel2 = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel2 = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel2 = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum2 = xAccel2 + yAccel2 + zAccel2
|
||||
if (sum2 < 1200) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
@ -112,7 +106,7 @@ basic.forever(() => {
|
||||
# # # . .
|
||||
`)
|
||||
} else if (sum2 >= 1400 && sum2 < 1680) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
@ -121,7 +115,7 @@ basic.forever(() => {
|
||||
`)
|
||||
}
|
||||
else if (sum2 >= 1680) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -130,7 +124,7 @@ basic.forever(() => {
|
||||
`)
|
||||
}
|
||||
if (sum2 >= 1200 && sum2 < 1400) {
|
||||
basic.plotImage(`
|
||||
basic.showLeds(`
|
||||
. . . . #
|
||||
. . . # #
|
||||
. . # # #
|
||||
@ -143,5 +137,5 @@ basic.forever(() => {
|
||||
|
||||
**Challenge 3**
|
||||
|
||||
Now it's your turn! Be creative and change the Wifi meter images to your own wifi image you're sure will prank your friends by editing the lines that call `plot image()`.
|
||||
Now it's your turn! Be creative and change the Wifi meter images to your own wifi image you're sure will prank your friends by editing the lines that call `showLeds()`.
|
||||
|
@ -14,7 +14,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let xAccel = math.abs(input.acceleration("x"))
|
||||
let yAccel = math.abs(input.acceleration("y"))
|
||||
let zAccel = math.abs(input.acceleration("z"))
|
||||
@ -28,7 +28,7 @@ let zAccel = math.abs(input.acceleration("z"))
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
```
|
||||
|
||||
@ -38,9 +38,9 @@ let sum = xAccel + yAccel + zAccel
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
if (sum < 1400) {
|
||||
basic.plotImage(`
|
||||
basic.showleds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
@ -58,9 +58,9 @@ if (sum < 1400) {
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
if (sum >= 1400 && sum < 1680) {
|
||||
basic.plotImage(`
|
||||
basic.showleds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
@ -80,7 +80,7 @@ if (sum >= 1400 && sum < 1680) {
|
||||
|
||||
```
|
||||
if (sum >= 1680) {
|
||||
basic.plotImage(`
|
||||
basic.showleds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
@ -6,7 +6,7 @@ shift an image horizontally across the display with offset #offset #screen #var
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [rock paper scissors tutorial](/microbit/lessons/rock-paper-scissors/tutorial).
|
||||
Use this activity document to guide your work in the [rock paper scissors tutorial](/microbit/lessons/rock-paper-scissors/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
@ -16,7 +16,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
## 2. Draw which LEDs are ON after running this code and the random number returned is 0
|
||||
|
||||
```
|
||||
```blocks
|
||||
let img = images.createImage(`
|
||||
. . . . . # # # # # . . . . #
|
||||
. # # # . # . . . # # # . # .
|
||||
@ -36,7 +36,7 @@ img.showImage(offset)
|
||||
|
||||
## 3. Draw which LEDs are ON after running this code with an offset of 5. This would occur if the random number returned is 1.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let img_ = images.createImage(`
|
||||
. . . . . # # # # # . . . . #
|
||||
. # # # . # . . . # # # . # .
|
||||
@ -56,7 +56,7 @@ img.showImage(offset)
|
||||
|
||||
## 4. Draw which LEDs are ON after running this code with an offset of 10. This would occur if the random number returned is 2.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let img_1 = images.createImage(`
|
||||
. . . . . # # # # # . . . . #
|
||||
. # # # . # . . . # # # . # .
|
||||
|
@ -10,10 +10,8 @@ While Loop
|
||||
|
||||
* [activity](/microbit/lessons/rotation-animation/activity)
|
||||
* [challenges](/microbit/lessons/rotation-animation/challenges)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
* [quiz](/microbit/lessons/rotation-animation/quiz)
|
||||
* [quiz answers](/microbit/lessons/rotation-animation/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
@ -38,17 +36,14 @@ while (true) {
|
||||
|
||||
basic.pause(20)
|
||||
}
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to create a global variable for a place where you can store data, accessible across functions, and in nested code blocks
|
||||
* learn how to set or change the value of a global variable
|
||||
* learn how to create a variable for a place where you can store data, accessible across functions, and in nested code blocks
|
||||
* learn how to set or change the value of a variable
|
||||
* learn how to repeat code while a condition is true
|
||||
* learn how to declare a global boolean variable to determine which code will execute next
|
||||
* learn how to declare a boolean variable to determine which code will execute next
|
||||
* learn how to run code when an input button is pressed
|
||||
* learn how to show a series of image frames on the LED screen
|
||||
* learn how to pause your code for the specified number of milliseconds
|
||||
|
@ -54,9 +54,6 @@ Now let's add to this by creating a condition for on button pressed `A` before t
|
||||
```blocks
|
||||
|
||||
let rotating = true;
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
serial.writeLine("hello")
|
||||
})
|
||||
while (rotating) {
|
||||
serial.writeLine("loop")
|
||||
basic.showLeds(`
|
||||
@ -88,8 +85,9 @@ while (rotating) {
|
||||
. . . . .
|
||||
`)
|
||||
}
|
||||
|
||||
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
serial.writeLine("hello")
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
@ -101,10 +99,6 @@ Now that we have the on button pressed condition, let's make the animation stop
|
||||
|
||||
```blocks
|
||||
let rotating = true;
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
serial.writeLine("hello")
|
||||
rotating = false
|
||||
})
|
||||
while (rotating) {
|
||||
serial.writeLine("loop")
|
||||
basic.showLeds(`
|
||||
@ -136,7 +130,10 @@ while (rotating) {
|
||||
. . . . .
|
||||
`)
|
||||
}
|
||||
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
serial.writeLine("hello")
|
||||
rotating = false
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
|
@ -4,44 +4,82 @@ Learn how to create a rotating image with a while loop. #image #loop #while #do
|
||||
|
||||
This is the answer key for the [rotation animation quiz](/microbit/lessons/rotation-animation/quiz).
|
||||
|
||||
## 1. What is a "global variable"?
|
||||
## 1. What is a " variable"?
|
||||
|
||||
Answers may vary. A global variable is a place where you can store data so that you can use it later in your code.
|
||||
Answers may vary. A variable is a place where you can store data so that you can use it later in your code.
|
||||
|
||||
## 2. Consider the following directions
|
||||
## 2. Write the code to create a ** variable** called `foo` that stores a boolean and initialize it to **false**.
|
||||
|
||||
Write the code to create a **global variable** called `foo` that stores a boolean and initialize it to **false**.
|
||||
|
||||
```
|
||||
rotating = true
|
||||
|
||||
```blocks
|
||||
let rotating = true;
|
||||
```
|
||||
|
||||
## 3. Consider the following code
|
||||
## 3. Explain what this line of code does.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let rotating = true;
|
||||
while (rotating) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Explain what this line of code does.
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
It is a **while** loop that will be executed only if the **global variable** called `rotating` is **true**.
|
||||
It is a **while** loop that will be executed only if the ** variable** called `rotating` is **true**.
|
||||
|
||||
## 4. Consider the following code
|
||||
## 4. If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed. Explain why that particular area is shaded.
|
||||
|
||||
```
|
||||
basic.showAnimation(`
|
||||
# . . . . . . # . . . . . . # . . . . .
|
||||
. # . . . . . # . . . . . # . . . . . .
|
||||
. . # . . . . # . . . . # . . # # # # #
|
||||
. . . # . . . # . . . # . . . . . . . .
|
||||
. . . . # . . # . . # . . . . . . . . .
|
||||
`, 400)
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
. . # . .
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
# # # # #
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . #
|
||||
. . . # .
|
||||
. . # . .
|
||||
. # . . .
|
||||
# . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . #
|
||||
. . . # .
|
||||
. . # . .
|
||||
. # . . .
|
||||
# . . . .
|
||||
`)
|
||||
|
||||
```
|
||||
|
||||
If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed. Explain why that particular area is shaded.
|
||||
|
||||
|
||||

|
||||
|
||||
|
@ -6,37 +6,75 @@ Learn how to create a rotating image with a while loop. #image #loop #while #do
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [rotation animation tutorial](/microbit/lessons/rotation-animation/tutorial).
|
||||
Use this activity document to guide your work in the [rotation animation tutorial](/microbit/lessons/rotation-animation/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
## 1. What is a "global variable"?
|
||||
## 1. What is a " variable"?
|
||||
|
||||
<br />
|
||||
|
||||
## 2. Write the code to create a global variable called foo that stores a boolean and initialize it to false.
|
||||
## 2. Write the code to create a variable called foo that stores a boolean and initialize it to false.
|
||||
|
||||
<br/>
|
||||
|
||||
## 3. Explain why you use a while loop with a global variable
|
||||
## 3. Explain why you use a while loop with a variable
|
||||
|
||||
```
|
||||
```blocks
|
||||
let rotating = true;
|
||||
while (rotating) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
<br/>
|
||||
|
||||
## 4. Draw the areas on the micro:bits to illustrate the code below. Explain why you chose to draw in those areas.
|
||||
|
||||
```
|
||||
basic.showAnimation(`
|
||||
# . . . . . . # . . . . . . # . . . . .
|
||||
. # . . . . . # . . . . . # . . . . . .
|
||||
. . # . . . . # . . . . # . . # # # # #
|
||||
. . . # . . . # . . . # . . . . . . . .
|
||||
. . . . # . . # . . # . . . . . . . . .
|
||||
`, 400)
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
. . # . .
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
# # # # #
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . #
|
||||
. . . # .
|
||||
. . # . .
|
||||
. # . . .
|
||||
# . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . #
|
||||
. . . # .
|
||||
. . # . .
|
||||
. # . . .
|
||||
# . . . .
|
||||
`)
|
||||
|
||||
```
|
||||
|
||||

|
||||
|
@ -13,14 +13,14 @@ Welcome! This tutorial will help you make a smiley face blink. Let's get started
|
||||
Create an animation with an image displaying a smiley face and the next image with no LEDs lit up. This will make it look like the smiley face is blinking as the display switches between images.
|
||||
|
||||
```blocks
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
|
@ -8,14 +8,14 @@ Complete the [smiley activity](/microbit/lessons/smiley/activity) and your code
|
||||
|
||||
|
||||
```blocks
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -33,14 +33,14 @@ Let's make add code that will run when button A is pressed!
|
||||
|
||||
|
||||
```blocks
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -59,14 +59,14 @@ input.onButtonPressed(Button.A, () => {
|
||||
Now, we want to show a frowny face when this button is pressed. Let's show the LEDs.
|
||||
|
||||
```blocks
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -74,7 +74,7 @@ basic.showAnimation(`
|
||||
. . . . .
|
||||
`)
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showAnimation(`
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
|
@ -51,7 +51,7 @@ basic.forever(() => {
|
||||
. . # . .
|
||||
`)
|
||||
})
|
||||
```blocks
|
||||
```
|
||||
|
||||
Run your code in the simulator or download it to your BBC micro:bit to see what happens!
|
||||
|
||||
|
@ -6,25 +6,59 @@ Coding challenges for snowflake fall.
|
||||
|
||||
Complete the [snowflake fall](/microbit/lessons/snowflake-fall/activity) activity and your code will look like this:
|
||||
|
||||

|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # # .
|
||||
. . # . .
|
||||
. . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # . # .
|
||||
# . . . #
|
||||
. # . # .
|
||||
. . # . .
|
||||
`)
|
||||
})
|
||||
```
|
||||
|
||||
### Challenge 1
|
||||
|
||||
### @video td/videos/snowflake-fall-1
|
||||
|
||||
Let's begin creating our falling effect by adding another snowflake with `show LEDs` that displays a different snowflake pattern after the first one. We need 2 frames in the new animation that display both the first and the second snowflake images.
|
||||
|
||||

|
||||
|
||||
* Run your program to see the cool animation.
|
||||
|
||||
### Challenge 2
|
||||
|
||||
### @video td/videos/snowflake-fall-2
|
||||
|
||||
To finalize our snowflake fall, let's add a different snowflake pattern.
|
||||
|
||||

|
||||
```blocks
|
||||
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # # .
|
||||
. . # . .
|
||||
. . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # . # .
|
||||
# . . . #
|
||||
. # . # .
|
||||
. . # . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
. # . # .
|
||||
# # # # #
|
||||
. # . # .
|
||||
`)
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
|
||||
* Run your program and see if it works.
|
||||
|
||||
|
@ -28,7 +28,24 @@ basic.forever(() => {
|
||||
|
||||

|
||||
|
||||

|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # # .
|
||||
. . # . .
|
||||
. . . . .
|
||||
`);
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
});
|
||||
```
|
||||
|
||||
## 4. Write the code for a forever loop and show LEDS for these images!
|
||||
|
||||
@ -36,5 +53,21 @@ basic.forever(() => {
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # # .
|
||||
. . # . .
|
||||
. . . . .
|
||||
`);
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# # . # #
|
||||
# . # . #
|
||||
# # . # #
|
||||
# # # # #
|
||||
`)
|
||||
});
|
||||
```
|
38
docs/lessons/speed-button.md
Normal file
38
docs/lessons/speed-button.md
Normal file
@ -0,0 +1,38 @@
|
||||
# speed button lesson
|
||||
|
||||
code a speed game by declaring Booleans on the BBC micro:bit #if #string #var #data #docs
|
||||
|
||||
### @video td/videos/speed-button-3
|
||||
|
||||
## Topic
|
||||
|
||||
Running Time
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/microbit/lessons/speed-button/activity)
|
||||
* [quiz](/microbit/lessons/speed-button/quiz)
|
||||
* [quiz answers](/microbit/lessons/speed-button/quiz-answers)
|
||||
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to declare a **Boolean** variable, `var t:= true` `var f:=false` for one of two possible values: true or false. We will be learning how to declare Boolean variables using global variables, if (conditionals), input on button pressed, input running time, as well as simple commands, such as input on button pressed, and show string.
|
||||
|
||||
## Documentation
|
||||
|
||||
* **running time** : [read more...](/microbit/reference/input/running-time)
|
||||
* **global variable** : [read more...](/microbit/js/data)
|
||||
* **Boolean** : [read more...](/microbit/reference/types/boolean)
|
||||
* **on button pressed** : [read more...](/microbit/reference/input/on-button-pressed)
|
||||
* **if** : [read more...](/microbit/reference/logic/if)
|
||||
* **show string** : [read more...](/microbit/reference/basic/show-string)
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to get the number of milliseconds elapsed since the script began. 1,000 milliseconds = 1 second
|
||||
* learn how to create a global variable to store data so that you can use it later in your code and will be accessible across functions and in nested code blocks
|
||||
* learn how to create a Boolean with one of two possible values: true or false
|
||||
* learn how to run code when an input button is pressed
|
||||
* learn how to conditionally run code depending on whether a condition is true or not
|
||||
* learn how to show a string on the LED screen one character at a time
|
@ -6,11 +6,9 @@ Coding challenges for the speed button tutorial. #docs
|
||||
|
||||
Complete the following guided tutorial:
|
||||
|
||||
* [tutorial](/microbit/lessons/speed-button/tutorial)
|
||||
Your starting code should look like this:
|
||||
|
||||
At the end of the tutorial, click `keep editing`. Your code should look like this:
|
||||
|
||||
```
|
||||
```blocks
|
||||
let counter = 0
|
||||
let fastPress = false
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
@ -22,7 +20,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
|
||||
We need to know when the user has hit button `A` 15 times. The user wins when he/she is able to accomplish this in less than 5000 milliseconds (5 seconds). We can check for both conditions by using an `and` operator. When using an `and` operator, both conditions need to be true in order for the condition to be true.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let counter1 = 0
|
||||
let fastPress1 = false
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
@ -34,7 +32,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
|
||||
Next, if the user has won, let's set our boolean to true. This indicates that he or she has won.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let counter2 = 0
|
||||
let fastPress2 = false
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
@ -49,7 +47,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
|
||||
We want to set `fastPress` to false if the user was too slow. To do so, we need another condition to see if the user took more than 5000 milliseconds (5 seconds). In the `if` statement, set `fastPress` to false.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let counter3 = 0
|
||||
let fastPress3 = false
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
@ -69,7 +67,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
|
||||
Now let's display if the user won or lost. To do so, we need to check the status of `fastPress` when the game is finished, and then show the correct message.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let counter4 = 0
|
||||
let fastPress4 = false
|
||||
input.onButtonPressed(Button.A, () => {
|
@ -12,7 +12,7 @@ A variable that is available throughout your main function.
|
||||
|
||||
## 2. If the rectangle below represents the BBC micro:bit, shade the area that shows the value of the variable count.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let count = 0
|
||||
```
|
||||
|
||||
@ -20,7 +20,7 @@ let count = 0
|
||||
|
||||
## 3. If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed after two button presses on Button A. Explain why that particular area is shaded.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
@ -36,7 +36,7 @@ After two button presses, **count** will be equal to 2.
|
||||
|
||||
## 5. If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed after five button presses on Button A. Explain why that particular area is shaded.
|
||||
|
||||
```
|
||||
```blocks
|
||||
count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
@ -14,7 +14,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
## 2. Draw which LEDs show the number being stored as a global variable called count
|
||||
|
||||
```
|
||||
```blocks
|
||||
let count = 0
|
||||
```
|
||||
|
||||
@ -22,7 +22,7 @@ let count = 0
|
||||
|
||||
## 3. Draw which LED is ON after running this code and pressing Button A twice. Explain why you chose to draw that number
|
||||
|
||||
```
|
||||
```blocks
|
||||
let count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
@ -36,7 +36,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
|
||||
## 4. Draw which LED is ON after running this code and pressing Button A five times. Explain why you chose to draw that number.
|
||||
|
||||
```
|
||||
```blocks
|
||||
count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
@ -12,6 +12,8 @@ If (Conditionals)
|
||||
|
||||
* [activity](/microbit/lessons/spinner/activity)
|
||||
* [challenges](/microbit/lessons/spinner/challenges)
|
||||
* [quiz](/microbit/lessons/spinner/quiz)
|
||||
* [quiz answers](/microbit/lessons/spinner/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -12,19 +12,95 @@ Welcome! This guided tutorial will teach how to program a script that randomly p
|
||||
|
||||
Let's begin by adding an `on shake` condition to know when the micro:bit is shaken.
|
||||
|
||||

|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
|
||||
})
|
||||
```
|
||||
|
||||
Now let's randomly generate a number from 0 to 3 so that we can randomly display an arrow in a given direction.
|
||||
|
||||

|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let randomArrow = Math.random(4)
|
||||
if (randomArrow == 3) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
|
||||
Now let's handle each of the cases by displaying the appropriate arrow. (Let's display an up arrow if `random arrow` is 0.
|
||||
|
||||

|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let randomArrow = Math.random(4)
|
||||
if (randomArrow == 3) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 2) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
Now let's handle the rest of the cases for `random arrow`.
|
||||
|
||||

|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let randomArrow = Math.random(4)
|
||||
if (randomArrow == 3) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 2) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 1) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # # #
|
||||
. # # . .
|
||||
. . # . .
|
||||
`)
|
||||
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
|
@ -6,21 +6,164 @@ Create an arrow that randomly points to a player.
|
||||
|
||||
Complete the following [guided tutorial](/microbit/lessons/spinner/activity), your code should look like this:
|
||||
|
||||

|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let randomArrow = Math.random(4)
|
||||
if (randomArrow == 3) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 2) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 1) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # # #
|
||||
. # # . .
|
||||
. . # . .
|
||||
`)
|
||||
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
### Challenge 1
|
||||
|
||||
Modify the random number generator so that it can include new arrows we will create in the next challenge.
|
||||
|
||||

|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let randomArrow = Math.random(8)
|
||||
if (randomArrow == 3) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 2) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 1) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # # #
|
||||
. # # . .
|
||||
. . # . .
|
||||
`)
|
||||
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
|
||||
* Do **not** run the code yet because it will not work until you have conditions for every random number.
|
||||
|
||||
### Challenge 2
|
||||
|
||||
Let's add four more arrows that point diagonally.
|
||||
Let's add more arrows that point diagonally.
|
||||
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let randomArrow = Math.random(8)
|
||||
if (randomArrow == 7) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 6) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .
|
||||
`)
|
||||
}
|
||||
if (randomArrow == 5) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # # #
|
||||
. # # . .
|
||||
. . # . .
|
||||
`)
|
||||
|
||||
}
|
||||
if (randomArrow == 4) {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. . . # .
|
||||
# # # # #
|
||||
. . . # .
|
||||
. . # . .
|
||||
`)
|
||||
|
||||
}
|
||||
|
||||
if (randomArrow == 3) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# # # # .
|
||||
# # # # .
|
||||
# . . # .
|
||||
. . . . #
|
||||
`)
|
||||
|
||||
}
|
||||
if (randomArrow == 2) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# # # # #
|
||||
. . # # #
|
||||
. # . # #
|
||||
# . . . #
|
||||
`)
|
||||
|
||||
}
|
||||
if (randomArrow == 1) {
|
||||
basic.showLeds(`
|
||||
# . . . #
|
||||
# # . # .
|
||||
# # # . .
|
||||
# # # # .
|
||||
# # # # #
|
||||
`)
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
```
|
||||
|
||||

|
||||
|
||||
* Run your code to see if it works as expected
|
||||
|
||||
|
@ -14,7 +14,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let randomArrow = Math.random(4)
|
||||
```
|
||||
|
||||
@ -24,7 +24,7 @@ let randomArrow = Math.random(4)
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
if (randomArrow == 1) {
|
||||
basic.plotImage(`
|
||||
. . # . .
|
||||
@ -42,7 +42,7 @@ if (randomArrow == 1) {
|
||||
|
||||
<br />
|
||||
|
||||
```
|
||||
```blocks
|
||||
if (randomArrow == 2) {
|
||||
basic.plotImage(`
|
||||
. . # . .
|
||||
|
@ -6,7 +6,7 @@ a spin the BBC micro:bit game with the input on shake #math #random #docs #shake
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [spinner tutorial](/microbit/lessons/spinner/tutorial).
|
||||
Use this activity document to guide your work in the [spinner tutorial](/microbit/lessons/spinner/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -12,6 +12,8 @@ For Loop
|
||||
|
||||
* [activity](/microbit/lessons/strobe-light/activity)
|
||||
* [challenges](/microbit/lessons/strobe-light/challenges)
|
||||
* [quiz](/microbit/lessons/strobe-light/quiz)
|
||||
* [quiz answers](/microbit/lessons/strobe-light/quiz-answers)
|
||||
|
||||
## Documentation
|
||||
|
||||
|
@ -45,7 +45,14 @@ for (let i = 0; i < 5; i++) {
|
||||
|
||||
The pause will add a delay between lighting each LED.
|
||||
|
||||

|
||||
```blocks
|
||||
for (let i = 0; i < 5; i++) {
|
||||
for (let j = 0; j < 5; j++) {
|
||||
led.plot(i, j)
|
||||
basic.pause(200)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
|
@ -10,7 +10,7 @@ Answers will vary. In general, for loop refers to the code that repeats for a fi
|
||||
|
||||
## 2. Consider the following code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i = 0; i < 5; i++) {
|
||||
for (let j = 0; j < 5; j++) {
|
||||
led.plot(i, j)
|
||||
@ -30,7 +30,7 @@ This code turns on specific LED. Plot turns on the specified LED on the LED scre
|
||||
|
||||
## 3. Consider the following code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i1 = 0; i1 < 3; i1++) {
|
||||
for (let j1 = 0; j1 < 3; j1++) {
|
||||
led.plot(i1, j1)
|
||||
@ -50,7 +50,7 @@ This code turns on specific LED. Plot turns on the specified LED on the LED scre
|
||||
|
||||
## 4. Consider the following code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i2 = 0; i2 < 2; i2++) {
|
||||
for (let j2 = 0; j2 < 2; j2++) {
|
||||
led.plot(i2, j2)
|
||||
|
@ -6,7 +6,7 @@ Learn how to create a blinking LED script with a for loop. #LED #screen #plot #d
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [strobe light tutorial](/microbit/lessons/strobe-light/tutorial)
|
||||
Use this activity document to guide your work in the [strobe light tutorial](/microbit/lessons/strobe-light/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
@ -14,7 +14,7 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
## 2. Draw which LEDs are ON after running this code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i = 0; i < 5; i++) {
|
||||
for (let j = 0; j < 5; j++) {
|
||||
led.plot(i, j)
|
||||
@ -26,7 +26,7 @@ for (let i = 0; i < 5; i++) {
|
||||
|
||||
## 3. Draw which LEDs are ON after running this code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i1 = 0; i1 < 3; i1++) {
|
||||
for (let j1 = 0; j1 < 3; j1++) {
|
||||
led.plot(i1, j1)
|
||||
@ -38,7 +38,7 @@ for (let i1 = 0; i1 < 3; i1++) {
|
||||
|
||||
## 4. Draw which LEDs are ON after running this code
|
||||
|
||||
```
|
||||
```blocks
|
||||
for (let i2 = 0; i2 < 2; i2++) {
|
||||
for (let j2 = 0; j2 < 2; j2++) {
|
||||
led.plot(i2, j2)
|
||||
|
@ -9,10 +9,8 @@ Telegraph
|
||||
## Quick Links
|
||||
|
||||
* [activity](/microbit/lessons/telegraph/activity)
|
||||
* [challenges](/microbit/lessons/telegraph/challenges)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -67,10 +67,9 @@ Using the 4th crocodile clip, connect the unattached end of the crocodile clip o
|
||||
|
||||

|
||||
|
||||
Your telegraph is ready!
|
||||
|
||||
### Step 10
|
||||
### ~avatar avatar
|
||||
|
||||
* Connect the first micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* Connect the second micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* The first person and second person take turns pressing button A to play the telegraph game!
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/telegraph/challenges)!
|
||||
|
||||
### ~
|
||||
|
114
docs/lessons/telegraph/challenges.md
Normal file
114
docs/lessons/telegraph/challenges.md
Normal file
@ -0,0 +1,114 @@
|
||||
# telegraph activity
|
||||
|
||||
Build a telgraph #microbit #docs
|
||||
|
||||
# micro:bit telegraph
|
||||
|
||||
|
||||
|
||||
|
||||
Have you ever tried to communicate through a telegraph? Let's try coding a "Telegraph" on two BBC micro:bits !
|
||||
|
||||
|
||||
Complete the following [guided tutorial](/microbit/lessons/telegraph/activity), your hack should look like this:
|
||||
|
||||

|
||||
|
||||
### Step 1
|
||||
|
||||
We now need to digitally write to the specified pin (P0) as digital. Let's start by adding the code in the pin drawer that includes 'digital write (0,1) to pin P0'.. Then insert 1 for digital write.
|
||||
|
||||
```blocks
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
|
||||
```
|
||||
|
||||
### Step 2
|
||||
|
||||
We want to add a block to turn on an LED in the middle area of the LED display using plot x, y. So insert the appropriate LED plot x, y.
|
||||
|
||||
```blocks
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
|
||||
```
|
||||
|
||||
### Step 3
|
||||
|
||||
We want to insert a condition that tells us when to turn on the LED. So insert the if block under logic drawer. Then add a condition that occurs if we do not turn on a LED with plot x, y. We also should plot an LED on the display if button A is pressed. Your code should appear as follows:
|
||||
|
||||
```blocks
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
} else {
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Step 4
|
||||
|
||||
We want to write code if button A is NOT pressed. It is important to say that digital write is not on. We also want to turn off all LED lights on the LED screen
|
||||
|
||||
```blocks
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
} else {
|
||||
pins.digitalWritePin(DigitalPin.P0, 0)
|
||||
basic.clearScreen()
|
||||
}
|
||||
```
|
||||
|
||||
### Step 5
|
||||
|
||||
Let's add a forever loop so this code runs in the background forever. Modify your code so that your code looks like this. Run the code and press Button A.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
} else {
|
||||
pins.digitalWritePin(DigitalPin.P0, 0)
|
||||
basic.clearScreen()
|
||||
}
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
### Step 6
|
||||
|
||||
|
||||
We now need to digitally read to the specified pin (P1) as digital. Let's start by going to the pin drawer and adding digital read pin (0,1) and changing the pin to P1. Now we need to create a condition for digital read pin (0,1). So we go to the logic drawer and select the comparison operator. Then we want to set the comparison operator to 1 to turn on digital read on pin 1. We want to insert a condition that tells us if button A is pressed and we should turn on digital read on pin 1. So insert the if block under logic drawer. Then add a condition that occurs if digital read on P1 is on. Then we want to plot x, y at the x, y coordinates of 2,2. we also want to say that if digital read pin P1 is not on, we want to turn off all LED lights on the screen. Your code should appear as follows:
|
||||
|
||||
```blocks
|
||||
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
|
||||
led.plot(2, 2);
|
||||
}
|
||||
else {
|
||||
basic.clearScreen();
|
||||
}
|
||||
basic.forever(() => {
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1);
|
||||
led.plot(2, 2);
|
||||
}
|
||||
else {
|
||||
pins.digitalWritePin(DigitalPin.P0, 0);
|
||||
basic.clearScreen();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
Your telegraph is ready!
|
||||
|
||||
### Step 7
|
||||
|
||||
* Connect the first micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* Connect the second micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* The first person and second person take turns pressing button A to play the telegraph game!
|
@ -12,6 +12,8 @@ If (Conditionals)
|
||||
|
||||
* [activity](/microbit/lessons/truth-or-dare/activity)
|
||||
* [challenges](/microbit/lessons/truth-or-dare/challenges)
|
||||
* [quiz](/microbit/lessons/truth-or-dare/quiz)
|
||||
* [quiz answers](/microbit/lessons/truth-or-dare/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -6,13 +6,14 @@ This is the answer key for the [truth or dare quiz](/microbit/lessons/truth-or-d
|
||||
|
||||
## 1. Write the code that will randomly return 0 through 3 and stores the value inside a local variable called 'random'.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let random = Math.random(4)
|
||||
```
|
||||
|
||||
## 2. Write an if statement that will display the message "TRUTH" on the BBC micro:bit if the local variable 'random' equals 0.
|
||||
|
||||
```
|
||||
```blocks
|
||||
let random = Math.random(4)
|
||||
if (random == 0) {
|
||||
basic.showString("TRUTH", 150)
|
||||
}
|
||||
@ -26,13 +27,16 @@ DARE
|
||||
|
||||

|
||||
|
||||
```
|
||||
basic.plotImage(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
```blocks
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showLeds(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# # # # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
`)
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
|
@ -6,7 +6,7 @@ a multi-player game that forces each player to reveal a secret or something funn
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [truth or dare tutorial](/microbit/lessons/truth-or-dare/tutorial).
|
||||
Use this activity document to guide your work in the [truth or dare tutorial](/microbit/lessons/truth-or-dare/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -12,6 +12,8 @@ Acceleration
|
||||
|
||||
* [activity](/microbit/lessons/zoomer/activity)
|
||||
* [challenges](/microbit/lessons/zoomer/challenges)
|
||||
* [quiz](/microbit/lessons/zoomer/quiz)
|
||||
* [quiz answers](/microbit/lessons/zoomer/quiz-answers)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
@ -21,12 +23,10 @@ Learn how to get the **acceleration**, `acceleration` in one of three specified
|
||||
|
||||
```docs
|
||||
basic.forever(() => {
|
||||
|
||||
})
|
||||
let x = 0
|
||||
input.acceleration(Dimension.X)
|
||||
if (true) {
|
||||
|
||||
}
|
||||
input.buttonIsPressed(Button.A)
|
||||
basic.showNumber(0)
|
||||
|
@ -14,7 +14,7 @@ Write the line of code to measure the acceleration and then store in it a variab
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let accX_ = input.acceleration("x")
|
||||
```
|
||||
|
||||
@ -26,9 +26,9 @@ After storing the acceleration in a variable, write the code to show acceleratio
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let accX = input.acceleration("x")
|
||||
basic.showNumber(accX_, 150)
|
||||
basic.showNumber(accX, 150)
|
||||
```
|
||||
|
||||
Note: make sure the same variable name ("acc x" in this case) is the same in both lines of code..
|
||||
|
@ -6,7 +6,7 @@ Measure the acceleration on the micro:bit in the "z" direction #LED #number #mat
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [zoomer tutorial](/microbit/lessons/zoomer/tutorial)
|
||||
Use this activity document to guide your work in the [zoomer tutorial](/microbit/lessons/zoomer/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -1,8 +0,0 @@
|
||||
# catch the egg
|
||||
|
||||
Programming a game of 'catch the egg' using the accelerometer in Touch Develop #docs #functions #var
|
||||
|
||||
Programming a game of 'catch the egg' using the accelerometer
|
||||
|
||||
* [tutorial](/microbit/lessons/catch-the-egg-game/tutorial)
|
||||
* [challenges](/microbit/lessons/catch-the-egg/challenges)
|
@ -4,14 +4,10 @@ These challenges will teach you how to create a fun charades game to play with y
|
||||
|
||||
## Before we get started
|
||||
|
||||
Complete the following guided tutorial:
|
||||
Your beginning code should look like this:
|
||||
|
||||
* [tutorial](/microbit/lessons/headbands/tutorial)
|
||||
|
||||
At the tend of the tutorial, click `keep editing`. Your code should look like this:
|
||||
|
||||
```
|
||||
coll = (<string[]>[])
|
||||
```blocks
|
||||
let coll = (<string[]>[])
|
||||
coll.push("puppy")
|
||||
coll.push("clock")
|
||||
coll.push("night")
|
||||
@ -32,9 +28,23 @@ game.startCountdown(30000)
|
||||
|
||||
Let's add more words for the player to act out! But first, we need to increase the time in one round to give the player more time get through all the words. Let's change the `game->start countdown` statement.
|
||||
|
||||
```
|
||||
// **. . .**
|
||||
game.startCountdown(60000) // ***
|
||||
```blocks
|
||||
let coll = (<string[]>[])
|
||||
coll.push("puppy")
|
||||
coll.push("clock")
|
||||
coll.push("night")
|
||||
coll.push("cat")
|
||||
coll.push("cow")
|
||||
input.onLogoUp(() => {
|
||||
let index = Math.random(coll.length)
|
||||
let word = coll[index]
|
||||
basic.showString(word, 150)
|
||||
})
|
||||
input.onScreenDown(() => {
|
||||
game.addScore(1)
|
||||
})
|
||||
|
||||
game.startCountdown(60000)
|
||||
```
|
||||
|
||||
* Run your code to see if it works as expected
|
||||
@ -43,19 +53,26 @@ game.startCountdown(60000) // ***
|
||||
|
||||
Now let's add 5 more words to our list of charade words. Right above the the line `word:=coll->at(index)` add 5 lines that say `coll->add("")`. In this example, we will add the words **bicycle, telephone, sun, car, and ant** but you can add whatever words you like.
|
||||
|
||||
```
|
||||
// . . .
|
||||
coll.push("puppy")
|
||||
```blocks
|
||||
let coll.push("puppy")
|
||||
coll.push("clock")
|
||||
coll.push("night")
|
||||
coll.push("cat")
|
||||
coll.push("cow")
|
||||
coll.push("bicycle") // ***
|
||||
coll.push("telephone") // ***
|
||||
coll.push("sun") // ***
|
||||
coll.push("car") // ***
|
||||
coll.push("ant") // ***
|
||||
// . . .
|
||||
coll.push("bicycle")
|
||||
coll.push("telephone")
|
||||
coll.push("sun")
|
||||
coll.push("car")
|
||||
coll.push("ant")
|
||||
input.onLogoUp(() => {
|
||||
let index = Math.random(coll.length)
|
||||
let word = coll[index]
|
||||
basic.showString(word, 150)
|
||||
})
|
||||
input.onScreenDown(() => {
|
||||
game.addScore(1)
|
||||
})
|
||||
game.startCountdown(30000)
|
||||
```
|
||||
|
||||
* Run your code to see if it works as expected.
|
||||
|
@ -18,8 +18,8 @@ A 'collection' is a group of variables of the same type stored together. A 'coll
|
||||
|
||||
## 2. Consider the following lines of code.
|
||||
|
||||
```
|
||||
coll = (<string[]>[])
|
||||
```blocks
|
||||
let coll = (<string[]>[])
|
||||
coll.push("puppy")
|
||||
coll.push("clock")
|
||||
```
|
||||
@ -28,14 +28,14 @@ Write the line of code that will display the string "puppy" using `data->coll`.
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
basic.showString(coll[0], 150)
|
||||
```
|
||||
|
||||
## 3. Consider the following lines of code.
|
||||
|
||||
```
|
||||
coll = (<string[]>[])
|
||||
```blocks
|
||||
let coll = (<string[]>[])
|
||||
coll.push("puppy")
|
||||
coll.push("clock")
|
||||
coll.push("cat")
|
||||
@ -45,22 +45,22 @@ Write the line of code that will display the string "cat" using `data->coll`.
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
basic.showString(coll[2], 150)
|
||||
```
|
||||
|
||||
## 4. Consider the following line of code.
|
||||
|
||||
```
|
||||
coll = (<string[]>[])
|
||||
```blocks
|
||||
let coll = (<string[]>[])
|
||||
```
|
||||
|
||||
Write the five (5) lines of code that will add the following five words to `data->coll`: puppy, clock, night, cat, cow.
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
coll.push("puppy")
|
||||
```blocks
|
||||
let coll.push("puppy")
|
||||
coll.push("clock")
|
||||
coll.push("night")
|
||||
coll.push("cat")
|
||||
@ -71,7 +71,7 @@ coll.push("cow")
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let index = Math.random(coll.length)
|
||||
let word = coll[index]
|
||||
```
|
||||
|
@ -18,8 +18,8 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
|
||||
## 2. Write the line of code that will display the string "puppy" using "data->coll".
|
||||
|
||||
```
|
||||
coll = (<string[]>[])
|
||||
```blocks
|
||||
let coll = (<string[]>[])
|
||||
coll.push("puppy")
|
||||
coll.push("clock")
|
||||
```
|
||||
@ -28,8 +28,8 @@ coll.push("clock")
|
||||
|
||||
## 3. Write the line of code that will display the string "cat" using `"data->coll".
|
||||
|
||||
```
|
||||
coll = (<string[]>[])
|
||||
```blocks
|
||||
let coll = (<string[]>[])
|
||||
coll.push("puppy")
|
||||
coll.push("clock")
|
||||
coll.push("cat")
|
||||
@ -40,7 +40,7 @@ coll.push("cat")
|
||||
## 4. Write the five (5) lines of code that will add the following five words to `data->coll`: puppy, clock, night, cat, cow.
|
||||
|
||||
```
|
||||
coll = (<string[]>[])
|
||||
let coll = (<string[]>[])
|
||||
```
|
||||
|
||||
<br/>
|
||||
|
@ -1,25 +0,0 @@
|
||||
# ornament chain lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
|
||||
## Topic
|
||||
|
||||
Telegraph
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/microbit/lessons/ornament-chain/activity)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to convert your BBC micro:bit into a telegraph using a second BBC micro:bit as well as pin P1, P2, 3V, GND, and crocodile clips (or spring clips). The connect BBC micro:bit uses pins P1, P2, 3V, GND.
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to setup the BBC micro:bit with crocodile clips
|
||||
* learn how to telegraph to another BBC micro:bit
|
||||
|
@ -1,133 +0,0 @@
|
||||
# speed button lesson
|
||||
|
||||
code a speed game by declaring Booleans on the BBC micro:bit #if #string #var #data #docs
|
||||
|
||||
### @video td/videos/speed-button-3
|
||||
|
||||
## Topic
|
||||
|
||||
Running Time
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [tutorial](/microbit/lessons/speed-button/tutorial)
|
||||
* [quiz](/microbit/lessons/speed-button/quiz)
|
||||
* [quiz answers](/microbit/lessons/speed-button/quiz-answers)
|
||||
* [challenges](/microbit/lessons/speed-button/challenges)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to declare a **Boolean** variable, `var t:= true` `var f:=false` for one of two possible values: true or false. We will be learning how to declare Boolean variables using global variables, if (conditionals), input on button pressed, input running time, as well as simple commands, such as input on button pressed, and show string.
|
||||
|
||||
## What the teacher needs to know
|
||||
|
||||
* Algorithm: An unambiguous set of rules or a precise step-bystep guide to solve a problem or achieve a particular objective.
|
||||
* Command: An instruction for the computer to execute, written in a particular programming language.
|
||||
* Data: A structured set of numbers, possibly representing digitised text, images, sound or video, which can be processed or transmitted by a computer, also used for numerical (quantitative) information.
|
||||
* Decomposing: The process through which problems or systems are broken down into their component parts, each of which may then be considered separately.
|
||||
* Hardware: The physical systems and components of digital devices; see also software.
|
||||
* Input: Data provided to a computer system, such as via a keyboard, mouse, microphone, camera or physical sensors.
|
||||
* Output: The information produced by a computer system for its user, typically on a screen, through speakers or on a printer, but possibly through the control of motors in physical systems.
|
||||
* Programmable toys: Robots designed for children to use, accepting input, storing short sequences of simple instructions and moving according to this stored program.
|
||||
* Program: A stored set of instructions encoded in a language understood by the computer that does some form of computation, processing input and/or stored data to generate output.
|
||||
* Repetition: Executing a section of computer code a number of times as part of the program.
|
||||
* Script: A computer program typically executed one line at a time through an interpreter, such as the instructions for a Scratch character.
|
||||
* Selection: A programming construct in which one section of code or another is executed depending on whether a particular condition is met.
|
||||
* Sequence: To place program instructions in order, with each executed one after the other.
|
||||
* Simulation: Using a computer to model the state and behaviour of real-world (or imaginary) systems, including physical or social systems; an integral part of most computer games.
|
||||
* Variables: A way in which computer programs can store, retrieve or change data, such as a score, the time left, or the user’s name.
|
||||
|
||||
**QuickStart Computing Glossary
|
||||
|
||||
## Documentation
|
||||
|
||||
* **running time** : [read more...](/microbit/reference/input/running-time)
|
||||
* **global variable** : [read more...](/microbit/js/data)
|
||||
* **Boolean** : [read more...](/microbit/reference/types/boolean)
|
||||
* **on button pressed** : [read more...](/microbit/reference/input/on-button-pressed)
|
||||
* **if** : [read more...](/microbit/reference/logic/if)
|
||||
* **show string** : [read more...](/microbit/reference/basic/show-string)
|
||||
|
||||
## Resources
|
||||
|
||||
* Activity: [tutorial](/microbit/lessons/speed-button/tutorial)
|
||||
* Activity: [quiz](/microbit/lessons/speed-button/quiz)
|
||||
* Extended Activity: [challenges](/microbit/lessons/speed-button/challenges)
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to get the number of milliseconds elapsed since the script began. 1,000 milliseconds = 1 second
|
||||
* learn how to create a global variable to store data so that you can use it later in your code and will be accessible across functions and in nested code blocks
|
||||
* learn how to create a Boolean with one of two possible values: true or false
|
||||
* learn how to run code when an input button is pressed
|
||||
* learn how to conditionally run code depending on whether a condition is true or not
|
||||
* learn how to show a string on the LED screen one character at a time
|
||||
|
||||
## Links to the National Curriculum Programmes of Study for Computing
|
||||
|
||||
## Progression Pathways / Computational Thinking Framework
|
||||
|
||||
#### Algorithms
|
||||
|
||||
* Designs solutions (algorithms) that use repetition and two-way selection, ie if, then and else.(AL)
|
||||
* Uses diagrams to express solutions.(AB)
|
||||
* Uses logical reasoning to predict outputs, showing an awareness of inputs (AL)
|
||||
* Designs solutions by decomposing a problem and creates a sub-solution for each of these parts. (DE) (AL) (AB)
|
||||
* Recognises that different algorithms exist for the same problem (AL) (GE)
|
||||
* Represents solutions using a structured notation (AL) (AB)
|
||||
|
||||
#### Programming & Development
|
||||
|
||||
* Creates programs that implement algorithms to achieve given goals (AL)
|
||||
* Declares and assigns variables(AB)
|
||||
* Understands the difference between, and appropriately uses if and if, then and else statements(AL)
|
||||
* Uses a variable and relational operators within a loop to govern termination (AL) (GE)
|
||||
* Selects the appropriate data types(AL) (AB
|
||||
|
||||
#### Data & Data Representation
|
||||
|
||||
* Uses filters or can perform single criteria searches for information.(AL)
|
||||
* Performs more complex searches for information e.g. using Boolean and relational operators(AL) (GE) (EV)
|
||||
* Defines data types: real numbers and Boolean (AB)
|
||||
|
||||
#### Hardware & Processing
|
||||
|
||||
* Knows that computers collect data from various input devices, including sensors and application software (AB)
|
||||
|
||||
#### Communication Networks
|
||||
|
||||
* Demonstrates responsible use of technologies and online services, and knows a range of ways to report concerns Understands how search engines rank search results (AL)
|
||||
|
||||
#### Information Technology
|
||||
|
||||
* Collects, organizes, and presents data and information in digital content (AB)
|
||||
* Makes appropriate improvements to solutions based on feedback received, and can comment on the success of the solution (EV)
|
||||
* Recognises ethical issues surrounding the application of information technology beyond school.
|
||||
|
||||
Computational Thinking Concept: AB = Abstraction; DE = Decomposition; AL = Algorithmic Thinking; EV = Evaluation; GE = Generalisation
|
||||
|
||||
## Activity
|
||||
|
||||
* time: 20 min.
|
||||
* [tutorial](/microbit/lessons/speed-button/tutorial)
|
||||
* [quiz](/microbit/lessons/speed-button/quiz)
|
||||
* assessment opportunities: forever, plot, pause, clear screen
|
||||
|
||||
## Extended Activity
|
||||
|
||||
* time: 20 min.
|
||||
* [challenges](/microbit/lessons/speed-button/challenges)
|
||||
* assessment opportunities: loops, plot, pause, clear screen
|
||||
|
||||
## Homework
|
||||
|
||||
* Extended Activity: [challenges](/microbit/lessons/speed-button/challenges)
|
||||
|
||||
## Intended follow on
|
||||
|
||||
Publish script to the classroom.
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,7 +1,3 @@
|
||||
//% shim=foo::bar
|
||||
function test() {
|
||||
}
|
||||
|
||||
basic.plotLeds(`
|
||||
# # . # #
|
||||
. . # . .
|
||||
@ -10,4 +6,5 @@ basic.plotLeds(`
|
||||
. # # # .
|
||||
`);
|
||||
basic.pause(300);
|
||||
test();
|
||||
basic.showString("Hello");
|
||||
// foo.bar();
|
||||
|
@ -12,6 +12,6 @@
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"core": "file:../microbit"
|
||||
"microbit": "file:../microbit"
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,10 @@
|
||||
#include "BitVM.h"
|
||||
#include "MicroBitTouchDevelop.h"
|
||||
|
||||
namespace foo {
|
||||
GLUE void bar()
|
||||
//%
|
||||
void bar()
|
||||
{
|
||||
micro_bit::scrollNumber(108108, 50);
|
||||
touch_develop::micro_bit::scrollNumber(108108, 50);
|
||||
}
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user