Compare commits

...

141 Commits

Author SHA1 Message Date
05dce8efce 0.2.54 2016-04-11 13:09:46 -07:00
cbfc960594 Bump pxt-core to 0.2.58 2016-04-11 13:09:43 -07:00
c2c765098d use pointerevents if available 2016-04-11 10:58:09 -07:00
9daf6ad9fc updated package 2016-04-11 08:23:33 -07:00
0c05ae9b64 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-10 20:52:22 -07:00
27ea7cae56 added serial/bluetooth capability 2016-04-10 20:51:57 -07:00
80f9c52bac clean up 2016-04-09 16:42:29 -04:00
afef607ccf 0.2.53 2016-04-09 01:35:25 -07:00
45fe7e6bb4 Bump pxt-core to 0.2.56 2016-04-09 01:35:23 -07:00
8e66b041e2 updated filters 2016-04-09 01:27:08 -07:00
e99a2df578 0.2.52 2016-04-08 18:49:43 -07:00
7e5f3fdbf3 Bump pxt-core to 0.2.55 2016-04-08 18:49:41 -07:00
b538526948 Add webmanifest files 2016-04-08 18:38:25 -07:00
889142d0f7 0.2.51 2016-04-08 17:31:02 -07:00
3791689fc4 Bump pxt-core to 0.2.54 2016-04-08 17:30:59 -07:00
d05f66650f Merge branch 'master' of github.com:Microsoft/kindscript-microbit 2016-04-08 17:28:56 -07:00
a4f08e99a9 Add own manifest 2016-04-08 17:28:52 -07:00
3999c215ce 0.2.50 2016-04-08 16:57:58 -07:00
c6b8acb0b8 Bump pxt-core to 0.2.53 2016-04-08 16:57:56 -07:00
1e054f96ec updated about page 2016-04-08 16:57:37 -07:00
190e5e2e03 Add empty sim.manifestfiles 2016-04-08 16:00:11 -07:00
63ae951249 0.2.49 2016-04-08 15:06:07 -07:00
e5aeacae2f Bump pxt-core to 0.2.51 2016-04-08 15:06:05 -07:00
9ecb7f11cd Merge branch 'master' of github.com:Microsoft/kindscript-microbit 2016-04-08 14:57:27 -07:00
d1660f1361 0.2.48 2016-04-08 14:56:34 -07:00
edf5345492 Bump pxt-core to 0.2.50 2016-04-08 14:56:33 -07:00
5eadb3483f Remove explicit caching from simulator 2016-04-08 14:44:24 -07:00
c4d3fd5d67 moved svg files around 2016-04-08 13:57:37 -07:00
5166c5141f added build of windows app 2016-04-08 13:49:53 -07:00
c21b45a084 updated windows app manifest 2016-04-08 13:21:03 -07:00
fa0d365aae importing target logos from files 2016-04-08 12:04:43 -07:00
43cab7a156 added portrait logo 2016-04-08 11:50:21 -07:00
79b000b1bb 0.2.47 2016-04-08 11:02:01 -07:00
0af25f4230 Bump pxt-core to 0.2.49 2016-04-08 11:01:59 -07:00
0fcca0792a Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-08 10:54:05 -07:00
cb1260419b updated manifest 2016-04-08 10:49:43 -07:00
17150e0d71 added uwp app 2016-04-07 20:48:00 -07:00
693d019525 0.2.46 2016-04-07 18:17:30 -07:00
fa6b48e421 Bump pxt-core to 0.2.48 2016-04-07 18:17:28 -07:00
8286561125 Add app manifest 2016-04-07 18:14:24 -07:00
78083e18a7 using classlist polyfill 2016-04-07 14:18:12 -07:00
cba7ccbacb One more rename 2016-04-07 13:34:52 -07:00
391e0ed897 0.2.45 2016-04-07 13:34:13 -07:00
fce6206d28 Bump pxt-core to 0.2.46 2016-04-07 13:34:11 -07:00
faf1385933 Redirect to main repo for instructions 2016-04-07 13:33:55 -07:00
7a74def276 0.2.44 2016-04-07 13:11:12 -07:00
81b93c13ad Bump pxt-core to 0.2.45 2016-04-07 13:11:10 -07:00
2852684f89 Remove unused images 2016-04-07 13:00:38 -07:00
2798b579a6 0.2.43 2016-04-07 12:53:53 -07:00
9d23f82238 Bump pxt-core to 0.2.44 2016-04-07 12:53:51 -07:00
ce53d5c386 Renaming stuff in the simulator 2016-04-07 12:52:02 -07:00
5d3471b3b2 0.2.42 2016-04-07 11:41:51 -07:00
08b9b10ac8 Files renamed 2016-04-07 11:41:39 -07:00
404d7cc4a2 Bump pxt-core to 0.2.43 2016-04-07 11:41:23 -07:00
7c43739e4b Rename references 2016-04-07 11:30:22 -07:00
92d8adfdbd Rename json files 2016-04-07 11:30:07 -07:00
0f273131f6 0.2.41 2016-04-07 09:46:17 -07:00
9ae0c48477 Bump kindscript to 0.2.42 2016-04-07 09:46:15 -07:00
5f538f418e 0.2.40 2016-04-07 09:18:35 -07:00
859b68b6e3 Bump kindscript to 0.2.41 2016-04-07 09:18:33 -07:00
6576f7bd66 better handlings of logs 2016-04-07 09:03:21 -07:00
5a670f3291 0.2.39 2016-04-07 06:45:52 -07:00
7129487618 0.2.38 2016-04-07 06:34:15 -07:00
e1797b457a Bump kindscript to 0.2.39 2016-04-07 06:34:14 -07:00
c82efa452d 0.2.37 2016-04-07 04:48:45 -07:00
493014af01 Bump kindscript to 0.2.38 2016-04-07 04:48:43 -07:00
fb4a96d81b 0.2.36 2016-04-07 03:56:24 -07:00
bbf115f33c Bump kindscript to 0.2.36 2016-04-07 03:56:22 -07:00
5d9c2cf590 svg refactored into kindsim 2016-04-07 03:52:32 -07:00
b99231f6e2 0.2.35 2016-04-06 18:24:27 -07:00
2676907129 Bump kindscript to 0.2.35 2016-04-06 18:24:25 -07:00
6f4c533ebb 0.2.34 2016-04-06 16:41:29 -07:00
85dcaea979 0.2.33 2016-04-06 16:36:41 -07:00
8560b31657 Bump kindscript to 0.2.33 2016-04-06 16:36:40 -07:00
b896588f45 0.2.32 2016-04-06 16:09:30 -07:00
0b4d4facfe fix target 2016-04-06 16:09:20 -07:00
52ad897ee3 0.2.31 2016-04-06 15:49:03 -07:00
72582f2a60 updated title 2016-04-06 15:48:45 -07:00
2b2048da7d 0.2.30 2016-04-06 15:34:37 -07:00
e85fa990bd Bump kindscript to 0.2.31 2016-04-06 15:34:35 -07:00
81a61538c3 updated target 2016-04-06 15:23:58 -07:00
cc8751bd09 updated target 2016-04-06 15:12:55 -07:00
03f933a1c8 0.2.29 2016-04-06 14:02:53 -07:00
10a77d9fef Bump kindscript to 0.2.30 2016-04-06 14:02:51 -07:00
773f8a8688 0.2.28 2016-04-06 08:05:40 -07:00
f67743d935 Bump kindscript to 0.2.29 2016-04-06 08:05:38 -07:00
237a57ee86 updated logos 2016-04-06 07:32:14 -07:00
b80edb43fc removing some serial functions 2016-04-06 07:00:34 -07:00
6c9b609fe0 annotate math namespace 2016-04-06 06:16:59 -07:00
26d78768c0 0.2.27 2016-04-05 23:15:42 -07:00
6812767555 Bump kindscript to 0.2.28 2016-04-05 23:15:39 -07:00
2aa7c91ca7 various docs updates 2016-04-05 23:11:48 -07:00
baf2c3247f Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-04-05 20:49:54 -07:00
c9536b0cf2 Use constant for end of memory 2016-04-05 19:19:27 -07:00
7fd7e15bd4 Add README.md to kind.json 2016-04-05 19:02:12 -07:00
948b0ef304 Add readme to neopixel 2016-04-05 18:21:24 -07:00
715771b991 Add readme to i2c fram module 2016-04-05 18:21:15 -07:00
65d48f4b02 Add FRAM driver 2016-04-05 17:25:45 -07:00
283c331a5e moving namespace docs 2016-04-05 16:54:09 -07:00
ba96e94fa7 added jsdoc 2016-04-05 16:52:50 -07:00
7e1248b8dc 0.2.26 2016-04-05 16:15:58 -07:00
cbe280187a Bump kindscript to 0.2.26 2016-04-05 16:15:56 -07:00
761e4f38cd adding namespace descriptions 2016-04-05 15:59:25 -07:00
a9137f7761 first radio namespace docs 2016-04-05 14:10:53 -07:00
3274e237cf 0.2.25 2016-04-05 14:05:36 -07:00
5261b2b270 0.2.24 2016-04-05 13:54:55 -07:00
1adede163a Bump kindscript to 0.2.25 2016-04-05 13:54:53 -07:00
bb80874ef9 fixing docs enum 2016-04-05 13:54:48 -07:00
9e9d11cb94 0.2.23 2016-04-05 13:28:03 -07:00
c004aa4b1b Bump kindscript to 0.2.24 2016-04-05 13:28:01 -07:00
cdd4798945 namspace docs 2016-04-05 13:23:42 -07:00
0f56142317 updated about 2016-04-05 10:36:23 -07:00
6927085d64 0.2.22 2016-04-04 22:46:48 -07:00
c1b654f092 Bump kindscript to 0.2.23 2016-04-04 22:46:46 -07:00
2f551c97b5 0.2.21 2016-04-04 22:38:41 -07:00
01e6aab376 0.2.20 2016-04-04 22:33:39 -07:00
df17ba09ae updated links 2016-04-04 22:33:13 -07:00
9c09a427c9 0.2.19 2016-04-04 22:17:12 -07:00
4b35f0f751 Bump kindscript to 0.2.22 2016-04-04 22:17:10 -07:00
bb03cc4357 static microbit image (svg) 2016-04-04 22:15:52 -07:00
6f8b17e4ba 0.2.18 2016-04-04 21:52:10 -07:00
60c5dfc539 Bump kindscript to 0.2.21 2016-04-04 21:52:09 -07:00
bca5839b49 Forever moved to common sim 2016-04-04 21:52:03 -07:00
47e3737245 Use common helpers/core 2016-04-04 21:18:16 -07:00
b8d5ec853e Prep for moving common stuff out to main ks 2016-04-04 20:28:08 -07:00
46d42e5300 0.2.17 2016-04-04 19:13:35 -07:00
ffabb9b16d Bump kindscript to 0.2.19 2016-04-04 19:13:34 -07:00
d62c10d278 Use the improved default parameters 2016-04-04 19:11:33 -07:00
e2b2aa7ff1 0.2.16 2016-04-04 19:04:04 -07:00
664c8dcd35 Bump kindscript to 0.2.18 2016-04-04 19:04:03 -07:00
bd7430b642 Add Buffer.get/setNumber and i2c methods 2016-04-04 19:02:40 -07:00
61fd28d840 Move all target stuff to kindtarget.json 2016-04-04 18:03:52 -07:00
c33df897d5 Remove unused code 2016-04-04 12:56:57 -07:00
3bb0bd2a9f 0.2.15 2016-04-04 09:50:05 -07:00
7751061b51 Bump kindscript to 0.2.17 2016-04-04 09:50:04 -07:00
88a7fa5038 0.2.14 2016-04-03 17:51:51 -07:00
3c8a62df54 Bump kindscript to 0.2.16 2016-04-03 17:51:50 -07:00
c661fd0eca Neopixel seems to work 2016-04-03 17:49:35 -07:00
8a124812b6 First draft of neopixel 2016-04-03 17:38:50 -07:00
02c41b59bd Add Buffer; go to core v0.1.5 2016-04-03 16:52:57 -07:00
b003af6eae Try to fix travis 2016-04-02 21:49:09 -07:00
228 changed files with 2007 additions and 1465 deletions

