Compare commits

...

201 Commits

Author SHA1 Message Date
c9d4807f25 0.2.157 2016-06-09 14:08:27 -07:00
5f4ff08c09 Bump pxt-core to 0.2.170 2016-06-09 14:08:25 -07:00
b99be68ea5 display bolts on simulator button 2016-06-09 14:08:15 -07:00
c639cc3f83 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-09 13:05:21 -07:00
cd56181703 Rewrote in simple language. API might not be functional. 2016-06-09 12:34:56 -07:00
5b1a807443 updated windows 10 app manifest 2016-06-09 11:49:40 -07:00
e604b27c4f various docs updates 2016-06-09 11:10:01 -07:00
4727b105c4 Rewrote in simple language. May be an obsolete API. 2016-06-08 18:14:00 -07:00
4063b5aac8 Rewrote in simple language. Deleted redundant material. 2016-06-08 16:59:20 -07:00
ee8505b4f1 0.2.156 2016-06-08 14:52:16 -07:00
ab4e2c458a Bump pxt-core to 0.2.168 2016-06-08 14:52:15 -07:00
126c236b14 New topic. Double-checked example. 2016-06-08 11:21:58 -07:00
532abadb6b 0.2.155 2016-06-07 14:35:49 -07:00
eea179e07c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-07 14:21:28 -07:00
f94015803f fixing some docs on microbit-devices 2016-06-07 14:21:19 -07:00
f085253306 bundling and fixing microbit-devices 2016-06-07 14:06:13 -07:00
6de2f22542 Deleted loop around event handlers in coin flipper 2016-06-07 11:44:42 -07:00
3051e09bcf updated yotta settings for neopixel package 2016-06-07 10:53:44 -07:00
bd835a8a6e Rewrote in simple language; added examples 2016-06-06 17:29:23 -07:00
f75a034a3f Rewrote in simple language 2016-06-06 17:02:15 -07:00
71b3b6bb22 0.2.154 2016-06-06 16:38:09 -07:00
b868bd1e09 Bump pxt-core to 0.2.167 2016-06-06 16:38:06 -07:00
02e48f196c Rewritten in simple language 2016-06-06 15:41:17 -07:00
742eb7ea2f 0.2.153 2016-06-06 14:58:07 -07:00
f1904143b6 Bump pxt-core to 0.2.165 2016-06-06 14:58:05 -07:00
e621252f3b Added boolean picker / coin flipper example. 2016-06-06 14:49:36 -07:00
3633d39f57 updated readme.md 2016-06-06 10:14:56 -07:00
21bbf8fc86 css tweaks 2016-06-04 07:41:49 -07:00
dd5124f660 0.2.152 2016-06-04 00:23:34 -07:00
966ad1f503 0.2.151 2016-06-04 00:11:51 -07:00
d94f394d24 Bump pxt-core to 0.2.163 2016-06-04 00:11:50 -07:00
40ddd896cf 0.2.150 2016-06-03 23:53:51 -07:00
5a8815c4fc removed "open editor" from getting started 2016-06-03 23:51:40 -07:00
9a04eb1790 0.2.149 2016-06-03 23:40:28 -07:00
906e2a2fff Bump pxt-core to 0.2.162 2016-06-03 23:40:27 -07:00
781339026e 0.2.148 2016-06-03 23:16:45 -07:00
bd23de14e1 Merge pull request #88 from Microsoft/setpull
Setpull
2016-06-03 23:16:25 -07:00
e6ca366d20 full support for setPull 2016-06-03 23:15:51 -07:00
e2ce49d94b Merge remote-tracking branch 'origin/master' into setpull 2016-06-03 22:23:35 -07:00
e3b6350785 upgraded to lancaster 2.0.0-rc4 (core 0.1.11) 2016-06-03 22:22:13 -07:00
66aba696dc tweaks to getting started 2016-06-03 22:19:43 -07:00
5206f1f8e8 0.2.147 2016-06-03 21:10:03 -07:00
f9a7ec89e4 Bump pxt-core to 0.2.161 2016-06-03 21:09:59 -07:00
97894511dd Spot reminders to click COMPILE. 2016-06-03 15:42:18 -07:00
e785ece9bd Numerous requested changes. Still missing heads/tails. 2016-06-03 15:15:24 -07:00
63035b3d5c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-03 14:25:31 -07:00
1f8ea7ad30 removed dangling link. 2016-06-03 14:24:39 -07:00
899ca47a77 Rewritten for clarity. Already has great example! 2016-06-03 14:06:24 -07:00
84f14182bf 0.2.146 2016-06-03 13:43:13 -07:00
ca3702b4fe Bump pxt-core to 0.2.159 2016-06-03 13:43:10 -07:00
94f1b6c785 0.2.145 2016-06-03 11:11:08 -07:00
c749c8b644 Bump pxt-core to 0.2.157 2016-06-03 11:11:05 -07:00
b108f1538d Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-03 10:35:40 -07:00
45690215dd Merge branch 'master' of https://github.com/Microsoft/pxt-microbit into setpull 2016-06-03 10:35:05 -07:00
af42dbf30a support for setpull 2016-06-03 10:34:20 -07:00
45ecd883bb fixed uploader page... 2016-06-03 10:16:22 -07:00
641a714f74 updated configuration 2016-06-03 09:47:06 -07:00
d1cd0a23a2 Nearing end of radio docs 2016-06-02 17:08:09 -07:00
54331eb113 Second pass 2016-06-02 16:24:06 -07:00
d4c53f1fb3 Extra examples and hints 2016-06-02 15:48:11 -07:00
40305c3ccd Updated to be funner (and clearer) 2016-06-02 15:25:19 -07:00
e6761699d3 added faq 2016-06-02 14:47:37 -07:00
b15f140181 0.2.144 2016-06-02 13:52:30 -07:00
00e38e202b Bump pxt-core to 0.2.156 2016-06-02 13:52:28 -07:00
4cbabcd112 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-02 13:11:23 -07:00
5def3518cf adding link to start rock-paper-scissor in editor 2016-06-02 13:10:47 -07:00
2c6f76e1a5 First pass 2016-06-02 12:52:03 -07:00
3eb529852b Bump pxt-core to 0.2.154 2016-06-02 12:35:18 -07:00
3b0cb40ea9 0.2.143 2016-06-02 12:33:01 -07:00
5cb3467194 Bump pxt-core to 0.2.155 2016-06-02 12:32:56 -07:00
d5628c08c8 updated getting started 2016-06-02 12:32:13 -07:00
c5c0103573 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-02 12:07:49 -07:00
b89d6477c7 Temporarily broken. 2016-06-02 11:38:14 -07:00
f3a6b00734 fixing localized file path 2016-06-02 09:48:40 -07:00
091fbb9db8 fixing some game content 2016-06-02 09:13:02 -07:00
3de977c98f updated naming of locale strings 2016-06-02 09:07:30 -07:00
d262dc3704 removed duplicate file 2016-06-02 08:33:21 -07:00
b2e59eb676 0.2.142 2016-06-01 21:51:03 -07:00
f2d5237d5c Bump pxt-core to 0.2.154 2016-06-01 21:51:02 -07:00
0c701a6809 more typos 2016-06-01 21:36:32 -07:00
d571ce85c1 fixing broken path 2016-06-01 21:35:37 -07:00
6fa316ff0e shrinking various images 2016-06-01 21:28:57 -07:00
1e436f4e71 more docs updates 2016-06-01 21:19:16 -07:00
d54aa41fc9 updated some lessons 2016-06-01 21:13:30 -07:00
0d90aec229 tweaks 2016-06-01 21:08:46 -07:00
98ee6899a1 renaming image files 2016-06-01 21:01:57 -07:00
c3e9ec2dc4 Merge branch 'origin/docs' 2016-06-01 20:54:57 -07:00
4cba801d78 Merge branch 'master' into origin/docs 2016-06-01 20:53:46 -07:00
a3d559c7af Rewrite for simplicity. 2016-06-01 17:11:28 -07:00
985ed56984 Fixed typo. 2016-06-01 16:29:43 -07:00
be284c5e52 0.2.141 2016-06-01 16:13:16 -07:00
d59d7cb19f Bump pxt-core to 0.2.153 2016-06-01 16:13:14 -07:00
28d522175b Second edit pass. Needs better image examples? 2016-06-01 16:02:22 -07:00
7b74428275 more glow / stop sound on player stop 2016-06-01 15:45:40 -07:00
c5571c20c7 updated release notes 2016-06-01 15:06:47 -07:00
fc97b59d0e 0.2.140 2016-06-01 13:36:58 -07:00
8417d10ad3 Bump pxt-core to 0.2.152 2016-06-01 13:36:56 -07:00
1a6d47a1c9 First edit pass. Please push to server. 2016-06-01 13:35:53 -07:00
d74702353f 0.2.139 2016-06-01 09:11:55 -07:00
53922986b1 Bump pxt-core to 0.2.149 2016-06-01 09:11:53 -07:00
230de475d1 0.2.138 2016-06-01 08:52:21 -07:00
9b1d2085ba Bump pxt-core to 0.2.148 2016-06-01 08:52:20 -07:00
d4a55bd53d update seismograph 2016-05-12 11:55:10 -07:00
2b8d8f7b44 update seis challenge 2016-05-12 10:44:12 -07:00
8b2037f51d update seis challenge 2016-05-12 10:40:41 -07:00
1477fc4bed update seis challenge 2016-05-12 10:36:35 -07:00
e4badc18b8 udpate seis change 2016-05-12 09:44:32 -07:00
625d4de530 update seis challenge 2016-05-12 09:41:54 -07:00
a3cf104185 update challenge 2016-05-12 09:02:02 -07:00
608f2d8f82 update seis challenge 2016-05-12 09:01:05 -07:00
8f9ac35d70 update seis 2016-05-12 08:49:25 -07:00
ce18ddbb70 update seis challenge 2016-05-12 08:48:10 -07:00
ac64cbb8c5 update seis activity 2016-05-11 16:35:13 -07:00
706c51c99c update seis challenge 2016-05-11 15:59:19 -07:00
7fa88249d6 update seis challenge 2016-05-11 15:53:47 -07:00
5c735e839e update seis lesson 2016-05-11 15:35:24 -07:00
19752b01b6 seismograph challenge 2016-05-11 15:31:51 -07:00
4192eeb413 update seis challenge 2016-05-11 15:29:47 -07:00
87c63959cf update challenge 2016-05-11 15:28:14 -07:00
79ee825926 update seis challenge 2016-05-11 15:21:11 -07:00
20dbcfd203 updated challenge 2016-05-11 15:19:05 -07:00
993952cbe9 update seis challenge 2016-05-11 15:10:07 -07:00
90a8bdcea1 update seis challenge 2016-05-11 15:01:44 -07:00
b9cff5a5e9 seis challenge 2016-05-11 14:52:25 -07:00
638594bb5e update seis activity 2016-05-11 14:16:37 -07:00
d3b5809fe7 update seis acti 2016-05-11 14:11:22 -07:00
365f5dcecf Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-05-11 13:39:05 -07:00
4c9982051e update activity 2016-05-11 13:36:36 -07:00
655c9c4431 update seis activity 2016-05-11 13:28:13 -07:00
e328c22a2d update seis activity 2016-05-11 13:24:57 -07:00
dc9eb26038 update seis activity 2016-05-11 12:34:00 -07:00
3971bb5fc1 update seis activity 2016-05-11 12:24:58 -07:00
acfdfd3668 update seis activity 2016-05-11 12:21:39 -07:00
35edde573e seis activity 2016-05-11 12:20:01 -07:00
6d21e28360 update seis activity 2016-05-11 12:08:19 -07:00
f636a7e37f update seis activity 2016-05-11 12:07:12 -07:00
c15c3255ef seis activity 2016-05-11 11:57:30 -07:00
7f64328079 update seis activity 2016-05-11 11:51:52 -07:00
b19d7a5b7b update seismograph activity 2016-05-11 11:42:21 -07:00
8322310640 update seis activity 2016-05-11 11:12:39 -07:00
8f6577f029 update seis activity 2016-05-11 11:11:46 -07:00
a64b3e2b09 update seis activity 2016-05-11 11:10:55 -07:00
95ed3f419b update seismograph activity 2016-05-11 11:09:38 -07:00
8fcc59c9c3 update acc challenge 2016-05-11 10:40:16 -07:00
a83a7f7135 update charting 2016-05-11 10:39:19 -07:00
2f1a7e3896 Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-05-11 09:30:54 -07:00
b32c14937c seismograph activity 2016-05-10 16:59:57 -07:00
a5e1f84975 seismograph sync 2016-05-10 16:53:41 -07:00
6d0beb1aa3 seismograph 2016-05-10 16:48:37 -07:00
26d92f993b update seismograph lesson 2016-05-10 16:35:00 -07:00
d4c0dddb62 seis activity 2016-05-10 15:22:27 -07:00
fa17ce43f7 update seis activity 2016-05-10 15:20:56 -07:00
b9a9abb478 update seis activity 2016-05-10 14:23:34 -07:00
ae925da409 seis activity 2016-05-10 14:05:25 -07:00
b82c3c0277 seismograph activity 2016-05-10 13:29:07 -07:00
b4ce65cdf3 seismograph act 2016-05-10 13:17:23 -07:00
db7e8b6fd4 update seis activity 2016-05-10 13:15:53 -07:00
7532cc01a2 seis activity 2016-05-10 13:10:18 -07:00
6725f8ef90 update seis activity 2016-05-10 12:31:22 -07:00
dea8054fbe update seis activity 2016-05-10 12:29:56 -07:00
f9cc3d2ee1 update seis activity 2016-05-10 12:28:45 -07:00
220ada6cd8 update seis activity 2016-05-10 11:56:41 -07:00
b68b12e6f1 update seis activity 2016-05-10 11:52:55 -07:00
5838c4d740 update seis activity 2016-05-10 11:47:35 -07:00
68d25e3814 update seis activity 2016-05-10 11:40:46 -07:00
06be2019a6 seis activity 2016-05-10 11:21:40 -07:00
6a742f5348 update seis activity 2016-05-10 11:08:53 -07:00
73cf802300 update seis act 2016-05-10 11:03:16 -07:00
2b71e2b834 update images lowercase 2016-05-10 11:01:27 -07:00
0442c33808 update seis activity 2016-05-10 10:54:25 -07:00
2975e6acc9 updated seis activity 2016-05-10 10:52:10 -07:00
df38904ba1 updated acc activity 2016-05-10 10:47:51 -07:00
d744e21975 update seis act 2016-05-10 10:41:36 -07:00
81c86f544c seis act 2016-05-10 09:27:36 -07:00
fa145ecd5c update act 2016-05-10 09:24:30 -07:00
cdfc99ad3f update seis act 2016-05-10 09:11:11 -07:00
f77e7b8850 update seis act 2016-05-10 09:09:30 -07:00
d71186b083 update seis act 2016-05-09 16:56:29 -07:00
852067c641 update seis act 2016-05-09 16:53:18 -07:00
7445db5707 update seis act 2016-05-09 16:51:59 -07:00
e4fd00c827 update seis act 2016-05-09 16:47:08 -07:00
5ccecc1195 update seis activity 2016-05-09 16:42:41 -07:00
cdfcd30c3c update acc activity 2016-05-09 16:41:43 -07:00
25b4f46440 update seis act 2016-05-09 16:32:06 -07:00
9f9cd6b766 update seis act 2016-05-09 16:18:10 -07:00
4dafa4d42c update seis act 2016-05-09 16:14:13 -07:00
fdff0a7f19 update act 2016-05-09 16:12:25 -07:00
a63daed690 update seis act 2016-05-09 16:10:39 -07:00
3eeaf2ca46 update seis act 2016-05-09 16:08:10 -07:00
005e002fd8 update seis act 2016-05-09 16:07:11 -07:00
b1db17fc27 sesimo update 2016-05-09 16:04:43 -07:00
a51791414c updated seismograph act 2016-05-09 16:02:22 -07:00
265dd660ef seismograph act 2016-05-09 15:50:39 -07:00
7517776492 update seismograph act 2016-05-09 15:44:49 -07:00
29b901b856 update seismograph activity 2016-05-09 15:33:57 -07:00
20637aeb29 updated activity 2016-05-09 15:20:51 -07:00
90dbc6dd08 updated lessons page 2016-05-09 14:49:53 -07:00
8f99ee3608 beautiful image tutorial 2016-05-09 14:34:51 -07:00
15bbc13595 update seismograph activity 2016-05-05 14:23:56 -07:00
cac5df56eb update activity 2016-05-05 14:00:56 -07:00
0c7f9058a7 Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-05-05 10:13:18 -07:00
151 changed files with 1217 additions and 612 deletions

