Compare commits
277 Commits
Author | SHA1 | Date | |
---|---|---|---|
fe28dd9b92 | |||
cfcbe8fb41 | |||
d86f820a57 | |||
ace1ddb00b | |||
96be411ba2 | |||
f24f7c2279 | |||
0130a7753e | |||
54b72ba312 | |||
7bced60466 | |||
041b10ef04 | |||
0e08b58f84 | |||
dd14489f47 | |||
6d6c2b5e99 | |||
251f382e8e | |||
887a652a06 | |||
bbbb1ea6bc | |||
2c399f198a | |||
54213cf554 | |||
0c67cd8e8b | |||
a0a23a261c | |||
20c7a16524 | |||
0a722b2196 | |||
4a537b1ce8 | |||
cf0372aeaa | |||
918d2f1a3a | |||
c1a6c1c66a | |||
7a2c4f0056 | |||
23eefb28d2 | |||
2ab2535966 | |||
bb20c1780b | |||
764505d2ca | |||
62b6b8e9eb | |||
beac252620 | |||
6e62acb384 | |||
b5afe25387 | |||
ebea6b29f3 | |||
f4eca66648 | |||
a6e6dd8287 | |||
d94c7e0157 | |||
4657263abb | |||
a6c2b24e8d | |||
31651f9a11 | |||
43c7692a8f | |||
7f05de734c | |||
fe39eec686 | |||
655fa0fde8 | |||
2841df6950 | |||
713dfec949 | |||
23c4087830 | |||
de293be4fc | |||
4e54649ce7 | |||
caeef2f1e1 | |||
f3d7693a26 | |||
2ceece6cdf | |||
c2913aea82 | |||
bf90e01e7e | |||
bbee53607b | |||
e94e2e7dc4 | |||
02a0839a4e | |||
67ea6c01f2 | |||
5b5cac878b | |||
56301d2d6f | |||
f8e80e6a9d | |||
d1f314d790 | |||
27f39b4458 | |||
0c40f79dec | |||
346ec3d1a6 | |||
5a2896808e | |||
4a34edeab0 | |||
5c2833978b | |||
edfc2274a2 | |||
899c9fd8d6 | |||
13f63c2f46 | |||
8841c47638 | |||
c6f5a8dcc6 | |||
786c5f9733 | |||
0cdedd02b4 | |||
aba028b1e8 | |||
3049c88d5b | |||
8239329c2e | |||
c9d4807f25 | |||
5f4ff08c09 | |||
b99be68ea5 | |||
c639cc3f83 | |||
cd56181703 | |||
5b1a807443 | |||
e604b27c4f | |||
4727b105c4 | |||
4063b5aac8 | |||
ee8505b4f1 | |||
ab4e2c458a | |||
126c236b14 | |||
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 | |||
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
|
||||
|
||||
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
|
||||
```
|
||||
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.
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
## Universal Windows App
|
||||
|
@ -29,24 +29,29 @@ The BBC micro:bit was made possible by many [partners](https://www.microbit.co.u
|
||||
The micro:bit provides an easy and fun introduction to programming and making – switch on, program it to do something fun – wear it, customize it.
|
||||
Just like Arduino, the micro:bit can be connected to and interact with sensors, displays, and other devices.
|
||||
|
||||
## Blocks or JavaScript
|
||||
## Hardware: The Device
|
||||
|
||||
The student can program the BBC micro:bit using [visual blocks](http://www.github.com/Google/blockly) or JavaScript.
|
||||
Learn about about the [hardware components](/device) of the micro:bit to make the most of it!
|
||||
|
||||
## Programming: Blocks or JavaScript
|
||||
|
||||
The student can program the BBC micro:bit using [Blocks](/blocks) or [JavaScript](/typescript), via the [micro:bit APIs](/reference):
|
||||
|
||||
```blocks
|
||||
basic.showString("BBC micro:bit!");
|
||||
basic.showString("Hi!");
|
||||
```
|
||||
|
||||
## Compile and Flash
|
||||
## Compile and Flash: Your Program!
|
||||
|
||||
When a user has her code ready, she can connect her BBC micro:bit to a computer via a USB cable, so it appears as a mounted drive.
|
||||
When a user has her code ready, she can connect her BBC micro:bit to a computer via a USB cable, so it appears as a mounted drive (named MICROBIT).
|
||||
|
||||
Compilation to the ARM thumb machine code happens in the browser.
|
||||
Compilation to ARM thumb machine code from [Blocks](/blocks) or [JavaScript](/typescript) happens in the browser.
|
||||
|
||||
The student is prompted to save the ARM binary program to a file, which she then simply drags to the micro:bit mounted drive,
|
||||
which flashes the micro:bit device with the new program.
|
||||
|
||||
## Simulator: Test Your Code
|
||||
|
||||
Before a student compiles her code for the micro:bit, she can run it using the micro:bit simulator, all within the confines of a web browser.
|
||||
The simulator has support for the LED screen, buttons, as well as compass, accelerometer, and digital I/O pins.
|
||||
|
||||
@ -54,5 +59,10 @@ The simulator has support for the LED screen, buttons, as well as compass, accel
|
||||
|
||||
The [C++ BBC micro:bit runtime](http://lancaster-university.github.io/microbit-docs/), created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
|
||||
as well as a set of helper functions (such as displaying a number/image/string on the LED screen).
|
||||
The JavaScript micro:bit library mirrors the functions of the C++ library.
|
||||
|
||||
The [micro:bit library](/reference) mirrors the functions of the C++ library.
|
||||
When code is compiled to ARM machine code, the calls to JavaScript micro:bit functions are replaced with calls to the corresponding C++ functions.
|
||||
|
||||
## Open Source
|
||||
|
||||
The editor for the BBC micro:bit is [open source](/open-source) on GitHub. Contributors are welcome!
|
||||
|
8
docs/blocks.md
Normal file
8
docs/blocks.md
Normal file
@ -0,0 +1,8 @@
|
||||
# Blocks language
|
||||
|
||||
```namespaces
|
||||
for (let i = 0;i<5;++i) {}
|
||||
if (true){}
|
||||
let x = 0;
|
||||
Math.random(5);
|
||||
```
|
@ -2,8 +2,6 @@
|
||||
|
||||
true or false.
|
||||
|
||||
### @parent blocks/language
|
||||
|
||||
A Boolean has one of two possible values: `true`; `false`. Boolean (logical) operators (*and*, *or*, *not*) take Boolean inputs and yields a Boolean value. Comparison operators on other types ([numbers](/reference/types/number), [strings](/reference/types/string) yields a Boolean value.
|
||||
|
||||
The following blocks represent the true and false Boolean values, which can be plugged in anywhere a Boolean value is expected:
|
||||
@ -32,7 +30,7 @@ The next six blocks represent comparison operators that yield a Boolean value. M
|
||||
42 >= 0;
|
||||
```
|
||||
|
||||
Boolean values and operators are often used with an [if](/reference/logic/if) or [while](/reference/loops/while) statement to determine which code will execute next. For example:
|
||||
Boolean values and operators are often used with an [if](/blocks/logic/if) or [while](/blocks/loops/while) statement to determine which code will execute next. For example:
|
||||
|
||||
### Functions that return a Boolean
|
||||
|
||||
@ -98,11 +96,7 @@ if(x < 5) {
|
||||
|
||||
See the documentation on [Numbers](/reference/types/number) for more information on comparing two Numbers. You can also [compare strings](/reference/types/string-functions) using the `equals` function.
|
||||
|
||||
### Lessons
|
||||
|
||||
[rotation animation](/lessons/rotation-animation), [love meter](/lessons/love-meter), [zoomer](/lessons/zoomer)
|
||||
|
||||
### See also
|
||||
|
||||
[if](/reference/logic/if), [while](/reference/loops/while), [number](/reference/types/number)
|
||||
[if](/blocks/logic/if), [while](/blocks/loops/while), [number](/reference/types/number)
|
||||
|
28
docs/blocks/logic/if.md
Normal file
28
docs/blocks/logic/if.md
Normal file
@ -0,0 +1,28 @@
|
||||
# If
|
||||
|
||||
### @parent blocks/language
|
||||
|
||||
|
||||
Conditionally run code depending on whether a [Boolean](/blocks/logic/boolean) condition is true or false.
|
||||
|
||||
```blocks
|
||||
if(true) {
|
||||
}
|
||||
```
|
||||
|
||||
Click on the dark blue gear icon (see above) to add an *else* or *if* to the current block.
|
||||
|
||||
### Example: adjusting screen brightness
|
||||
|
||||
```blocks
|
||||
if(input.lightLevel()<100){
|
||||
led.setBrightness(255);
|
||||
}
|
||||
```
|
||||
|
||||
If the [light level](/reference/input/light-level) is `< 100`, this code sets the brightness to `255`:
|
||||
|
||||
### See also
|
||||
|
||||
[while loop](/blocks/loops/while), [for](/blocks/loops/for), [boolean](/blocks/logic/boolean)
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
```cards
|
||||
for(let i = 0;i<5;i++) {}
|
||||
for(let i = 1;i<5;i++) {}
|
||||
while(true) {}
|
||||
basic.forever(() => {})
|
||||
basic.forever(() => {});
|
||||
```
|
@ -14,11 +14,7 @@ basic.showNumber(i)
|
||||
}
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[looper](/lessons/looper)
|
||||
|
||||
### See also
|
||||
|
||||
[repeat](/reference/loops/repeat), [while](/reference/loops/while), [if](/reference/logic/if), [show number](/reference/basic/show-number)
|
||||
[repeat](/blocks/loops/repeat), [while](/blocks/loops/while), [if](/blocks/logic/if), [show number](/reference/basic/show-number)
|
||||
|
12
docs/blocks/loops/repeat.md
Normal file
12
docs/blocks/loops/repeat.md
Normal file
@ -0,0 +1,12 @@
|
||||
# Repeat
|
||||
|
||||
Run part of the program the number of times you say.
|
||||
|
||||
### Block Editor
|
||||
|
||||

