Compare commits

..

121 Commits

Author SHA1 Message Date
46d42e5300 0.2.17 2016-04-04 19:13:35 -07:00
ffabb9b16d Bump kindscript to 0.2.19 2016-04-04 19:13:34 -07:00
d62c10d278 Use the improved default parameters 2016-04-04 19:11:33 -07:00
e2b2aa7ff1 0.2.16 2016-04-04 19:04:04 -07:00
664c8dcd35 Bump kindscript to 0.2.18 2016-04-04 19:04:03 -07:00
bd7430b642 Add Buffer.get/setNumber and i2c methods 2016-04-04 19:02:40 -07:00
61fd28d840 Move all target stuff to kindtarget.json 2016-04-04 18:03:52 -07:00
c33df897d5 Remove unused code 2016-04-04 12:56:57 -07:00
3bb0bd2a9f 0.2.15 2016-04-04 09:50:05 -07:00
7751061b51 Bump kindscript to 0.2.17 2016-04-04 09:50:04 -07:00
88a7fa5038 0.2.14 2016-04-03 17:51:51 -07:00
3c8a62df54 Bump kindscript to 0.2.16 2016-04-03 17:51:50 -07:00
c661fd0eca Neopixel seems to work 2016-04-03 17:49:35 -07:00
8a124812b6 First draft of neopixel 2016-04-03 17:38:50 -07:00
02c41b59bd Add Buffer; go to core v0.1.5 2016-04-03 16:52:57 -07:00
b003af6eae Try to fix travis 2016-04-02 21:49:09 -07:00
5e5709e48d 0.2.13 2016-04-02 21:47:15 -07:00
dafb056730 Bump kindscript to 0.2.15 2016-04-02 21:47:14 -07:00
721ae893bb 0.2.12 2016-04-02 21:40:55 -07:00
45dd3fc1bf Bump kindscript to 0.2.14 2016-04-02 21:40:54 -07:00
9626207a61 Try to run lang-test0 during build 2016-04-02 21:36:00 -07:00
87b6e0aba1 Make lang-test0 work 2016-04-02 21:34:29 -07:00
0d9890cfac Add some image methods 2016-04-02 20:53:51 -07:00
5d40750542 Add missing control stuff 2016-04-02 20:47:27 -07:00
bd09754466 Move pin stuff to pins 2016-04-02 20:44:29 -07:00
5740133921 Moving simulator stuff into namespaces to match C++ 2016-04-02 20:35:38 -07:00
4e23553824 Naming fixes 2016-04-02 20:35:22 -07:00
9b68519aff Disable two image blocks - they crash block injection 2016-04-02 18:09:31 -07:00
e6dc3b8974 Remove shims 2016-04-02 17:49:31 -07:00
53634f4d6a Convert bluetooth to new style 2016-04-02 17:47:49 -07:00
3ee0c6ea42 Radio stuff moved for new style 2016-04-02 17:34:06 -07:00
ef098cbd28 Use -core v0.1.2 2016-04-02 14:18:10 -07:00
356b17cb13 Moving lang-test0 from kindscript main 2016-04-02 14:18:00 -07:00
47d382135b Use new APIs in the core 2016-04-02 13:44:29 -07:00
241da7fbed Add remaining shims 2016-04-02 11:22:36 -07:00
feb17c5e45 Remove remaining external shims 2016-04-01 22:46:06 -07:00
6559f386d2 Move most of core stuff 2016-04-01 22:32:33 -07:00
6bf46577f9 Migrate serial 2016-04-01 22:00:42 -07:00
0130ecb0c2 Remove shim=s 2016-04-01 21:53:50 -07:00
9820a035ce Migrate LED shims 2016-04-01 21:52:25 -07:00
88acd9254d Remove redundant shim annotations 2016-04-01 21:27:22 -07:00
650fe61dcd Move more stuff to C++ 2016-04-01 21:26:06 -07:00
c4e57e0165 0.2.11 2016-04-01 20:10:45 -07:00
a55ddcbab3 Bump kindscript to 0.2.11 2016-04-01 20:10:44 -07:00
f58508afa2 Event implementation 2016-04-01 19:59:14 -07:00
4b92de7516 Implement Images 2016-04-01 19:55:51 -07:00
6176963504 Fix pin names 2016-04-01 18:29:39 -07:00
37ec692dc4 0.2.10 2016-04-01 18:18:37 -07:00
1c2dc68479 Bump kindscript to 0.2.10 2016-04-01 18:18:36 -07:00
a33472dbd4 Merge branch 'master' of github.com:Microsoft/kindscript-microbit 2016-04-01 18:18:33 -07:00
746dc5d5ab Proper BLE setup 2016-04-01 18:01:44 -07:00
70bd81d9c2 Generate enums from C++ 2016-04-01 17:45:18 -07:00
8ee34ec4c4 0.2.9 2016-04-01 16:23:02 -07:00
9f4a121829 removing hashtags from docs 2016-04-01 16:22:47 -07:00
64eec2875b 0.2.8 2016-04-01 16:14:50 -07:00
400b9269ee Use the new enums 2016-04-01 15:44:04 -07:00
58d854f6f5 0.2.7 2016-04-01 14:49:07 -07:00
13dcbd3a62 Bump kindscript to 0.2.9 2016-04-01 14:49:04 -07:00
a2310f150f mergin changes 2016-04-01 14:44:11 -07:00
b4d7cbc1f0 updated kind.json 2016-04-01 14:43:10 -07:00
d54baaca51 Use the new enum syntax in devices as well 2016-04-01 14:18:11 -07:00
7c564ebaab Export constants from DAL in dal.d.ts 2016-04-01 14:14:57 -07:00
4b3efd434e Add C++ compile config 2016-04-01 10:29:25 -07:00
68143500da Use enum initializers not enumval= where possible 2016-04-01 09:17:41 -07:00
a7a9685963 remove logging 2016-04-01 06:35:59 -07:00
a3b2682cc1 0.2.6 2016-03-31 22:17:11 -07:00
9e7d3b86ba Bump kindscript to 0.2.8 2016-03-31 22:17:10 -07:00
68d22947bb adding simulator options 2016-03-31 20:46:11 -07:00
a92236b3d8 0.2.5 2016-03-31 19:54:00 -07:00
832bb77987 Bump kindscript to 0.2.7 2016-03-31 19:53:58 -07:00
46713ef6c3 udpate pacman 2016-03-31 18:41:54 -07:00
f9b17a844a hero updates 2016-03-31 18:37:55 -07:00
c5e3f2c673 hero 6 2016-03-31 18:27:46 -07:00
3a12314332 hero 5 2016-03-31 18:27:20 -07:00
3c9c30e489 hero 4 2016-03-31 18:24:09 -07:00
dd28c6318e hero 3 2016-03-31 18:17:36 -07:00
d43c0f6e23 hero 2 2016-03-31 18:16:45 -07:00
e0da743cb4 updated hero 2016-03-31 18:16:03 -07:00
3774b705a2 updated headbands 2016-03-31 17:50:12 -07:00
c1f6e45e36 headband update 2016-03-31 17:47:36 -07:00
7c6d3a0509 updated quizzes 2016-03-31 17:42:40 -07:00
25e83b52f3 Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-03-31 17:39:25 -07:00
3640ddbd0e udpate quiz ans 2016-03-31 17:39:17 -07:00
7f3b07e43f update speed lesson 2016-03-31 17:38:43 -07:00
dd6e937472 updated docs 2016-03-31 17:35:44 -07:00
1b9dfd1622 updated maker 2016-03-31 17:32:26 -07:00
58ac6429df updated maker 2016-03-31 17:31:08 -07:00
75461512f7 0.2.4 2016-03-31 17:27:20 -07:00
a7a91459ff Packages published 2016-03-31 17:27:11 -07:00
4bd5b556a6 Bump kindscript to 0.2.6 2016-03-31 17:26:25 -07:00
cf32012d4e updated wifi lesson 2016-03-31 17:25:22 -07:00
19e49652f8 charting lesson 2016-03-31 17:18:16 -07:00
691da3605f charting lesson 2016-03-31 17:17:22 -07:00
34c5a5e216 update wifi quiz ans 2016-03-31 17:01:28 -07:00
5b1ccd3978 0.2.3 2016-03-31 17:00:55 -07:00
5552b42c6e Bump kindscript to 0.2.5 2016-03-31 17:00:53 -07:00
2ab7175283 update wifi quiz 2016-03-31 16:57:48 -07:00
a23042a787 update wifi lesson 2016-03-31 16:54:51 -07:00
130768301c update wifi 2016-03-31 16:52:44 -07:00
5ead39cf51 telegraph lesson 2016-03-31 16:45:53 -07:00
e6a1728f6e update wifi lesson 2016-03-31 16:39:32 -07:00
b210e505a2 Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-03-31 16:28:16 -07:00
984fa83ff8 0.2.2 2016-03-31 16:24:17 -07:00
31fdadbb08 Bump kindscript to 0.2.4 2016-03-31 16:24:16 -07:00
b6d81f73bc telegraph lessons 2016-03-31 16:22:35 -07:00
1439942b45 updated lesson satic page and pogo 2016-03-31 15:51:42 -07:00
7c862ce0f5 Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-03-31 14:10:52 -07:00
28e397bc99 Merge branch 'master' of github.com:Microsoft/kindscript-microbit 2016-03-31 12:24:34 -07:00
dea2f33234 Ignore projects/ 2016-03-31 12:24:20 -07:00
6341f795c6 Fix microbit ref 2016-03-31 12:10:30 -07:00
ec36eaa4cf updated kind.json 2016-03-31 10:49:45 -07:00
abed962eab updated lessons 2016-03-30 17:15:42 -07:00
24ce19654c Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-03-30 17:10:09 -07:00
d1bf09b084 updating static lesson page 2016-03-30 17:01:28 -07:00
529b18e423 updated lessons 2016-03-30 16:44:41 -07:00
612142a292 updated lessons 2016-03-30 16:43:56 -07:00
5899647865 merged changes 2016-03-30 16:42:44 -07:00
8ede130a95 Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-03-30 16:32:29 -07:00
545fff44d0 updated static lesson page 2016-03-30 16:32:16 -07:00
b83a845854 updated lessons 2016-03-30 16:25:19 -07:00
7cbba949db fixing answers 2016-03-30 14:19:51 -07:00
341 changed files with 6072 additions and 2763 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ tmp/
*.tgz
temp/
*.db
projects/