View File

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

View File

@ -34,7 +34,7 @@ Just like Arduino, the micro:bit can be connected to and interact with sensors,
The student can program the BBC micro:bit using [visual blocks](http://www.github.com/Google/blockly) or JavaScript.
```blocks
basic.showString("BBC micro:bit!");
basic.showString("Hi!");
```
## Compile and Flash
@ -54,5 +54,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.
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!

View File

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

View File

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

View File

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

View File

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

View File

@ -28,6 +28,7 @@ input.onButtonPressed(Button.B, () => {
* Browse the [API reference](/reference)
* Learn more about the [device](/device)
* Get started with [lessons](/lessons)
* Frequently Asked Question [faq](/faq)
* Follow up with the [release notes](/release-notes)
### Developers

6
docs/faq.md Normal file
View 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).

View File

@ -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. Unscramble 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).
They should 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)?

View File

@ -59,6 +59,7 @@
## 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
@ -70,4 +71,4 @@
### @section full
The lessons promote computational thinking and computer science literacy[ read more...](/lessons/teach)
The lessons promote computational thinking and computer science literacy.

View 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)
```

View File

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

View File

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

View File

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

View File

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

View File

@ -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.
![](/static/mb/chart1.png)
![](/static/mb/lessons/chart1.png)
* 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 dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
![](/static/mb/chart_title.png)
* 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
![](/static/mb/elements_styles_filters.png)
* 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)
### ~

View File

@ -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.
![](/static/mb/acc2.png)
@ -67,15 +68,9 @@ Use the Recommended Charts command on the Insert tab to quickly create a chart t
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
![](/static/mb/lessons/chart1.png)
* 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 dont 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**.
![](/static/mb/chart_title.png)
@ -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"

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,6 @@
# rock paper scissors lesson
a game against the BBC micro:bit.
A game against the BBC micro:bit.
## Topic

View File

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

View File

@ -1,8 +1,6 @@
# screen wipe blocks lesson
clear the screen by pressing button "A".
Clear the screen by pressing button "A".
## Topic

View File

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

View File

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

View File

@ -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!
![](/static/mb/lessons/seismograph11.png)
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.
![](/static/mb/lessons/seismograph1.png)
## 2.
Fasten Tape: Fasten tape to the micro USB cable and to the plate. Attach the micro:bit to the micro:bit USB cable.
![](/static/mb/lessons/seismograph0.png)
### ~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.
![](/static/mb/data4.png)
### ~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.
![](/static/mb/lessons/analyze20.png)
## 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
![](/static/mb/lessons/seismograph33.png)
Click or tap the compile button for the seismograph program to run the program on the micro:bit.
![](/static/mb/lessons/seismograph22.png)
## 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.
![](/static/mb/lessons/seismograph5.png)
## 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.
![](/static/mb/lessons/seismograph7.png)
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.
![](/static/mb/lessons/seismograph6.png)
Third, notice that the LED display fluctates based on the movement of the micro:bit.
![](/static/mb/lessons/seismograph8.png)
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.
![](/static/mb/analyze1.png)
## 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
![](/static/mb/lessons/seismograph9.png)
## 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.
![](/static/mb/lessons/analyze9.png)
## 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 thats just right for the data.
We want to chart the data collected by using a tool in Excel.
![](/static/mb/analyze3.png)
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.
![](/static/mb/lessons/analyze16.png)
Tip: If you dont 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.
![](/static/mb/data7.png)
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 thats 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.
![](/static/mb/chart1.png)
* 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 dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
### ~
12.
![](/static/mb/chart_title.png)
* 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.
![](/static/mb/elements_styles_filters.png)
* 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.
![](/static/mb/lessons/analyze19.png)
### ~avatar avatar

View File

@ -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
![](/static/mb/lessons/seis_challenge01.png)
## 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.
![](/static/mb/acc.png)
### ~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.
![](/static/mb//lessons/seis_challenge02.png)
## 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.
![](/static/mb/lessons/seismograph33.png)
## 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.
![](/static/mb/lessons/seis_challenge05.png)
Run the acceleration experiment by vigarously moving the plate in any direction or move the object below the micro:bit (such as a table).
![](/static/mb/lessons/seis_challenge06.png)
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.
![](/static/mb/lessons/seis_challenge04.png)
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.
![](/static/mb/lessons/seis_challenge07.png)
## 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
![](/static/mb/lessons/seismograph9.png)
## 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.
![](/static/mb/lessons/analyze9.png)
## 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 thats just right for the data.
![](/static/mb/analyze3.png)
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.
![](/static/mb/lessons/analyze16.png)
Tip: If you dont 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.
![](/static/mb/lessons/analyze19.png)
![](/static/mb/acc2.png)
### ~
Finally, you must open the Excel CSV file by clicking on the data.xls file that was downloaded to Downloads Folder.
![](/static/mb/data3.png)
Use the Recommended Charts command on the Insert tab to quickly create a chart thats just right for your data.
* Select the data that you want to include in your chart.
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
* 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 dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
![](/static/mb/chart_title.png)
* 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
![](/static/mb/elements_styles_filters.png)
### ~
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"

View File

@ -1,8 +1,6 @@
# smiley blocks lesson
design a blinking image lesson #docs
Design a blinking image lesson
## Topic

View File

@ -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(`
. . . . .