|
||||
|
||||
### See also
|
||||
|
||||
[for](/blocks/loops/for), [while](/blocks/loops/while), [if](/blocks/logic/if), [show number](/reference/basic/show-number)
|
||||
|
@ -1,16 +1,13 @@
|
||||
# While
|
||||
|
||||
### @parent blocks/language
|
||||
|
||||
|
||||
Repeat code while a [Boolean](/reference/types/boolean) `condition` is true.
|
||||
Repeat code while a [Boolean](/blocks/logic/boolean) `condition` is true.
|
||||
|
||||
```blocks
|
||||
while(true) {
|
||||
}
|
||||
```
|
||||
|
||||
The while loop has a *condition* that evaluates to a [Boolean](/reference/types/boolean) value. After the `do` keyword, add the code that you want to run while the `condition` is `true`. The while loop concludes with `end while`.
|
||||
The while loop has a *condition* that evaluates to a [Boolean](/blocks/logic/boolean) value. After the `do` keyword, add the code that you want to run while the `condition` is `true`. The while loop concludes with `end while`.
|
||||
|
||||
The condition is tested before any code runs. Which means that if the condition is false, the code inside the loop doesn't execute.
|
||||
|
||||
@ -26,11 +23,7 @@ while(index >= 0) {
|
||||
}
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[rotation animation](/lessons/rotation-animation)
|
||||
|
||||
### See also
|
||||
|
||||
[on button pressed](/reference/input/on-button-pressed), [for](/reference/loops/for), [if](/reference/logic/if), [forever](/reference/basic/forever)
|
||||
[on button pressed](/reference/input/on-button-pressed), [for](/blocks/loops/for), [if](/blocks/logic/if), [forever](/reference/basic/forever)
|
||||
|
@ -1,15 +1,9 @@
|
||||
# Math Library
|
||||
|
||||
Functions in the math library.
|
||||
# Math functions
|
||||
|
||||
### @parent blocks/language
|
||||
|
||||
The math library includes math related functions that you can use with [Numbers](/reference/types/number).
|
||||
|
||||
* In the [Block editor](/blocks/editor), click **maths** on the left to see the available blocks
|
||||
|
||||
The functions available in Block Editor are:
|
||||
|
||||
### abs
|
||||
|
||||
math `->` abs (x : [Number](/reference/types/number)) *returns* [Number](/reference/types/number)
|
||||
@ -42,11 +36,7 @@ returns a random [Number](/reference/types/number) between 0 and the parameter *
|
||||
|
||||