View File

@ -3,6 +3,7 @@ node_js:
- "5.7.0"
script:
- "node node_modules/kindscript/built/kind.js travis"
- "(cd libs/lang-test0; node ../../node_modules/kindscript/built/kind.js run)"
- "node node_modules/kindscript/built/kind.js uploaddoc"
sudo: false
notifications:

View File

@ -1,6 +1,6 @@
# Run Scripts on your micro:bit
How to compile, transfer, and run a script on your micro:bit. #docs #USB #compile #transfer
How to compile, transfer, and run a script on your micro:bit.
While you're writing and testing your Block Editor or Touch Develop scripts, you'll mostly be running scripts in your browser by clicking the `Run` button (see [run code in your browser](/microbit/js/simulator) for info about this).

View File

@ -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

View File

@ -1,6 +1,6 @@
# answering machine blocks quiz answers
Create an answering machine on the micro:bit. #LED #screen #show #math #docs #input
Create an answering machine on the micro:bit.
This is the answer key for the [answering machine quiz](/microbit/lessons/answering-machine/quiz).

View File

@ -1,6 +1,6 @@
# answering machine blocks quiz
Create an answering machine on the micro:bit. #LED #screen #show #math #docs #input
Create an answering machine on the micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# banana keyboard blocks lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -81,3 +81,9 @@ Your banana keyboard is ready!
Connect your micro:bit to your computer using your USB cable and run the [banana keyboard](/microbit/lhpkbr) script on it. Tap your banana instrument to play sound against... the fruit!
### ~avatar boothing
Excellent, you're ready to continue with the [challenges](/microbit/lessons/banana-keyboard/challenges)!
### ~