View File

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

View File

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

View File

@ -41,7 +41,7 @@ Overview of Blocks lessons for the BBC micro:bit.
* [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)

View File

@ -14,7 +14,8 @@ Telegraph
## Prior learning/place of lesson in scheme of work
Learn how to convert your BBC micro:bit into a telegraph using a second BBC micro:bit as well as pin P1, P2, 3V, GND, and crocodile clips (or spring clips). The connect BBC micro:bit uses pins P1, P2, 3V, GND.
Learn how to convert your BBC micro:bit into a telegraph using a second BBC micro:bit as well as pin P1, P2, 3V, GND,
and crocodile clips (or spring clips). The connect BBC micro:bit uses pins P1, P2, 3V, GND.
## Objectives

View File

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

View File

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

View File

@ -37,8 +37,11 @@ In this project, you will build a Rock Paper Scissors game with the BBC micro:bi
You can play the game with a friend who has it on a micro:bit.
You can also play it with friends who are just using their hands.
## [START PROJECT](/#follow:/projects/rock-paper-scissors)
### ~
## Materials needed
* Your BBC micro:bit -- that's it!

View File

@ -1,18 +1,10 @@
# 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
![](/static/mb/game-library/pic0.png)
## 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)
})

View File

@ -1,16 +1,6 @@
# Move
The game library
### Move
Sprite move by a certain number
## Block Editor
![](/static/mb/game-library/move-0.png)
## KindScript
Sprite move by a certain number of LEDs
```
export function move(_this: micro_bitSprites.LedSprite, leds: number)

View File

@ -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
![](/static/mb/game-library/position-0.png)
## KindScript
Reports the x position of a sprite on the LED screen
```