|
||||
|
||||
### Lessons
|
||||
|
||||
[love meter](/lessons/love-meter)
|
||||
|
||||
### See also
|
||||
|
||||
[Block Editor documentation](/blocks/contents), [Number](/reference/types/number)
|
||||
[Number](/reference/types/number)
|
||||
|
@ -1,6 +1,6 @@
|
||||
## Variables
|
||||
|
||||
[Assign](/reference/variables/assign) (set) a variable's value
|
||||
[Assign](/blocks/variables/assign) (set) a variable's value
|
||||
|
||||
```blocks
|
||||
let x = 0;
|
||||
@ -13,7 +13,7 @@ let x = 0;
|
||||
x;
|
||||
```
|
||||
|
||||
[Change](/reference/variables/change-var) a variable's value
|
||||
[Change](/blocks/variables/change-var) a variable's value
|
||||
|
||||
```blocks
|
||||
let x = 0;
|
@ -1,6 +1,6 @@
|
||||
# Assignment Operator
|
||||
|
||||
Use an equals sign to make a [variable](/reference/variables/var) store the [number](/reference/types/number)
|
||||
Use an equals sign to make a [variable](/blocks/variables/var) store the [number](/reference/types/number)
|
||||
or [string](/reference/types/string) you say.
|
||||
|
||||
When you use the equals sign to store something in a variable, the equals sign is called
|
||||
@ -30,11 +30,7 @@ You can use the assignment operator with variables of
|
||||
every [type](/reference/types). A *type* is which kind of thing
|
||||
a variable can store, like a number or string.
|
||||
|
||||
### Lessons
|
||||
|
||||
[rotation animation](/lessons/rotation-animation)
|
||||
|
||||
### See also
|
||||
|
||||
[variable](/reference/variables/var), [types](/reference/types)
|
||||
[variable](/blocks/variables/var), [types](/reference/types)
|
||||
|
40
docs/blocks/variables/change-var.md
Normal file
40
docs/blocks/variables/change-var.md
Normal file
@ -0,0 +1,40 @@
|
||||
# Change Value
|
||||
|
||||
Set the value for local and global variables.
|
||||
|
||||
### @parent blocks/change-value
|
||||
|
||||
Change the value of a variable
|
||||
|
||||
```blocks
|
||||
let x = 0
|
||||
x += 1
|
||||
```
|
||||
|
||||
### Declare a variable
|
||||
|
||||
Use the assignment operator to set the value of a [variable](/blocks/variables/var). Change the value of a variable from 0 to 1 using the change item block. Like this:
|
||||
|
||||
```blocks
|
||||
let x = 0
|
||||
x += 1
|
||||
```
|
||||
|
||||
### Example
|
||||
|
||||
Use the assignment operator to set the value of a [variable](/blocks/variables/var). Change the value of a variable from 0 to 1 using the change item block. Then display the new value of the variable on the LED screen. Like this:
|
||||
|
||||
```blocks
|
||||
let x = 0;
|
||||
x += 1;
|
||||
basic.showNumber(x);
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
* You can use the assignment operator with variables of each of the supported [types](/reference/types).
|
||||
|
||||
### See also
|
||||
|
||||
[variable](/blocks/variables/var), [types](/reference/types)
|
||||
|
@ -13,7 +13,7 @@ A variable is a place where you can store and retrieve data. Variables have a na
|
||||
### Var statement
|
||||
|
||||
Use the Block Editor variable statement to create a variable
|
||||
and the [assignment operator](/reference/variables/assign)
|
||||
and the [assignment operator](/blocks/variables/assign)
|
||||
to store something in the variable.
|
||||
|
||||
For example, this code stores the number `2` in the `x` variable:
|
||||
@ -27,7 +27,7 @@ Here's how to define a variable in the Block Editor:
|
||||
|
||||
2. Change the default variable name if you like.
|
||||
|
||||
3. Drag a block type on the right-side of the [assignment operator](/reference/variables/assign) and click the down arrow to change the variable name.
|
||||
3. Drag a block type on the right-side of the [assignment operator](/blocks/variables/assign) and click the down arrow to change the variable name.
|
||||
|
||||
A variable is created for the number returned by the [brightness](/reference/led/brightness) function.
|
||||
|
||||
@ -81,11 +81,7 @@ if (led.brightness() > 128) {
|
||||
|
||||
* You can use the default variable names if you'd like, however, it's best to use descriptive variable names. To change a variable name in the editor, select the down arrow next to the variable and then click "new variable".
|
||||
|
||||
### Lessons
|
||||
|
||||
[glowing pendulum](/lessons/glowing-pendulum), [love meter](/lessons/love-meter), [temperature](/lessons/temperature), [zoomer](/lessons/zoomer)
|
||||
|
||||
### See also
|
||||
|
||||
[types](/reference/types), [assignment operator](/reference/variables/assign)
|
||||
[types](/reference/types), [assignment operator](/blocks/variables/assign)
|
||||
|
@ -15,12 +15,14 @@ It flashes yellow when the system wants to tell the user that something has happ
|
||||
### Buttons
|
||||
|
||||
Buttons A and B are a form of input. When you press a button, it completes an electrical circuit.
|
||||
The micro:bit can detect either of its two buttons being pressed and un-pressed and be programmed
|
||||
to act on that or send the information to another device.
|
||||
The micro:bit can detect either of its two buttons being pressed/released and be programmed
|
||||
to act on these events.
|
||||
|
||||
Button R on the back of the micro:bit is a system button. It has different uses.
|
||||
When you have downloaded and run your code onto your micro:bit, press Button R to restart and run your program from the beginning.
|
||||
|
||||
### USB connection
|
||||
|
||||
When you plug in your micro:bit, it should appear as MICROBIT.
|
||||
If you accidentally hold down the reset button as you’re plugging in your micro:bit,
|
||||
the micro:bit will appear as a MAINTENANCE drive instead of MICROBIT. This is known as maintenance mode.**
|
||||
@ -43,7 +45,7 @@ This data can be used by the micro:bit in a program or be sent to another device
|
||||
|
||||
### Accelerometer
|
||||
|
||||
There is a an accelerometer on your micro:bit which detects changes in the micro:bit’s speed.
|
||||
There is an accelerometer on your micro:bit which detects changes in the micro:bit’s speed.
|
||||
It converts analogue information into digital form that can be used in micro:bit programs.
|
||||
Output is in milli-g. The device will also detect a small number of standard actions e.g. shake, tilt and free-fall.
|
||||
|
||||
@ -63,7 +65,7 @@ and about the error messages you might get [here](/device/error-codes).
|
||||
|
||||
### Powering your micro:bit
|
||||
|
||||
When your micro:bit is connected to your computer with the micro USB, it doesn’t need another power source.
|
||||
When your micro:bit is connected to your computer with the micro USB, it doesn’t need another power source.
|
||||
When your micro:bit isn’t connected to your computer, tablet or mobile, you will need 2 x AAA 1.5 V batteries to power it.
|
||||
|
||||
The pins labelled 3V and GND are the power supply pins.
|
||||
@ -75,7 +77,7 @@ The BBC micro:bit can send an receive data via [serial communication](/device/se
|
||||
|
||||
### Bluetooth Low Energy (BLE) Antenna
|
||||
|
||||
You will see the label BLE ANNTENA on the back of your micro:bit. It is for a messaging service,
|
||||
You will see the label BLE ANTENNA on the back of your micro:bit. It is for a messaging service,
|
||||
so that devices can talk to each other. The micro:bit is a peripheral
|
||||
device which can talk to a central device like a smart phone or tablet that has Bluetooth Low Energy (BLE).
|
||||
The micro:bit can send signals and receive signals from a central device so another BLE device can
|
||||
|
@ -1,7 +1,5 @@
|
||||
# micro:bit - the device
|
||||
|
||||
The micro:bit device #docs
|
||||
|
||||
The micro:bit is a very capable device with many components:
|
||||
|
||||
* [the USB connector](/device/usb)
|
||||
|
@ -11,12 +11,6 @@ This example displays a random number every time the crocodile clip holds `GND`
|
||||
|
||||
### Connecting Crocodile Clips
|
||||
|
||||
|
||||
|
||||
### Lessons
|
||||
|
||||
[love meter](/lessons/love-meter)
|
||||
|
||||
### See also
|
||||
|
||||
[micro:bit pins](/device/pins), [pin is pressed](/reference/input/pin-is-pressed), [analog read pin](/reference/pins/analog-read-pin), [analog write pin](/reference/pins/analog-write-pin), [digital read pin](/reference/pins/digital-read-pin), [digital write pin](/reference/pins/digital-write-pin)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 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.
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
# The micro:bit - a reactive system
|
||||
|
||||
The micro:bit is a reactive system. #docs
|
||||
|
||||
### Computing systems
|
||||
|
||||
What sort of a *computing system* is the micro:bit?
|
||||
|
@ -3,40 +3,61 @@
|
||||
The micro:bit LED screen
|
||||
|
||||
```sim
|
||||
basic.showString(" ");
|
||||
basic.showLeds(`
|
||||
# . # . #
|
||||
. # . # .
|
||||
# . # . #
|
||||
. # . # .
|
||||
# . # . #
|
||||
`);
|
||||
```
|
||||
|
||||
The micro:bit LED screen consists of 25 red LED lights arranged in a 5X5 grid (5 LEDs across by 5 LEDs down).
|
||||
In the screen above, we created a checkerboard pattern using the LEDs.
|
||||
|
||||
### Which LED?
|
||||
|
||||
You use ``x , y`` coordinates to specify a particular LED in the grid; where ``x`` is the horizontal position and ``y`` is the vertical position (0, 1, 2, 3, 4). To figure out the ``x``, ``y`` coordinates, position your micro:bit horizontally, like a credit card (see picture above).
|
||||
You use `(x ,y)` coordinates to specify a particular LED in the grid;
|
||||
where `x` is the horizontal position (0,1,2,3,4) and `y` is the vertical position
|
||||
(0, 1, 2, 3, 4).
|
||||
|
||||
To figure out the ``x``, ``y`` coordinates, position your micro:bit horizontally, like a credit card (see picture above).
|
||||
|
||||
Here are the x, y coordinates for the LEDs in the 5X5 grid:
|
||||
|
||||
`0, 0` `1, 0` `2, 0` `3, 0` `4, 0`
|
||||
`(0,0)` `(1,0)` `(2,0)` `(3,0)` `(4,0)`
|
||||
|
||||
`0, 1` `1, 1` `2, 1` `3, 1` `4, 1`
|
||||
`(0,1)` `(1,1)` `(2,1)` `(3,1)` `(4,1)`
|
||||
|
||||
`0, 2` `1, 2` `2, 2` `3, 2` `4, 2`
|
||||
`(0,2)` `(1,2)` `(2,2)` `(3,2)` `(4,2)`
|
||||
|
||||
`0, 3` `1, 3` `2, 3` `3, 3` `4, 3`
|
||||
`(0,3)` `(1,3)` `(2,3)` `(3,3)` `(4,3)`
|
||||
|
||||
`0, 4` `1, 4` `2, 4` `3, 4` `4, 4`
|
||||
`(0,4)` `(1,4)` `(2,4)` `(3,4)` `(4,4)`
|
||||
|
||||
The x, y coordinates for the LED in the centre of the grid are `2, 2`. Starting from `0, 0` count over 2 columns and then down 2 rows.
|
||||
The x, y coordinates for the LED in the centre of the grid are `(2,2)`. Starting from `(0,0)` count over 2 columns and then down 2 rows.
|
||||
|
||||
### Check your understanding
|
||||
|
||||
Which LEDs are turned on in the checkboard pattern above?
|
||||
|
||||
### Row, column - 1
|
||||
|
||||
Since the row and column numbers start at 0, an easy way to figure out the x, y coordinates is to subtract 1 from the row and column number (when counting from 1). In other words, to specify the LED in the 4th column 5th row, subtract 1 from each number to get coordinates `3, 4`.
|
||||
Since the row and column numbers start at 0, an easy way to figure out the (x,y) coordinates
|
||||
is to subtract 1 from the row and column number (when counting from 1).
|
||||
In other words, to specify the LED in the 4th column 5th row, subtract 1 from each number to get coordinates `(3,4)`.
|
||||
|
||||
### Turn a LED on/off
|
||||
|
||||
Use [plot](/reference/led/plot) and [unplot](/reference/led/unplot) to turn a LED on or off
|
||||
|
||||
```blocks
|
||||
led.plot(0,0)
|
||||
led.unplot(0,0)
|
||||
led.plot(0,0);
|
||||
led.plot(1,1);
|
||||
basic.pause(1000);
|
||||
led.unplot(0,0);
|
||||
basic.pause(1000);
|
||||
led.unplot(1,1);
|
||||
```
|
||||
|
||||
### Is a LED on/off?
|
||||
|
@ -11,16 +11,35 @@ input.onButtonPressed(Button.A, () => {
|
||||
})
|
||||
```
|
||||
|
||||
Data is also automatically streamed to serial by the ** bar graph** block
|
||||
and picked up by the editor. This data can be streamed to the cloud as well.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
led.plotBarGraph(input.acceleration(Dimension.X), 0);
|
||||
});
|
||||
```
|
||||
|
||||
## How to read the micro:bit's serial output from your computer
|
||||
|
||||
Unfortunately, using the serial library requires quite a bit of a setup.
|
||||
|
||||
### BBC micro:bit Chrome Extension
|
||||
|
||||
If you are using the Google Chrome browser, you can use our extension to get serial data streaming in the editor.
|
||||
|
||||
* Install the [Extension for BBC micro:bit](https://chrome.google.com/webstore/detail/extension-for-bbc-microbi/cihhkhnngbjlhahcfmhekmbnnjcjdbge?hl=en-US) on the Chrome Web Store.
|
||||
* Restart Chrome and open the web editor.
|
||||
|
||||
### Windows
|
||||
|
||||
You must install a device driver (for the computer to recognize the serial interface of the micro:bit); then, you must also install a terminal emulator (which is going to connect to the micro:bit and read its output). Here's how to do it:
|
||||
|
||||
* Follow instructions at https://developer.mbed.org/handbook/Windows-serial-configuration in order to install the device driver
|
||||
* Install a terminal emulator; we recommend [Tera Term](https://ttssh2.osdn.jp/index.html.en). At the time of this writing, the latest version is 4.88 and can be downloaded [from here](http://en.osdn.jp/frs/redir.php?m=jaist&f=%2Fttssh2%2F63767%2Fteraterm-4.88.exe). Follow the instructions from the installer.
|
||||
|
||||
#### Windows > Tera Term
|
||||
|
||||
* Install the terminal emulator [Tera Term](https://ttssh2.osdn.jp/index.html.en). At the time of this writing, the latest version is 4.88 and can be downloaded [from here](http://en.osdn.jp/frs/redir.php?m=jaist&f=%2Fttssh2%2F63767%2Fteraterm-4.88.exe). Follow the instructions from the installer.
|
||||
|
||||
Once both the driver and the terminal emulator are installed, plug in the micro:bit and wait until the device is fully setup. Then, open TeraTerm.
|
||||
|
||||
@ -32,7 +51,7 @@ You should be good. Feel free to hit `Setup` > `Save Setup` in the menus to eras
|
||||
|
||||
Please note that Windows will assign you a different COM port if you plug in another micro:bit. If you're juggling between micro:bits, you'll have to change the COM port every time.
|
||||
|
||||
### Alternative Windows setup with Putty
|
||||
#### Windows > Putty
|
||||
|
||||
If you prefer another terminal emulator (such as [PuTTY](http://www.putty.org/)), here are some instructions.
|
||||
|
||||
|
@ -2,7 +2,8 @@
|
||||
|
||||
How to compile, transfer, and run a script on your micro:bit.
|
||||
|
||||
While you're writing and testing your Block Editor or Touch Develop scripts, you'll mostly be running scripts in your browser by clicking the `Run` button (see [run code in your browser](/device/simulator) for info about this).
|
||||
While you're writing and testing your scripts, you'll mostly be running scripts in your browser by clicking the `PLay` button
|
||||
(see [run code in your browser](/device/simulator) for info about this).
|
||||
|
||||
Once your masterpiece is complete, you can compile your script and run it on your micro:bit.
|
||||
|
||||
|
@ -24,10 +24,11 @@ input.onButtonPressed(Button.B, () => {
|
||||
});
|
||||
```
|
||||
|
||||
* **[getting started](/getting-started)**
|
||||
* Browse the [API reference](/reference)
|
||||
* Learn more about the [device](/device)
|
||||
* Get started with [lessons](/lessons)
|
||||
* **[getting started](/getting-started)**
|
||||
* Get started with [projects](/projects)
|
||||
* Browse the [micro:bit APIs](/reference)
|
||||
* Learn more about the [micro:bit device](/device)
|
||||
* Frequently Asked Question [faq](/faq)
|
||||
* Follow up with the [release notes](/release-notes)
|
||||
|
||||
### Developers
|
||||
|
6
docs/faq.md
Normal file
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
|
||||
|
||||
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. Arrange the blocks in the editor
|
||||
to make real programs that work!
|
||||
|
||||
```shuffle
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`)
|
||||
```
|
||||
## ~
|
||||
|
||||
To transfer your code to the BBC micro:bit,
|
||||
* 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!
|
||||
### Happy face
|
||||
|
||||
### Show animation Forever
|
||||
|
||||
Show one image after the other to create an animation by snapping them together.
|
||||
There are three blocks in the editor (the area to the left).
|
||||
Arrange them to look like this:
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
@ -36,25 +25,29 @@ Show one image after the other to create an animation by snapping them together.
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . . . .
|
||||
. # # # .
|
||||
# . . . #
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
});
|
||||
```
|
||||
|
||||
To transfer your code to the BBC micro:bit,
|
||||
* 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!
|
||||
When you run this program, you will see a smiley face, then a blank
|
||||
screen, then a smiley again -- it never stops! (That's because of the
|
||||
``forever`` block.)
|
||||
|
||||
### 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!
|
||||
```shuffle
|
||||
Draw an unhappy face instead of the blank screen. Click on the dots
|
||||
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.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``
|
||||
to create your own custom awesome animation!
|
||||
Pile up more ``show leds`` blocks to create your animation! Create an
|
||||
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.
|
||||
The key idea is that all the blocks nested under `on button ... pressed` will run when that button is pressed.
|
||||
#### ~hint
|
||||
|
||||
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
|
||||
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
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showString("YES");
|
||||
});
|
||||
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
|
||||
|
||||
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
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
basic.showLeds(`
|
||||
@ -114,57 +186,317 @@ input.onGesture(Gesture.Shake, () => {
|
||||
# . . . #`);
|
||||
});
|
||||
```
|
||||
|
||||
### 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(`
|
||||
# # . . #
|
||||
# # . # .
|
||||
. . # . .
|
||||
# # . # .
|
||||
# # . . #`);
|
||||
});
|
||||
```
|
||||
Click **Compile** to move your program to the BBC micro:bit!
|
||||
|
||||
### 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
|
||||
(called ``P0``) with the other hand to trigger a pin pressed.
|
||||
You can also use the pins as buttons. (The pins are the holes in the
|
||||
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
|
||||
input.onPinPressed(TouchPin.P0, () => {
|
||||
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)?
|
||||
|
@ -1,6 +1,5 @@
|
||||
# Lessons
|
||||
|
||||
|
||||
### @short Lessons
|
||||
|
||||
### ~column
|
||||
@ -31,7 +30,6 @@
|
||||
* [Guess the Number](/lessons/guess-the-number), guess a random number with pick number
|
||||
* [Counter](/lessons/counter), display a number with a variable
|
||||
* [Love Meter](/lessons/love-meter), create a love meter with on pin pressed
|
||||
* [Rock Paper Scissors](/lessons/rock-paper-scissors), create the classic game of rock paper scissors 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
|
||||
* [Dice Roll](/lessons/dice-roll), spin with more if statements
|
||||
@ -44,21 +42,17 @@
|
||||
* [Zoomer](/lessons/zoomer), measure the force with acceleration
|
||||
* [Glowing Pendulum](/lessons/glowing-pendulum), construct a pendulum that glows using acceleration
|
||||
* [Classic Beatbox](/lessons/classic-beatbox), make a beatbox music player with variables
|
||||
* [Light Beatbox](/lessons/light-beatbox), make a beatbox music player with light level
|
||||
|
||||
### ~
|
||||
|
||||
### ~column
|
||||
|
||||
## Maker
|
||||
* [The Watch](/lessons/the-watch), design and create The Watch
|
||||
* [Hack your Headphones](/lessons/hack-your-headphones), create music on the BBC micro:bit by hacking your headphones
|
||||
* [Banana Keyboard](/lessons/banana-keyboard), create music with fruits
|
||||
* [Telegraph](/lessons/telegraph), play the telegraph game between two BBC micro:bits
|
||||
* [Pogo](/lessons/pogo), create a pogo game to test your jumping abilities
|
||||
|
||||
## Science
|
||||
* [Charting](/lessons/charting), measure and chart acceleration
|
||||
* [Seismograph](/lessons/seismograph), create a seismograph with household items
|
||||
|
||||
## Advanced
|
||||
* [Prank WiFi](/lessons/prank-wifi), create fake WiFi to trick your friends
|
||||
@ -69,5 +63,3 @@
|
||||
### ~
|
||||
|
||||
### @section full
|
||||
|
||||
The lessons promote computational thinking and computer science literacy[ read more...](/lessons/teach)
|
@ -1,21 +0,0 @@
|
||||
# banana keyboard blocks lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
Music
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/lessons/banana-keyboard/activity)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to convert your BBC micro:bit into a music player using pins P0 and GND, earphones (or speakers), as well as crocodile clips (or spring clips). The connect fruit using pins P1 and GND.
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to setup the BBC micro:bit with earphones to play music
|
||||
* learn how to setup the BBC micro:bit with fruit be the musical instrument
|
||||
|
48
docs/lessons/beautiful-image/tutorial.md
Normal file
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
|
||||
|
||||
An introduction to conditions for the Block Editor. #docs
|
||||
An introduction to conditions for the Block Editor.
|
||||
|
||||
## Introduction to conditions
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 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
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 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
|
||||
|
||||
|
@ -7,7 +7,7 @@ Create a charting app for simulating and measuring the acceleration applied to t
|
||||
Acceleration
|
||||
|
||||
## Quick Links
|
||||
* [activity](/lessons/charting/acceleration)
|
||||
* [activity](/lessons/charting/activity)
|
||||
* [challenge](/lessons/charting/challenge)
|
||||
* [quiz](/lessons/charting/quiz)
|
||||
* [answers](/lessons/charting/quiz-answers)
|
||||
|
@ -13,7 +13,6 @@ Let's measure `acceleration (mg)` in the "x" direction. Get the acceleration val
|
||||
|
||||
```blocks
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||