View File

@ -1,6 +1,6 @@
# beatbox blocks lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# beautiful image lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
### @video td/videos/beautiful-image-0

View File

@ -1,6 +1,6 @@
# beautiful image blocks activity
Generate and show a beautiful image. #docs #microbit
Generate and show a beautiful image.
### ~avatar avatar

View File

@ -1,6 +1,6 @@
# blink blocks lesson
Learn how to create a blinking LED. #LED #screen #plot #docs #lesson
Learn how to create a blinking LED.
### @video td/videos/blink-0

View File

@ -1,6 +1,6 @@
# blink blocks quiz answers
Learn how to create a blinking LED script. #LED #screen #plot #docs
Learn how to create a blinking LED script.
This is the answer key for the [blink quiz](/microbit/lessons/blink/quiz).

View File

@ -1,6 +1,6 @@
# blink blocks quiz
Learn how to create a blinking LED script. #LED #screen #plot #docs
Learn how to create a blinking LED script.
## Name

View File

@ -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}
*/

View File

@ -1,6 +1,6 @@
# bop it quiz answers
a game where you have to keep up with the commands #math #random #docs
a game where you have to keep up with the commands.
## Name

View File

@ -1,6 +1,6 @@
# bop it quiz
a game where you have to keep up with the commands #math #random #docs
a game where you have to keep up with the commands.
## Name

View File

@ -1,6 +1,6 @@
# catch the egg game lesson
a game to catch eggs in a basket #var #data #if #random #min #max #mod #plot #unplot #pause #accceleration #docs
A game to catch eggs in a basket.
### @video td/videos/catch-the-egg-game-0
@ -10,9 +10,9 @@ Variables
## Quick Links
* [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)
## Prior learning/place of lesson in scheme of work
@ -35,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

View File

@ -31,14 +31,6 @@ 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!
@ -64,9 +56,9 @@ basic.forever(() => {
}
if (eggY1 == 4) {
if (basketX1 == eggX1) {
game.addScore(1) // ***
game.addScore(1)
} else {
game.removeLife(1) // ***
game.removeLife(1)
}
}
basic.pause(300)
@ -77,7 +69,7 @@ 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.
@ -116,7 +108,7 @@ basic.forever(() => {
### ~avatar avatar surprised
### Challenge 4
### Challenge 3
### @video td/videos/catch-the-egg-game-4
@ -150,7 +142,7 @@ basic.forever(() => {
game.removeLife(1)
}
}
basic.pause(fallingPause1) // ***
basic.pause(fallingPause1)
})
```

View File

@ -6,7 +6,7 @@ Programming a game of catch the egg using the accelerometer.
## Directions
Use this activity document to guide your work in the [catch the egg challenges](/microbit/lessons/catch-the-egg-game/challenges)
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!

View File

@ -1,6 +1,6 @@
# charting lesson
measure the acceleration on the micro:bit in the "z" direction #acceleration #var #docs #if #show
Measure the acceleration on the micro:bit in the "z" direction.
## Topic
@ -10,9 +10,6 @@ Acceleration
* [activity](/microbit/lessons/charting/activity)
## Class
Year 7
## Prior learning/place of lesson in scheme of work

View File

@ -13,15 +13,17 @@ Welcome! This activity will teach how to use the 1st micro:bit to chart the seco
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X))
radio.sendNumber(input.acceleration(Dimension.X));
```
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.sendNumber(input.acceleration(Dimension.X));
});
```
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.

View File

@ -1,6 +1,6 @@
# classic beatbox
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic
@ -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)

View File

@ -1,6 +1,6 @@
# compass lesson
create a die on the BBC micro:bit #button #pressed #math #random #var #string #if #docs
create a die on the BBC micro:bit.
### @video td/videos/compass-0

View File

@ -1,6 +1,6 @@
# counter lesson
Learn how to create a counter with with on button pressed. #show #number #screen #number #math #docs
Learn how to create a counter with with on button pressed.
### @video td/videos/counter-0

View File

@ -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 counts = 0
let count = 0
input.onButtonPressed(Button.A, () => {
counts = counts + 1
basic.showNumber(counts, 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
let counting= 0
let count = 0
input.onButtonPressed(Button.A, () => {
counting = counting + 1
basic.showNumber(counting, 100)
count = + 1
basic.showNumber(count)
})
```

View File

@ -1,6 +1,6 @@
# die roll lesson
create a die on the BBC micro:bit #button #pressed #math #random #var #string #if #docs
create a die on the BBC micro:bit.
### @video td/videos/die-roll-0

View File

@ -1,6 +1,6 @@
# digi yoyo lesson
create a counter with a while loop #while #loop #counter #docs
create a counter with a while loop.
### @video td/videos/digi-yoyo-0