View File

@ -1,31 +1,7 @@
# Reports
The game library
### Reports
Reports the x or y position, the current direction of a sprite, or the brightness of a sprite on the LED screen
## Block Editor
Reports the x position of a sprite on the LED screen
![](/static/mb/game-library/position-0.png)
Reports the y position of a sprite on the LED screen
![](/static/mb/game-library/reports-0.jpg)
Reports the brightness of a sprite on the LED screen
![](/static/mb/game-library/reports-1.jpg)
Reports the direction of a sprite on the LED screen
![](/static/mb/game-library/reports-2.jpg)
## KindScript
Reports the x position of a sprite on the LED screen
```

View File

@ -1,20 +1,10 @@
# Score
The game library #docs
The game library supports simple single-player games. The player has a **score**.
## Block Editor
The code below shows a simple game where the user gets to press the button ``A`` and adds 1 point to score that will be displayed on the BBC micro:bit screen
![](/static/mb/game-library/add-point-to-score-0.png)
## 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)
})

View File

@ -1,15 +1,5 @@
# Start Countdown
The game library #docs
The game library supports simple single-player time-based games. The general goal of a game will be to achieve a top score before time runs out of time.
## Block Editor
![](/static/mb/game-library/start-countdown-0.png)
## 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.
```

View File