|
||||

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

|
||||
|
||||
* 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"
|
||||
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data. Pick the **scatter plot**.
|
||||
|
||||
### ~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
|
||||
|
||||
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.
|
||||
@ -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
|
||||
|
||||
### ~
|
||||
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.
|
||||
|
||||

|
||||

|
||||
|
||||
* 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.
|
||||
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data. Pick the **scatter plot**.
|
||||
|
||||

|
||||
|
||||
@ -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!
|
||||
* 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"
|
||||
|
||||
|
@ -34,7 +34,7 @@ basic.showLeds(`
|
||||
`)
|
||||
```
|
||||
|
||||
* **variable**: [read more...](/reference/variables/var)
|
||||
* **variable**: [read more...](/blocks/variables)
|
||||
* **arithmetic operators**: [read more...](/reference/types/number)
|
||||
* **on button pressed** : [read more...](/reference/input/on-button-pressed)
|
||||
* **show number** : [read more...](/reference/basic/show-number)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 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
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# blocks - rendering graphics
|
||||
|
||||
An introduction to graphics for the Block Editor. #docs
|
||||
An introduction to graphics for the Block Editor.
|
||||
|
||||
## Before we get started
|
||||
|
||||
|
@ -1,20 +0,0 @@
|
||||
# hack your headphones lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
Hack your headphone
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/lessons/hack-your-headphones/activity)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to convert your BBC micro:bit into a music player using pins P0 and GND, headphones (or speakers), as well as crocodile clips (or spring clips).
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to setup the BBC micro:bit with headphones to play music
|
||||
|
@ -42,19 +42,18 @@ Learn how to create a charades game with **collections**, ` create -> Collection
|
||||
## Documentation
|
||||
|
||||
* **collection**
|
||||
* **global variables** : [read more...](/reference/variables/globals.md)
|
||||
* **Boolean** : [read more...](/reference/types/boolean)
|
||||
* **on logo up** [read more...](/functions/on-logo-up)
|
||||
* **on screen down** [read more...](/functions/on-screen-down)
|
||||
* **on screen up** [read more...](/functions/on-screen-up)
|
||||
* **variables** : [read more...](/blocks/variables)
|
||||
* **Boolean** : [read more...](/blocks/logic/boolean)
|
||||
* **on logo up** [read more...](/reference/input/on-gesture)
|
||||
* **on screen down** [read more...](/reference/input/on-gesture)
|
||||
* **on screen up** [read more...](/reference/input/on-gesture)
|
||||
* **show string** : [read more...](/reference/basic/show-string)
|
||||
* **game library** : [read more...](/reference/game-library)
|
||||
* **game library** : [read more...](/reference/game)
|
||||
|
||||
## Resources
|
||||
|
||||
* Activity: [tutorial](/lessons/headbands/activity)
|
||||
* Activity: [quiz](/lessons/headbands/quiz)
|
||||
* Extended Activity: [challenges](/lessons/headbands/challenges)
|
||||
* Quiz: [quiz](/lessons/headbands/quiz)
|
||||
|
||||
## Objectives
|
||||
|
||||
@ -115,15 +114,6 @@ Computational Thinking Concept: AB = Abstraction; DE = Decomposition; AL = Algor
|
||||
* [tutorial](/lessons/headbands/activity)
|
||||
* [quiz](/lessons/headbands/quiz)
|
||||
|
||||
## Extended Activity
|
||||
|
||||
* time: 20 min.
|
||||
* [challenges](/lessons/headbands/challenges)
|
||||
|
||||
## Homework
|
||||
|
||||
* Extended Activity: [challenges](/lessons/headbands/challenges)
|
||||
|
||||
## Intended follow on
|
||||
|
||||
Publish script to the classroom.
|
||||
|
@ -1,21 +0,0 @@
|
||||
# light beatbox
|
||||
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
Music
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/lessons/light-beatbox/activity)
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to make a light beatbox music player using the light sensor. We will be learning how to code musical notes using light level, a local variable, conditionals, on button pressed as well as simple commands such as ring tone and rest.
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to control the light sensor on the BBC micro:bit
|
||||
* learn how to code music on the BBC micro:bit
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 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.
|
||||
|
||||
|
31
docs/lessons/lucky-7/tutorial.md
Normal file
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
|
||||
|
||||
Coding challenges for the offset image tutorial. #docs
|
||||
Coding challenges for the offset image tutorial.
|
||||
|
||||
## Before we get started
|
||||
|
@ -1,8 +1,6 @@
|
||||
# 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)
|
||||
* [quiz](/lessons/prank-wifi/quiz)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 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
|
||||
|
||||
|
@ -1,64 +0,0 @@
|
||||
# rock paper scissors lesson
|
||||
|
||||
a game against the BBC micro:bit.
|
||||
|
||||
|
||||
|
||||
## Topic
|
||||
|
||||
Local Variables
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/lessons/rock-paper-scissors/activity)
|
||||
* [challenges](/lessons/rock-paper-scissors/challenges)
|
||||
|
||||
## Class
|
||||
|
||||
Year 7
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to create a **local variable**, `var t :=time` where you can store data, so that you can use it in your code. We will be learning how to create a classic rock paper scissors game using global variables, input on shake, local variables, math random as well as simple commands such as create image, show image, show string, and show number.
|
||||
|
||||
## Documentation
|
||||
|
||||
```cards
|
||||
input.onGesture(Gesture.Shake, () => {})
|
||||
Math.random(3)
|
||||
let x = 0
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to create a condition so the micro:bit will run code when it is shaken
|
||||
* learn how to create a local variable for a place where you can store data
|
||||
* learn how to create an image to show on the micro:bit's LED screen
|
||||
* learn how to show an image on the micro:bit's LED screen
|
||||
|
||||
## Progression Pathways / Computational Thinking Framework
|
||||
|
||||
#### Algorithms
|
||||
|
||||
* Uses diagrams to express solutions.(AB)
|
||||
* Represents solutions using a structured notation (AL) (AB)
|
||||
|
||||
#### Programming & Development
|
||||
|
||||
* Creates programs that implement algorithms to achieve given goals (AL)
|
||||
* Declares and assigns variables(AB)
|
||||
* Selects the appropriate data types(AL) (AB
|
||||
|
||||
#### Data & Data Representation
|
||||
|
||||
* Defines data types: real numbers and Boolean (AB)
|
||||
|
||||
Computational Thinking Concept: AB = Abstraction; DE = Decomposition; AL = Algorithmic Thinking; EV = Evaluation; GE = Generalisation
|
||||
|
@ -1,121 +0,0 @@
|
||||
# rock paper scissors activity
|
||||
|
||||
A classic game against the micro:bit.
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
|
||||
|
||||
Welcome! This tutorial will help you create a game of rock paper scissors with the micro:bit. Let's get started!
|
||||
|
||||
### ~
|
||||
|
||||
We want the micro:bit to choose rock, paper, or scissors when it is shaken. Let's begin by creating an on shake condition so the micro:bit will run code when it is shaken.
|
||||
|
||||
|
||||
```blocks
|
||||
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
Next, create a variable and store pick random number from 0 to 2. On shake, a number will be randomly picked from 0-2. We will randomly display an image based on the random number returned.
|
||||
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let img = Math.random(3)
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
The micro:bit will look like it's showing 1 frame of the image by displaying the whole image when pick random is equal to 2. We can help the micro:bit randomly decide which image to use by pick random. The micro:bit will randomly pick the image to display with show LEDs and the pick random function.
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let img = Math.random(3)
|
||||
if (img == 2) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# # # # #
|
||||
`)
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
```
|
||||
|
||||
The micro:bit will look like it's showing 1 frame of the image by displaying the whole image when pick random is equal to 1. We can help the micro:bit randomly decide which image to use by pick random. The micro:bit will randomly pick the image to display with show LEDs and the pick random function.
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let img = Math.random(3)
|
||||
if (img == 2) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# # # # #
|
||||
`)
|
||||
|
||||
} else if (img == 1) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. . . . .
|
||||
`)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
The micro:bit will look like it's showing 1 frame of the image by displaying the whole image when pick random is not equal to 2 and not equal to 1. We can help the micro:bit randomly decide which image to use by pick random. The micro:bit will randomly pick the image to display with show LEDs and the pick random function.
|
||||
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let img = Math.random(3)
|
||||
if (img == 2) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# # # # #
|
||||
`)
|
||||
|
||||
} else if (img == 1) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. . . . .
|
||||
`)
|
||||
} else {
|
||||
basic.showLeds(`
|
||||
. . . # #
|
||||
# # . # .
|
||||
. . # . .
|
||||
# # . # .
|
||||
. . . # #
|
||||
`)
|
||||
}
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/lessons/rock-paper-scissors/challenges)!
|
||||
|
||||
### ~
|
||||
|
@ -1,133 +0,0 @@
|
||||
# rock paper scissors challenges
|
||||
|
||||
Coding challenges for rock paper scissors.
|
||||
|
||||
## Before we get started
|
||||
|
||||
Complete the following [guided activity](/lessons/rock-paper-scissors/activity) , your code should look like this:
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let img = Math.random(3)
|
||||
if (img == 2) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# # # # #
|
||||
`)
|
||||
|
||||
} else if (img == 1) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. . . . .
|
||||
`)
|
||||
} else {
|
||||
basic.showLeds(`
|
||||
. . . # #
|
||||
# # . # .
|
||||
. . # . .
|
||||
# # . # .
|
||||
. . . # #
|
||||
`)
|
||||
}
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
### Challenge 1
|
||||
|
||||
When the A button is pressed, increment the score by 1. You can select Game drawer then add change score by 1.
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let img = Math.random(2)
|
||||
if (img == 2) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# # # # #
|
||||
`)
|
||||
|
||||
} else if (img == 1) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. . . . .
|
||||
`)
|
||||
} else {
|
||||
basic.showLeds(`
|
||||
. . . # #
|
||||
# # . # .
|
||||
. . # . .
|
||||
# # . # .
|
||||
. . . # #
|
||||
`)
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
game.addScore(1)
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
* Click *run* to execute your code in the simulator
|
||||
|
||||
### Challenge 2
|
||||
|
||||
After incrementing the score, display the total number of wins you have.
|
||||
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
let img = Math.random(2)
|
||||
if (img == 2) {
|
||||
basic.showLeds(`
|
||||
# # # # #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# . . . #
|
||||
# # # # #
|
||||
`)
|
||||
|
||||
} else if (img == 1) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. # # # .
|
||||
. . . . .
|
||||
`)
|
||||
} else {
|
||||
basic.showLeds(`
|
||||
. . . # #
|
||||
# # . # .
|
||||
. . # . .
|
||||
# # . # .
|
||||
. . . # #
|
||||
`)
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
game.addScore(1)
|
||||
basic.showString("WINS:")
|
||||
basic.showNumber(game.score())
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
* Run and compile the code to see if it works as expected.
|
||||
|
||||
### Challenge 3
|
||||
|
||||
You have successfully tracked and displayed the number of wins on the micro:bit! However, what about losses? Use the Game drawer to change score by -1 when button `B` is pressed.
|
||||
|
||||
* Run and compile the code to see if it works as expected.
|
@ -1,74 +0,0 @@
|
||||
# rock paper scissors quiz
|
||||
|
||||
shift an image horizontally across the display with offset.
|
||||
|
||||
## Name
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [rock paper scissors tutorial](/lessons/rock-paper-scissors/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
## 1. Describe what `offset` does?
|
||||
|
||||
<br/>
|
||||
|
||||
## 2. Draw which LEDs are ON after running this code and the random number returned is 0
|
||||
|
||||
```blocks
|
||||
let img = images.createImage(`
|
||||
. . . . . # # # # # . . . . #
|
||||
. # # # . # . . . # # # . # .
|
||||
. # # # . # . . . # . # # . .
|
||||
. # # # . # . . . # # # . # .
|
||||
. . . . . # # # # # . . . . #
|
||||
`)
|
||||
let offset = Math.random(3) * 5
|
||||
img.showImage(offset)
|
||||
```
|
||||
|
||||

|
||||
|
||||
<br/>
|
||||
|
||||
<br/>
|
||||
|
||||
## 3. Draw which LEDs are ON after running this code with an offset of 5. This would occur if the random number returned is 1.
|
||||
|
||||
```blocks
|
||||
let img_ = images.createImage(`
|
||||
. . . . . # # # # # . . . . #
|
||||
. # # # . # . . . # # # . # .
|
||||
. # # # . # . . . # . # # . .
|
||||
. # # # . # . . . # # # . # .
|
||||
. . . . . # # # # # . . . . #
|
||||
`)
|
||||
let offset_ = Math.random(3) * 5
|
||||
img.showImage(offset)
|
||||
```
|
||||
|
||||

|
||||
|
||||
<br/>
|
||||
|
||||
<br/>
|
||||
|
||||
## 4. Draw which LEDs are ON after running this code with an offset of 10. This would occur if the random number returned is 2.
|
||||
|
||||
```blocks
|
||||
let img_1 = images.createImage(`
|
||||
. . . . . # # # # # . . . . #
|
||||
. # # # . # . . . # # # . # .
|
||||
. # # # . # . . . # . # # . .
|
||||
. # # # . # . . . # # # . # .
|
||||
. . . . . # # # # # . . . . #
|
||||
`)
|
||||
let offset_1 = Math.random(3) * 5
|
||||
img.showImage(offset)
|
||||
```
|
||||
|
||||

|
||||
|
||||
<br/>
|
||||
|
@ -20,6 +20,7 @@ Learn how to create images that look like a rotating animation by using a while
|
||||
## Documentation
|
||||
|
||||
```cards
|
||||
while (true) {}
|
||||
let x = 0
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
basic.showLeds(`
|
||||
@ -30,7 +31,6 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
`)
|
||||
basic.pause(100)
|
||||
while (true) {}
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,8 +1,6 @@
|
||||
# screen wipe blocks lesson
|
||||
|
||||
clear the screen by pressing button "A".
|
||||
|
||||
|
||||
Clear the screen by pressing button "A".
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -4,7 +4,7 @@ Coding challenges for screen wipe.
|
||||
|
||||
## 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
|
||||
basic.showLeds(`
|
||||
|
@ -9,7 +9,7 @@ Acceleration & Analog Read Pin
|
||||
## Quick Links
|
||||
|
||||
* [activity](/lessons/seismograph/activity)
|
||||
* [challenge](/lessons/seismograph/challenges)
|
||||
* [challenge](/lessons/seismograph/challenge)
|
||||
|
||||
## 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
|
||||
|
||||
```cards
|
||||
basic.forever(() => {
|
||||
});
|
||||
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
|
||||
led.plotBarGraph(pins.analogReadPin(AnalogPin.P0), 0);
|
||||
|
||||
basic.forever(() => {});
|
||||
radio.sendNumber(0);
|
||||
input.acceleration(Dimension.Strength)
|
||||
radio.onDataReceived(() => {});
|
||||
led.plotBarGraph(0, 0);
|
||||
radio.receiveNumber();
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,53 +1,56 @@
|
||||
# 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
|
||||
|
||||
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:
|
||||
|
||||
* micro:bit
|
||||
* USB cable
|
||||
* BBC micro:bit
|
||||
* micro USB cable
|
||||
* Plate
|
||||
* Tape
|
||||
* 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
|
||||
|
||||
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
|
||||
|
||||
Click or tap Create Code
|
||||
Click or tap Block Editor
|
||||
# Programming Steps
|
||||
|
||||
### ~
|
||||
## 3.
|
||||
|
||||
5.
|
||||
|
||||
We will measure `acceleration (mg)` in terms of strength. Get the acceleration value (milli g-force), as measured in strength.
|
||||
We will measure `acceleration (mg)` in terms of strength or Magnitude.
|
||||
|
||||
```blocks
|
||||
input.acceleration(Dimension.Strength);
|
||||
```
|
||||
|
||||
### ~
|
||||
## 4.
|
||||
|
||||
6.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
@ -56,11 +59,9 @@ basic.forever(() => {
|
||||
|
||||
```
|
||||
|
||||
### ~
|
||||
## 6.
|
||||
|
||||
7.
|
||||
|
||||
Finally, we subtract the gravity from acceleration strength.
|
||||
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``.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
@ -71,76 +72,113 @@ basic.forever(() => {
|
||||
|
||||
### ~
|
||||
|
||||
8.
|
||||
|
||||
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.
|
||||
|
||||

|
||||
### ~avatar avatar
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
radio.sendNumber(input.acceleration(Dimension.X));
|
||||
```
|
||||
### ~
|
||||
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
|
||||
## What you'll need:
|
||||
|
||||
* BBC micro:bits (2)
|
||||
* micro USB cables (2)
|
||||
* Plate
|
||||
* Tape
|
||||
* Scissors
|
||||
|
||||

|
||||
|
||||
## Before we get started
|
||||
|
||||
Complete the [seismograph](/lessons/seismograph/activity) activity and your code will look like this:
|
||||
|
||||
```blocks
|
||||
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
|
||||
basic.forever(() => {
|
||||
radio.sendNumber(input.acceleration(Dimension.X))
|
||||
})
|
||||
radio.onDataReceived(() => {
|
||||
|
||||
})
|
||||
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
|
||||
});
|
||||
|
||||
```
|
||||
### ~
|
||||
|
||||
## 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.
|
||||
|
||||
Your finished code will look like this:
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
radio.sendNumber(input.acceleration(Dimension.X))
|
||||
})
|
||||
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
|
||||
});
|
||||
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.
|
||||
|
||||
### ~
|
||||
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.
|
||||
Connect the 2nd micro:bit to your computer using your USB cable. We should have two micro:bit devices attached to the computer.
|
||||
|
||||