View File

@ -47,7 +47,7 @@ let count = 0
while (count < 10) {
basic.pause(100)
basic.showNumber(count)
count == count + 1
count = count + (count - 1)
}
```

View File

@ -1,6 +1,6 @@
# flashing heart blocks lesson
Learn how to create LED images with a global variable. #LED #screen #plot #docs
Learn how to create LED images with a global variable.
### @video td/videos/flashing-heart-0

View File

@ -1,6 +1,6 @@
# game counter lesson
Learn how to create a counter with with on button pressed. #show #number #screen #number #math #docs
Learn how to create a counter with with on button pressed.
### @video td/videos/counter-0

View File

@ -1,6 +1,6 @@
# glowing pendulum blocks lesson
construct a pendulum that glows using acceleration #var #acceleration #abs #brightness #plot #docs
construct a pendulum that glows using acceleration.
## Topic
@ -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

View File

@ -1,6 +1,6 @@
# glowing pendulum quiz answers
construct a pendulum that glows using acceleration #LED #number #math #acceleration #docs
construct a pendulum that glows using acceleration.
## Name
@ -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)

View File

@ -1,6 +1,6 @@
# glowing pendulum quiz
construct a pendulum that glows using acceleration #LED #number #math #acceleration #docs
construct a pendulum that glows using acceleration.
## Name
@ -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/>

View File

@ -1,6 +1,6 @@
# glowing sword blocks lesson
make a glowing sword #image #docs
make a glowing sword.
### @video td/videos/glowing-sword-0

View File

@ -1,6 +1,6 @@
# guess the number lesson
Learn to create a random number with input from button A. #input #screen #math #docs
Learn to create a random number with input from button A.
### @video td/videos/guess-the-number-0

View File

@ -1,6 +1,6 @@
# guess the number quiz answers
Learn how to generate a random number on the micro:bit. #math #random #docs
Learn how to generate a random number on the micro:bit.
This is the answer key for the [guess the number quiz](/microbit/lessons/guess-the-number/quiz).

View File

@ -1,6 +1,6 @@
# guess the number quiz
Learn how to generate a random number on the micro:bit. #math #random #docs
Learn how to generate a random number on the micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# hack your headphones lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic
@ -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).

View File

@ -54,3 +54,8 @@ You hacked your headphones!
Connect your micro:bit to your computer using your USB cable and program [light beatbox](/microbit/lessons/light-beatbox/activity) music on it. Press the reset button to restart your music player!
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/microbit/lessons/light-beatbox/activity)!
### ~

View File

@ -1,6 +1,6 @@
# happy birthday blocks lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# headbands lesson
create a charades game that can be played with your friends #data #string #collection #at #Boolean #on-logo-down #on-logo-up #running-time #string #number #docs
create a charades game that can be played with your friends.
## Topic
@ -8,10 +8,10 @@ Collection
## Quick Links
* [tutorial](/microbit/lessons/headbands/tutorial)
* [activity](/microbit/lessons/headbands/activity)
* [quiz](/microbit/lessons/headbands/quiz)
* [quiz answers](/microbit/lessons/headbands/quiz-answers)
* [challenges](/microbit/lessons/headbands/challenges)
## Class

View File

@ -1,17 +1,11 @@
# headbands challenges
These challenges will teach you how to create a fun charades game to play with your friends. #docs
# headbands activity
## 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 +26,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 +51,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.

View File

@ -1,12 +1,12 @@
# headbands quiz answers
create a charades game with a collection of strings #offset #screen #variables #docs
create a charades game with a collection of strings.
## Name
## Directions
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
Answer the questions while completing the tutorial. Pay attention to the dialogues!
@ -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]
```

View File

@ -1,12 +1,12 @@
# headbands quiz
create a charades game with a collection of strings #offset #screen #variables #docs
create a charades game with a collection of strings.
## Name
## Directions
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
Answer the questions while completing the tutorial. Pay attention to the dialogues!
@ -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/>

View File

@ -1,6 +1,6 @@
# hero
make a game to test hand-eye coordination #docs #functions #var
make a game to test hand-eye coordination.
Make a game to test hand-eye coordination

View File