@ -1,17 +1,5 @@
# Touching
The game library
### Touching
Reports true if sprite is touching specified sprite
## Block Editor
![](/static/mb/game-library/touching-0.png)
## KindScript
Reports true if sprite is touching specified sprite
```

View File

@ -1,17 +1,5 @@
# Turn
The game library
Rotates a sprite to the right by a certain number of degrees
## Block Editor
Rotates a sprite to the right by a certain number of degrees
![](/static/mb/game-library/turn-0.png)
## KindScript
Rotates a sprite to the right by a certain number of degrees
```

View File

@ -1,27 +1,35 @@
# Magnetic Force
Get the magnetic force (micro Teslas), in one of three specified dimensions.
Find the amount of magnetic force (the strength of a magnet) in the direction you say.
```sig
input.magneticForce(Dimension.X);
```
## ~hint
The micro:bit measures magnetic force with **microteslas**.
## ~
### Parameters
* dimension : [String](/reference/types/string) - one of three values specifying the axis of the force: ``x`` (left/right); ``y`` (forward/backwards); ``z`` (up/down); ``strength`` (the length of the vector)
* a [string](/reference/types/string) that says which direction the micro:bit should measure magnetic force in: either `x` (the left-right direction), `y` (the forward/backward direction), or `z` (the up/down direction)
### Returns
* [Number](/reference/types/number) - magnetic force, in micro-Teslas.
* a [number](/reference/types/number) of microteslas that means the strength of the magnet
### Example: metal detector
The following example uses the `magnetic force` to control the brightness of the screen. When the magnetic force increases, the center LED will appear brighter.
This program makes the center LED of the micro:bit get brighter when
the magnetic force is stronger, and dimmer when it is weaker.
```blocks
led.plot(2, 2)
basic.forever(() => {
let f = input.magneticForce(Dimension.X)
let f = input.magneticForce("x")
led.setBrightness(f / 2000)
})
```
@ -29,4 +37,3 @@ basic.forever(() => {
### See also
[compass heading](/reference/input/compass-heading)

View File

@ -1,19 +1,17 @@
# On Gesture
Register an [event handler](/reference/event-handler) that will execute whenever the user executes a gesture withthe BBC micro:bit.
Start an [event handler](/reference/event-handler) (part of the
program that will run when something happens) This handler works when
you do a **gesture** (like shake, tilt, or drop the micro:bit).
```sig
input.onGesture(Gesture.Shake,() => {
})
```
## Gestures
## Example: random number
### Example: random number
The following example displays a number from 0-9 on the screen when you shake the BBC micro:bit.
This program shows a number from `0` to `9` when you shake the micro:bit.
```blocks
input.onGesture(Gesture.Shake,() => {
@ -22,24 +20,7 @@ input.onGesture(Gesture.Shake,() => {
})
```
### Example: rock, paper, scissors
## Lessons
The following example shows one of three images (rock, paper, or scissors) when you shake the BBC micro:bit.
```blocks
input.onGesture(Gesture.Shake,() => {
let img = images.createImage(`
. . . . . # # # # # . . . . #
. # # # . # . . . # # # . # .
. # # # . # . . . # . # # . .
. # # # . # . . . # # # . # .
. . . . . # # # # # . . . . #
`)
img.showFrame(Math.random(3))
})
```
### Lessons
[bounce image](/lessons/bounce-image), [rock paper scissors](/lessons/rock-paper-scissors)
[bounce image](/lessons/bounce-image)

View File

@ -1,24 +1,33 @@
# Pin Is Pressed
Gets the pin state (pressed or not pressed), by detecting when the user holds the `GND` pin with one hand, and presses pin `0`, `1`, or `2` with the other hand, thus completing a circuit.
Find whether the pin you say is pressed or not pressed.
*Note* that this function works best when the BBC micro:bit is powered by AAA battery.
If you hold the `GND` pin with one hand and touch pin `0`, `1`, or `2` with the other,
a very small (safe) amount of electricity will flow through your body and back into
the micro:bit. This is called **completing a circuit**. It's like you're a big wire!
```sig
input.pinIsPressed(TouchPin.P0);
```
## ~hint
This function works best when the BBC:microbit is using batteries for power,
instead of the USB cable.
## ~
### Parameters
* name - [String](/reference/types/string); the pin name ("P0", "P1", or "P2")
* a [string](/reference/types/string) that holds the pin name (**P0**, **P1**, or **P2**)
### returns
* [Boolean](/reference/types/boolean) - `true` if pressed, `false` if not pressed
* a [boolean](/reference/types/boolean) that means whether the pin you say is pressed (`true` or `false`)
### Example
This example displays 1 if P0 is pressed, and 0 if P0 is not pressed:
This program shows `1` if `P0` is pressed, and `0` if `P0` is not pressed:
```blocks
basic.forever(() => {

View File

@ -1,10 +1,11 @@
# Change Tempo By
Change the tempo by the specified amount
Makes the [tempo](/reference/music/tempo) (speed of a piece of music)
faster or slower by the amount you say.
## Simulator
Simulation of this function is available in many, but not all browsers.
This function only works on the micro:bit and in some browsers.
```sig
music.changeTempoBy(20)
@ -12,7 +13,21 @@ music.changeTempoBy(20)
### Parameters
* `bpm` : [Number](/reference/types/number) - change the tempo by beats per minute
* a [number](/reference/types/number) that says how much to change the bpm (beats per minute, or number of beats in a minute of the music that the micro:bit is playing).
### Examples
This program makes the music faster by 12 bpm.
```blocks
music.changeTempoBy(12)
```
This program makes the music _slower_ by 12 bpm.
```blocks
music.changeTempoBy(-12)
```
### See also

View File

@ -1,10 +1,10 @@
# Rest
Rests (plays nothing) for a specified time through pin PO.
Rest (play no sound) through pin `PO` for the amount of time you say.
## Simulator
Simulation of this function is available in many, but not all browsers.
This function only works on the micro:bit and in some browsers.
```sig
music.rest(400)
@ -12,7 +12,7 @@ music.rest(400)
### Parameters
* `ms`: [Number](/reference/types/number) - the duration of the rest (milliseconds)
* a [number](/reference/types/number) saying how many milliseconds the micro:bit should rest. One second is 1000 milliseconds.
## Example

View File

@ -1,10 +1,11 @@
# Ring Tone
Play a continuous tone through pin P0.
Play a musical tone through pin `P0` with the pitch as high or low as you say.
The tone will keep playing until you tell it not to.
## Simulator
Simulation of this function is available in many, but not all browsers.
This function only works on the micro:bit and in some browsers.
```sig
music.ringTone(440)
@ -12,11 +13,18 @@ music.ringTone(440)
### Parameters
* `frequency` : [Number](/reference/types/number) - Plays a tone in (Hz)
* a [number](/reference/types/number) that says the tone's
**frequency** (how high-pitched or low-pitched the tone is). This
number is in **Hz** (**Hertz**), which is a measurement of frequency
or pitch.
### Example
Play a sound based on the tile of the device
This program checks the **accelerometer** for the micro:bit's
**acceleration** (how much the micro:bit is speeding up or slowing
down). Then it uses that acceleration to make a tone. If the micro:bit
speeds up, the tone's pitch gets higher, and if it slows down, the
tone's pitch gets lower. It's fun -- try it!
```blocks
basic.forever(() => {
@ -26,5 +34,6 @@ basic.forever(() => {
### See also
[rest](/reference/music/rest), [play tone](/reference/music/play-tone) , [tempo](/reference/music/tempo), [set tempo](/reference/music/set-tempo), [change tempo by](/reference/music/change-tempo-by)
[rest](/reference/music/rest), [play tone](/reference/music/play-tone),
[tempo](/reference/music/tempo), [set tempo](/reference/music/set-tempo),
[change tempo by](/reference/music/change-tempo-by)

View File

@ -1,14 +1,17 @@
# Set Tempo
Sets the tempo to the specified amount
Makes the tempo (speed of a piece of music) as fast or slow as you say.
```sig
music.setTempo(60)
```
## Simulator
This function only works on the micro:bit and in some browsers.
### Parameters
* Returns : [Number](/reference/types/number) - sets the tempo in beats per minute
* a [number](/reference/types/number) that means the bpm you want (beats per minute, or number of beats in a minute of the music that the micro:bit is playing).
### See also

View File

@ -1,13 +1,19 @@
# On Data Received
Registers code to run when a packet is received over ``radio``.
Run part of a program when the micro:bit receives a
[number](/reference/types/number) or [string](/reference/types/string) over ``radio``.
### Parameters
* body - is an action
* the part of the program to run when the micro:bit receives information over ``radio``.
### Example
This program keeps sending numbers that says how fast the micro:bit is
slowing down or speeding up. It also receives numbers for the same
thing from nearby micro:bits. It shows these numbers as a
[bar graph](/reference/led/plot-bar-graph).
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
@ -19,5 +25,6 @@ radio.onDataReceived(() => {
### See also
[receive number](/reference/radio/receive-number), [send number](/reference/radio/send-number), [set group](/reference/radio/set-group)
[receive number](/reference/radio/receive-number),
[send number](/reference/radio/send-number), [set group](/reference/radio/set-group)

View File

@ -0,0 +1,36 @@
# Received Signal Strength
Find how strong the ``radio`` signal is, from `255` to `0`.
(`255` means a weak signal and `0` means a strong one.)
The micro:bit finds the signal strength by checking how strong it was
the last time it ran the
[receive number](/reference/radio/receive-number) function. That means
it needs to run **receive number** first.
### Returns
* a [number](/reference/types/number) between `255` and `0` that means
how strong the signal is.
## Simulator
This function only works on the micro:bit, not in browsers.
### Example
This example shows how strong the radio signal of the
[light level sender example](/reference/input/send-number) is.
```blocks
let x = 0;
radio.setGroup(99);
basic.forever(() => {
x = radio.receiveNumber();
basic.showNumber(radio.receivedSignalStrength());
});
```
### See also
[receive number](/reference/radio/receive-number), [send number](/reference/radio/send-number), [on data received](/reference/radio/on-data-received)

View File

@ -1,16 +1,22 @@
# Set Group
Sets the group id for ``radio`` communications. A micro:bit can only listen to one group ID at any time.
Make a program have the group ID you tell it for sending and receiving
with ``radio``. A group is like a cable channel (a micro:bit can only
send or receive in one group at a time). A group ID is like the cable
channel number.
Unless specified, the group id is automatically inferred from the script source. Every script with the same exact source code with start with the same group id.
If you do not tell your program which group ID to use with this
function, it will figure out its own group ID by itself. If you load
the very same program onto two different micro:bits, they will be able
to talk to each other because they will have the same group ID.
### Parameters
* ``id`` -- a [number](/reference/types/number) between ``0`` and ``255``.
* ``id`` is a [number](/reference/types/number) from ``0`` to ``255``.
### Example
Sets the group to 128.
This program makes the group ID equal 128.
```blocks
radio.setGroup(128)

View File

@ -1,33 +1,27 @@
# Set Transmit Power
Sets the transmitter power for ``radio`` communications.
The power can be set to a value between 0 (-30dbm) and 7 (+4dbm).
Make the ``radio`` signal of the micro:bit stronger or weaker.
It can be as weak as `0` and as strong as `7`.
The scientific name for the strength of the ``radio`` signal is
**dBm**, or **decibel-milliwatts**. A signal strength of `0`
can be measured as -30 dBm, and a strength of `7` can be
measured as +4 dBm.
## Range
At power level 7, in an open area without significant interference (coming from WiFi networks or other devices operating on the 2.4 GHz range), you can get a **range of over 70m**.
Indoors (or with additional interference), range will be significantly reduced.
## Important Security Consideration
The functions in the ``radio`` namespace allow the BBC micro:bit to communicate with other micro:bits.
This API does not contain any form of encryption, authentication or authorization. It's purpose is solely for use as a teaching aid to demonstrate how simple communications operates, and to provide a sandpit through which learning can take place.
For serious applications, BLE should be considered a substantially more secure alternative.
```sig
radio.setTransmitPower(1)
```
If your micro:bit is sending with a strength of `7`, and you are in
an open area without many other computers around, the micro:bit signal
can reach as far as 70 meters (about 230 feet).
### Parameters
* ``power`` -- a [number](/reference/types/number) between ``0`` and ``7``.
* a [number](/reference/types/number) between ``0`` and ``7`` that
means how strong the signal is.
### Example
Sets the transmitter power to full power at 7.
This program makes the ``radio`` send at full strength.
```blocks
radio.setTransmitPower(7)

View File

@ -4,7 +4,12 @@
basic.forever(() => { basic.showString("RELEASE NOTES"); });
```
## May 2017
## June 2016
* It is now possible to stream data into the cloud (Azure) from the PXT editor. Simply click on the log view to get started.
* Documentation column pops up for large screen to avoid switching between docs and editor.
## May 2016
We're happy to announce [m.pxt.io](https://m.pxt.io), an Blocks/JavaScript editor for the [BBC micro:bit](https://www.microbit.co.uk).
The editor is [open source](/open-source) on GitHub. Send us your PR!

BIN
docs/static/mb/analyze1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
docs/static/mb/analyze3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/static/mb/lessons/analyze.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
docs/static/mb/lessons/analyze1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
docs/static/mb/lessons/analyze16.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
docs/static/mb/lessons/analyze19.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

BIN
docs/static/mb/lessons/analyze2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
docs/static/mb/lessons/analyze20.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
docs/static/mb/lessons/analyze3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/static/mb/lessons/analyze5.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
docs/static/mb/lessons/analyze6.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
docs/static/mb/lessons/analyze7.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
docs/static/mb/lessons/analyze8.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
docs/static/mb/lessons/analyze9.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 915 KiB

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 411 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
docs/static/mb/lessons/seismograph0.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

BIN
docs/static/mb/lessons/seismograph1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

BIN
docs/static/mb/lessons/seismograph10.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
docs/static/mb/lessons/seismograph11.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

BIN
docs/static/mb/lessons/seismograph22.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
docs/static/mb/lessons/seismograph3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

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