1
.gitattributes vendored
View File

@ -12,6 +12,7 @@
*.html text eol=lf
*.py text eol=lf
*.exp text eol=lf
*.manifest text eol=lf
# do not enforce text for everything - it causes issues with random binary files

15
.gitignore vendored
View File

@ -1,10 +1,15 @@
node_modules
*.sw?
built
typings/
tmp/
typings
tmp
temp
projects
win10/app/bin
win10/app/bld
*.user
*.sw?
*.ts.new
*.tgz
temp/
*.db
projects/
*.suo

View File

@ -2,9 +2,9 @@ language: node_js
node_js:
- "5.7.0"
script:
- "node node_modules/kindscript/built/kind.js travis"
- "cd libs/lang-test0; node ../../node_modules/kindscript/built/kind.js run"
- "node node_modules/kindscript/built/kind.js uploaddoc"
- "node node_modules/pxt-core/built/pxt.js travis"
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js run)"
- "node node_modules/pxt-core/built/pxt.js uploaddoc"
sudo: false
notifications:
email:

2
.vscode/tasks.json vendored
View File

@ -1,7 +1,7 @@
{
"version": "0.1.0",
// Task runner is jake
"command": "kind",
"command": "pxt",
// Need to be executed in shell / cmd
"isShellCommand": true,
"showOutput": "always",

View File

@ -1,48 +1,24 @@
# micro:bit target for KindScript
# micro:bit target for PXT
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using [KindScript](https://github.com/Microsoft/kindscript).
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
[Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt).
[![Build Status](https://travis-ci.org/Microsoft/kindscript-microbit.svg?branch=master)](https://travis-ci.org/Microsoft/kindscript-microbit)
[![Build Status](https://travis-ci.org/Microsoft/pxt-microbit.svg?branch=master)](https://travis-ci.org/Microsoft/pxt-microbit)
# Getting started
> If you're making changes to kindscript repository itself, proceed to **Local installation** below.
Please follow instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
* Clone this repo and run
## Universal Windows App
```
npm install
```
The Windows 10 app is a [Universal Windows Hosted Web App](https://microsoftedge.github.io/WebAppsDocs/en-US/win10/CreateHWA.htm)
that wraps codemicrobit.com and provides additional features.
* Install the `KindScript` tool and launch the local server:
### Sideloading
```
npm install -g kindscript-cli
kind serve
```
To re-build the `built/target.json` file, re-run `kind serve`.
Find the latest build under ``win10/app/AppPackages/latest`` and run the ``Add-AppDevPackage.ps1`` PowerShell script.
### Building
## Local installation
* Clone and build [KindScript](https://github.com/Microsoft/kindscript) in a `kindscript` folder.
* Clone this repo in a `kindscript-microbit` folder next to `kindscript`
```
npm install
```
* To build and deploy new changes
```
npm install -g kindscript-cli
cd ../kindscript
jake
cd ../kindscript-microbit
npm link ../kindscript
```
* run this command to build and launch a local editor
```
kind serve
```
* open `localhost:3232` to try your editor!
* Install Visual Studio 2015 Update 2 or higher. Make sure the Windows 10 templates are installed.
* open the ``win10/app.sln`` solution and launch the ``codemicrobit`` project.

View File

@ -1,4 +1,4 @@
/// <reference path="../node_modules/kindscript/built/kind.d.ts"/>
/// <reference path="../node_modules/pxt-core/built/pxt.d.ts"/>
import * as fs from 'fs';
import * as path from 'path';
@ -7,7 +7,7 @@ import * as child_process from 'child_process';
let writeFileAsync: any = Promise.promisify(fs.writeFile)
let execAsync: (cmd: string, options?: { cwd?: string }) => Promise<Buffer> = Promise.promisify(child_process.exec)
export function deployCoreAsync(res: ts.ks.CompileResult) {
export function deployCoreAsync(res: ts.pxt.CompileResult) {
return getBitDrivesAsync()
.then(drives => {
if (drives.length == 0) {
@ -40,4 +40,4 @@ function getBitDrivesAsync(): Promise<string[]> {
} else {
return Promise.resolve([])
}
}
}

View File

@ -1,3 +1,8 @@
```sim
basic.forever(() => {
basic.showString("Hi!");
})
```
# About
The [BBC micro:bit](https://www.microbit.co.uk) is a [pocket-size computer](/device) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone.
@ -57,7 +62,7 @@ basic.showString("BBC micro:bit");
## C++ Runtime
The C++ BBC micro:bit library, created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
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.

View File

@ -4,121 +4,80 @@ All the bits and pieces that make up your BBC micro:bit
![](/static/mb/device-0.png)
### Lights
### LED Screen and Status LED
### What are the red lights on the front?
The red lights are [LEDs](/microbit/device/screen) (light emitting diodes) and form a 5 x 5 LED Screen.
They can be set to on/off and the brightness can be controlled.
The red lights are [LEDs](/microbit/device/screen) (light emitting diodes) and form a 5 x 5 grid. They can be set to on/off and the brightness can be controlled.
### What is the yellow light on the back of the micro:bit?
It is the status LED. It flashes yellow when the system wants to tell the user that something has happened.
The yellow light on the back of the micro:bit is the status LED.
It flashes yellow when the system wants to tell the user that something has happened.
### Buttons
### What are the buttons for?
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.
Buttons A and B are a form of input. They detect when the button is being pressed. When you press one of the buttons, 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.
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.
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.
When you plug in your micro:bit, it should appear as MICROBIT. If you accidentally hold down the reset button as youre plugging in your micro:bit, the micro:bit will appear as a MAINTENANCE drive instead of MICROBIT. This is known as maintenance mode.**
When you plug in your micro:bit, it should appear as MICROBIT.
If you accidentally hold down the reset button as youre plugging in your micro:bit,
the micro:bit will appear as a MAINTENANCE drive instead of MICROBIT. This is known as maintenance mode.**
To continue programming your micro:bit YOU MUST unplug your USB and reconnect it. Check that the drive now shows as MICROBIT.
**Use with caution. If you click on the drive while it shows as MAINTENANCE, you can see which version of firmware you have running on your micro:bit. Firmware on your micro:bit should be up-to-date already. You can find the version of firmware in the 'version.txt' file on the micro:bit. Further information on the firmware can be found here:
**Use with caution. If you click on the drive while it shows as MAINTENANCE,
you can see which version of firmware you have running on your micro:bit.
Firmware on your micro:bit should be up-to-date already.
You can find the version of firmware in the 'version.txt' file on the micro:bit. Further information on the firmware can be found here:
https://developer.mbed.org/platforms/Microbit/#firmware
### Compass
### Why is there a compass on the micro:bit?
The compass can detect magnetic fields such as the Earths magnetic field. As the micro:bit has this compass, it is possible to detect the direction it is moving in. The micro:bit can detect where it is facing and movement in degrees. This data can be used by the micro:bit in a program or be sent to another device.
The compass can detect magnetic fields such as the Earths magnetic field.
As the micro:bit has this compass, it is possible to detect the direction it is moving in.
The micro:bit can detect where it is facing and movement in degrees.
This data can be used by the micro:bit in a program or be sent to another device.
### Accelerometer
### Why is there an accelerometer on the micro:bit?
There is a an accelerometer on your micro:bit which detects changes in the micro:bits 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.
There is a an accelerometer on your micro:bit which detects changes in the micro:bits 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.
### Pins
### PINS
### What are the rings labelled 0, 1, 2 on the bottom edge of the micro:bit?
These are labels for the input/output pins P0, P1, P2, which you can attach external sensors to such as thermometers or moisture detectors. The pins can be a form of input or output. You can read more about large and small pins [here](/microbit/device/pins).
The pins can be a form of input or output.
There are labels for the input/output pins P0, P1, P2, which you can attach external sensors to such as thermometers or moisture detectors.
You can read more about large and small pins [here](/microbit/device/pins).
### How do I connect the micro:bit to my computer?
It can be connected to your computer or device with a micro USB. Data can be sent and received between the micro:bit and the computer so programs can be downloaded from Windows and Macs onto the micro:bit via this USB data connection. You can read more information on how to run scripts on your micro:bit [here](/microbit/device/usb), and about the error messages you might get [here](/microbit/device/error-codes).
Your micro:bit can be connected to your computer via a micro USB cable.
Data can be sent and received between the micro:bit and the computer so programs
can be downloaded from Windows, Macs and Chromebooks onto the micro:bit via this USB data connection.
You can read more information on how to run scripts on your micro:bit [here](/microbit/device/usb),
and about the error messages you might get [here](/microbit/device/error-codes).
### Batteries
### Powering your micro:bit
### How do I power my micro:bit?
When your micro:bit is connected to your computer with the micro USB, it doesnt need another power source.
When your micro:bit isnt connected to your computer, tablet or mobile, you will need 2 x AAA 1.5 V batteries to power it.
When your micro:bit is connected to your computer with the micro USB, it doesnt need another power source. When your micro:bit isnt 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.
You can attach an external device such as a motor to these and power it using the battery or USB.
### 3V GND
### Bluetooth Low Energy Antenna
### What are the rings labelled 3V and GND?
The pins labelled 3V and GND are the power supply pins. You can attach an external device such as a motor to these and power it using the battery or USB.
### What is a Bluetooth Low Energy Antenna?
You will see this labelled BLE ANNTENA on the back of your micro:bit. It is for a messaging service, built for the Internet of Things 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 control the micro:bit or the micro:bit can control another BLE device.
### What is Bluetooth Low Energy?
Bluetooth wireless technology was developed as an alternative to data cables and allowed wireless communication between devices such as PCs, smartphones and tablets. Bluetooth® Smart or Bluetooth Low Energy is a power-friendly version of Bluetooth wireless technology.
### What is the Internet of Things?
The Internet of Things (IoT) was first talked about more than 15 years ago, when it was speculated that objects and people would be able to connect wirelessly over the internet. Objects can be detected and controlled remotely, allowing greater integration between the physical and computer based world. It will let you to remotely control your alarm system, thermostat or lights in your home. It has many applications in different fields including manufacturing, health and fitness, consumer electronics and the home.
You will see the label BLE ANNTENA 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
control the micro:bit or the micro:bit can control another BLE device.
### Technical Information
The micro:bit has been designed to be a bare-board micro controller for use by children aged 11-12. The device has been through extensive safety and compliance testing to the following standards:
### Safety
IEC 60950-1:2005 (Second Edition) + Am 1:2009 + Am 2:2013
### EMC
EN 55032: 2012
EN 55024: 2010
EN 55022:2010
EN 301 489-1 V1.9.2 (2011-09)
EN 301 489-17 V2.2.1 (2012-09)
### Radio Spectrum
ETSI EN 300 328 V1.9.1 (2015-02)
EN 62479:2010
### Chemical
Restriction of Hazardous Substances (RoHS) 2011/65/EU Annex II article 4(1)
EN71-3:2013 + A1:2014 - Migration of certain elements.
Analysis of the 163 substances of very high concern (SVHC) on the Candidate List for authorization, concerning Regulation (EC) No. 1907/2006 as published on the European Chemicals Agency (ECHA) website.
![](/static/mb/device-1.jpg)
The micro:bit device features Bluetooth Low Energy radio. The radio on the device operates in the following frequencies:
Frequency Range: 2402MHz to 2480MHz
Bluetooth Version: V4.0 Bluetooth Low Energy
### Declaration of Conformity
The document can be downloaded by clicking here for the [Declaration of Conformity](https://microbit0.blob.core.windows.net/pub/hkeghjes/declaration-of-conformity.pdf)
The micro:bit has been designed to be a bare-board micro controller for use by children aged 11-12.
More information is available at the [BBC web site](http://www.microbit.co.uk/device).

View File

@ -1,5 +1,6 @@
# Lessons
### @short Lessons
### ~column

View File

@ -22,12 +22,9 @@ Learn how to creating a message with a **string**, `show string` to write your m
## Documentation
```docs
```cards
basic.showString('Hi!')
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
```

View File

@ -20,7 +20,7 @@ Learn how to **show LEDs**, to show an image on the BBC micro:bit's LED screen.
## Documentation
```docs
```cards
basic.showLeds(`
. . . . .
. . . . .
@ -28,10 +28,7 @@ basic.showLeds(`
. . . . .
. . . . .
`)
basic.pause(100)
```
## Objectives

View File

@ -23,18 +23,11 @@ Learn how to control a blinking LED. We will be learning how to create a blinkin
## Documentation
```docs
```cards
led.plot(0, 0)
led.unplot(0, 0)
basic.pause(100)
basic.forever(() => {
})
basic.forever(() => {})
```

View File

@ -17,23 +17,13 @@ Learn the functions of **on data received**, **send number** and **receive numbe
## Documentation
```docs
```cards
basic.showNumber(0)
input.acceleration(Dimension.X)
led.plotBarGraph(0, 1023)
radio.onDataReceived(() => {
})
radio.onDataReceived(() => {})
radio.sendNumber(0)
radio.receiveNumber()
```
## Objectives

View File

@ -21,17 +21,12 @@ Learn how to use an if statements to run code run code depending on whether a co
## Documentation
```docs
```cards
input.compassHeading()
basic.forever(() => {})
let x = 0
if (true) {}
basic.showString("Hello!")
basic.showLeds(`
. . . . .
. . . . .

View File

@ -21,22 +21,12 @@ Learn how to creating a **variable** to keep track of the current count. We will
## Documentation
```docs
```cards
input.compassHeading()
basic.forever(() => {
})
basic.forever(() => {})
let x = 0
if (true) {
}
if (true) {}
basic.showString("Hello!")
basic.showLeds(`
. . . . .
. . . . .
@ -44,7 +34,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
* **variable**: [read more...](/microbit/reference/variables/var)

View File

@ -21,21 +21,11 @@ Learn how to use an if statements to run code run code depending on whether a co
## Documentation
```docs
input.onGesture(Gesture.Shake, () => {
})
```cards
input.onGesture(Gesture.Shake, () => {})
let x = 0
x = Math.random(3)
if (true) {
}
Math.random(3)
if (true) {}
basic.showLeds(`
. . . . .
. . . . .
@ -43,10 +33,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -21,13 +21,11 @@ Learn how to creating a **while loop**, `while condition do` to repeat code whil
## Documentation
```docs
```cards
let x = 0
basic.showNumber(0)
while (true) {
basic.pause(20)
}
while (true) {}
basic.pause(20)
```
## Objectives

View File

@ -20,13 +20,8 @@ Learn how to `show LEDs` by showing an image on the LED screen. We will be learn
## Documentation
```docs
basic.forever(() => {
})
```cards
basic.forever(() => {})
basic.showLeds(`
. . . . .
. . . . .
@ -34,11 +29,8 @@ basic.showLeds(`
. . . . .
. . . . .
`)
basic.pause(100)
basic.clearScreen()
```
## Objectives

View File

@ -19,15 +19,10 @@ Learn how to create game blocks to keep track of the current score. We will be l
## Documentation
```docs
```cards
game.addScore(1)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
basic.showNumber(0)
```
## Objectives

View File

@ -18,15 +18,10 @@ Learn how to creating a message with a **game over** to write your message. We w
## Documentation
```docs
```cards
game.gameOver()
basic.showString("Hello!")
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
```
## Objectives

View File

@ -19,21 +19,12 @@ Learn how to get the acceleration **acceleration**, `acceleration` value (g-forc
## Documentation
```docs
basic.forever(() => {
})
```cards
basic.forever(() => {})
let x = 0
input.acceleration(Dimension.X)
Math.abs(0)
led.setBrightness(255)
basic.showLeds(`
. . . . .
. . . . .
@ -41,7 +32,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -21,22 +21,12 @@ Learn how to create numbers randomly by using the input of the BBC micro:bit. We
## Documentation
```docs
input.onButtonPressed(Button.A, () => {
})
```cards
input.onButtonPressed(Button.A, () => {})
let x = 0
basic.showNumber(0)
Math.random(3)
basic.clearScreen()
```
## Objectives

View File

@ -26,10 +26,8 @@ Learn how to control a blinking LED. We will be learning how to create a blinkin
## Documentation
```docs
for (let i = 0; i < 5; i++) {
}
```cards
for (let i = 0; i < 5; i++) {}
basic.showNumber(0)
basic.pause(100)

View File

@ -22,19 +22,11 @@ Learn how to use the **pin pressed**, `on pin pressed` to run code when the user
## Documentation
```docs
if (true) {
}
input.onPinPressed(TouchPin.P0, () => {
})
```cards
if (true) {}
input.onPinPressed(TouchPin.P0, () => {})
let x = 0
Math.random(3)
basic.showNumber(0)
basic.pause(100)
```

View File

@ -19,14 +19,10 @@ Learn how to creating **conditionals**, `if condition do` to conditionally run c
## Documentation
```docs
if (true) {
}
```cards
if (true) {}
Math.random(3)
input.onGesture(Gesture.Shake, () => {
})
input.onGesture(Gesture.Shake, () => {})
basic.showNumber(7)
basic.clearScreen()
basic.showString("Hello!")

View File

@ -20,13 +20,9 @@ On Logo Up
Learn how to plot image **on logo up**, `on logo up` to run code when the micro:bit screen is facing up and vertically orientated. We will be learning how to plot an image with the logo up, basic show LEDs, and logo down.
## Documentation
```docs
input.onLogoUp(() => {
})
input.onLogoDown(() => {
})
```cards
input.onLogoUp(() => {})
input.onLogoDown(() => {})
basic.showLeds(`
. . . . .
. . . . .
@ -34,8 +30,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -21,11 +21,9 @@ Learn how to **set brightness** of an image `set brightness` to set the brightne
## Documentation
```docs
```cards
led.setBrightness(255)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
basic.showLeds(`
. . . . .
. . . . .
@ -33,7 +31,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -15,14 +15,13 @@ Running Time
Learn how to use running time. We will be learning how to create a pogo game using variables, forever loop, conditionals, on button pressed, as well as simple commands, such as show LEDs and clear screen.
## Documentation
```docs
```cards
let jumps = 0
let acc = input.acceleration(Dimension.Y)
basic.showNumber(jumps)
basic.showNumber(radio.receiveNumber())
basic.showNumber(0)
radio.receiveNumber()
led.stopAnimation()
jumps = jumps + 1;
radio.sendNumber(jumps)
radio.sendNumber(0)
basic.forever(() => { })
basic.showLeds(`
. . . . .
@ -32,11 +31,8 @@ basic.showLeds(`
. # # # .
`)
basic.clearScreen()
if (acc > 2000) {
}
if (true) {}
radio.onDataReceived(() => { })
```
## Objectives

View File

@ -23,10 +23,8 @@ Learn how to create a **local variable**, `var t :=time` where you can store dat
## Documentation
```docs
input.onGesture(Gesture.Shake, () => {
})
```cards
input.onGesture(Gesture.Shake, () => {})
Math.random(3)
let x = 0
basic.showLeds(`

View File

@ -19,11 +19,9 @@ Learn how to create images that look like a rotating animation by using a while
## Documentation
```docs
```cards
let x = 0
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
basic.showLeds(`
. . . . .
. . . . .
@ -32,10 +30,8 @@ basic.showLeds(`
. . . . .
`)
basic.pause(100)
while (true) {
basic.pause(20)
}
while (true) {}
basic.pause(20)
```
## Objectives

View File

@ -23,7 +23,7 @@ Learn how to **clear screen**, `clear screen` to turn off all the LED lights on
## Documentation
```docs
```cards
basic.clearScreen()
basic.showLeds(`
. . . . .
@ -32,10 +32,7 @@ basic.showLeds(`
. . . . .
. . . . .
`)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
```
## Objectives

View File

@ -24,10 +24,8 @@ Learn how to **show LEDs** to turn on a LED light pattern on the LED screen. We
* **show LEDs** : [read more...](/microbit/reference/basic/show-leds)
* **on button pressed** : [read more...](/microbit/reference/input/on-button-pressed)
```docs
input.onButtonPressed(Button.A, () => {
})
```cards
input.onButtonPressed(Button.A, () => {})
basic.showLeds(`
. . . . .
. . . . .
@ -35,7 +33,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -25,7 +25,7 @@ Learn how to show LEDs with a, `pause` to pause program execution for a specifie
* **pause** : [read more...](/microbit/reference/basic/pause)
* **forever** : [read more...](/microbit/reference/basic/forever)
```docs
```cards
basic.showLeds(`
. . . . .
. . . . .
@ -34,8 +34,5 @@ basic.showLeds(`
. . . . .
`)
basic.pause(100)
basic.forever(() => {
})
basic.forever(() => {})
```

View File

@ -22,14 +22,10 @@ Learn how to use an if statement to run code run code depending on whether a con
## Documentation
```docs
if (true) {
}
```cards
if (true) {}
let x = 0
input.onGesture(Gesture.Shake, () => {
})
input.onGesture(Gesture.Shake, () => {})
Math.random(3)
basic.showLeds(`
. . . . .

View File

@ -17,14 +17,11 @@ For Loop
## Documentation
```docs
```cards
led.plot(0, 0)
led.unplot(0, 0)
for (let i = 0; i < 5; i++) {
}
for (let i = 0; i < 5; i++) {}
basic.pause(100)
```
## Objectives

View File

@ -17,15 +17,12 @@ Learn how to get the ambient temperature (degree Celsius °C). The temperature i
## Documentation
```docs
```cards
input.temperature()
let x = 0
basic.showNumber(7)
basic.showString("Hello!")
input.onGesture(Gesture.Shake, () => {
})
input.onGesture(Gesture.Shake, () => {})
```
## Objectives

View File

@ -21,7 +21,7 @@ Learn how to use an if statement to run code run code depending on whether a con
## Documentation
```docs
```cards
basic.showLeds(`
. . . . .
. . . . .
@ -29,16 +29,11 @@ basic.showLeds(`
. . . . .
. . . . .
`)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
let x = 0
Math.random(3)
if (true) {
}
if (true) {}
basic.showString("Hello!")
```
## Objectives

View File

@ -21,7 +21,7 @@ Learn how to get the **acceleration**, `acceleration` in one of three specified
## Documentation
```docs
```cards
basic.forever(() => {
})
let x = 0

View File

@ -1,460 +1,17 @@
# Reference
### @section full
### ~column
### Basic
[show number](/microbit/reference/basic/show-number)
~~~~block
basic.showNumber(2)
~~~~
[show string](/microbit/reference/basic/show-string)
~~~~block
basic.showString('Hello!')
~~~~
[show LEDs](/microbit/reference/basic/show-leds)
~~~~block
basic.showLeds(`. . . . .
. # . # .
. . . . .
# . . . #
. # # # .`)
~~~~
[clear screen](/microbit/reference/basic/clear-screen)
~~~~block
basic.clearScreen()
~~~~
[forever](/microbit/reference/basic/forever)
~~~~block
basic.forever(() => { })
~~~~
[pause](/microbit/reference/basic/pause)
```block
basic.pause(200)
```
### Input
[on button pressed](/microbit/reference/input/on-button-pressed)
```block
input.onButtonPressed(Button.A, () => {})
```
[on pin pressed](/microbit/reference/input/on-pin-pressed)
```block
input.onPinPressed(TouchPin.P0, () => {})
```
[on shake](/microbit/reference/input/on-shake)
![](/static/mb/blocks/contents-22.jpg)
[on logo up](/microbit/reference/on-logo-up)
![](/static/mb/on-logo-up-0.jpg)
[on logo down](/microbit/reference/on-logo-down)
![](/static/mb/on-logo-down-0.jpg)
[on screen up](/microbit/reference/on-screen-up)
![](/static/mb/on-screen-up-0.jpg)
[on screen down](/microbit/reference/on-screen-down)
![](/static/mb/on-screen-down-0.jpg)
[button is pressed](/microbit/reference/button-is-pressed)
![](/static/mb/button-is-pressed-0.png)
[compass heading](/microbit/reference/compass-heading)
![](/static/mb/compass-heading-0.png)
[temperature](/microbit/reference/temperature)
![](/static/mb/temperature-0.png)
[acceleration](/microbit/reference/input/acceleration)
![](/static/mb/acceleration-0.png)
[rotation](/microbit/reference/rotation)
![](/static/mb/rotation-0.png)
[magnetic force](/microbit/reference/magnetic-force)
![](/static/mb/magnetic-force-0.png)
[running time](/microbit/reference/running-time)
![](/static/mb/running-time-0.png)
### Loops
[for](/microbit/reference/loops/for)
```block
for(let i = 0;i<5;i++) {}
```
[repeat](/microbit/reference/loops/repeat)
![](/static/mb/blocks/contents-0.png)
[while](/microbit/reference/loops/while)
```block
while(true) {}
```
[forever](/microbit/reference/basic/forever)
```block
basic.forever(() => {})
```
### ~
### ~column
### Logic
[if](/microbit/reference/logic/if)
```block
if(false) {
}
```
[Boolean](/microbit/reference/types/boolean) values: *true*; *false*
```block
true
false
```
Boolean binary operators: *and* (conjunction); *or* (disjunction)
```block
true && false;
true || false;
```
Boolean negation operator
```block
!true
```
Comparison operators (=, !=, <, >, <=, >=)
```block
0 == 0;
1 !- 0;
0 < 1;
1 > 0;
0 <= 1;
1 >= 0;
```
### Variables
[Assign](/microbit/reference/variables/assign) (set) a variable's value
```block
```namespaces
basic.showString("Hello!");
input.onButtonPressed(Button.A, () => {});
for (let i = 0;i<5;++i) {}
if (true){}
let x = 0;
```
Get a variable's value
```block
let x = 0;
x;
```
[Change](/microbit/reference/variables/change-var) a variable's value
```block
let x = 0;
x+=1;
```
### Math
[Numeric](/microbit/reference/types/number) values: 0, 1, 2, ...
```block
0;
1;
2;
```
Arithmetic binary operation (+, -, *, /)
```block
0+1;
0-1;
1*2;
3/4;
```
Absolute value
```block
Math.abs(-5);
```
Minimum/maximum of two values
```block
Math.min(0, 1);
Math.max(0, 1);
```
Random value
```block
Math.random(5);
led.plot(0,0);
radio.sendNumber(0);
music.playTone(music.noteFrequency(Note.C), music.beat(BeatFraction.Whole));
game.createSprite(2,2);
pins.digitalReadPin(DigitalPin.P0);
serial.writeLine("Hello!");
control.inBackground(() => {});
```
### LED
[plot](/microbit/reference/led/plot)
```block
led.plot(2,2)
```
[unplot](/microbit/reference/led/unplot)
```block
led.unplot(2,2)
```
[point](/microbit/reference/point)
```block
led.point(2,2)
```
[brightness](/microbit/reference/brightness)
```block
led.brightness()
```
[set brightness](/microbit/reference/set-brightness)
```block
led.setBrightness(255)
```
[stop animation](/microbit/reference/stop-animation)
```block
led.stopAnimation()
```
[plot bar graph](/microbit/reference/led/plot-bar-graph)
```block
led.plotBarGraph(0, 1023)
```
### Game
[create sprite](/microbit/reference/game/create-sprite)
![](/static/mb/create-sprite-0.png)
[move](/microbit/reference/game/move)
![](/static/mb/game-library/move-0.png)
[turn](/microbit/reference/game/turn)
![](/static/mb/game-library/turn-0.png)
[change](/microbit/reference/game/change)
![](/static/mb/change-0.png)
[set](/microbit/reference/game/set)
![](/static/mb/blocks/contents-21.png)
[reports](/microbit/reference/reports)
![](/static/mb/game-library/position-0.png)
[touching](/microbit/reference/touching)
![](/static/mb/game-library/touching-0.png)
[touching edge](/microbit/reference/touching-edge)
![](/static/mb/game-library/touching-edge-0.png)
[if on edge, bounce](/microbit/reference/logic/if-on-edge-bounce)
![](/static/mb/game-library/if-on-edge-bounce-0.png)
[change score by](/microbit/reference/change-score-by)
![](/static/mb/game-library/pic1.png)
[score](/microbit/reference/score)
![](/static/mb/game-library/pic2.png)
[start countdown](/microbit/reference/start-countdown)
![](/static/mb/game-library/pic3.png)
[game over](/microbit/reference/game-over)
![](/static/mb/game-library/pic0.png)
### Music
[play tone](/microbit/reference/play-tone)
![](/static/mb/play-tone-0.jpg)
[ring tone](/microbit/reference/ring-tone)
![](/static/mb/ring-tone-0.jpg)
[rest](/microbit/reference/rest)
![](/static/mb/rest-0.jpg)
[tempo](/microbit/reference/tempo)
![](/static/mb/tempo-0.jpg)
[set tempo](/microbit/reference/set-tempo)
![](/static/mb/change-tempo-0.jpg)
[change tempo](/microbit/reference/music/set-tempo)
![](/static/mb/change-tempo-by-0.jpg)
### Comments
[comment](/microbit/reference/comment)
### Images
[show image](/microbit/reference/show-image)
![](/static/mb/show-image-0.png)
[scroll image](/microbit/reference/scroll-image)
![](/static/mb/scroll-image-0.png)
[create image](/microbit/reference/create-image)
![](/static/mb/create-image-0.png)
### ~
### ~column
### Pins
[digital read pin](/microbit/reference/pins/digital-read-pin)
![](/static/mb/digital-read-pin-0.png)
[digital write pin](/microbit/reference/pins/digital-write-pin)
![](/static/mb/digital-write-pin-0.png)
[analog read pin](/microbit/reference/pins/analog-read-pin)
![](/static/mb/analog-read-pin-0.png)
[analog write pin](/microbit/reference/pins/analog-write-pin)
![](/static/mb/blocks/contents-23.png)
[analog set period](/microbit/reference/pins/analog-set-period)
![](/static/mb/analog-set-period-0.png)
[servo write pin](/microbit/reference/pins/servo-write-pin)
![](/static/mb/servo-write-pin-0.png)
[servo set pulse](/microbit/reference/pins/servo-set-pulse)
![](/static/mb/servo-set-pulse-0.png)
[map](/microbit/reference/map)
![](/static/mb/map-0.png)
## Devices
Functions in this category require to be connected to a remote device.
[tell camera to](/microbit/reference/devices/tell-camera-to)
![](/static/mb/tell-camera-to-0.png)
[tell remote control to](/microbit/reference/devices/tell-remote-control-to)
![](/static/mb/tell-remote-control-to-0.png)
[raise alert to](/microbit/reference/devices/raise-alert-to)
![](/static/mb/raise-alert-to-0.png)
[on notified](/microbit/reference/on-notified)
![](/static/mb/on-notified-0.png)
[on gamepad button](/microbit/reference/on-gamepad-button)
![](/static/mb/on-gamepad-button-0.png)
[on notified](/microbit/reference/on-notified)
![](/static/mb/on-notified-0.png)
[signal strength](/microbit/reference/signal-strength)
![](/static/mb/blocks/contents-24.png)
[on signal strength changed](/microbit/reference/on-signal-strength-changed)
![](/static/mb/blocks/contents-25.png)
### ~

35
docs/reference/basic.md Normal file
View File

@ -0,0 +1,35 @@
# Basic
Provides access to basic micro:bit functionality.
```cards
basic.showNumber(0);
basic.showLeds(`
. . . . .
. . . . .
. . # . .
. . . . .
. . . . .
`);
basic.showString("Hello!");
basic.clearScreen();
basic.forever(() => {
});
basic.pause(100);
basic.plotLeds(`
. . . . .
. . . . .
. . # . .
. . . . .
. . . . .
`);
basic.showAnimation(`
. . . . .
. . . . .
. . # . .
. . . . .
. . . . .
`);
```

11
docs/reference/control.md Normal file
View File

@ -0,0 +1,11 @@
# Control
```cards
control.inBackground(() => {
});
control.reset();
```

12
docs/reference/game.md Normal file
View File

@ -0,0 +1,12 @@
# Game
```cards
game.addScore(1);
game.score();
game.startCountdown(10000);
game.gameOver();
game.setScore(0);
```

21
docs/reference/images.md Normal file
View File

@ -0,0 +1,21 @@
# Images
```cards
images.createImage(`
. . . . .
. . . . .
. . # . .
. . . . .
. . . . .
`);
images.createBigImage(`
. . . . .
. . . . .
. . # . .
. . . . .
. . . . .
`);
```

42
docs/reference/input.md Normal file
View File

@ -0,0 +1,42 @@
# Input
```cards
input.onButtonPressed(Button.A, () => {
});
input.onGesture(Gesture.Shake, () => {
});
input.onPinPressed(TouchPin.P0, () => {
});
input.buttonIsPressed(Button.A);
input.compassHeading();
input.temperature();
input.acceleration(Dimension.X);
input.lightLevel();
input.rotation(Rotation.Pitch);
input.magneticForce(Dimension.X);
input.runningTime();
input.setAccelerometerRange(AcceleratorRange.OneG);
input.pinIsPressed(TouchPin.P0);
input.calibrate();
input.onLogoDown(() => {
});
input.onLogoUp(() => {
});
input.onScreenDown(() => {
});
input.onScreenUp(() => {
});
input.onShake(() => {
});
```

View File

@ -126,15 +126,3 @@ This is useful if you have something connected at the other end. As explained ab
let msg = serial.readString()
```
* reads an image
```
img = serial.readImage()
```
* reads the state of the screen from serial
```
serial.readScreen()
```

21
docs/reference/led.md Normal file
View File

@ -0,0 +1,21 @@
# Led
```cards
led.plot(0, 0);
led.unplot(0, 0);
led.point(0, 0);
led.brightness();
led.setBrightness(255);
led.stopAnimation();
led.plotBarGraph(0, 1023);
led.fadeIn();
led.fadeOut();
led.plotAll();
led.screenshot();
led.toggle(0, 0);
led.toggleAll();
led.setDisplayMode(DisplayMode.BackAndWhite);
```

39
docs/reference/logic.md Normal file
View File

@ -0,0 +1,39 @@
# Logic
[if](/microbit/reference/logic/if)
```blocks
if(true) {
}
```
[Boolean](/microbit/reference/types/boolean) values: *true*; *false*
```blocks
true
false
```
Boolean binary operators: *and* (conjunction); *or* (disjunction)
```blocks
true && false;
true || false;
```
Boolean negation operator
```blocks
!true
```
Comparison operators (=, !=, <, >, <=, >=)
```blocks
0 == 0;
1 !- 0;
0 < 1;
1 > 0;
0 <= 1;
1 >= 0;
```

26
docs/reference/loops.md Normal file
View File

@ -0,0 +1,26 @@
# Loops
Repeat code.
[for](/reference/loops/for)
```blocks
for(let i = 0;i<5;i++) {}
```
[repeat](/reference/loops/repeat)
![](/static/mb/blocks/contents-0.png)
[while](/reference/loops/while)
```blocks
while(true) {}
```
[forever](/reference/basic/forever)
```blocks
basic.forever(() => {})
```

37
docs/reference/math.md Normal file
View File

@ -0,0 +1,37 @@
# Math
[Numeric](/reference/types/number) values: 0, 1, 2, ...
```blocks
0;
1;
2;
```
Arithmetic binary operation (+, -, *, /)
```blocks
0+1;
0-1;
1*2;
3/4;
```
Absolute value
```blocks
Math.abs(-5);
```
Minimum/maximum of two values
```blocks
Math.min(0, 1);
Math.max(0, 1);
```
Random value
```blocks
Math.random(5);
```

15
docs/reference/music.md Normal file
View File

@ -0,0 +1,15 @@
# Music
```cards
music.playTone(0, 0);
music.ringTone(0);
music.rest(0);
music.noteFrequency(Note.C);
music.beat();
music.tempo();
music.changeTempoBy(20);
music.setTempo(120);
```

17
docs/reference/pins.md Normal file
View File

@ -0,0 +1,17 @@
# Pins
```cards
pins.digitalReadPin(DigitalPin.P0);
pins.digitalWritePin(DigitalPin.P0, 0);
pins.analogReadPin(AnalogPin.P0);
pins.analogWritePin(AnalogPin.P0, 1023);
pins.analogSetPeriod(AnalogPin.P0, 20000);
pins.servoWritePin(AnalogPin.P0, 180);
pins.servoSetPulse(AnalogPin.P0, 1500);
pins.map(0, 0, 1023, 0, 4);
pins.analogPitch(0, 0);
pins.analogSetPitchPin(AnalogPin.P0);
```

17
docs/reference/radio.md Normal file
View File

@ -0,0 +1,17 @@
# Radio
```cards
radio.sendNumber(0);
radio.sendNumbers(0, 0, 0, 0);
radio.onDataReceived(() => {
});
radio.receiveNumber();
radio.receivedNumberAt(0);
radio.receivedSignalStrength();
radio.setGroup(0);
radio.setTransmitPower(0);
```

View File

@ -0,0 +1,21 @@
## Variables
[Assign](/reference/variables/assign) (set) a variable's value
```blocks
let x = 0;
```
Get a variable's value
```blocks
let x = 0;
x;
```
[Change](/reference/variables/change-var) a variable's value
```blocks
let x = 0;
x+=1;
```

1
docs/static/footerlogo.svg vendored Normal file
View File

@ -0,0 +1 @@
<svg xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' width='193.50101' height='32.755001' version='1.1'><g transform='translate(-1.3555,0.63251107)'><title>micro:bit logo</title><path d='m 38.7185,20.11349 c -1.677,0 -3.035,-1.364 -3.035,-3.042 0,-1.678 1.357,-3.038 3.035,-3.038 1.684,0 3.039,1.36 3.039,3.038 0,1.678 -1.355,3.042 -3.039,3.042 m -22.311,-6.077 c -1.677,0 -3.042,1.357 -3.042,3.035 0,1.678 1.363,3.042 3.042,3.042 1.674,0 3.036,-1.364 3.036,-3.042 0,-1.678 -1.363,-3.035 -3.036,-3.035 m -0.003,-5.99 22.576,0 c 4.979,0 9.027,4.047 9.027,9.027 0,4.979 -4.049,9.031 -9.027,9.031 l -22.576,0 c -4.977,0 -9.03,-4.053 -9.03,-9.031 -0.001,-4.98 4.053,-9.027 9.03,-9.027 m 22.576,24.076 c 8.299,0 15.047,-6.75 15.047,-15.049 0,-8.299 -6.748,-15.051 -15.047,-15.051 l -22.576,0 c -8.299,0 -15.049,6.752 -15.049,15.051 0,8.299 6.75,15.049 15.049,15.049 l 22.576,0 m 112.099,-21.953 c 0,-1.453 -1.195,-2.633 -2.662,-2.633 -1.455,0 -2.639,1.18 -2.639,2.633 0,1.471 1.184,2.672 2.639,2.672 1.466,0 2.662,-1.202 2.662,-2.672 z m -66.786,5.445 c 0,-4.764 -2.893,-8.093 -7.031,-8.093 -2.027,0 -3.814,0.851 -5.223,2.47 -1.467,-1.661 -3.152,-2.47 -5.127,-2.47 -4.162,0 -7.066,3.329 -7.066,8.093 l 0,10.466 3.812,0 0,-10.644 c 0,-2.416 1.336,-4.104 3.254,-4.104 1.617,0 3.25,1.409 3.25,4.104 l 0,10.645 3.848,0 0,-10.645 c 0,-2.416 1.338,-4.104 3.252,-4.104 1.863,0 3.217,1.727 3.217,4.104 l 0,10.645 3.814,0 0,-10.467 z m 6.953,-7.632 -3.846,0 0,18.099 3.846,0 0,-18.099 z m 0.569,-5.128 c 0,-1.377 -1.096,-2.454 -2.492,-2.454 -1.4,0 -2.453,1.054 -2.453,2.454 0,1.398 1.078,2.494 2.453,2.494 1.375,0 2.492,-1.117 2.492,-2.494 z m 18.328,20.914 0.576,-0.521 -2.828,-2.658 -0.488,0.455 c -1.252,1.149 -2.504,1.686 -3.945,1.686 -3.064,0 -5.557,-2.557 -5.557,-5.699 0,-3.121 2.492,-5.66 5.557,-5.66 1.432,0 2.646,0.521 3.949,1.693 l 0.512,0.46 2.748,-2.802 -0.49,-0.502 c -1.754,-1.793 -4.016,-2.696 -6.719,-2.696 -2.459,0 -4.869,1.022 -6.605,2.798 -1.738,1.734 -2.691,4.119 -2.691,6.709 0,2.596 0.953,4.979 2.684,6.705 1.771,1.811 4.117,2.811 6.615,2.811 2.401,-0.003 4.647,-0.937 6.682,-2.779 z m 7.25,-6.947 c 0,-3.322 1.145,-4.686 4.217,-5.029 l 0.641,-0.07 0,-3.797 -0.777,0.058 c -5.629,0.458 -8.143,3.247 -8.143,9.048 l 0,9.051 4.062,0 0,-9.261 0,0 z m 21.998,6.923 c 1.762,-1.756 2.729,-4.146 2.729,-6.715 0,-2.565 -0.967,-4.951 -2.723,-6.702 -1.77,-1.809 -4.105,-2.806 -6.576,-2.806 -2.492,0 -4.84,0.997 -6.613,2.806 -1.752,1.792 -2.721,4.174 -2.721,6.702 0,2.53 0.969,4.916 2.721,6.707 1.771,1.81 4.121,2.808 6.613,2.808 2.472,0 4.808,-0.998 6.57,-2.8 z m -1.229,-6.714 c 0,3.18 -2.361,5.665 -5.377,5.665 -2.945,0 -5.346,-2.541 -5.346,-5.665 0,-3.137 2.398,-5.695 5.346,-5.695 2.963,-0.002 5.377,2.558 5.377,5.695 z m 12.917,6.418 c 0,-1.468 -1.195,-2.667 -2.662,-2.667 -1.455,0 -2.639,1.199 -2.639,2.667 0,1.453 1.184,2.632 2.639,2.632 1.466,0 2.662,-1.179 2.662,-2.632 z m 19.507,0.296 c 1.76,-1.756 2.73,-4.146 2.73,-6.715 0,-2.528 -0.973,-4.911 -2.729,-6.702 -1.746,-1.787 -4.08,-2.77 -6.574,-2.77 -2.035,0 -3.84,0.572 -5.484,1.744 l 0,-9.934 -3.816,0 0.008,15.582 c -0.037,0.411 -0.037,0.821 -0.037,1.198 0,6.119 3.836,10.396 9.33,10.396 2.475,0.001 4.807,-0.997 6.572,-2.799 z m -1.013,-6.677 c 0,3.123 -2.494,5.66 -5.559,5.66 -3.115,0 -5.557,-2.484 -5.557,-5.66 0,-3.143 2.494,-5.698 5.557,-5.698 3.065,0 5.559,2.556 5.559,5.698 z m 10.881,-9.085 -3.846,0 0,18.099 3.846,0 0,-18.099 z m 0.572,-5.128 c 0,-1.377 -1.098,-2.454 -2.492,-2.454 -1.4,0 -2.457,1.054 -2.457,2.454 0,1.398 1.076,2.494 2.457,2.494 1.373,0 2.492,-1.117 2.492,-2.494 z m 13.83,19.759 -0.619,-0.089 c -2.855,-0.409 -4.133,-2.104 -4.133,-5.495 l 0,-5.126 4.752,0 0,-3.674 -4.752,0 0,-4.006 -3.887,0 0,4.006 -1.662,0 0,3.674 1.662,0 0,4.525 c 0,6.215 2.113,8.932 7.783,10.029 l 0.855,0.164 0,-4.008 0.001,0 z' style='fill:#000000' /></g></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

1
docs/static/logo.svg vendored Normal file
View File

@ -0,0 +1 @@
<svg xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' width='193.50101' height='32.755001' version='1.1'><g transform='translate(-1.3555,0.63251107)'><title>micro:bit logo</title><path d='m 38.7185,20.11349 c -1.677,0 -3.035,-1.364 -3.035,-3.042 0,-1.678 1.357,-3.038 3.035,-3.038 1.684,0 3.039,1.36 3.039,3.038 0,1.678 -1.355,3.042 -3.039,3.042 m -22.311,-6.077 c -1.677,0 -3.042,1.357 -3.042,3.035 0,1.678 1.363,3.042 3.042,3.042 1.674,0 3.036,-1.364 3.036,-3.042 0,-1.678 -1.363,-3.035 -3.036,-3.035 m -0.003,-5.99 22.576,0 c 4.979,0 9.027,4.047 9.027,9.027 0,4.979 -4.049,9.031 -9.027,9.031 l -22.576,0 c -4.977,0 -9.03,-4.053 -9.03,-9.031 -0.001,-4.98 4.053,-9.027 9.03,-9.027 m 22.576,24.076 c 8.299,0 15.047,-6.75 15.047,-15.049 0,-8.299 -6.748,-15.051 -15.047,-15.051 l -22.576,0 c -8.299,0 -15.049,6.752 -15.049,15.051 0,8.299 6.75,15.049 15.049,15.049 l 22.576,0 m 112.099,-21.953 c 0,-1.453 -1.195,-2.633 -2.662,-2.633 -1.455,0 -2.639,1.18 -2.639,2.633 0,1.471 1.184,2.672 2.639,2.672 1.466,0 2.662,-1.202 2.662,-2.672 z m -66.786,5.445 c 0,-4.764 -2.893,-8.093 -7.031,-8.093 -2.027,0 -3.814,0.851 -5.223,2.47 -1.467,-1.661 -3.152,-2.47 -5.127,-2.47 -4.162,0 -7.066,3.329 -7.066,8.093 l 0,10.466 3.812,0 0,-10.644 c 0,-2.416 1.336,-4.104 3.254,-4.104 1.617,0 3.25,1.409 3.25,4.104 l 0,10.645 3.848,0 0,-10.645 c 0,-2.416 1.338,-4.104 3.252,-4.104 1.863,0 3.217,1.727 3.217,4.104 l 0,10.645 3.814,0 0,-10.467 z m 6.953,-7.632 -3.846,0 0,18.099 3.846,0 0,-18.099 z m 0.569,-5.128 c 0,-1.377 -1.096,-2.454 -2.492,-2.454 -1.4,0 -2.453,1.054 -2.453,2.454 0,1.398 1.078,2.494 2.453,2.494 1.375,0 2.492,-1.117 2.492,-2.494 z m 18.328,20.914 0.576,-0.521 -2.828,-2.658 -0.488,0.455 c -1.252,1.149 -2.504,1.686 -3.945,1.686 -3.064,0 -5.557,-2.557 -5.557,-5.699 0,-3.121 2.492,-5.66 5.557,-5.66 1.432,0 2.646,0.521 3.949,1.693 l 0.512,0.46 2.748,-2.802 -0.49,-0.502 c -1.754,-1.793 -4.016,-2.696 -6.719,-2.696 -2.459,0 -4.869,1.022 -6.605,2.798 -1.738,1.734 -2.691,4.119 -2.691,6.709 0,2.596 0.953,4.979 2.684,6.705 1.771,1.811 4.117,2.811 6.615,2.811 2.401,-0.003 4.647,-0.937 6.682,-2.779 z m 7.25,-6.947 c 0,-3.322 1.145,-4.686 4.217,-5.029 l 0.641,-0.07 0,-3.797 -0.777,0.058 c -5.629,0.458 -8.143,3.247 -8.143,9.048 l 0,9.051 4.062,0 0,-9.261 0,0 z m 21.998,6.923 c 1.762,-1.756 2.729,-4.146 2.729,-6.715 0,-2.565 -0.967,-4.951 -2.723,-6.702 -1.77,-1.809 -4.105,-2.806 -6.576,-2.806 -2.492,0 -4.84,0.997 -6.613,2.806 -1.752,1.792 -2.721,4.174 -2.721,6.702 0,2.53 0.969,4.916 2.721,6.707 1.771,1.81 4.121,2.808 6.613,2.808 2.472,0 4.808,-0.998 6.57,-2.8 z m -1.229,-6.714 c 0,3.18 -2.361,5.665 -5.377,5.665 -2.945,0 -5.346,-2.541 -5.346,-5.665 0,-3.137 2.398,-5.695 5.346,-5.695 2.963,-0.002 5.377,2.558 5.377,5.695 z m 12.917,6.418 c 0,-1.468 -1.195,-2.667 -2.662,-2.667 -1.455,0 -2.639,1.199 -2.639,2.667 0,1.453 1.184,2.632 2.639,2.632 1.466,0 2.662,-1.179 2.662,-2.632 z m 19.507,0.296 c 1.76,-1.756 2.73,-4.146 2.73,-6.715 0,-2.528 -0.973,-4.911 -2.729,-6.702 -1.746,-1.787 -4.08,-2.77 -6.574,-2.77 -2.035,0 -3.84,0.572 -5.484,1.744 l 0,-9.934 -3.816,0 0.008,15.582 c -0.037,0.411 -0.037,0.821 -0.037,1.198 0,6.119 3.836,10.396 9.33,10.396 2.475,0.001 4.807,-0.997 6.572,-2.799 z m -1.013,-6.677 c 0,3.123 -2.494,5.66 -5.559,5.66 -3.115,0 -5.557,-2.484 -5.557,-5.66 0,-3.143 2.494,-5.698 5.557,-5.698 3.065,0 5.559,2.556 5.559,5.698 z m 10.881,-9.085 -3.846,0 0,18.099 3.846,0 0,-18.099 z m 0.572,-5.128 c 0,-1.377 -1.098,-2.454 -2.492,-2.454 -1.4,0 -2.457,1.054 -2.457,2.454 0,1.398 1.076,2.494 2.457,2.494 1.373,0 2.492,-1.117 2.492,-2.494 z m 13.83,19.759 -0.619,-0.089 c -2.855,-0.409 -4.133,-2.104 -4.133,-5.495 l 0,-5.126 4.752,0 0,-3.674 -4.752,0 0,-4.006 -3.887,0 0,4.006 -1.662,0 0,3.674 1.662,0 0,4.525 c 0,6.215 2.113,8.932 7.783,10.029 l 0.855,0.164 0,-4.008 0.001,0 z' style='fill:#000000' /></g></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
docs/static/logo128.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/static/logo32.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
docs/static/logo512.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

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