Compare commits
189 Commits
Author | SHA1 | Date | |
---|---|---|---|
532abadb6b | |||
eea179e07c | |||
f94015803f | |||
f085253306 | |||
6de2f22542 | |||
3051e09bcf | |||
bd835a8a6e | |||
f75a034a3f | |||
71b3b6bb22 | |||
b868bd1e09 | |||
02e48f196c | |||
742eb7ea2f | |||
f1904143b6 | |||
e621252f3b | |||
3633d39f57 | |||
21bbf8fc86 | |||
dd5124f660 | |||
966ad1f503 | |||
d94f394d24 | |||
40ddd896cf | |||
5a8815c4fc | |||
9a04eb1790 | |||
906e2a2fff | |||
781339026e | |||
bd23de14e1 | |||
e6ca366d20 | |||
e2ce49d94b | |||
e3b6350785 | |||
66aba696dc | |||
5206f1f8e8 | |||
f9a7ec89e4 | |||
97894511dd | |||
e785ece9bd | |||
63035b3d5c | |||
1f8ea7ad30 | |||
899ca47a77 | |||
84f14182bf | |||
ca3702b4fe | |||
94f1b6c785 | |||
c749c8b644 | |||
b108f1538d | |||
45690215dd | |||
af42dbf30a | |||
45ecd883bb | |||
641a714f74 | |||
d1cd0a23a2 | |||
54331eb113 | |||
d4c53f1fb3 | |||
40305c3ccd | |||
e6761699d3 | |||
b15f140181 | |||
00e38e202b | |||
4cbabcd112 | |||
5def3518cf | |||
2c6f76e1a5 | |||
3eb529852b | |||
3b0cb40ea9 | |||
5cb3467194 | |||
d5628c08c8 | |||
c5c0103573 | |||
b89d6477c7 | |||
f3a6b00734 | |||
091fbb9db8 | |||
3de977c98f | |||
d262dc3704 | |||
b2e59eb676 | |||
f2d5237d5c | |||
0c701a6809 | |||
d571ce85c1 | |||
6fa316ff0e | |||
1e436f4e71 | |||
d54aa41fc9 | |||
0d90aec229 | |||
98ee6899a1 | |||
c3e9ec2dc4 | |||
4cba801d78 | |||
a3d559c7af | |||
985ed56984 | |||
be284c5e52 | |||
d59d7cb19f | |||
28d522175b | |||
7b74428275 | |||
c5571c20c7 | |||
fc97b59d0e | |||
8417d10ad3 | |||
1a6d47a1c9 | |||
d74702353f | |||
53922986b1 | |||
230de475d1 | |||
9b1d2085ba | |||
d4a55bd53d | |||
2b8d8f7b44 | |||
8b2037f51d | |||
1477fc4bed | |||
e4badc18b8 | |||
625d4de530 | |||
a3cf104185 | |||
608f2d8f82 | |||
8f9ac35d70 | |||
ce18ddbb70 | |||
ac64cbb8c5 | |||
706c51c99c | |||
7fa88249d6 | |||
5c735e839e | |||
19752b01b6 | |||
4192eeb413 | |||
87c63959cf | |||
79ee825926 | |||
20dbcfd203 | |||
993952cbe9 | |||
90a8bdcea1 | |||
b9cff5a5e9 | |||
638594bb5e | |||
d3b5809fe7 | |||
365f5dcecf | |||
4c9982051e | |||
655c9c4431 | |||
e328c22a2d | |||
dc9eb26038 | |||
3971bb5fc1 | |||
acfdfd3668 | |||
35edde573e | |||
6d21e28360 | |||
f636a7e37f | |||
c15c3255ef | |||
7f64328079 | |||
b19d7a5b7b | |||
8322310640 | |||
8f6577f029 | |||
a64b3e2b09 | |||
95ed3f419b | |||
8fcc59c9c3 | |||
a83a7f7135 | |||
2f1a7e3896 | |||
b32c14937c | |||
a5e1f84975 | |||
6d0beb1aa3 | |||
26d92f993b | |||
d4c0dddb62 | |||
fa17ce43f7 | |||
b9a9abb478 | |||
ae925da409 | |||
b82c3c0277 | |||
b4ce65cdf3 | |||
db7e8b6fd4 | |||
7532cc01a2 | |||
6725f8ef90 | |||
dea8054fbe | |||
f9cc3d2ee1 | |||
220ada6cd8 | |||
b68b12e6f1 | |||
5838c4d740 | |||
68d25e3814 | |||
06be2019a6 | |||
6a742f5348 | |||
73cf802300 | |||
2b71e2b834 | |||
0442c33808 | |||
2975e6acc9 | |||
df38904ba1 | |||
d744e21975 | |||
81c86f544c | |||
fa145ecd5c | |||
cdfc99ad3f | |||
f77e7b8850 | |||
d71186b083 | |||
852067c641 | |||
7445db5707 | |||
e4fd00c827 | |||
5ccecc1195 | |||
cdfcd30c3c | |||
25b4f46440 | |||
9f9cd6b766 | |||
4dafa4d42c | |||
fdff0a7f19 | |||
a63daed690 | |||
3eeaf2ca46 | |||
005e002fd8 | |||
b1db17fc27 | |||
a51791414c | |||
265dd660ef | |||
7517776492 | |||
29b901b856 | |||
20637aeb29 | |||
90dbc6dd08 | |||
8f99ee3608 | |||
15bbc13595 | |||
cac5df56eb | |||
0c7f9058a7 |
@ -24,24 +24,23 @@ npm install
|
|||||||
|
|
||||||
### Running
|
### Running
|
||||||
|
|
||||||
Run this command to open a local web server:
|
Run this command to open a local web server (add ``sudo`` for Mac/Linux shells)
|
||||||
```
|
```
|
||||||
pxt serve
|
pxt serve
|
||||||
```
|
```
|
||||||
If the local server opens in the wrong browser, make sure to copy the URL containing the local token.
|
If the local server opens in the wrong browser, make sure to copy the URL containing the local token.
|
||||||
Otherwise, the editor will not be able to load the projects.
|
Otherwise, the editor will not be able to load the projects.
|
||||||
|
|
||||||
If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt`` flag:
|
If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt`` flag (add ``sudo`` for Mac/Linux shells):
|
||||||
```
|
```
|
||||||
pxt serve -yt
|
pxt serve -yt
|
||||||
```
|
```
|
||||||
|
|
||||||
To make sure you're running the latest tools, run
|
To make sure you're running the latest tools, run (add ``sudo`` for Mac/Linux shells)
|
||||||
```
|
```
|
||||||
npm update
|
pxt update
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
|
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
|
||||||
|
|
||||||
## Universal Windows App
|
## Universal Windows App
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# micro:bit - the device
|
# micro:bit - the device
|
||||||
|
|
||||||
The micro:bit device #docs
|
The micro:bit device
|
||||||
|
|
||||||
The micro:bit is a very capable device with many components:
|
The micro:bit is a very capable device with many components:
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Error codes
|
# Error codes
|
||||||
|
|
||||||
The micro:bit error codes #docs
|
The micro:bit error codes
|
||||||
|
|
||||||
Your micro:bit may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your micro:bit screen (see picture) followed by an error number.
|
Your micro:bit may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your micro:bit screen (see picture) followed by an error number.
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# The micro:bit - a reactive system
|
# The micro:bit - a reactive system
|
||||||
|
|
||||||
The micro:bit is a reactive system. #docs
|
The micro:bit is a reactive system.
|
||||||
|
|
||||||
### Computing systems
|
### Computing systems
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ input.onButtonPressed(Button.B, () => {
|
|||||||
* Browse the [API reference](/reference)
|
* Browse the [API reference](/reference)
|
||||||
* Learn more about the [device](/device)
|
* Learn more about the [device](/device)
|
||||||
* Get started with [lessons](/lessons)
|
* Get started with [lessons](/lessons)
|
||||||
|
* Frequently Asked Question [faq](/faq)
|
||||||
* Follow up with the [release notes](/release-notes)
|
* Follow up with the [release notes](/release-notes)
|
||||||
|
|
||||||
### Developers
|
### Developers
|
||||||
|
6
docs/faq.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Frequently Asked Questions
|
||||||
|
|
||||||
|
## Where can I get a BBC micro:bit?
|
||||||
|
|
||||||
|
More information at [http://uk.farnell.com/bbc-microbit](http://uk.farnell.com/bbc-microbit).
|
||||||
|
|
@ -1,32 +1,21 @@
|
|||||||
# Getting started
|
# Getting started
|
||||||
|
|
||||||
Are you ready to build cool BBC micro:bit programs? For each challenge, reorder the blocks to recreate the program.
|
## ~avatar
|
||||||
|
|
||||||
### Show leds
|
Are you ready to build cool BBC micro:bit programs?
|
||||||
|
|
||||||
Use the blocks below to draw a figure on the screen. You can redo the smiley face or try something else!
|
Here are some challenges for you. Unscramble the blocks in the editor
|
||||||
|
to make real programs that work!
|
||||||
|
|
||||||
```shuffle
|
## ~
|
||||||
basic.showLeds(`
|
|
||||||
. . . . .
|
|
||||||
. # . # .
|
|
||||||
. . . . .
|
|
||||||
# . . . #
|
|
||||||
. # # # .
|
|
||||||
`)
|
|
||||||
```
|
|
||||||
|
|
||||||
To transfer your code to the BBC micro:bit,
|
### Happy face
|
||||||
* connect your micro:bit to the computer using the USB cable
|
|
||||||
* click on **Compile**
|
|
||||||
* drag&drop the **.hex** file into the **MICROBIT** drive
|
|
||||||
* wait till the yellow light is done blinking!
|
|
||||||
|
|
||||||
### Show animation Forever
|
There are three blocks in the editor (the area to the left).
|
||||||
|
They should look like this:
|
||||||
Show one image after the other to create an animation by snapping them together.
|
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
|
basic.forever(() => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. . . . .
|
. . . . .
|
||||||
. # . # .
|
. # . # .
|
||||||
@ -36,25 +25,29 @@ Show one image after the other to create an animation by snapping them together.
|
|||||||
`)
|
`)
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. . . . .
|
. . . . .
|
||||||
. # . # .
|
|
||||||
. . . . .
|
. . . . .
|
||||||
. # # # .
|
. . . . .
|
||||||
# . . . #
|
. . . . .
|
||||||
|
. . . . .
|
||||||
`)
|
`)
|
||||||
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
To transfer your code to the BBC micro:bit,
|
When you run this program, you will see a smiley face, then a blank
|
||||||
* connect your micro:bit to the computer using the USB cable
|
screen, then a smiley again -- it never stops! (That's because of the
|
||||||
* click on **Compile**
|
``forever`` block.)
|
||||||
* drag&drop the **.hex** file into the **MICROBIT** drive
|
|
||||||
* wait till the yellow light is done blinking!
|
|
||||||
|
|
||||||
### Repeat forever
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
|
|
||||||
Use the ``forever`` block to repeat your code and have a continuous animation.
|
### Happy unhappy face
|
||||||
|
|
||||||
Unsuffle the blocks to create a happy, unhappy animation.... or changes the image to make it your own!
|
Draw an unhappy face instead of the blank screen. Click on the dots
|
||||||
```shuffle
|
in the second ``show leds`` block until it matches the blocks below.
|
||||||
|
Now you have an **animation** (cartoon) that shows a happy face,
|
||||||
|
then an unhappy one, then a happy one again, forever (or until
|
||||||
|
you turn off your micro:bit)!
|
||||||
|
|
||||||
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. . . . .
|
. . . . .
|
||||||
@ -72,38 +65,117 @@ basic.forever(() => {
|
|||||||
`)
|
`)
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
|
|
||||||
### Your turn now!
|
### Your turn!
|
||||||
|
|
||||||
Use the blocks ``show leds`` and ``forever``
|
Pile up more ``show leds`` blocks to create your animation! Create an
|
||||||
to create your own custom awesome animation!
|
animation with at least 5 pictures. What does this animation show?
|
||||||
|
|
||||||
### Button A and B
|
```blocks
|
||||||
|
basic.forever(() => {
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
# . . . #
|
||||||
|
. # # # .
|
||||||
|
`)
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
# # # # #
|
||||||
|
. . . . .
|
||||||
|
`)
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
. # # # .
|
||||||
|
# . . . #
|
||||||
|
`)
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. # . # .
|
||||||
|
. . . . .
|
||||||
|
# # # # #
|
||||||
|
. . . # #
|
||||||
|
`)
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
# . # . .
|
||||||
|
. . . . .
|
||||||
|
# . . . #
|
||||||
|
. # # # .
|
||||||
|
`)
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. . # . #
|
||||||
|
. . . . .
|
||||||
|
# . . . #
|
||||||
|
. # # # .
|
||||||
|
`)
|
||||||
|
});
|
||||||
|
```
|
||||||
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
|
|
||||||
Unshuffle the blocks so that the micro:bit shows "YES" when button A is pressed, and "NO" when B is pressed.
|
#### ~hint
|
||||||
The key idea is that all the blocks nested under `on button ... pressed` will run when that button is pressed.
|
|
||||||
|
You can find the ``show leds`` block in the **Basic** part of the editor.
|
||||||
|
|
||||||
|
#### ~
|
||||||
|
|
||||||
|
### Button A and button B
|
||||||
|
|
||||||
|
This program will show the word **ANTEATER** on the LED
|
||||||
|
screen when you press button `A`.
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
input.onButtonPressed(Button.A, () => {
|
input.onButtonPressed(Button.A, () => {
|
||||||
basic.showString("AAAAA");
|
basic.showString("ANTEATER");
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
Try to unshuffle those blocks:
|
#### ~hint
|
||||||
|
|
||||||
|
The ``showString`` block can show letters, numbers, and punctuation
|
||||||
|
on the micro:bit screen.
|
||||||
|
|
||||||
|
#### ~
|
||||||
|
|
||||||
|
Now try to unscramble these blocks in the editor so that the micro:bit
|
||||||
|
shows **BANANA** when you press button `B`.
|
||||||
|
|
||||||
```shuffle
|
```shuffle
|
||||||
input.onButtonPressed(Button.A, () => {
|
|
||||||
basic.showString("YES");
|
|
||||||
});
|
|
||||||
input.onButtonPressed(Button.B, () => {
|
input.onButtonPressed(Button.B, () => {
|
||||||
basic.showString("NO");
|
basic.showString("BANANA");
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
#### ~hint
|
||||||
|
|
||||||
|
You can find the letter `B` by clicking the letter `A` on the
|
||||||
|
``onButtonPressed`` block.
|
||||||
|
|
||||||
|
#### ~
|
||||||
|
|
||||||
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
|
|
||||||
|
#### Your turn!
|
||||||
|
|
||||||
|
Can you combine these blocks so your program shows your real name
|
||||||
|
instead of **ANTEATER** when you press `A`, but _your secret agent
|
||||||
|
name_ instead of **BANANA** when you press `B`?
|
||||||
|
|
||||||
### Shake
|
### Shake
|
||||||
|
|
||||||
Using the data from the **accelerometer**, it is possible to detect that the BBC micro:bit is being shaken.
|
You can find when someone is shaking the BBC micro:bit by checking its
|
||||||
|
**accelerometer** (it finds whether the micro:bit is speeding up or
|
||||||
|
slowing down).
|
||||||
|
|
||||||
|
Unscramble these blocks in the editor to show a frownie when someone
|
||||||
|
shakes the micro:bit. (Ouch!)
|
||||||
|
|
||||||
Unshuffle the code to display a frownie when shaken.
|
|
||||||
```shuffle
|
```shuffle
|
||||||
input.onGesture(Gesture.Shake, () => {
|
input.onGesture(Gesture.Shake, () => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
@ -114,57 +186,317 @@ input.onGesture(Gesture.Shake, () => {
|
|||||||
# . . . #`);
|
# . . . #`);
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
### Tilting
|
|
||||||
|
|
||||||
Aside from shake, it is also possible to detect tilt left and right, logo up and down or face up and down.
|
|
||||||
Let's build a rock paper scissors game where you turn the micro:bit left to display paper, right to display scissors and down to display rock.
|
|
||||||
|
|
||||||
Unshuffle and try this code on the micro:bit itself!
|
|
||||||
```shuffle
|
|
||||||
input.onGesture(Gesture.TiltLeft, () => {
|
|
||||||
basic.showLeds(`
|
|
||||||
# # # # #
|
|
||||||
# . . . #
|
|
||||||
# . . . #
|
|
||||||
# . . . #
|
|
||||||
# # # # #`);
|
|
||||||
});
|
|
||||||
input.onGesture(Gesture.LogoDown, () => {
|
|
||||||
basic.showLeds(`
|
|
||||||
. . . . .
|
|
||||||
. # # # .
|
|
||||||
. # # # .
|
|
||||||
. # # # .
|
|
||||||
. . . . .`);
|
|
||||||
});
|
|
||||||
input.onGesture(Gesture.TiltRight, () => {
|
|
||||||
basic.showLeds(`
|
|
||||||
# # . . #
|
|
||||||
# # . # .
|
|
||||||
. . # . .
|
|
||||||
# # . # .
|
|
||||||
# # . . #`);
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
### Pins
|
### Pins
|
||||||
|
|
||||||
It is possible to use the pins (big metal bar at the bottom of the board) as button. Hold the ``GND`` button with one hand and press the ``0`` pin
|
You can also use the pins as buttons. (The pins are the holes in the
|
||||||
(called ``P0``) with the other hand to trigger a pin pressed.
|
metal stripe at the bottom of the micro:bit board.) For example, hold
|
||||||
|
the ``GND`` button with one hand and touch the ``0`` pin (called
|
||||||
|
``P0``) with your other hand to tell the micro:bit you're pressing it.
|
||||||
|
|
||||||
|
Unscramble the blocks in the editor to show a heart when you touch
|
||||||
|
pin ``P0``.
|
||||||
|
|
||||||
Unshuffle the blocks to display a smiley when pin ``P0`` is pressed.
|
|
||||||
```shuffle
|
```shuffle
|
||||||
input.onPinPressed(TouchPin.P0, () => {
|
input.onPinPressed(TouchPin.P0, () => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. . . . .
|
|
||||||
. # . # .
|
. # . # .
|
||||||
. . . . .
|
# . # . #
|
||||||
# . . . #
|
# . . . #
|
||||||
. # # # .`);
|
. # . # .
|
||||||
|
. . # . .`);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
|
|
||||||
|
## ~hint
|
||||||
|
|
||||||
|
Try this experiment: find a friend and hold hands. Touch the ``GND``
|
||||||
|
pin while your friend presses the ``P0`` pin. You should see the
|
||||||
|
heart! The electric current is going through your bodies and across
|
||||||
|
your handshake to make it happen!
|
||||||
|
|
||||||
|
## ~
|
||||||
|
|
||||||
|
## The amazing coin flipper
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Are you trying to choose whether to play soccer or go to the movies
|
||||||
|
instead, or which toppings to have on your pizza? Build a coin
|
||||||
|
flipping machine with the BBC micro:bit to choose for you!
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
Here are the blocks to make your coin flipper. When you press button
|
||||||
|
`B`, the coin flipper will show either `H` for heads or `T` for tails
|
||||||
|
on the LED screen.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onButtonPressed(Button.B, () => {
|
||||||
|
if (Math.randomBoolean()) {
|
||||||
|
basic.showString("H");
|
||||||
|
} else {
|
||||||
|
basic.showString("T");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
The ``pick random true or false`` block randomly tells the ``if``
|
||||||
|
block `true` or `false`. If the ``pick`` block picked `true`, the
|
||||||
|
``if`` block shows the letter `H`. Otherwise, it shows the letter `T`.
|
||||||
|
|
||||||
|
That's it!
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
### Keeping score
|
||||||
|
|
||||||
|
#### ~avatar
|
||||||
|
|
||||||
|
To keep track out of how many guesses you've won,
|
||||||
|
add these blocks to your coin flipper:
|
||||||
|
|
||||||
|
#### ~
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onButtonPressed(Button.A, () => {
|
||||||
|
game.addScore(1);
|
||||||
|
});
|
||||||
|
input.onButtonPressed(Button.AB, () => {
|
||||||
|
basic.showNumber(game.score());
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
### Your turn now!
|
These blocks mean that if you press button `A`, you will add `1` to
|
||||||
|
your score, and if you press `A` and `B` together, the micro:bit will
|
||||||
|
show your score.
|
||||||
|
|
||||||
Use the screen, buttons, gestures, pins to create a fun game using the micro:bit.
|
When you're done, your coin flipping program should look like this:
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onButtonPressed(Button.B, () => {
|
||||||
|
if (Math.randomBoolean()) {
|
||||||
|
basic.showString("H");
|
||||||
|
} else {
|
||||||
|
basic.showString("T");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
input.onButtonPressed(Button.A, () => {
|
||||||
|
game.addScore(1);
|
||||||
|
});
|
||||||
|
input.onButtonPressed(Button.AB, () => {
|
||||||
|
basic.showNumber(game.score());
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Flip until your thumbs get tired!
|
||||||
|
|
||||||
|
## Let's play Rock Paper Scissors!
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Build a Rock Paper Scissors game with the BBC micro:bit! You can play
|
||||||
|
the game with a friend who has it on a micro:bit. You can also play
|
||||||
|
it with friends who are just using their hands. (The game is built
|
||||||
|
like a coin flipper, but with three choices instead of two.)
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Step 1: Getting started
|
||||||
|
|
||||||
|
We want the micro:bit to choose rock, paper, or scissors when you
|
||||||
|
shake it. Try creating an ``on shake`` block so when you shake the
|
||||||
|
micro:bit, it will run part of a program.
|
||||||
|
|
||||||
|
Clear up the blocks and add the blocks below.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onGesture(Gesture.Shake, () => {
|
||||||
|
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
Next, when you shake the micro:bit, it should pick a random number from `0` to `2`
|
||||||
|
and store it in the variable `item`.
|
||||||
|
|
||||||
|
Add a ``set`` block with a variable. Then add a ``pick random`` block,
|
||||||
|
and store the random number in the variable,
|
||||||
|
like this:
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onGesture(Gesture.Shake, () => {
|
||||||
|
let item = Math.random(3)
|
||||||
|
})
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
No one can predict random numbers. That's what makes them great for Rock Paper Scissors!
|
||||||
|
### ~
|
||||||
|
|
||||||
|
Each possible number these blocks can make (`0`, `1`, or `2`) means a different picture.
|
||||||
|
We will show the right picture for that number on the LED screen.
|
||||||
|
|
||||||
|
|
||||||
|
## Step 2: Picking paper
|
||||||
|
|
||||||
|
Put an ``if`` block after the ``let`` block that checks whether
|
||||||
|
`item` is `0`. Make sure the ``if`` block has an ``else if`` part
|
||||||
|
and an ``else`` part.
|
||||||
|
|
||||||
|
Next, add a ``show leds`` block that shows a
|
||||||
|
picture of a piece of paper:
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onGesture(Gesture.Shake, () => {
|
||||||
|
let item = Math.random(3)
|
||||||
|
if (item == 0) {
|
||||||
|
basic.showLeds(`
|
||||||
|
# # # # #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# # # # #
|
||||||
|
`)
|
||||||
|
} else if (false) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
## Step 3: A random rock
|
||||||
|
|
||||||
|
Now we are going to add a new picture for the micro:bit to show
|
||||||
|
when another random number comes up.
|
||||||
|
|
||||||
|
Make the ``else if`` part check if the variable `item` is `1`.
|
||||||
|
Then add a ``show leds`` block with a picture of a rock.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onGesture(Gesture.Shake, () => {
|
||||||
|
let item = Math.random(3)
|
||||||
|
if (item == 0) {
|
||||||
|
basic.showLeds(`
|
||||||
|
# # # # #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# # # # #
|
||||||
|
`)
|
||||||
|
} else if (item == 1) {
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. # # # .
|
||||||
|
. # # # .
|
||||||
|
. # # # .
|
||||||
|
. . . . .
|
||||||
|
`)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
## Step 4: Suddenly scissors
|
||||||
|
|
||||||
|
Add a ``show leds`` block with a picture of scissors to the ``else`` part:
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onGesture(Gesture.Shake, () => {
|
||||||
|
let item = Math.random(3)
|
||||||
|
if (item == 0) {
|
||||||
|
basic.showLeds(`
|
||||||
|
# # # # #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# . . . #
|
||||||
|
# # # # #
|
||||||
|
`)
|
||||||
|
|
||||||
|
} else if (item == 1) {
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. # # # .
|
||||||
|
. # # # .
|
||||||
|
. # # # .
|
||||||
|
. . . . .
|
||||||
|
`)
|
||||||
|
} else {
|
||||||
|
basic.showLeds(`
|
||||||
|
# # . . #
|
||||||
|
# # . # .
|
||||||
|
. . # . .
|
||||||
|
# # . # .
|
||||||
|
# # . . #
|
||||||
|
`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### ~hint
|
||||||
|
|
||||||
|
You don't need to check if `item` is `2` because `2` is the only number left out of `0`, `1`, and `2`.
|
||||||
|
That's why you can use an ``else`` instead of an ``else if``.
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
Your game is ready!
|
||||||
|
|
||||||
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
|
|
||||||
|
Have fun!
|
||||||
|
|
||||||
|
## Step 5: Are you the greatest?
|
||||||
|
|
||||||
|
Here is a way you can make your Rock Paper Scissors game better.
|
||||||
|
When button ``A`` is pressed,
|
||||||
|
the micro:bit will add `1` to your score.
|
||||||
|
|
||||||
|
Open the ``Game`` drawer, and then add the block ``change score by 1`` to your program,
|
||||||
|
like this:
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onButtonPressed(Button.A, () => {
|
||||||
|
game.addScore(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Step 6: Prove you're the greatest!
|
||||||
|
|
||||||
|
After your micro:bit can add `1` to the score, show how many wins you have.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
input.onButtonPressed(Button.A, () => {
|
||||||
|
game.addScore(1)
|
||||||
|
basic.showString("WINS:")
|
||||||
|
basic.showNumber(game.score())
|
||||||
|
})
|
||||||
|
```
|
||||||
|
## Step 7: Staying honest
|
||||||
|
|
||||||
|
Success! Your micro:bit can track wins!
|
||||||
|
But what about losses?
|
||||||
|
Use the ``Game`` drawer to subtract `1` from your score when you press button `B`.
|
||||||
|
|
||||||
|
Here are all the blocks you will need:
|
||||||
|
|
||||||
|
```shuffle
|
||||||
|
input.onButtonPressed(Button.B, () => {
|
||||||
|
game.addScore(-1)
|
||||||
|
basic.showString("LOSSES:")
|
||||||
|
basic.showNumber(game.score())
|
||||||
|
})
|
||||||
|
```
|
||||||
|
Click **Compile** to move your program to the BBC micro:bit!
|
||||||
|
|
||||||
|
## Your turn!
|
||||||
|
|
||||||
|
How else can you make your game better?
|
||||||
|
Ever hear of [Rock Paper Scissors Spock Lizard](http://www.samkass.com/theories/RPSSL.html)?
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
|
|
||||||
## Science
|
## Science
|
||||||
* [Charting](/lessons/charting), measure and chart acceleration
|
* [Charting](/lessons/charting), measure and chart acceleration
|
||||||
|
* [Seismograph](/lessons/seismograph), create a seismograph with household items
|
||||||
|
|
||||||
## Advanced
|
## Advanced
|
||||||
* [Prank WiFi](/lessons/prank-wifi), create fake WiFi to trick your friends
|
* [Prank WiFi](/lessons/prank-wifi), create fake WiFi to trick your friends
|
||||||
@ -70,4 +71,4 @@
|
|||||||
|
|
||||||
### @section full
|
### @section full
|
||||||
|
|
||||||
The lessons promote computational thinking and computer science literacy[ read more...](/lessons/teach)
|
The lessons promote computational thinking and computer science literacy.
|
48
docs/lessons/beautiful-image/tutorial.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# beautiful image blocks challenges
|
||||||
|
|
||||||
|
Beautiful Image tutorial.
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
### @video td/videos/beautiful-image-0
|
||||||
|
|
||||||
|
Rebuild the game!
|
||||||
|
|
||||||
|
The blocks have been shuffled! Put them back together so that…
|
||||||
|
|
||||||
|
* display images on the screen with show LEDs
|
||||||
|
|
||||||
|
|
||||||
|
```shuffle
|
||||||
|
basic.showLeds(`
|
||||||
|
# # # # #
|
||||||
|
# # . # #
|
||||||
|
# . # . #
|
||||||
|
# # . # #
|
||||||
|
# # # # #
|
||||||
|
`)
|
||||||
|
basic.showLeds(`
|
||||||
|
# . # . #
|
||||||
|
. # # # .
|
||||||
|
. . # . .
|
||||||
|
. # # # .
|
||||||
|
# . # . #
|
||||||
|
`)
|
||||||
|
basic.pause(100)
|
||||||
|
```
|
||||||
|
|
||||||
|
Hints and tips
|
||||||
|
|
||||||
|
Cut out these documentation cards to help you!
|
||||||
|
|
||||||
|
```cards
|
||||||
|
basic.showLeds(`
|
||||||
|
. . . . .
|
||||||
|
. . . . .
|
||||||
|
. . # . .
|
||||||
|
. . . . .
|
||||||
|
. . . . .
|
||||||
|
`)
|
||||||
|
basic.pause(100)
|
||||||
|
|
||||||
|
```
|
@ -1,6 +1,6 @@
|
|||||||
# blocks - if statements
|
# blocks - if statements
|
||||||
|
|
||||||
An introduction to conditions for the Block Editor. #docs
|
An introduction to conditions for the Block Editor.
|
||||||
|
|
||||||
## Introduction to conditions
|
## Introduction to conditions
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# bop it challenges
|
# bop it challenges
|
||||||
|
|
||||||
a game similar to "Simon Says" with the BBC micro:bit. #docs
|
a game similar to "Simon Says" with the BBC micro:bit.
|
||||||
|
|
||||||
## Before we get started
|
## Before we get started
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# blocks - challenges
|
# blocks - challenges
|
||||||
|
|
||||||
Extra stuff for the Block Editor - an introduction to GPIO #docs
|
Extra stuff for the Block Editor - an introduction to GPIO
|
||||||
|
|
||||||
## Before we get started
|
## Before we get started
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ Create a charting app for simulating and measuring the acceleration applied to t
|
|||||||
Acceleration
|
Acceleration
|
||||||
|
|
||||||
## Quick Links
|
## Quick Links
|
||||||
* [activity](/lessons/charting/acceleration)
|
* [activity](/lessons/charting/activity)
|
||||||
* [challenge](/lessons/charting/challenge)
|
* [challenge](/lessons/charting/challenge)
|
||||||
* [quiz](/lessons/charting/quiz)
|
* [quiz](/lessons/charting/quiz)
|
||||||
* [answers](/lessons/charting/quiz-answers)
|
* [answers](/lessons/charting/quiz-answers)
|
||||||
|
@ -13,7 +13,6 @@ Let's measure `acceleration (mg)` in the "x" direction. Get the acceleration val
|
|||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
input.acceleration(Dimension.X)
|
input.acceleration(Dimension.X)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
@ -41,7 +40,7 @@ Vigorously move the micro:bit in the micro:bit simulatator by moving the micro:b
|
|||||||
|
|
||||||
We want to chart the data collected by using a tool in Excel.
|
We want to chart the data collected by using a tool in Excel.
|
||||||
|
|
||||||
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local Downloads Folder.
|
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local ``Downloads`` Folder.
|
||||||
|
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
@ -57,29 +56,13 @@ Use the Recommended Charts command on the Insert tab to quickly create a chart t
|
|||||||
|
|
||||||
* Click Insert > Recommended Charts.
|
* Click Insert > Recommended Charts.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
|
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data. Pick the **scatter plot**.
|
||||||
|
|
||||||
Click any chart type to see how your data will look in that format.
|
|
||||||
|
|
||||||
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
|
|
||||||
|
|
||||||
Tip: If you don’t see a chart type that you want, click the All Charts tab to see all of the available chart types.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Connect a micro:bit to your computer using your USB cable; compile; and repeat this experiment by moving the micro:bit in the "x" direction. Then collect and chart the data on Excel.
|
|
||||||
* Review and analyze the actual micro:bit device data on Excel
|
|
||||||
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
|
|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
||||||
Excellent, you're ready to continue with the [challenges](/lessons/charting/acceleration-challenge)
|
Excellent, you're ready to continue with the [challenges](/lessons/charting/challenge)
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
||||||
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
|
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit.
|
||||||
|
Let's get started!
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
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.
|
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.
|
||||||
@ -52,7 +53,7 @@ Notice that moving the micro:bit the farthest direction in the x direction will
|
|||||||
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bits are blue and green. So the colors of the line graphs reflect the colors of the micro:bit
|
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bits are blue and green. So the colors of the line graphs reflect the colors of the micro:bit
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
After running this simulatation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
|
After running this simulation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -67,15 +68,9 @@ Use the Recommended Charts command on the Insert tab to quickly create a chart t
|
|||||||
|
|
||||||
* Click Insert > Recommended Charts.
|
* Click Insert > Recommended Charts.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
|
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data. Pick the **scatter plot**.
|
||||||
|
|
||||||
Click any chart type to see how your data will look in that format.
|
|
||||||
|
|
||||||
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
|
|
||||||
|
|
||||||
Tip: If you don’t see a chart type that you want, click the All Charts tab to see all of the available chart types.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -91,4 +86,3 @@ Have fun reviewing your simulation and analyze the acceleration by chart the Exc
|
|||||||
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
|
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
|
||||||
* Review and analyze the actual micro:bit device acceleration data on Excel
|
* Review and analyze the actual micro:bit device acceleration data on Excel
|
||||||
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
|
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# game of chance blocks lesson
|
# game of chance blocks lesson
|
||||||
|
|
||||||
create an answering machine on the BBC micro:bit #docs
|
create an answering machine on the BBC micro:bit
|
||||||
|
|
||||||
## Topic
|
## Topic
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# blocks - rendering graphics
|
# blocks - rendering graphics
|
||||||
|
|
||||||
An introduction to graphics for the Block Editor. #docs
|
An introduction to graphics for the Block Editor.
|
||||||
|
|
||||||
## Before we get started
|
## Before we get started
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# blocks - loops
|
# blocks - loops
|
||||||
|
|
||||||
An introduction to Loops for the Block Editor. #docs
|
An introduction to Loops for the Block Editor.
|
||||||
|
|
||||||
We may want to handle the user’s input multiple times or remain waiting for their input for a long time. We use loops to make sure that our code runs multiple times. These can be found in the **Loops** drawer.
|
We may want to handle the user’s input multiple times or remain waiting for their input for a long time. We use loops to make sure that our code runs multiple times. These can be found in the **Loops** drawer.
|
||||||
|
|
||||||
|
31
docs/lessons/lucky-7/tutorial.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# lucky 7 blocks challenges
|
||||||
|
|
||||||
|
Coding challenges for lucky 7.
|
||||||
|
|
||||||
|
###~ Avatar
|
||||||
|
|
||||||
|
### @video td/videos/lucky-7-1-2
|
||||||
|
|
||||||
|
### Rebuild the game!
|
||||||
|
|
||||||
|
The blocks have been shuffled! Put them back together so that…
|
||||||
|
* The blocks should be multiples of 7 and a pause between the numbers
|
||||||
|
|
||||||
|
```shuffle
|
||||||
|
basic.showNumber(7)
|
||||||
|
basic.pause(500)
|
||||||
|
basic.showNumber(14)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Hints and tips
|
||||||
|
|
||||||
|
Cut out these documentation cards to help you!
|
||||||
|
|
||||||
|
```cards
|
||||||
|
basic.showNumber()
|
||||||
|
basic.pause()
|
||||||
|
```
|
||||||
|
|
||||||
|
* Run the code to see if it works as expected.
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
# offset image challenges
|
# offset image challenges
|
||||||
|
|
||||||
Coding challenges for the offset image tutorial. #docs
|
Coding challenges for the offset image tutorial.
|
||||||
|
|
||||||
## Before we get started
|
## Before we get started
|
||||||
|
|
@ -1,8 +1,6 @@
|
|||||||
# prank wifi lesson
|
# prank wifi lesson
|
||||||
|
|
||||||
create a fake wifi app to trick your friends.
|
Create a fake wifi app to trick your friends
|
||||||
|
|
||||||
create a fake wifi app to trick your friends
|
|
||||||
|
|
||||||
* [activity](/lessons/prank-wifi/activity)
|
* [activity](/lessons/prank-wifi/activity)
|
||||||
* [quiz](/lessons/prank-wifi/quiz)
|
* [quiz](/lessons/prank-wifi/quiz)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# prank wifi challenges
|
# prank wifi challenges
|
||||||
|
|
||||||
create a fake wifi app to trick your friends. #docs
|
create a fake wifi app to trick your friends.
|
||||||
|
|
||||||
## Before we get started
|
## Before we get started
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
# rock paper scissors lesson
|
# rock paper scissors lesson
|
||||||
|
|
||||||
a game against the BBC micro:bit.
|
A game against the BBC micro:bit.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Topic
|
## Topic
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ Learn how to create images that look like a rotating animation by using a while
|
|||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
```cards
|
```cards
|
||||||
|
while (true) {}
|
||||||
let x = 0
|
let x = 0
|
||||||
input.onButtonPressed(Button.A, () => {})
|
input.onButtonPressed(Button.A, () => {})
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
@ -30,7 +31,6 @@ basic.showLeds(`
|
|||||||
. . . . .
|
. . . . .
|
||||||
`)
|
`)
|
||||||
basic.pause(100)
|
basic.pause(100)
|
||||||
while (true) {}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Objectives
|
## Objectives
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
# screen wipe blocks lesson
|
# screen wipe blocks lesson
|
||||||
|
|
||||||
clear the screen by pressing button "A".
|
Clear the screen by pressing button "A".
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Topic
|
## Topic
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ Coding challenges for screen wipe.
|
|||||||
|
|
||||||
## Before we get started
|
## Before we get started
|
||||||
|
|
||||||
Complete the [screen wipe](/lessons/screen-wipe) activity and your code will look like this:
|
Complete the [screen wipe](/lessons/screen-wipe/activity) activity and your code will look like this:
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
|
@ -9,7 +9,7 @@ Acceleration & Analog Read Pin
|
|||||||
## Quick Links
|
## Quick Links
|
||||||
|
|
||||||
* [activity](/lessons/seismograph/activity)
|
* [activity](/lessons/seismograph/activity)
|
||||||
* [challenge](/lessons/seismograph/challenges)
|
* [challenge](/lessons/seismograph/challenge)
|
||||||
|
|
||||||
## Prior learning/place of lesson in scheme of work
|
## Prior learning/place of lesson in scheme of work
|
||||||
|
|
||||||
@ -18,11 +18,12 @@ Learn how to **show LEDs** to turn on a LED light pattern on the LED screen. We
|
|||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
```cards
|
```cards
|
||||||
basic.forever(() => {
|
basic.forever(() => {});
|
||||||
});
|
radio.sendNumber(0);
|
||||||
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
|
input.acceleration(Dimension.Strength)
|
||||||
led.plotBarGraph(pins.analogReadPin(AnalogPin.P0), 0);
|
radio.onDataReceived(() => {});
|
||||||
|
led.plotBarGraph(0, 0);
|
||||||
|
radio.receiveNumber();
|
||||||
```
|
```
|
||||||
|
|
||||||
## Objectives
|
## Objectives
|
||||||
|
@ -1,53 +1,56 @@
|
|||||||
# Seismograph Activity
|
# Seismograph Activity
|
||||||
|
|
||||||
|
Welcome! In this project, you will build your own seismograph. This activity will teach how to use the micro:bit to chart the strength of the acceleration. Let's get started! Project duration: 25 minutes.
|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
||||||
In this project, you will build your own seismograph.
|
Engineering: In this project, you will build your own seismograph micro:bit from tape and a household plate.
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
## What you'll need:
|
## What you'll need:
|
||||||
|
|
||||||
* micro:bit
|
* BBC micro:bit
|
||||||
* USB cable
|
* micro USB cable
|
||||||
|
* Plate
|
||||||
|
* Tape
|
||||||
* Scissors
|
* Scissors
|
||||||
* Glue gun
|
|
||||||
* String
|
|
||||||
* Cup (Plastic or Paper)
|
|
||||||
* Magnet
|
|
||||||
|
|
||||||
Welcome! This activity will teach how to use the micro:bit to chart the strength of the acceleration. Let's get started!
|

|
||||||
|
|
||||||
1. Setup Cup: Use scissors to cut a usable window on the cup, which will be a square sized hole at the lid side of the cup. Use scissors to create a small hole in the center of the base of the cup.
|
# Engineering Steps
|
||||||
|
|
||||||
2. Fasten Magnet: Fasten end of the string to the magnet with glue
|
## 1.
|
||||||
|
|
||||||
3. Secure String: Fasten string to base of the cup and hang the remaining string outside the base of the cup.
|
Prepare Tape: Measure and cut approximately 10mm of tape. The tape will be fastened to a micro USB cable.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 2.
|
||||||
|
|
||||||
|
Fasten Tape: Fasten tape to the micro USB cable and to the plate. Attach the micro:bit to the micro:bit USB cable.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
||||||
Seismograph built, let's code!
|
Computer Science: The seismograph has been built. We are ready to program the micro:bit to be a seismograph!
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
4. Go to Codemicrobit.com
|
# Programming Steps
|
||||||
|
|
||||||
Click or tap Create Code
|
|
||||||
Click or tap Block Editor
|
|
||||||
|
|
||||||
### ~
|
## 3.
|
||||||
|
|
||||||
5.
|
We will measure `acceleration (mg)` in terms of strength or Magnitude.
|
||||||
|
|
||||||
We will measure `acceleration (mg)` in terms of strength. Get the acceleration value (milli g-force), as measured in strength.
|
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
input.acceleration(Dimension.Strength);
|
input.acceleration(Dimension.Strength);
|
||||||
```
|
```
|
||||||
|
|
||||||
### ~
|
## 4.
|
||||||
|
|
||||||
6.
|
Use the plot bar chart to visualize the acceleration on the LED screen. Use a forever to keep reading the acceleration value and displaying it on the screen.
|
||||||
|
|
||||||
Use the plot bar chart to visualize the acceleration on the LED screen of the micro:bit in the specified range. You implement plot Bar Graph to display a vertical bar graph based on the "value" and "high" value. Then you must insert acceleration in based on strength.
|
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
@ -56,11 +59,9 @@ basic.forever(() => {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### ~
|
## 6.
|
||||||
|
|
||||||
7.
|
At rest, the micro:bit is always subject to Earth gravity, whose magnitude is measured around ``1023``. Substract ``1023`` to measure a data close to ``0``.
|
||||||
|
|
||||||
Finally, we subtract the gravity from acceleration strength.
|
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
@ -71,76 +72,113 @@ basic.forever(() => {
|
|||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
8.
|
### ~avatar avatar
|
||||||
|
|
||||||
Notice that making vibrating the object below the micro:bit changes the values and the line appears as a wave to display the value of the strength as measured in milli-gravities. By making the object below the micro:bit vibrate, you will observe changing values of the micro:bit. Also, the LEDs shown on the Bar Graph fluctates based on the movement of the micro:bit strength.
|
|
||||||
|
|
||||||
NOTE: The black color reflects the micro:bit device.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
Data Analysis: We now need to use the micro:bit to Analyze Data and chart for the strength of the acceleration.
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
9.
|
# Data Analysis Steps
|
||||||
|
|
||||||
|
## 7.
|
||||||
|
|
||||||
|
First, notice that moving the micro:bit in the simulator in any direction, you will change the acceleration value, which is being displayed as the same color as the micro:bit simulator. Also, notice that by moving the micro:bit simulator, there is a changing acceleration value. Second, the flat colored horizontal line will start a waving line to display the value of the strength as measured in milli-gravities. Finally, notice that the LED display will fluctate based on the movement of the micro:bit simulator.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 8.
|
||||||
|
|
||||||
Vigorously move the micro:bit in the micro:bit simulatator by moving the micro:bit image from side to side. Every time the micro:bit moves in the x direction in the simulator, you are generating data points that can be reviewed in Excel. The more attempts to move the micro:bit from side to side, the more data being saved in Excel. After you have vigarously moved the micro:bit simulator from side to side for a sufficient amount of time, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel that can be graphed in Excel.
|
Connect a micro:bit to your computer using your USB cable
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Click or tap the compile button for the seismograph program to run the program on the micro:bit.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 9.
|
||||||
|
|
||||||
|
A black line should appear directly beneath the colored line. The black line measures the micro:bit acceleration. And the colored line measures micro:bit simulator acceleration.
|
||||||
|
|
||||||
|
Run the acceleration experiment by vigarously moving the plate in any direction or move the object below the micro:bit (such as a table).
|
||||||
|
|
||||||
|
Every time the micro:bit moves in any direction, you generate data points that can be reviewed in Excel later. The more attempts to move the micro:bit, the more data to be reviewed in Excel.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 10.
|
||||||
|
|
||||||
|
Please find seismogrph experiment obervations:
|
||||||
|
|
||||||
|
First, notice that moving the micro:bit in any direction, you will change the acceleration value, which is being displayed as a milli-gravities value. By moving the micro:bit, there will be a changing acceleration value.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Second, the horizontal line will move to plot the value of the strength as measured in milli-gravities. The horizontal line's movement is based on the micro:bit acceleration in Magnitude or Strength.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Third, notice that the LED display fluctates based on the movement of the micro:bit.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Now we are ready to graph or chart the accceleration of the micro:bit. We want a printout of the micro:bit acceleration graphed in Excel.
|
||||||
|
|
||||||
|
## 11.
|
||||||
|
|
||||||
|
In order to receive the the data plotted by Excel, click or tap anywhere in the on the chart data.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 12.
|
||||||
|
|
||||||
|
You have two options to Analyze Data:
|
||||||
|
|
||||||
|
* Local File: Save the data to your local Downloads folder and open it in Excel.
|
||||||
|
* Stream to Cloud: Upload your data to Microsoft Azure to analyze it.
|
||||||
|
|
||||||
|
Click or tap Download data
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 13.
|
||||||
|
|
||||||
|
A CSV file will be generated to display the data points collected by the micro:bit. Click or tap on the data Excel file that was downloaded to your local Downloads Folder.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 14.
|
||||||
|
|
||||||
|
Select the data that you want to include in your chart. The chart should include the first two columns: time and acceleration.
|
||||||
|
|
||||||
|
Click or tap on the first two columns (A, B) to include time and acceleration data from the micro:bit
|
||||||
|
|
||||||
|
|
||||||
### ~
|
## 15.
|
||||||
|
|
||||||
10.
|
Click or tap on Insert then select Recommended Charts. We can select a chart that’s just right for the data.
|
||||||
|
|
||||||
We want to chart the data collected by using a tool in Excel.
|

|
||||||
|
|
||||||
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local Downloads Folder.
|
On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
|
||||||
|
|
||||||
|
We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
|
||||||
|
|
||||||
### ~
|
Click on the chart type to see how your data will look in that format. When you find the chart type that you want, click it, and then click OK.
|
||||||
|
|
||||||
10.
|

|
||||||
|
|
||||||
|
Tip: If you don’t see the line chart, click the All Charts tab to see the line chart.
|
||||||
|
|
||||||
First, click or tap on the first two columns (A, B) to include the time of the data being collected; b) the results of acceleration data on the micro:bit
|
## 16.
|
||||||
|
|
||||||

|
Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
|
||||||
|
|
||||||
Use the Recommended Charts command on the Insert tab to quickly create a chart that’s just right for your data.
|
Alternatively, click or tap on the Design Ribbon.
|
||||||
|
|
||||||
* Select the data that you want to include in your chart.
|
Let's select Style 10 as an example.
|
||||||
|
|
||||||
* Click Insert > Recommended Charts.
|

|
||||||
|
|
||||||
### ~
|
|
||||||
|
|
||||||
11.
|
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
|
|
||||||
|
|
||||||
Click any chart type to see how your data will look in that format.
|
|
||||||
|
|
||||||
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
|
|
||||||
|
|
||||||
Tip: If you don’t see a chart type that you want, click the All Charts tab to see all of the available chart types.
|
|
||||||
|
|
||||||
### ~
|
|
||||||
|
|
||||||
12.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
|
|
||||||
|
|
||||||
### ~
|
|
||||||
|
|
||||||
13.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Connect a micro:bit to your computer using your USB cable; compile; and repeat this experiment by vibrating the micro:bit. Then chart the data on Excel.
|
|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
||||||
|
@ -1,94 +1,198 @@
|
|||||||
# Challenge
|
# Seismograph Challenge
|
||||||
|
|
||||||
### ~avatar avatar
|
Coding challenges for the seismograph.
|
||||||
|
|
||||||
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Engineering: In this project, you will build a remote control based on the seismograph micro:bit activity using a second micro:bit and micro USB cable.
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
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
|
## What you'll need:
|
||||||
radio.sendNumber(input.acceleration(Dimension.X));
|
|
||||||
```
|
* BBC micro:bits (2)
|
||||||
### ~
|
* micro USB cables (2)
|
||||||
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.
|
* Plate
|
||||||
|
* Tape
|
||||||
|
* Scissors
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Before we get started
|
||||||
|
|
||||||
|
Complete the [seismograph](/lessons/seismograph/activity) activity and your code will look like this:
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
radio.sendNumber(input.acceleration(Dimension.X));
|
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
Computer Science: Welcome! The activity will teach you how to code the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
|
||||||
|
### ~
|
||||||
|
|
||||||
|
# Computer Science Steps
|
||||||
|
|
||||||
|
## 1.
|
||||||
|
We want to simply detach the blocks from the recent activity. We will use blocks from the activity to create a brand new program to show the way micro:bit devices communicate through the BLE (Bluetooth low energy) radio.
|
||||||
|
|
||||||
|
```shuffle
|
||||||
|
basic.forever(() => {
|
||||||
|
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
|
||||||
|
});
|
||||||
|
|
||||||
```
|
```
|
||||||
### ~
|
|
||||||
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
|
## 2.
|
||||||
|
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.
|
||||||
|
|
||||||
|
We need add send number block found in the Radio drawer. We will attach send number to acceleration and subtract the gravity from acceleration strength.
|
||||||
|
|
||||||
|
Your finished code will look like this:
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3.
|
||||||
|
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. We need attach forever loop to send number.
|
||||||
|
|
||||||
|
Your finished code will look like this:
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
radio.sendNumber(input.acceleration(Dimension.X))
|
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
|
||||||
})
|
});
|
||||||
radio.onDataReceived(() => {
|
|
||||||
|
|
||||||
})
|
|
||||||
```
|
```
|
||||||
### ~
|
|
||||||
|
## 4.
|
||||||
|
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`block found in the radio drawer.
|
||||||
|
|
||||||
|
Your finished code will look like this:
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
basic.forever(() => {
|
||||||
|
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
|
||||||
|
});
|
||||||
|
radio.onDataReceived(() => {
|
||||||
|
});
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5.
|
||||||
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
|
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
|
||||||
|
|
||||||
|
Your finished code will look like this:
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
radio.sendNumber(input.acceleration(Dimension.X))
|
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
|
||||||
})
|
});
|
||||||
radio.onDataReceived(() => {
|
radio.onDataReceived(() => {
|
||||||
led.plotBarGraph(radio.receiveNumber(), 1023)
|
led.plotBarGraph(radio.receiveNumber(), 0);
|
||||||
})
|
});
|
||||||
|
|
||||||
```
|
```
|
||||||
### ~
|
|
||||||
Notice that moving the micro:bit the farthest direction in the x direction will be -1023 on the charting beneath the simulator. The second observation will be that the LEDs will be full brightness on the 2nd micro:bit. There is a single LED turned on with the 1st micro:bit. Additionally, the graphs will reflect 0 acceleation for the 1st micro:bit. In this scenario, if you are adjusting the acceleration in the simualator, you are also changing your chart that will be produced.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
Science: Welcome! The activity will teach you how to chart the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
|
||||||
### ~
|
### ~
|
||||||
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bits are blue and green. So the colors of the line graphs reflect the colors of the micro:bit
|
|
||||||
|
# Science Steps
|
||||||
|
|
||||||
|
## 6.
|
||||||
|
First, notice that moving the 1st micro:bit in the simulator in any direction, you will change the acceleration value of the 2nd micro:bit. Also, notice that by moving the micro:bit simulator, there is a changing acceleration value of the second micro:bit. Second, the flat colored horizontal line will start a waving line on the 2nd micro:bit to display the value of the strength as measured in milli-gravities. Finally, notice that the LED display will fluctate based on the movement of the 2nd micro:bit simulator.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 7.
|
||||||
|
|
||||||
### ~
|
Connect the 2nd micro:bit to your computer using your USB cable. We should have two micro:bit devices attached to the computer.
|
||||||
After running this simulatation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
|
|
||||||
|

|
||||||
|
|
||||||
|
## 8.
|
||||||
|
|
||||||
|
Click or tap the compile button for the seismograph program to run the program on the 1st micro:bit and 2nd micro:bit.
|
||||||
|
|
||||||
|
## 9.
|
||||||
|
|
||||||
|
The black lines should appear directly beneath the colored lines. The black lines measure the micro:bit acceleration. And the colored lines measures micro:bit simulator acceleration.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Run the acceleration experiment by vigarously moving the plate in any direction or move the object below the micro:bit (such as a table).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Every time the micro:bit moves in any direction, you generate data points that can be reviewed in Excel later. The more attempts to move the micro:bit, the more data to be reviewed in Excel. Notice that the LED on the 2nd micro:bit changes to communicate the movement of the 1st micro:bit.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Now we are ready to graph or chart the accceleration of the micro:bit. We want a printout of the micro:bit acceleration graphed in Excel.
|
||||||
|
|
||||||
|
## 10.
|
||||||
|
|
||||||
|
In order to receive the the data plotted by Excel, click or tap anywhere in the on the chart data.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 11.
|
||||||
|
|
||||||
|
You have two options to Analyze Data:
|
||||||
|
|
||||||
|
* Local File: Save the data to your local Downloads folder and open it in Excel.
|
||||||
|
* Stream to Cloud: Upload your data to Microsoft Azure to analyze it.
|
||||||
|
|
||||||
|
Click or tap Download data
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 12.
|
||||||
|
|
||||||
|
A CSV file will be generated to display the data points collected by the micro:bit. Click or tap on the data Excel file that was downloaded to your local Downloads Folder.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 13.
|
||||||
|
|
||||||
|
Select the data that you want to include in your chart. The chart should include the first two columns: time and acceleration.
|
||||||
|
|
||||||
|
Click or tap on the first two columns (A, B) to include time and acceleration data from the micro:bit. We only need the first two columns (A, B) because the 2nd micro:bit changes have been communicated by the 1st micro:bit. So the data points of the seismograph are being recorded on the 1st micro:bit.
|
||||||
|
|
||||||
|
## 14.
|
||||||
|
|
||||||
|
Click or tap on Insert then select Recommended Charts. We can select a chart that’s just right for the data.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
|
||||||
|
|
||||||
|
We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
|
||||||
|
|
||||||
|
Click on the chart type to see how your data will look in that format. When you find the chart type that you want, click it, and then click OK.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Tip: If you don’t see the line chart, click the All Charts tab to see the line chart.
|
||||||
|
|
||||||
|
## 15.
|
||||||
|
|
||||||
|
Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
|
||||||
|
|
||||||
|
Alternatively, click or tap on the Design Ribbon.
|
||||||
|
|
||||||
|
Let's select Style 10 as an example.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
Finally, you must open the Excel CSV file by clicking on the data.xls file that was downloaded to Downloads Folder.
|
* Have fun reviewing your seismograph data and analyzing the acceleration with Excel.
|
||||||
|
* The first person and second person take shaking or moving the micor:bit in any direction while the other player charts the data on the micro:bit!
|
||||||

|
|
||||||
|
|
||||||
Use the Recommended Charts command on the Insert tab to quickly create a chart that’s just right for your data.
|
|
||||||
|
|
||||||
* Select the data that you want to include in your chart.
|
|
||||||
|
|
||||||
* Click Insert > Recommended Charts.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
|
|
||||||
|
|
||||||
Click any chart type to see how your data will look in that format.
|
|
||||||
|
|
||||||
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
|
|
||||||
|
|
||||||
Tip: If you don’t see a chart type that you want, click the All Charts tab to see all of the available chart types.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### ~
|
|
||||||
Have fun reviewing your simulation and analyze the acceleration by chart the Excel data using Excel.
|
|
||||||
|
|
||||||
* Connect the first micro:bit to your computer using your USB cable and run the charting script on it.
|
|
||||||
* Connect the second micro:bit to your computer using your USB cable and run the charting script on it.
|
|
||||||
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
|
|
||||||
* Review and analyze the actual micro:bit device acceleration data on Excel
|
* Review and analyze the actual micro:bit device acceleration data on Excel
|
||||||
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
|
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
# smiley blocks lesson
|
# smiley blocks lesson
|
||||||
|
|
||||||
design a blinking image lesson #docs
|
Design a blinking image lesson
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Topic
|
## Topic
|
||||||
|
|
||||||
|
@ -21,10 +21,6 @@ Learn how to show LEDs with a, `pause` to pause program execution for a specifie
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
* **show LEDs** : [read more...](/reference/basic/show-leds)
|
|
||||||
* **pause** : [read more...](/reference/basic/pause)
|
|
||||||
* **forever** : [read more...](/reference/basic/forever)
|
|
||||||
|
|
||||||
```cards
|
```cards
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. . . . .
|
. . . . .
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# speed button challenges
|
# speed button challenges
|
||||||
|
|
||||||
Coding challenges for the speed button tutorial. #docs
|
Coding challenges for the speed button tutorial.
|
||||||
|
|
||||||
## Before we get started
|
## Before we get started
|
||||||
|
|
||||||
|
@ -21,7 +21,6 @@ Learn how to use an if statement to run code run code depending on whether a con
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
|
||||||
```cards
|
```cards
|
||||||
if (true) {}
|
if (true) {}
|
||||||
let x = 0
|
let x = 0
|
||||||
|
@ -41,7 +41,7 @@ Overview of Blocks lessons for the BBC micro:bit.
|
|||||||
* [The Watch](/lessons/the-watch), design and create The Watch
|
* [The Watch](/lessons/the-watch), design and create The Watch
|
||||||
* [Truth or dare](/lessons/truth-or-dare), a game that forces each player to reveal a secret or do something funny with if statement
|
* [Truth or dare](/lessons/truth-or-dare), a game that forces each player to reveal a secret or do something funny with if statement
|
||||||
* [Spinner](/lessons/spinner), spin the arrow with multiple if statements
|
* [Spinner](/lessons/spinner), spin the arrow with multiple if statements
|
||||||
* [Die roll](/lessons/die-roll), spin with more if statements
|
* [Dice roll](/lessons/dice-roll), spin with more if statements
|
||||||
* [Beatbox](/lessons/classic-beatbox), make a beatbox music player with variables
|
* [Beatbox](/lessons/classic-beatbox), make a beatbox music player with variables
|
||||||
* [Temperature](/lessons/temperature), get the ambient temperature (degree Celsius °C)
|
* [Temperature](/lessons/temperature), get the ambient temperature (degree Celsius °C)
|
||||||
|
|
||||||
|
@ -14,7 +14,8 @@ Telegraph
|
|||||||
|
|
||||||
## Prior learning/place of lesson in scheme of work
|
## 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.
|
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
|
## Objectives
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Blocks - Variables
|
# Blocks - Variables
|
||||||
|
|
||||||
An introduction to variables for the Block Editor. #docs
|
An introduction to variables for the Block Editor.
|
||||||
|
|
||||||
## What is a variable?
|
## What is a variable?
|
||||||
|
|
||||||
|
@ -37,8 +37,11 @@ In this project, you will build a Rock Paper Scissors game with the BBC micro:bi
|
|||||||
You can play the game with a friend who has it on a micro:bit.
|
You can play the game with a friend who has it on a micro:bit.
|
||||||
You can also play it with friends who are just using their hands.
|
You can also play it with friends who are just using their hands.
|
||||||
|
|
||||||
|
## [START PROJECT](/#follow:/projects/rock-paper-scissors)
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
|
|
||||||
## Materials needed
|
## Materials needed
|
||||||
|
|
||||||
* Your BBC micro:bit -- that's it!
|
* Your BBC micro:bit -- that's it!
|
||||||
|
@ -1,18 +1,10 @@
|
|||||||
# Game Library
|
# Game Library
|
||||||
|
|
||||||
The game library #docs
|
|
||||||
|
|
||||||
The game library supports simple single-player time-based games. The player has a **sprite**, number of **lives** and a **score**. The game has a sprite, number of **levels** and a **countdown clock**. The general goal of a game will be to move the sprite and achieve a top score before time runs out or the number of lives goes to zero.
|
The game library supports simple single-player time-based games. The player has a **sprite**, number of **lives** and a **score**. The game has a sprite, number of **levels** and a **countdown clock**. The general goal of a game will be to move the sprite and achieve a top score before time runs out or the number of lives goes to zero.
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible in 10 seconds.
|
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible in 10 seconds.
|
||||||
|
|
||||||
```
|
```blocks
|
||||||
input.onButtonPressed(Button.A, () => {
|
input.onButtonPressed(Button.A, () => {
|
||||||
game.addScore(1)
|
game.addScore(1)
|
||||||
})
|
})
|
||||||
|
@ -1,16 +1,6 @@
|
|||||||
# Move
|
# Move
|
||||||
|
|
||||||
The game library
|
Sprite move by a certain number of LEDs
|
||||||
|
|
||||||
### Move
|
|
||||||
|
|
||||||
Sprite move by a certain number
|
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
```
|
```
|
||||||
export function move(_this: micro_bitSprites.LedSprite, leds: number)
|
export function move(_this: micro_bitSprites.LedSprite, leds: number)
|
||||||
|
@ -1,19 +1,5 @@
|
|||||||
# Position
|
# Position
|
||||||
|
|
||||||
The game library
|
|
||||||
|
|
||||||
### Create sprite
|
|
||||||
|
|
||||||
Reports the x or y position of a sprite on the LED screen
|
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||
Reports the x position of a sprite on the LED screen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
Reports the x position of a sprite on the LED screen
|
Reports the x position of a sprite on the LED screen
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -1,31 +1,7 @@
|
|||||||
# Reports
|
# Reports
|
||||||
|
|
||||||
The game library
|
|
||||||
|
|
||||||
### Reports
|
|
||||||
|
|
||||||
Reports the x or y position, the current direction of a sprite, or the brightness of a sprite on the LED screen
|
Reports the x or y position, the current direction of a sprite, or the brightness of a sprite on the LED screen
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||
Reports the x position of a sprite on the LED screen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Reports the y position of a sprite on the LED screen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Reports the brightness of a sprite on the LED screen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Reports the direction of a sprite on the LED screen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
Reports the x position of a sprite on the LED screen
|
Reports the x position of a sprite on the LED screen
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -1,20 +1,10 @@
|
|||||||
# Score
|
# Score
|
||||||
|
|
||||||
The game library #docs
|
|
||||||
|
|
||||||
The game library supports simple single-player games. The player has a **score**.
|
The game library supports simple single-player games. The player has a **score**.
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||
The code below shows a simple game where the user gets to press the button ``A`` and adds 1 point to score that will be displayed on the BBC micro:bit screen
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible in 10 seconds.
|
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible in 10 seconds.
|
||||||
|
|
||||||
```
|
```blocks
|
||||||
input.onButtonPressed(Button.A, () => {
|
input.onButtonPressed(Button.A, () => {
|
||||||
game.addScore(1)
|
game.addScore(1)
|
||||||
})
|
})
|
||||||
|
@ -1,15 +1,5 @@
|
|||||||
# Start Countdown
|
# Start Countdown
|
||||||
|
|
||||||
The game library #docs
|
|
||||||
|
|
||||||
The game library supports simple single-player time-based games. The general goal of a game will be to achieve a top score before time runs out of time.
|
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible in 10 seconds.
|
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible in 10 seconds.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -1,17 +1,5 @@
|
|||||||
# Touching
|
# Touching
|
||||||
|
|
||||||
The game library
|
|
||||||
|
|
||||||
### Touching
|
|
||||||
|
|
||||||
Reports true if sprite is touching specified sprite
|
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
Reports true if sprite is touching specified sprite
|
Reports true if sprite is touching specified sprite
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -1,17 +1,5 @@
|
|||||||
# Turn
|
# Turn
|
||||||
|
|
||||||
The game library
|
|
||||||
|
|
||||||
Rotates a sprite to the right by a certain number of degrees
|
|
||||||
|
|
||||||
## Block Editor
|
|
||||||
|
|
||||||
Rotates a sprite to the right by a certain number of degrees
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## KindScript
|
|
||||||
|
|
||||||
Rotates a sprite to the right by a certain number of degrees
|
Rotates a sprite to the right by a certain number of degrees
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
# Change Tempo By
|
# Change Tempo By
|
||||||
|
|
||||||
Change the tempo by the specified amount
|
Makes the [tempo](/reference/music/tempo) (speed of a piece of music)
|
||||||
|
faster or slower by the amount you say.
|
||||||
|
|
||||||
## Simulator
|
## Simulator
|
||||||
|
|
||||||
Simulation of this function is available in many, but not all browsers.
|
This function only works on the micro:bit and in some browsers.
|
||||||
|
|
||||||
```sig
|
```sig
|
||||||
music.changeTempoBy(20)
|
music.changeTempoBy(20)
|
||||||
@ -12,7 +13,21 @@ music.changeTempoBy(20)
|
|||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
* `bpm` : [Number](/reference/types/number) - change the tempo by beats per minute
|
* a [number](/reference/types/number) that says how much to change the bpm (beats per minute, or number of beats in a minute of the music that the micro:bit is playing).
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
This program makes the music faster by 12 bpm.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
music.changeTempoBy(12)
|
||||||
|
```
|
||||||
|
|
||||||
|
This program makes the music _slower_ by 12 bpm.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
music.changeTempoBy(-12)
|
||||||
|
```
|
||||||
|
|
||||||
### See also
|
### See also
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
# Rest
|
# Rest
|
||||||
|
|
||||||
Rests (plays nothing) for a specified time through pin PO.
|
Rest (play no sound) through pin `PO` for the amount of time you say.
|
||||||
|
|
||||||
## Simulator
|
## Simulator
|
||||||
|
|
||||||
Simulation of this function is available in many, but not all browsers.
|
This function only works on the micro:bit and in some browsers.
|
||||||
|
|
||||||
```sig
|
```sig
|
||||||
music.rest(400)
|
music.rest(400)
|
||||||
@ -12,7 +12,7 @@ music.rest(400)
|
|||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
* `ms`: [Number](/reference/types/number) - the duration of the rest (milliseconds)
|
* a [number](/reference/types/number) saying how many milliseconds the micro:bit should rest. One second is 1000 milliseconds.
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
# Ring Tone
|
# Ring Tone
|
||||||
|
|
||||||
Play a continuous tone through pin P0.
|
Play a musical tone through pin `P0` with the pitch as high or low as you say.
|
||||||
|
The tone will keep playing until you tell it not to.
|
||||||
|
|
||||||
## Simulator
|
## Simulator
|
||||||
|
|
||||||
Simulation of this function is available in many, but not all browsers.
|
This function only works on the micro:bit and in some browsers.
|
||||||
|
|
||||||
```sig
|
```sig
|
||||||
music.ringTone(440)
|
music.ringTone(440)
|
||||||
@ -12,11 +13,18 @@ music.ringTone(440)
|
|||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
* `frequency` : [Number](/reference/types/number) - Plays a tone in (Hz)
|
* a [number](/reference/types/number) that says the tone's
|
||||||
|
**frequency** (how high-pitched or low-pitched the tone is). This
|
||||||
|
number is in **Hz** (**Hertz**), which is a measurement of frequency
|
||||||
|
or pitch.
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
Play a sound based on the tile of the device
|
This program checks the **accelerometer** for the micro:bit's
|
||||||
|
**acceleration** (how much the micro:bit is speeding up or slowing
|
||||||
|
down). Then it uses that acceleration to make a tone. If the micro:bit
|
||||||
|
speeds up, the tone's pitch gets higher, and if it slows down, the
|
||||||
|
tone's pitch gets lower. It's fun -- try it!
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
@ -26,5 +34,6 @@ basic.forever(() => {
|
|||||||
|
|
||||||
### See also
|
### See also
|
||||||
|
|
||||||
[rest](/reference/music/rest), [play tone](/reference/music/play-tone) , [tempo](/reference/music/tempo), [set tempo](/reference/music/set-tempo), [change tempo by](/reference/music/change-tempo-by)
|
[rest](/reference/music/rest), [play tone](/reference/music/play-tone),
|
||||||
|
[tempo](/reference/music/tempo), [set tempo](/reference/music/set-tempo),
|
||||||
|
[change tempo by](/reference/music/change-tempo-by)
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
# Set Tempo
|
# Set Tempo
|
||||||
|
|
||||||
Sets the tempo to the specified amount
|
Makes the tempo (speed of a piece of music) as fast or slow as you say.
|
||||||
|
|
||||||
```sig
|
```sig
|
||||||
music.setTempo(60)
|
music.setTempo(60)
|
||||||
```
|
```
|
||||||
|
## Simulator
|
||||||
|
|
||||||
|
This function only works on the micro:bit and in some browsers.
|
||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
* Returns : [Number](/reference/types/number) - sets the tempo in beats per minute
|
* a [number](/reference/types/number) that means the bpm you want (beats per minute, or number of beats in a minute of the music that the micro:bit is playing).
|
||||||
|
|
||||||
### See also
|
### See also
|
||||||
|
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
# On Data Received
|
# On Data Received
|
||||||
|
|
||||||
Registers code to run when a packet is received over ``radio``.
|
Run part of a program when the micro:bit receives a
|
||||||
|
[number](/reference/types/number) or [string](/reference/types/string) over ``radio``.
|
||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
* body - is an action
|
* the part of the program to run when the micro:bit receives information over ``radio``.
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
|
This program keeps sending numbers that says how fast the micro:bit is
|
||||||
|
slowing down or speeding up. It also receives numbers for the same
|
||||||
|
thing from nearby micro:bits. It shows these numbers as a
|
||||||
|
[bar graph](/reference/led/plot-bar-graph).
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
radio.sendNumber(input.acceleration(Dimension.X));
|
radio.sendNumber(input.acceleration(Dimension.X));
|
||||||
@ -19,5 +25,6 @@ radio.onDataReceived(() => {
|
|||||||
|
|
||||||
### See also
|
### See also
|
||||||
|
|
||||||
[receive number](/reference/radio/receive-number), [send number](/reference/radio/send-number), [set group](/reference/radio/set-group)
|
[receive number](/reference/radio/receive-number),
|
||||||
|
[send number](/reference/radio/send-number), [set group](/reference/radio/set-group)
|
||||||
|
|
||||||
|
@ -1,16 +1,22 @@
|
|||||||
# Set Group
|
# Set Group
|
||||||
|
|
||||||
Sets the group id for ``radio`` communications. A micro:bit can only listen to one group ID at any time.
|
Make a program have the group ID you tell it for sending and receiving
|
||||||
|
with ``radio``. A group is like a cable channel (a micro:bit can only
|
||||||
|
send or receive in one group at a time). A group ID is like the cable
|
||||||
|
channel number.
|
||||||
|
|
||||||
Unless specified, the group id is automatically inferred from the script source. Every script with the same exact source code with start with the same group id.
|
If you do not tell your program which group ID to use with this
|
||||||
|
function, it will figure out its own group ID by itself. If you load
|
||||||
|
the very same program onto two different micro:bits, they will be able
|
||||||
|
to talk to each other because they will have the same group ID.
|
||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
* ``id`` -- a [number](/reference/types/number) between ``0`` and ``255``.
|
* ``id`` is a [number](/reference/types/number) from ``0`` to ``255``.
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
Sets the group to 128.
|
This program makes the group ID equal 128.
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
radio.setGroup(128)
|
radio.setGroup(128)
|
||||||
|
@ -1,33 +1,27 @@
|
|||||||
# Set Transmit Power
|
# Set Transmit Power
|
||||||
|
|
||||||
Sets the transmitter power for ``radio`` communications.
|
Make the ``radio`` signal of the micro:bit stronger or weaker.
|
||||||
The power can be set to a value between 0 (-30dbm) and 7 (+4dbm).
|
It can be as weak as `0` and as strong as `7`.
|
||||||
|
|
||||||
|
The scientific name for the strength of the ``radio`` signal is
|
||||||
|
**dBm**, or **decibel-milliwatts**. A signal strength of `0`
|
||||||
|
can be measured as -30 dBm, and a strength of `7` can be
|
||||||
|
measured as +4 dBm.
|
||||||
|
|
||||||
## Range
|
## Range
|
||||||
|
|
||||||
At power level 7, in an open area without significant interference (coming from WiFi networks or other devices operating on the 2.4 GHz range), you can get a **range of over 70m**.
|
If your micro:bit is sending with a strength of `7`, and you are in
|
||||||
|
an open area without many other computers around, the micro:bit signal
|
||||||
Indoors (or with additional interference), range will be significantly reduced.
|
can reach as far as 70 meters (about 230 feet).
|
||||||
|
|
||||||
## Important Security Consideration
|
|
||||||
|
|
||||||
The functions in the ``radio`` namespace allow the BBC micro:bit to communicate with other micro:bits.
|
|
||||||
|
|
||||||
This API does not contain any form of encryption, authentication or authorization. It's purpose is solely for use as a teaching aid to demonstrate how simple communications operates, and to provide a sandpit through which learning can take place.
|
|
||||||
|
|
||||||
For serious applications, BLE should be considered a substantially more secure alternative.
|
|
||||||
|
|
||||||
```sig
|
|
||||||
radio.setTransmitPower(1)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
* ``power`` -- a [number](/reference/types/number) between ``0`` and ``7``.
|
* a [number](/reference/types/number) between ``0`` and ``7`` that
|
||||||
|
means how strong the signal is.
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
Sets the transmitter power to full power at 7.
|
This program makes the ``radio`` send at full strength.
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
radio.setTransmitPower(7)
|
radio.setTransmitPower(7)
|
||||||
|
@ -4,7 +4,12 @@
|
|||||||
basic.forever(() => { basic.showString("RELEASE NOTES"); });
|
basic.forever(() => { basic.showString("RELEASE NOTES"); });
|
||||||
```
|
```
|
||||||
|
|
||||||
## May 2017
|
## June 2016
|
||||||
|
|
||||||
|
* It is now possible to stream data into the cloud (Azure) from the PXT editor. Simply click on the log view to get started.
|
||||||
|
* Documentation column pops up for large screen to avoid switching between docs and editor.
|
||||||
|
|
||||||
|
## May 2016
|
||||||
|
|
||||||
We're happy to announce [m.pxt.io](https://m.pxt.io), an Blocks/JavaScript editor for the [BBC micro:bit](https://www.microbit.co.uk).
|
We're happy to announce [m.pxt.io](https://m.pxt.io), an Blocks/JavaScript editor for the [BBC micro:bit](https://www.microbit.co.uk).
|
||||||
The editor is [open source](/open-source) on GitHub. Send us your PR!
|
The editor is [open source](/open-source) on GitHub. Send us your PR!
|
||||||
|
BIN
docs/static/mb/analyze1.png
vendored
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
docs/static/mb/analyze3.png
vendored
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
docs/static/mb/lessons/analyze.png
vendored
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
docs/static/mb/lessons/analyze1.png
vendored
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
docs/static/mb/lessons/analyze16.png
vendored
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
docs/static/mb/lessons/analyze19.png
vendored
Normal file
After Width: | Height: | Size: 105 KiB |
BIN
docs/static/mb/lessons/analyze2.png
vendored
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
docs/static/mb/lessons/analyze20.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
docs/static/mb/lessons/analyze3.png
vendored
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
docs/static/mb/lessons/analyze5.png
vendored
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
docs/static/mb/lessons/analyze6.png
vendored
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
docs/static/mb/lessons/analyze7.png
vendored
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/static/mb/lessons/analyze8.png
vendored
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
docs/static/mb/lessons/analyze9.png
vendored
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
docs/static/mb/lessons/banana-keyboard-0.png
vendored
Before Width: | Height: | Size: 518 KiB After Width: | Height: | Size: 104 KiB |
BIN
docs/static/mb/lessons/banana-keyboard-10.png
vendored
Before Width: | Height: | Size: 915 KiB After Width: | Height: | Size: 196 KiB |
BIN
docs/static/mb/lessons/banana-keyboard-12.png
vendored
Before Width: | Height: | Size: 514 KiB After Width: | Height: | Size: 154 KiB |
BIN
docs/static/mb/lessons/cascade-0.png
vendored
Before Width: | Height: | Size: 553 KiB After Width: | Height: | Size: 54 KiB |
BIN
docs/static/mb/lessons/cascade-1.png
vendored
Before Width: | Height: | Size: 706 KiB After Width: | Height: | Size: 54 KiB |
BIN
docs/static/mb/lessons/cascade-2.png
vendored
Before Width: | Height: | Size: 587 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
BIN
docs/static/mb/lessons/column-0.png
vendored
Before Width: | Height: | Size: 412 KiB After Width: | Height: | Size: 22 KiB |
BIN
docs/static/mb/lessons/column-1.png
vendored
Before Width: | Height: | Size: 411 KiB After Width: | Height: | Size: 25 KiB |
BIN
docs/static/mb/lessons/guess-the-number-0.png
vendored
Before Width: | Height: | Size: 628 KiB After Width: | Height: | Size: 36 KiB |
BIN
docs/static/mb/lessons/ornament-chain-5.png
vendored
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 113 KiB |
BIN
docs/static/mb/lessons/ornament-chain-7.png
vendored
Before Width: | Height: | Size: 383 KiB After Width: | Height: | Size: 114 KiB |
BIN
docs/static/mb/lessons/seis_challenge01.png
vendored
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
docs/static/mb/lessons/seis_challenge02.png
vendored
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
docs/static/mb/lessons/seis_challenge04.png
vendored
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
docs/static/mb/lessons/seis_challenge05.png
vendored
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
docs/static/mb/lessons/seis_challenge06.png
vendored
Normal file
After Width: | Height: | Size: 126 KiB |
BIN
docs/static/mb/lessons/seis_challenge07.png
vendored
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
docs/static/mb/lessons/seismograph0.png
vendored
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
docs/static/mb/lessons/seismograph1.png
vendored
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
docs/static/mb/lessons/seismograph10.png
vendored
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
docs/static/mb/lessons/seismograph11.png
vendored
Normal file
After Width: | Height: | Size: 196 KiB |
BIN
docs/static/mb/lessons/seismograph22.png
vendored
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/static/mb/lessons/seismograph3.png
vendored
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
docs/static/mb/lessons/seismograph32.png
vendored
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/static/mb/lessons/seismograph33.png
vendored
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
docs/static/mb/lessons/seismograph4.png
vendored
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
docs/static/mb/lessons/seismograph5.png
vendored
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
docs/static/mb/lessons/seismograph6.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
docs/static/mb/lessons/seismograph7.png
vendored
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
docs/static/mb/lessons/seismograph8.png
vendored
Normal file
After Width: | Height: | Size: 142 KiB |