@ -39,8 +39,14 @@ ghost.change(LedSpriteProperty.Blink, 100);
We want to identify the food so the player moves towards the food. We need to set the `brightness` of the `variable` food to 8. The brightness of the LED screen is expressed as a number between 0 and 255.
![](/static/mb/blocks/lessons/hero-3.png)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
```
We want to include a block from the Loops drawer called `While`. Then set the `While` loop to `true`. This code will be important for repeating code of the game logic of the game. The game will continue to run using `While` loop while the Boolean condition is true. Finally, include a `pause` of 400 milliseconds before the logic of the game begins.
@ -50,52 +56,223 @@ let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400)
basic.pause(400);
}
```
Let's create a function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The first condition will check if the horizontal coordinates of the ghost is less than the horizontal coordinates of the hero. We create a function from the Game drawer that will check the coordinates of the hero and the ghost. Finally, change the x-direction of the ghost by 1.
Then create another function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The second condition will check if the horizontal coordinates of the ghost is greater than the x-direction of hero. We create a function from the Game drawer that will check the x-direction of hero and ghost. Finally, change the x-direction of the ghost by -1.
![](/static/mb/blocks/lessons/hero-5.png)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) > hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (false) {
}
else if (false) {
}
}
```
Let's create the third function and forth function that continues the same logic in the y-direction of pacman and ghost. We create a function from the Game drawer that will check the y-direction of pacman and ghost. Finally, change the y-direction of the ghost to continue following pacman.
![](/static/mb/blocks/lessons/hero-6.png)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
}
```
Let's enable pacman to move in the x-direction and move in the y-direction with acceleration using the micor:bit sensor
![](/static/mb/blocks/lessons/hero-7.png)
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
if (input.acceleration(Dimension.X) > 200) {
hero.change(LedSpriteProperty.X, 1);
}
else if (input.acceleration(Dimension.X) < -200 ) {
hero.change(LedSpriteProperty.X, -1 );
}
if (input.acceleration(Dimension.Y) > 200) {
hero.change(LedSpriteProperty.Y, 1);
}
else if (input.acceleration(Dimension.Y) > -200 ) {
hero.change(LedSpriteProperty.Y, -1 );
}
}
```
Let's setup the logic for the food. If hero is `touching` "food", increase the score of the game by 1 and `set` ``x`` -direction of food randomly randomly from 0 to 4 and `set` ``y``-direction of food randomly from 0 to 4.
![](/static/mb/blocks/lessons/hero-8.jpg)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
if (input.acceleration(Dimension.X) > 200) {
hero.change(LedSpriteProperty.X, 1);
}
else if (input.acceleration(Dimension.X) < -200 ) {
hero.change(LedSpriteProperty.X, -1 );
}
if (input.acceleration(Dimension.Y) > 200) {
hero.change(LedSpriteProperty.Y, 1);
}
else if (input.acceleration(Dimension.Y) > -200 ) {
hero.change(LedSpriteProperty.Y, -1 );
}
if (hero.isTouching(food)) {
game.addScore(1);
food.set(LedSpriteProperty.X, Math.random(5));
food.set(LedSpriteProperty.Y, Math.random(5));
}
**Do not disconnect the blocks from the conditional statements. We are focusing on this section of the code and are not showing the entire code**
}
Let's setup the logic for the food and the ghost to be in different quadrants.
![](/static/mb/blocks/lessons/hero-9.jpg)
```
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
The game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
![](/static/mb/blocks/lessons/hero-10.jpg)
Let's setup the logic for the food and the ghost to be in different quadrants. Finally, the game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
**Do not disconnect the conditional statements blocks from the remaining blocks. We are focusing on this section of the code and are not showing the entire code**
```blocks
The game can also use the buttons. Let's create a `while` loop for button A is pressed. If button A is pressed, the micro:bit will display the word Hero. Let's use a `while` loop for button B is pressed. If button B is pressed, the micro:bit will display image of the hero.
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
let ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
if (input.acceleration(Dimension.X) > 200) {
hero.change(LedSpriteProperty.X, 1);
}
else if (input.acceleration(Dimension.X) < -200 ) {
hero.change(LedSpriteProperty.X, -1 );
}
if (input.acceleration(Dimension.Y) > 200) {
hero.change(LedSpriteProperty.Y, 1);
}
else if (input.acceleration(Dimension.Y) > -200 ) {
hero.change(LedSpriteProperty.Y, -1 );
}
if (hero.isTouching(food)) {
game.addScore(1);
food.set(LedSpriteProperty.X, Math.random(5));
food.set(LedSpriteProperty.Y, Math.random(5));
if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) < 2) {
ghost.set(LedSpriteProperty.X, 4);
ghost.set(LedSpriteProperty.Y, 4);
}
else if (food.get(LedSpriteProperty.X) > 2 && food.get(LedSpriteProperty.Y) < 2) {
ghost.set(LedSpriteProperty.X, 0);
ghost.set(LedSpriteProperty.Y, 4);
}
else if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) > 2) {
ghost.set(LedSpriteProperty.X, 4);
ghost.set(LedSpriteProperty.Y, 0);
}
else {
ghost.set(LedSpriteProperty.X, 0);
ghost.set(LedSpriteProperty.Y, 0);
}
}
if (hero.isTouching(ghost)) {
game.gameOver();
}
![](/static/mb/blocks/lessons/hero-11.jpg)
}
0.set(LedSpriteProperty.X, 4);
```
### ~avatar avatar
You can review the final code for [hero](/microbit/numraj)
Congratulations! You have a homemade hero game based on the classic version of PacMan
### ~

View File

@ -1,6 +1,6 @@
# light beatbox
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# looper blocks lesson
Learn to control blinking LEDs. #LED #screen #for #docs
Learn to control blinking LEDs.
### @video td/videos/looper-0

View File

@ -1,6 +1,6 @@
# looper quiz answers
Learn how to create a series of numbers with a for loop. #LED #screen #plot #docs
Learn how to create a series of numbers with a for loop.
This is the answer key for the [looper quiz](/microbit/lessons/looper/quiz).

View File

@ -1,6 +1,6 @@
# looper quiz
Learn how to create a series of numbers with a for loop. #LED #screen #plot #docs
Learn how to create a series of numbers with a for loop.
## Name

View File

@ -1,6 +1,6 @@
# love meter blocks lesson
create a love meter with the BBC micro:bit #pin #pressed #string #if #var #pause #show #docs
create a love meter with the BBC micro:bit.
### @video td/videos/love-meter-0

View File

@ -1,6 +1,6 @@
# lucky 7 blocks lesson
show a number on the LED screen #show #number #docs
show a number on the LED screen.
### @video td/videos/lucky-7-0

View File

@ -1,6 +1,6 @@
# magic 8 lesson
a fortune teller game with the BBC micro:bit #string #shake #clear-screen #if #string #number #var #docs
a fortune teller game with the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# magic 8 quiz answers
create a magic 8 ball on the BBC micro:bit #math #random #docs
create a magic 8 ball on the BBC micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# magic 8 quiz
create a magic 8 ball on the BBC micro:bit #math #random #docs
create a magic 8 ball on the BBC micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# magic logo lesson
show an image that points up when the logo is up #logo #point #docs
show an image that points up when the logo is up.
### @video td/videos/magic-logo-0