|
||||
|
||||
## 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.
|
||||
|
||||

|
||||
|
||||
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!
|
||||
* 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!
|
||||
* 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
|
||||
|
||||
design a blinking image lesson #docs
|
||||
|
||||
|
||||
Design a blinking image lesson
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -21,10 +21,6 @@ Learn how to show LEDs with a, `pause` to pause program execution for a specifie
|
||||
|
||||
## Documentation
|
||||
|
||||
* **show LEDs** : [read more...](/reference/basic/show-leds)
|
||||
* **pause** : [read more...](/reference/basic/pause)
|
||||
* **forever** : [read more...](/reference/basic/forever)
|
||||
|
||||
```cards
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
|
@ -22,10 +22,10 @@ Learn how to declare a **Boolean** variable, `var t:= true` `var f:=false` for o
|
||||
## Documentation
|
||||
|
||||
* **running time** : [read more...](/reference/input/running-time)
|
||||
* **global variable** : [read more...](/reference/variables/globals)
|
||||
* **Boolean** : [read more...](/reference/types/boolean)
|
||||
* **variable** : [read more...](/blocks/variables)
|
||||
* **Boolean** : [read more...](/blocks/logic/boolean)
|
||||
* **on button pressed** : [read more...](/reference/input/on-button-pressed)
|
||||
* **if** : [read more...](/reference/logic/if)
|
||||
* **if** : [read more...](/blocks/logic/if)
|
||||
* **show string** : [read more...](/reference/basic/show-string)
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# speed button challenges
|
||||
|
||||
Coding challenges for the speed button tutorial. #docs
|
||||
Coding challenges for the speed button tutorial.
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
```cards
|
||||
if (true) {}
|
||||
let x = 0
|
||||
|
@ -9,9 +9,9 @@ Overview of Blocks lessons for the BBC micro:bit.
|
||||
## Science
|
||||
|
||||
* [Night Light](/lessons/night-light), dim the LEDs with set brightness
|
||||
* [Hack your headphones](/lessons/hack-your-headphones), create music on the BBC micro:bit by hacking your headphones
|
||||
* [Banana Keyboard](/lessons/banana-keyboard), create music with fruits
|
||||
* [Telegraph](/lessons/telegraph), play the telegraph game between 2 BBC micro:bits
|
||||
* [Hack your headphones](/projects/hack-your-headphones), create music on the BBC micro:bit by hacking your headphones
|
||||
* [Banana Keyboard](/projects/banana-keyboard), create music with fruits
|
||||
* [Telegraph](/projects/telegraph), play the telegraph game between 2 BBC micro:bits
|
||||
* [Zoomer](/lessons/zoomer), measure the force with acceleration
|
||||
* [Glowing pendulum](/lessons/glowing-pendulum), construct a pendulum that glows using acceleration
|
||||
|
||||
@ -38,10 +38,9 @@ Overview of Blocks lessons for the BBC micro:bit.
|
||||
|
||||
## Engineering
|
||||
|
||||
* [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
|
||||
* [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
|
||||
* [Temperature](/lessons/temperature), get the ambient temperature (degree Celsius °C)
|
||||
|
||||
|
@ -1,23 +0,0 @@
|
||||
# telegraph lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
Telegraph
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/lessons/telegraph/activity)
|
||||
* [challenges](/lessons/telegraph/challenges)
|
||||
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to convert your BBC micro:bit into a telegraph using a second BBC micro:bit as well as pin P1, P2, 3V, GND, and crocodile clips (or spring clips). The connect BBC micro:bit uses pins P1, P2, 3V, GND.
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to setup the BBC micro:bit with crocodile clips
|
||||
* learn how to telegraph to another BBC micro:bit
|
||||
|
@ -1,23 +0,0 @@
|
||||
# the watch lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||

|
||||
|
||||
## Topic
|
||||
|
||||
The Watch
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [activity](/lessons/the-watch/activity)
|
||||
|
||||
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
Learn how to design the BBC micro:bit watch with household supplies.
|
||||
|
||||
## Objectives
|
||||
|
||||
* learn how to design and make the watch with the BBC micro:bit
|
@ -1,6 +1,6 @@
|
||||
# Blocks - Variables
|
||||
|
||||
An introduction to variables for the Block Editor. #docs
|
||||
An introduction to variables for the Block Editor.
|
||||
|
||||
## What is a variable?
|
||||
|
||||
|
@ -4,6 +4,6 @@ The editor is open source on GitHub under the MIT license. Contributions are wel
|
||||
|
||||
### Repos
|
||||
|
||||
* [microsoft/pxt-microbit](https://github.com/Microsoft/pxt-microbit), PXT target for BBC micro:bit, also includes the documentation.
|
||||
* [microbit/pxt](https://github.com/Microsoft/pxt), programming experience toolkit (PXT)
|
||||
* [microsoft/pxt-microbit](https://github.com/Microsoft/pxt-microbit), PXT target for BBC micro:bit
|
||||
* [microsoft/pxt-microbit-core](https://github.com/Microsoft/pxt-microbit-core), Yotta module used to build the BBC micro:bit runtime
|
||||
|
@ -1,15 +1,46 @@
|
||||
# Projects
|
||||
# Ten Projects
|
||||
|
||||

|
||||
|
||||
## [Flashing Heart](/projects/flashing-heart)
|
||||
|
||||

|
||||
|
||||
## [Smiley Buttons](/projects/smiley-buttons)
|
||||
|
||||

|
||||
|
||||
## [Love Meter](/projects/love-meter)
|
||||
|
||||

|
||||
|
||||
## [Rock Paper Scissors](/projects/rock-paper-scissors)
|
||||
|
||||

|
||||
|
||||
## [Compass](/projects/compass)
|
||||
|
||||

|
||||
|
||||
## [Hack your headphones](/projects/hack-your-headphones)
|
||||
|
||||

|
||||
|
||||
## [Banana keyboard](/projects/banana-keyboard)
|
||||
|
||||

|
||||
|
||||
## [Telegraph](/projects/telegraph)
|
||||
|
||||

|
||||
|
||||
## [Radio](/projects/radio)
|
||||
|
||||

|
||||
|
||||
## [Watch](/projects/the-watch)
|
||||
|
||||

|
||||
|
||||
|
||||
### @short Projects
|
||||
|
||||
### ~column
|
||||
|
||||
## Beginner
|
||||
|
||||
* [Rock Paper Scissors](/projects/rock-paper-scissors)
|
||||
|
||||
### ~
|
||||
|
||||
### ~column
|
||||
|
||||
|
@ -1,34 +0,0 @@
|
||||
## Getting started
|
||||
• Go to https://m.pxt.io/
|
||||
• To create a new project, click new Project
|
||||
Tap or click Blocks.
|
||||
|
||||
## Step 1
|
||||
|
||||
Use [show leds](/reference/basic/showLeds) and make your code look like this:
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
```
|
||||
|
||||
Once you are done coding, don't forget to run your code with the Play button.
|
||||
|
||||
## Step 2
|
||||
|
||||
Add a [pause](/reference/basic/pause) to wait and [clear screen](/reference/basic/clearScreen) to turn off the LEDs.
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
basic.pause(500);
|
||||
basic.clearScreen();
|
||||
```
|
@ -95,6 +95,6 @@ Tap your banana instrument to play sound against... the fruit!
|
||||
|
||||
### ~avatar boothing
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/lessons/banana-keyboard/challenges)!
|
||||
Excellent, you're ready to continue with the [challenges](/projects/banana-keyboard-challenges)!
|
||||
|
||||
### ~
|
106
docs/projects/compass.md
Normal file
106
docs/projects/compass.md
Normal file
@ -0,0 +1,106 @@
|
||||
# compass
|
||||
|
||||

|
||||
|
||||
Display the direction that the micro:bit is facing using the compass
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Welcome! This guided tutorial will show you how to program a script that displays the direction the micro:bit is pointing. Let's get started!
|
||||
|
||||
### ~
|
||||
|
||||
|
||||
## Step 1
|
||||
|
||||
Create a loop that will continuously update the reading of the compass.
|
||||
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
|
||||
})
|
||||
```
|
||||
|
||||
## Step 2
|
||||
|
||||
Store the reading of the micro:bit in a variable called `degrees`.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
let degrees = input.compassHeading()
|
||||
})
|
||||
```
|
||||
|
||||
## Step 3
|
||||
|
||||
If `degrees` is less than `45`, then the compass heading is mostly pointing toward North. Display `N` on the micro:bit.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
let degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
basic.showString("N");
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Step 4
|
||||
|
||||
If `degrees` is less than 135, the micro:bit is mostly pointing East. Display `E` on the micro:bit.
|
||||
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
let degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
basic.showString("N");
|
||||
}
|
||||
else if (degrees < 135) {
|
||||
basic.showString("E");
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Step 5
|
||||
|
||||
If `degrees` is less than 225, the micro:bit is mostly pointing South. Display `S` on the micro:bit.
|
||||
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
let degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
basic.showString("N");
|
||||
}
|
||||
else if (degrees < 135) {
|
||||
basic.showString("E");
|
||||
}
|
||||
else if (degrees < 225) {
|
||||
basic.showString("S");
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Step 6
|
||||
|
||||
If none of these conditions returned true, then the micro:bit must be pointing West. Display `W` on the micro:bit.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
let degrees = input.compassHeading();
|
||||
if (degrees < 45) {
|
||||
basic.showString("N");
|
||||
}
|
||||
else if (degrees < 135) {
|
||||
basic.showString("E");
|
||||
}
|
||||
else if (degrees < 225) {
|
||||
basic.showString("S");
|
||||
}
|
||||
else {
|
||||
basic.showString("W");
|
||||
}
|
||||
});
|
||||
```
|
||||
|
115
docs/projects/flashing-heart.md
Normal file
115
docs/projects/flashing-heart.md
Normal file
@ -0,0 +1,115 @@
|
||||
# flashing heart
|
||||
|
||||

|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
```sim
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
basic.pause(500);
|
||||
basic.clearScreen();
|
||||
basic.pause(500);
|
||||
})
|
||||
```
|
||||
|
||||
Use the LEDs to display a flashing heart, and then create
|
||||
an animation of a broken heart. :(
|
||||
|
||||
### ~
|
||||
|
||||
## Step 1
|
||||
|
||||
Use [show leds](/reference/basic/show-leds) and make your code look like this:
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
```
|
||||
|
||||
## Step 2
|
||||
|
||||
Add a [pause](/reference/basic/pause) to wait and [clear screen](/reference/basic/clear-screen) to turn off the LEDs.
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
basic.pause(500);
|
||||
basic.clearScreen();
|
||||
```
|
||||
|
||||
## Step 3
|
||||
|
||||
Put a [forever loop](/reference/basic/forever) around it.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
basic.pause(500);
|
||||
basic.clearScreen();
|
||||
})
|
||||
```
|
||||
|
||||
## Step 4
|
||||
|
||||
Add a [pause](/reference/basic/pause) to wait after clearing the screen.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
basic.pause(500);
|
||||
basic.clearScreen();
|
||||
basic.pause(500);
|
||||
})
|
||||
```
|
||||
|
||||
## Step 5
|
||||
|
||||
Add a second image of a broken heart.
|
||||
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
basic.pause(500);
|
||||
basic.clearScreen();
|
||||
basic.pause(500);
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# . # # #
|
||||
# . . . #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
basic.pause(500);
|
||||
basic.clearScreen();
|
||||
basic.pause(500);
|
||||
})
|
||||
```
|
@ -1,4 +1,4 @@
|
||||
# light beatbox activity
|
||||
# hack your headphones challenges
|
||||
|
||||
Control sound with the light level.
|
||||
|
||||
@ -71,10 +71,3 @@ input.onButtonPressed(Button.A, () => {
|
||||
|
||||
* click *compile* and run your code on the micro:bit.
|
||||
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue by connecting your headphones with these [challenges](/lessons/hack-your-headphones/activity)!
|
||||
|
||||
### ~
|
||||
|
@ -1,4 +1,4 @@
|
||||
# hack your headphones activity
|
||||
# hack your headphones
|
||||
|
||||
Hack your headphones
|
||||
|
||||
@ -52,10 +52,10 @@ You hacked your headphones!
|
||||
|
||||
### Step 6
|
||||
|
||||
Connect your micro:bit to your computer using your USB cable and program [light beatbox](/lessons/light-beatbox/activity) music on it. Press the reset button to restart your music player!
|
||||
Connect your micro:bit to your computer using your USB cable and program [light beatbox](/projects/hack-your-headphones-challenges) music on it. Press the reset button to restart your music player!
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/lessons/light-beatbox/activity)!
|
||||
Excellent, you're ready to continue with the [challenges](/projects/hack-your-headphones-challenges)!
|
||||
|
||||
### ~
|
50
docs/projects/love-meter.md
Normal file
50
docs/projects/love-meter.md
Normal file
@ -0,0 +1,50 @@
|
||||
# love meter
|
||||
|
||||

|
||||
|
||||
Use pins P0, P1 and P2 to change the display by creating a circuit with your body.
|
||||
|
||||
## Step 1
|
||||
|
||||
Use [on pin pressed](/reference/input/on-pin-pressed) to show a random number
|
||||
when pin P0 is pressed (hold the GND pin with other hand):
|
||||
|
||||
```blocks
|
||||
input.onPinPressed(TouchPin.P0, () => {
|
||||
basic.showNumber(Math.random(11));
|
||||
});
|
||||
```
|
||||
## Step 2
|
||||
|
||||
Show a string when pin P1 is pressed:
|
||||
|
||||
```blocks
|
||||
input.onPinPressed(TouchPin.P0, () => {
|
||||
basic.showNumber(Math.random(11));
|
||||
});
|
||||
input.onPinPressed(TouchPin.P1, () => {
|
||||
basic.showString("LOVE?");
|
||||
});
|
||||
```
|
||||
|
||||
## Step 3
|
||||
|
||||
Show a heart when pin P2 is pressed:
|
||||
|
||||
```blocks
|
||||
input.onPinPressed(TouchPin.P0, () => {
|
||||
basic.showNumber(Math.random(11));
|
||||
});
|
||||
input.onPinPressed(TouchPin.P1, () => {
|
||||
basic.showString("LOVE?");
|
||||
});
|
||||
input.onPinPressed(TouchPin.P2, () => {
|
||||
basic.showLeds(`
|
||||
. # # # .
|
||||
# # # # #
|
||||
# # # # #
|
||||
. # # # .
|
||||
. . # . .
|
||||
`);
|
||||
});
|
||||
```
|
88
docs/projects/radio-challenges.md
Normal file
88
docs/projects/radio-challenges.md
Normal file
@ -0,0 +1,88 @@
|
||||
# Challenge
|
||||
|
||||
### ~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!
|
||||
|
||||
### ~
|
||||
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
|
||||
|
||||
```blocks
|
||||
radio.sendNumber(input.acceleration(Dimension.X));
|
||||
```
|
||||
### ~
|
||||
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
radio.sendNumber(input.acceleration(Dimension.X));
|
||||
});
|
||||
|
||||
|
||||
```
|
||||
### ~
|
||||
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
radio.sendNumber(input.acceleration(Dimension.X))
|
||||
})
|
||||
radio.onDataReceived(() => {
|
||||
|
||||
})
|
||||
```
|
||||
### ~
|
||||
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.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
radio.sendNumber(input.acceleration(Dimension.X))
|
||||
})
|
||||
radio.onDataReceived(() => {
|
||||
led.plotBarGraph(radio.receiveNumber(), 1023)
|
||||
})
|
||||
|
||||
```
|
||||
### ~
|
||||
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.
|
||||
|
||||

|
||||
|
||||
### ~
|
||||
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 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.
|
||||
|
||||

|
||||
|
||||
### ~
|
||||
Finally, you must open the Excel CSV file by clicking on the data.xls file that was downloaded to Downloads Folder.
|
||||
|
||||

|
||||
|
||||
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. Pick the **scatter plot**.
|
||||
|
||||

|
||||
|
||||
* 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
|
||||
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
|
68
docs/projects/radio.md
Normal file
68
docs/projects/radio.md
Normal file
@ -0,0 +1,68 @@
|
||||
# radio
|
||||
|
||||
Measure the acceleration on the micro:bit in the "x" direction.
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Welcome! This activity will teach how to use the micro:bit to chart the acceleration in the "x" direction. Let's get started!
|
||||
|
||||
|
||||
### ~
|
||||
Let's measure `acceleration (mg)` in the "x" direction. Get the acceleration value (milli g-force), in one of three specified dimensions.
|
||||
|
||||
|
||||
```blocks
|
||||
input.acceleration(Dimension.X)
|
||||
```
|
||||
|
||||
### ~
|
||||
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 the X dimension to measure the acceleration.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
led.plotBarGraph(input.acceleration(Dimension.X), 0)
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
### ~
|
||||
Notice that moving the micro:bit in the simulator from left to right (x direction) changes the values beneath the micro:bit in a range from 1023 to -1023 as measured in milli-gravities. By hovering over the micro:bit from left to right, you can observe changing values beneath the micro:bit simulator. Also, the LEDs shown on the Bar Graph fluctates based on the movement of the micro:bit simulator in the x direction. The line underneath the micro:bit simulator reflect the acceleration in the x direction.
|
||||
|
||||
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bit is yellow. So the color of the data line reflects the color of the micro:bit
|
||||
|
||||

|
||||
|
||||
### ~
|
||||
|
||||
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.
|
||||
|
||||
### ~
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### ~
|
||||
|
||||
|
||||
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
|
||||
|
||||

|
||||
|
||||
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. Pick the **scatter plot**.
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/projects/radio-challenges)
|
||||
|
||||
### ~
|
||||
|
@ -1,5 +1,7 @@
|
||||
# rock paper scissors
|
||||
|
||||

|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
```sim
|
||||
@ -39,6 +41,7 @@ You can also play it with friends who are just using their hands.
|
||||
|
||||
### ~
|
||||
|
||||
|
||||
## Materials needed
|
||||
|
||||
* Your BBC micro:bit -- that's it!
|
||||
|
69
docs/projects/smiley-buttons.md
Normal file
69
docs/projects/smiley-buttons.md
Normal file
@ -0,0 +1,69 @@
|
||||
# smiley buttons
|
||||
|
||||