View File

@ -1,6 +1,6 @@
# magic logo quiz answers
show an image that points up when the logo is up #logo #show #create #docs
show an image that points up when the logo is up.
## Name

View File

@ -1,6 +1,6 @@
# magic logo quiz
show an image that points up when the logo is up #logo #show #create #docs
show an image that points up when the logo is up.
## Name

View File

@ -1,6 +1,6 @@
# night light lesson
change the brightness of the BBC micro:bit #brightness #plot #docs
change the brightness of the BBC micro:bit.
### @video td/videos/night-light-0

View File

@ -1,6 +1,6 @@
# night light quiz answers
Answers to the night light quiz. #LED #image #brightness #fade #docs
Answers to the night light quiz.
This is the answer key for the [night light quiz](/microbit/lessons/night-light/quiz).

View File

@ -1,6 +1,6 @@
# night light quiz
change the brightness of the BBC micro:bit #LED #image #brightness #fade #docs
change the brightness of the BBC micro:bit.
## Name

View File

@ -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) {

View File

@ -1,6 +1,6 @@
# offset image quiz answers
shift an image horizontally across the display with offset #offset #screen #variables #docs
shift an image horizontally across the display with offset.
This is the answer key for the [offset image quiz](/microbit/lessons/offset-image/quiz).

View File

@ -1,6 +1,6 @@
# offset image quiz
shift an image horizontally across the display with offset #offset #screen #variables #docs
shift an image horizontally across the display with offset.
## Name

View File

@ -1,80 +0,0 @@
# ornament chain activity
Build a telgraph
# micro:bit Ornament Chain
![](/static/mb/lessons/ornament-chain-0.jpg)
![](/static/mb/lessons/ornament-chain-1.jpg)
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
![](/static/mb/lessons/banana-keyboard-1.png)
Using the 1st crocodile clip, connect the end of the crocodile clip onto GND pin on the micro:bit.
### Step 2
![](/static/mb/lessons/ornament-chain-2.png)
Using the 2nd crocodile clip, connect the end of the crocodile clip onto the 3V pin on the micro:bit.
### Step 3
![](/static/mb/lessons/ornament-chain-3.png)
Using the 3rd crocodile clip, connect the end of the crocodile clip onto pin 1 of the micro:bit.
### Step 4
![](/static/mb/lessons/ornament-chain-4.png)
Using the 4th crocodile clip, connect the end of the crocodile clip onto pin 2 of the micro:bit.
### Step 5
![](/static/mb/lessons/ornament-chain-5.png)
Using the 1st crocodile clip, connect the unattached end of the crocodile clip onto the GND on the 2nd micro:bit.
### Step 6
![](/static/mb/lessons/ornament-chain-6.png)
Using the 2nd crocodile clip, connect the unattached end of the crocodile clip onto the 3V pin on the 2nd micro:bit.
### Step 7
![](/static/mb/lessons/ornament-chain-7.png)
Using the 3rd crocodile clip, connect the unattached end of the crocodile clip onto pin 2 of the 2nd micro:bit.
### Step 8
![](/static/mb/lessons/ornament-chain-8.png)
Using the 4th crocodile clip, connect the unattached end of the crocodile clip onto pin 1 of the 2nd micro:bit
### Step 9
![](/static/mb/lessons/ornament-chain-0.jpg)
![](/static/mb/lessons/ornament-chain-1.jpg)
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!

View File

@ -1,6 +1,6 @@
# pogo lesson
create a game that relies on precise instincts and timing reflexes #if # #function #data #forever #var #button #if #assignment #pause #string #number #docs
create a game that relies on precise instincts and timing reflexes #if #.
## Topic
@ -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

View File

@ -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.
![](/static/mb/blocks/lessons/pogo-0.jpg)
```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.
![](/static/mb/blocks/lessons/pogo-1.jpg)
```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.
![](/static/mb/blocks/lessons/pogo-2.jpg)
```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.
![](/static/mb/blocks/lessons/pogo-3.jpg)
```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
![](/static/mb/blocks/lessons/glowing-pendulum-5.png)
### ~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!

View File

@ -0,0 +1,9 @@
# prank wifi lesson
create a fake wifi app to trick your friends.
create a fake wifi app to trick your friends
* [activity](/microbit/lessons/prank-wifi/activity)
* [quiz](/microbit/lessons/prank-wifi/quiz)
* [quiz answers](/microbit/lessons/prank-wifi/quiz-answers)

View File

@ -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,18 +124,18 @@ basic.forever(() => {
`)
}
if (sum2 >= 1200 && sum2 < 1400) {
basic.plotImage(`
basic.showLeds(`
. . . . #
. . . # #
. . # # #
. # # # #
# # # # #
`) // ***
`)
}
})
```
**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()`.

View File

@ -1,6 +1,6 @@
# prank wifi quiz answers
create a fake wifi app to trick your friends #string #forever #abs #var #plot #image #if #math #abs #acceleration #docs
create a fake wifi app to trick your friends.
## Name
@ -14,10 +14,10 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
<br/>
```
let xAccel = math.abs(input.acceleration("x"))
let yAccel = math.abs(input.acceleration("y"))
let zAccel = math.abs(input.acceleration("z"))
```blocks
let xAccel = Math.abs(input.acceleration(Dimension.X))
let yAccel = Math.abs(input.acceleration(Dimension.Y))
let zAccel = Math.abs(input.acceleration(Dimension.Z))
```
<br/>
@ -28,7 +28,10 @@ let zAccel = math.abs(input.acceleration("z"))
<br/>
```
```blocks
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
```
@ -38,9 +41,13 @@ let sum = xAccel + yAccel + zAccel
<br/>
```
```blocks
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(`
. . . . .
. . . . .
. . # . .
@ -58,9 +65,13 @@ if (sum < 1400) {
<br/>
```
```blocks
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 && sum < 1680) {
basic.plotImage(`
basic.showLeds(`
. . . . .
. . . # .
. . # # .
@ -70,7 +81,7 @@ if (sum >= 1400 && sum < 1680) {
}
```
## 5. Write the 'if statement' needed to display this specific plot image on the device
## 5. Write the code to display this specific image on the device
![](/static/mb/lessons/prank-wifi-0.png)
@ -78,9 +89,13 @@ if (sum >= 1400 && sum < 1680) {
<br/>
```
```blocks
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 >= 1680) {
basic.plotImage(`
basic.showLeds(`
. . . . .
. . . . .
. . . . .

View File

@ -1,12 +1,12 @@
# prank wifi quiz
create a fake wifi app to trick your friends #string #forever #abs #var #plot #image #if #math #abs #acceleration #docs
create a fake wifi app to trick your friends.
## Name
## Directions
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/tutorial)
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/activity)
Answer the questions while completing the tutorial. Pay attention to the dialogues!

View File

@ -1,6 +1,6 @@
# rock paper scissors lesson
a game against the BBC micro:bit #var #image #button #string #number #docs
a game against the BBC micro:bit.
### @video td/videos/rock-paper-scissors-0

View File

@ -1,6 +1,6 @@
# rock paper scissors quiz
shift an image horizontally across the display with offset #offset #screen #variables #docs
shift an image horizontally across the display with offset.
## Name

View File

@ -1,6 +1,6 @@
# rotation animation block lesson
Learn how to create images with a global variable and while loop. #LED #screen #plot #docs
Learn how to create images with a global variable and while loop.
## Topic

View File

@ -1,6 +1,6 @@
# rotation animation quiz answers
Learn how to create a rotating image with a while loop. #image #loop #while #docs
Learn how to create a rotating image with a while loop.
This is the answer key for the [rotation animation quiz](/microbit/lessons/rotation-animation/quiz).

View File

@ -1,6 +1,6 @@
# rotation animation quiz
Learn how to create a rotating image with a while loop. #image #loop #while #docs
Learn how to create a rotating image with a while loop.
## Name

View File

@ -1,6 +1,6 @@
# screen wipe blocks lesson
clear the screen by pressing button "A" #button #clear #docs
clear the screen by pressing button "A".
### @video td/videos/screen-wipe-0

View File

@ -1,6 +1,6 @@
# snowflake fall blocks lesson
design a blinking rectangle animation #animation #loop #forever #docs
design a blinking rectangle animation.
### @video td/videos/snowflake-fall-0

View File

@ -1,6 +1,6 @@
# snowflake fall blocks activity
design a blinking rectangle animation. #docs #tutorials #stepByStep
design a blinking rectangle animation.
### ~avatar avatar

View File

@ -0,0 +1,38 @@
# speed button lesson
code a speed game by declaring Booleans on the BBC micro:bit.
### @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

View File

@ -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, () => {

View File

@ -1,6 +1,6 @@
# speed button quiz answers
counter that keeps track of how many times button "A" has been pressed #LED #screen #variables #docs #input
counter that keeps track of how many times button "A" has been pressed.
This is the answer key for the [speed button quiz](/microbit/lessons/speed-button/quiz).
@ -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,8 +36,8 @@ 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.
```
count_ = 0
```blocks
let count_ = 0
input.onButtonPressed(Button.A, () => {
count_ = count_ + 1
basic.showNumber(count_, 100)

View File

@ -1,12 +1,12 @@
# speed button quiz
counter that keeps track of how many times button "A" has been pressed #LED #screen #variables #docs #input
counter that keeps track of how many times button "A" has been pressed.
## Name
## Directions
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/tutorial).
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/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 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,8 +36,8 @@ 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.
```
count_ = 0
```blocks
let count_ = 0
input.onButtonPressed(Button.A, () => {
count_ = count_ + 1
basic.showNumber(count_, 100)

View File

@ -1,6 +1,6 @@
# spinner lesson
a spin the BBC micro:bit game with the input on shake #button #pressed #math #random #var #string #if #docs
a spin the BBC micro:bit game with the input on shake.
### @video td/videos/spinner-0

View File

@ -23,7 +23,7 @@ Now let's randomly generate a number from 0 to 3 so that we can randomly display
```blocks
input.onGesture(Gesture.Shake, () => {
let randomArrow = Math.random(4)
if (randomArrow = 3) {
if (randomArrow == 3) {
basic.showLeds(`
. . # . .
. # # # .
@ -42,7 +42,7 @@ Now let's handle each of the cases by displaying the appropriate arrow. (Let's d
```blocks
input.onGesture(Gesture.Shake, () => {
let randomArrow = Math.random(4)
if (randomArrow = 3) {
if (randomArrow == 3) {
basic.showLeds(`
. . # . .
. # # # .
@ -51,7 +51,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 2) {
if (randomArrow == 2) {
basic.showLeds(`
. . # . .
. . # . .
@ -70,7 +70,7 @@ 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) {
if (randomArrow == 3) {
basic.showLeds(`
. . # . .
. # # # .
@ -79,7 +79,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 2) {
if (randomArrow == 2) {
basic.showLeds(`
. . # . .
. . # . .
@ -88,7 +88,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 1) {
if (randomArrow == 1) {
basic.showLeds(`
. . # . .
. # # . .

View File

@ -9,7 +9,7 @@ Complete the following [guided tutorial](/microbit/lessons/spinner/activity), yo
```blocks
input.onGesture(Gesture.Shake, () => {
let randomArrow = Math.random(4)
if (randomArrow = 3) {
if (randomArrow == 3) {
basic.showLeds(`
. . # . .
. # # # .
@ -18,7 +18,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 2) {
if (randomArrow == 2) {
basic.showLeds(`
. . # . .
. . # . .
@ -27,7 +27,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 1) {
if (randomArrow == 1) {
basic.showLeds(`
. . # . .
. # # . .
@ -47,7 +47,7 @@ Modify the random number generator so that it can include new arrows we will cre
```blocks
input.onGesture(Gesture.Shake, () => {
let randomArrow = Math.random(8)
if (randomArrow = 3) {
if (randomArrow == 3) {
basic.showLeds(`
. . # . .
. # # # .
@ -56,7 +56,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 2) {
if (randomArrow == 2) {
basic.showLeds(`
. . # . .
. . # . .
@ -65,7 +65,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 1) {
if (randomArrow == 1) {
basic.showLeds(`
. . # . .
. # # . .
@ -90,7 +90,7 @@ Let's add more arrows that point diagonally.
```blocks
input.onGesture(Gesture.Shake, () => {
let randomArrow = Math.random(8)
if (randomArrow = 7) {
if (randomArrow == 7) {
basic.showLeds(`
. . # . .
. # # # .
@ -99,7 +99,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 6) {
if (randomArrow == 6) {
basic.showLeds(`
. . # . .
. . # . .
@ -108,7 +108,7 @@ input.onGesture(Gesture.Shake, () => {
. . # . .
`)
}
if (randomArrow = 5) {
if (randomArrow == 5) {
basic.showLeds(`
. . # . .
. # # . .
@ -118,7 +118,7 @@ input.onGesture(Gesture.Shake, () => {
`)
}
if (randomArrow = 4) {
if (randomArrow == 4) {
basic.showLeds(`
. . # . .
. . . # .
@ -129,7 +129,7 @@ input.onGesture(Gesture.Shake, () => {
}
if (randomArrow = 3) {
if (randomArrow == 3) {
basic.showLeds(`
# # # # #
# # # # .
@ -139,7 +139,7 @@ input.onGesture(Gesture.Shake, () => {
`)
}
if (randomArrow = 2) {
if (randomArrow == 2) {
basic.showLeds(`
# # # # #
# # # # #
@ -149,7 +149,7 @@ input.onGesture(Gesture.Shake, () => {
`)
}
if (randomArrow = 1) {
if (randomArrow == 1) {
basic.showLeds(`
# . . . #
# # . # .

View File

@ -1,6 +1,6 @@
# spinner quiz answers
a spin the BBC micro:bit game with the input on shake #math #random #docs #shake
a spin the BBC micro:bit game with the input on shake.
## Name

View File

@ -1,6 +1,6 @@
# spinner quiz
a spin the BBC micro:bit game with the input on shake #math #random #docs #shake
a spin the BBC micro:bit game with the input on shake.
## Name

View File

@ -1,6 +1,6 @@
# Block Editor STEM Lessons
Overview of Blocks lessons for the BBC micro:bit. #docs #contents
Overview of Blocks lessons for the BBC micro:bit.
### @short Lessons

View File

@ -1,6 +1,6 @@
# strobe light lesson
Learn how to create a blinking LED script. #LED #screen #plot #docs
Learn how to create a blinking LED script.
### @video td/videos/strobe-light-0

View File

@ -1,6 +1,6 @@
# strobe light quiz answers
Learn how to create a blinking images with a for loop. #LED #screen #plot #docs
Learn how to create a blinking images with a for loop.
This is the answer key for the [strobe light quiz](/microbit/lessons/strobe-light/quiz).

View File

@ -1,6 +1,6 @@
# strobe light quiz
Learn how to create a blinking LED script with a for loop. #LED #screen #plot #docs
Learn how to create a blinking LED script with a for loop.
## Name

View File

@ -1,6 +1,6 @@
# Teach Blocks
Overview of lesson instructions for the BBC micro:bit. #docs #contents
Overview of lesson instructions for the BBC micro:bit.
### @short Teach

View File

@ -1,6 +1,6 @@
# telegraph lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic
@ -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

View File

@ -1,6 +1,6 @@
# telegraph activity
Build a telgraph #microbit #docs
Build a telgraph.
# micro:bit telegraph
@ -67,10 +67,9 @@ Using the 4th crocodile clip, connect the unattached end of the crocodile clip o
![](/static/mb/lessons/telegraph-0.png)
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)!
### ~

View File

@ -0,0 +1,114 @@
# telegraph activity
Build a telgraph.
# 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:
![](/static/mb/lessons/telegraph-0.png)
### 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!

View File

@ -1,6 +1,6 @@
# temperature blocks lesson
measure the temperature on the BBC micro:bit #temp #var #docs
measure the temperature on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# the watch lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
![](/static/mb/lessons/the-watch-0.png)

View File

@ -150,9 +150,11 @@ Trim any leftover fabric, threads or tape.
Your watch is ready!
### Step 22
### ~avatar avatar
Connect your micro:bit to your computer using your USB cable and upload the [rock paper scissors](/microbit/rrwupw) script on it. Shake your watch to play against... the micro:bit!
Excellent, you're ready to continue with the [challenges](/microbit/lessons/rock-paper-scissors/activity)!
### ~
### Acknowledgements

Some files were not shown because too many files have changed in this diff Show More