|
||||
|
||||
Use buttons to show a smiley or frowny face.
|
||||
|
||||
## Step 1
|
||||
|
||||
Use [show leds](/reference/basic/show-leds) to make a smiley face:
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .`);
|
||||
```
|
||||
|
||||
## Step 2
|
||||
|
||||
Add an input block for when [button A is pressed](/reference/input/button-is-pressed), and put a
|
||||
frowny face inside it:
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .`);
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
. # # # .
|
||||
# . . . #`);
|
||||
});
|
||||
```
|
||||
|
||||
## Step 3
|
||||
|
||||
Now add blocks so that when [button B is pressed](/reference/input/button-is-pressed), a smiley appears:
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .`);
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
. # # # .
|
||||
# . . . #`);
|
||||
});
|
||||
input.onButtonPressed(Button.B, () => {
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .`);
|
||||
});
|
||||
```
|
@ -4,13 +4,9 @@ Build a telgraph.
|
||||
|
||||
# micro:bit telegraph
|
||||
|
||||
|
||||
|
||||
|
||||
Have you ever tried to communicate through a telegraph? Let's try coding a "Telegraph" on two BBC micro:bits !
|
||||
|
||||
|
||||
Complete the following [guided tutorial](/lessons/telegraph/activity), your hack should look like this:
|
||||
Complete the following [guided tutorial](/projects/telegraph), your hack should look like this:
|
||||
|
||||

|
||||
|
||||
@ -109,6 +105,6 @@ Your telegraph is ready!
|
||||
|
||||
### Step 7
|
||||
|
||||
* Connect the first micro:bit to your computer using your USB cable and run the [telegraph](/nnudbr) script on it.
|
||||
* Connect the second micro:bit to your computer using your USB cable and run the [telegraph](/nnudbr) script on it.
|
||||
* Connect the first micro:bit to your computer using your USB cable and put the telegraph script on it.
|
||||
* Connect the second micro:bit to your computer using your USB cable and run the telegraph script on it.
|
||||
* The first person and second person take turns pressing button A to play the telegraph game!
|
@ -70,6 +70,6 @@ Using the 4th crocodile clip, connect the unattached end of the crocodile clip o
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/lessons/telegraph/challenges)!
|
||||
Excellent, you're ready to continue with the [challenges](/projects/telegraph-challenges)!
|
||||
|
||||
### ~
|
@ -1,8 +1,6 @@
|
||||
# The watch activity
|
||||

|
||||
|
||||
Control images with variables.
|
||||
|
||||
# micro:bit watch
|
||||
# the watch
|
||||
|
||||

|
||||
|
||||
@ -152,7 +150,7 @@ Your watch is ready!
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/lessons/rock-paper-scissors/activity)!
|
||||
Excellent, you're ready to continue with the [challenges](/projects/rock-paper-scissors)!
|
||||
|
||||
### ~
|
||||
|
@ -1,10 +1,6 @@
|
||||
# Reference
|
||||
# Micro:bit APIs
|
||||
|
||||
```namespaces
|
||||
for (let i = 0;i<5;++i) {}
|
||||
if (true){}
|
||||
let x = 0;
|
||||
Math.random(5);
|
||||
basic.showNumber(0);
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
@ -21,8 +17,8 @@ images.createImage(`
|
||||
. . . . .
|
||||
`);
|
||||
pins.digitalReadPin(DigitalPin.P0);
|
||||
serial.writeValue(x, 0);
|
||||
serial.writeNumber(0);
|
||||
control.inBackground(() => {
|
||||
|
||||
});
|
||||
```
|
||||
```
|
@ -21,10 +21,6 @@ basic.showLeds(`
|
||||
basic.clearScreen()
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[blink](/lessons/blink), [flashing heart](/lessons/flashing-heart), [screen wipe](/lessons/screen-wipe)
|
||||
|
||||
### See also
|
||||
|
||||
[set brightness](/reference/led/set-brightness), [unplot](/reference/led/unplot), [plot](/reference/led/plot), [Image](/reference/images/image), [clear](/reference/basic/clear-screen)
|
||||
|
@ -63,11 +63,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
})
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[blink](/lessons/blink), [snowflake-fall](/lessons/snowflake-fall), [flashing-heart](/lessons/flashing-heart)
|
||||
|
||||
### See also
|
||||
|
||||
[while](/reference/loops/while), [on button pressed](/reference/input/on-button-pressed), [in background](/reference/control/in-background)
|
||||
[while](/blocks/loops/while), [on button pressed](/reference/input/on-button-pressed), [in background](/reference/control/in-background)
|
||||
|
||||
|
@ -24,11 +24,7 @@ for (let i = 0; i < 5; i++) {
|
||||
}
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[blink](/lessons/blink), [lucky 7](/lessons/lucky-7), [smiley](/lessons/smiley), [flashing heart](/lessons/flashing-heart)
|
||||
|
||||
### See also
|
||||
|
||||
[while](/reference/loops/while), [running time](/reference/input/running-time), [for](/reference/loops/for)
|
||||
[while](/blocks/loops/while), [running time](/reference/input/running-time), [for](/blocks/loops/for)
|
||||
|
||||
|
@ -62,8 +62,3 @@ basic.showAnimation(`
|
||||
Use [forever](/reference/basic/forever) to show an animation over and over.
|
||||
|
||||
### ~
|
||||
|
||||
### Lessons
|
||||
|
||||
[smiley](/lessons/smiley), [snowflake fall](/lessons/snowflake-fall), [rotation animation](/lessons/rotation-animation)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Show LEDs
|
||||
|
||||
Display an image on the BBC micro:bit's [LED screen](/device/screen).
|
||||
Shows a picture on the [LED screen](/device/screen).
|
||||
|
||||
```sig
|
||||
basic.showLeds(`
|
||||
@ -15,13 +15,13 @@ basic.showLeds(`
|
||||
|
||||
### Parameters
|
||||
|
||||
* `leds` is a [String](/reference/types/string) that shows which LEDs are on and off.
|
||||
* `ms` is an optional [Number](/reference/types/number) that shows how many milliseconds to wait after showing a picture.
|
||||
If you are programming with blocks, `ms` starts out as 400 milliseconds.
|
||||
* `leds` is a [string](/reference/types/string) that controls which LEDs are on and off.
|
||||
* `interval` is an optional [number](/reference/types/number) that means how many milliseconds to wait after showing a picture.
|
||||
If you are programming with blocks, `interval` is set at 400 milliseconds.
|
||||
|
||||
### Example
|
||||
|
||||
Open the `basic` card in the Block Editor and select the `show leds` blocks.
|
||||
This program shows a picture with the ``show leds`` function.
|
||||
|
||||
```blocks
|
||||
basic.showLeds(`
|
||||
@ -34,11 +34,12 @@ basic.showLeds(`
|
||||
)
|
||||
```
|
||||
|
||||
If you are programming in JavaScript, `#` means an LED that is turned on and `.` means an LED that is turned off.
|
||||
### ~hint
|
||||
|
||||
### Lessons
|
||||
If you are programming in JavaScript, `#` means an LED that is turned
|
||||
on and `.` means an LED that is turned off.
|
||||
|
||||
[smiley](/lessons/smiley), [flashing heart](/lessons/flashing-heart), [magic logo](/lessons/magic-logo)
|
||||
### ~
|
||||
|
||||
### See also
|
||||
|
||||
|
@ -28,7 +28,7 @@ basic.showNumber(x)
|
||||
|
||||
### Example: count to 5
|
||||
|
||||
This example uses a [for](/reference/loops/for) loop to show numbers ``0`` through ``5`` on the screen:
|
||||
This example uses a [for](/blocks/loops/for) loop to show numbers ``0`` through ``5`` on the screen:
|
||||
|
||||
~~~~blocks
|
||||
for (let i = 0; i < 6; i++) {
|
||||
@ -42,11 +42,7 @@ for (let i = 0; i < 6; i++) {
|
||||
* Use [show string](/reference/basic/show-string) to show a [String](/reference/types/string) with letters on the screen.
|
||||
* Use [show animation](/reference/basic/show-animation) to show a group of pictures on the screen, one after another.
|
||||
|
||||
### Lessons
|
||||
|
||||
* [lucky 7](/lessons/lucky-7)
|
||||
|
||||
### See also
|
||||
|
||||
[show string](/reference/basic/show-string), [show animation](/reference/basic/show-animation), [Number](/reference/types/number), [math library](/reference/math)
|
||||
[show string](/reference/basic/show-string), [show animation](/reference/basic/show-animation), [Number](/reference/types/number), [math](/blocks/math)
|
||||
|
||||
|
@ -31,10 +31,6 @@ basic.showString(s)
|
||||
* Use [show number](/reference/basic/show-number) to show a number on the [LED screen](/device/screen).
|
||||
* Use [show animation](/reference/basic/show-animation) to show a group of pictures on the screen, one after another.
|
||||
|
||||
### Lessons
|
||||
|
||||
[answering machine](/lessons/answering-machine), [rock paper scissors](/lessons/rock-paper-scissors), [love meter](/lessons/love-meter)
|
||||
|
||||
### See also
|
||||
|
||||
[String](/reference/types/string), [show number](/reference/basic/show-number), [show animation](/reference/basic/show-animation)
|
||||
|
@ -51,5 +51,5 @@ input.onButtonPressed(Button.A, () => {
|
||||
|
||||
### See also
|
||||
|
||||
[while](/reference/loops/while), [forever](/reference/basic/forever), [on button pressed](/reference/input/on-button-pressed)
|
||||
[while](/blocks/loops/while), [forever](/reference/basic/forever), [on button pressed](/reference/input/on-button-pressed)
|
||||
|
||||
|
@ -1,6 +1,16 @@
|
||||
# Change Score By
|
||||
|
||||
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible and the score will display on the screen.
|
||||
Add the amount you say to the score for the game.
|
||||
|
||||
```sig
|
||||
game.addScore(1)
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
This program is a simple game.
|
||||
Press button ``A`` as much as possible.
|
||||
At the end of 10 seconds, the program will show your score.
|
||||
|
||||
```blocks
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
@ -9,23 +19,6 @@ input.onButtonPressed(Button.A, () => {
|
||||
game.startCountdown(10000)
|
||||
```
|
||||
|
||||
### Score
|
||||
|
||||
When a player achieves a goal, you can increase the game score
|
||||
|
||||
* add score points to the current score
|
||||
|
||||
```
|
||||
export function addScore(points: number)
|
||||
```
|
||||
|
||||
* get the current score value
|
||||
|
||||
```
|
||||
export function score() : number
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[game of chance](/lessons/game-of-chance), [game counter](/lessons/game-counter)
|
||||
### See Also
|
||||
|
||||
[score](/reference/game/score), [start countdown](/reference/game/start-countdown)
|
||||
|
@ -19,8 +19,3 @@ Sprite will change the y position by this number
|
||||
```
|
||||
export function changeYBy(_this: micro_bitSprites.LedSprite, y: number)
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[game of chance](/lessons/game-of-chance) | [game counter](/lessons/game-counter)
|
||||
|
||||
|
@ -1,25 +1,17 @@
|
||||
# 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.
|
||||
|
||||
## 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.
|
||||
|
||||
```
|
||||
```blocks
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
game.addScore(1)
|
||||
})
|
||||
game.startCountdown(10000)
|
||||
```
|
||||
|
||||
### [Create sprite](/functions/game-library/create-sprite)
|
||||
### [Create sprite](/reference/game/create-sprite)
|
||||
|
||||
Create sprite with x, y coordinates and returns a LED Sprite. Create a new LED sprite.
|
||||
|
||||
@ -29,7 +21,7 @@ Create sprite with x, y coordinates and returns a LED Sprite. Create a new LED s
|
||||
export function createSprite(x: number, y: number) : micro_bitSprites.LedSprite
|
||||
```
|
||||
|
||||
### [Move](/functions/game-library/move)
|
||||
### [Move](/reference/game/move)
|
||||
|
||||
Sprite move by a certain number
|
||||
|
||||
@ -39,7 +31,7 @@ Sprite move by a certain number
|
||||
export function move(_this: micro_bitSprites.LedSprite, leds: number)
|
||||
```
|
||||
|
||||
### [Turn](/functions/game-library/turn)
|
||||
### [Turn](/reference/game/turn)
|
||||
|
||||
Rotates a sprite to the right by a certain number of degrees
|
||||
|
||||
@ -55,7 +47,7 @@ Rotates a sprite to the left by a certain number of degrees
|
||||
export function turnLeft(_this: micro_bitSprites.LedSprite, degrees: number)
|
||||
```
|
||||
|
||||
### [Change](/functions/game-library/change)
|
||||
### [Change](/reference/game/change)
|
||||
|
||||
Sprite will change the x position by this number
|
||||
|
||||
@ -71,7 +63,7 @@ Sprite will change the y position by this number
|
||||
export function changeYBy(_this: micro_bitSprites.LedSprite, y: number)
|
||||
```
|
||||
|
||||
### [Set](/functions/game-library/set)
|
||||
### [Set](/reference/game/set)
|
||||
|
||||
Sprite will change the x position by this number
|
||||
|
||||
@ -87,7 +79,7 @@ Sprite will change the y position by this number
|
||||
export function changeYBy(_this: micro_bitSprites.LedSprite, y: number)
|
||||
```
|
||||
|
||||
### [If on edge, bounce](/functions/game-library/if-on-edge-bounce)
|
||||
### [If on edge, bounce](/reference/game/if-on-edge-bounce)
|
||||
|
||||
Sprite - If the sprite is on the edge, the sprite will bounce
|
||||
|
||||
@ -97,7 +89,7 @@ Sprite - If the sprite is on the edge, the sprite will bounce
|
||||
export function ifOnEdge_Bounce(_this: micro_bitSprites.LedSprite)
|
||||
```
|
||||
|
||||
### [Change score by](/functions/game-library/change-score-by)
|
||||
### [Change score by](/reference/game/change-score-by)
|
||||
|
||||
When a player achieves a goal, you can increase the game score
|
||||
|
||||
@ -109,7 +101,7 @@ When a player achieves a goal, you can increase the game score
|
||||
export function addScore(points: number)
|
||||
```
|
||||
|
||||
### [Score](/functions/game-library/score)
|
||||
### [Score](/reference/game/score)
|
||||
|
||||
* set the current score to a particular value.
|
||||
|
||||
@ -125,7 +117,7 @@ export function setScore(value: number)
|
||||
export function score() : number
|
||||
```
|
||||
|
||||
### [Countdown](/functions/game-library/start-countdown)
|
||||
### [Countdown](/reference/game/start-countdown)
|
||||
|
||||
If your game has a time limit, you can start a countdown in which case `game->current time` returns the remaining time.
|
||||
|
||||
@ -137,7 +129,7 @@ If your game has a time limit, you can start a countdown in which case `game->cu
|
||||
export function startCountdown(ms: number)
|
||||
```
|
||||
|
||||
### [Game over](/functions/game-library/game-over)
|
||||
### [Game over](/reference/game/game-over)
|
||||
|
||||
If the `life` reaches zero or the time expires (see countdown), the game enters the **game over** mode. When the game is over, `game->is running` returns false
|
||||
|
||||
@ -154,8 +146,3 @@ You can also end the game by calling the `game -> game over` function:
|
||||
```
|
||||
game.gameOver()
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[game of chance](/lessons/game-of-chance) | [game counter](/lessons/game-counter)
|
||||
|
||||
|
@ -1,24 +1,24 @@
|
||||
# Game Over
|
||||
|
||||
The game library
|
||||
End the game and show the score.
|
||||
|
||||
The game library supports simple single-player time-based games. The game can end the game by calling the `game over` function
|
||||
### Example
|
||||
|
||||
## Block Editor
|
||||
This program asks you to pick a button.
|
||||
If you press button `A`, the program says `YOU WIN!`.
|
||||
If you press button `B`, it shows an animation and ends the game.
|
||||
|
||||
You can end the game by calling the `game over ` function. In this example, if BBC micro:bit's answer to the question is GAME OVER, GAME OVER will be displayed to end the game.
|
||||
|
||||

|
||||
|
||||
## KindScript
|
||||
|
||||
You can end the game by calling the `game -> game over` function:
|
||||
|
||||
```
|
||||
game.gameOver()
|
||||
```blocks
|
||||
basic.showString("PICK A BUTTON");
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showString("YOU WIN!");
|
||||
});
|
||||
input.onButtonPressed(Button.B, () => {
|
||||
game.gameOver();
|
||||
});
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[game of chance](/lessons/game-of-chance)
|
||||
### See Also
|
||||
|
||||
[score](/reference/game/score),
|
||||
[change score by](/reference/game/change-score-by), [start countdown](/reference/game/start-countdown)
|
||||
|
@ -1,22 +1,7 @@
|
||||
# Move
|
||||
|
||||
The game library
|
||||
|
||||
### Move
|
||||
|
||||
Sprite move by a certain number
|
||||
|
||||
## Block Editor
|
||||
|
||||

|
||||
|
||||
## KindScript
|
||||
Sprite move by a certain number of LEDs
|
||||
|
||||
```
|
||||
export function move(_this: micro_bitSprites.LedSprite, leds: number)
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[game of chance](/lessons/game-of-chance) | [game counter](/lessons/game-counter)
|
||||
|
||||
|
@ -1,19 +1,5 @@
|
||||
# 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
|
||||
|
||||
```
|
||||
@ -25,8 +11,3 @@ Reports the y position of a sprite on the LED screen
|
||||
```
|
||||
export function y(_this: micro_bitSprites.LedSprite) : number
|
||||
```
|
||||
|
||||
### Lessons
|
||||
|
||||
[game of chance](/lessons/game-of-chance) | [game counter](/lessons/game-counter)
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user