Compare commits

...

275 Commits

Author SHA1 Message Date
f3bfe3d94e 0.2.132 2016-05-26 11:15:56 -07:00
ed54ace797 Bump pxt-core to 0.2.141 2016-05-26 11:15:16 -07:00
0648e80131 added serial.redirect 2016-05-26 11:07:09 -07:00
ce9a83ff28 0.2.131 2016-05-26 09:15:26 -07:00
54439bba4d Bump pxt-core to 0.2.140 2016-05-26 09:15:22 -07:00
23a581c899 added rock-paper-scissors page 2016-05-26 09:15:10 -07:00
3f8fa4b05b 0.2.130 2016-05-25 10:53:55 -07:00
53ab8651bd Bump pxt-core to 0.2.139 2016-05-25 10:53:52 -07:00
87300be648 updated starter template 2016-05-24 22:18:33 -07:00
d0a7df7f36 0.2.129 2016-05-24 21:57:47 -07:00
1c8fa5eab6 move pins->map up in block list 2016-05-24 21:39:57 -07:00
d8c2d697b1 Merge pull request #75 from gbaman/master
Add few more radio documentation pages
2016-05-24 21:21:00 -07:00
2ede815535 Add write-value-to-serial documentation 2016-05-25 02:58:27 +01:00
a67f16a860 Deleted redundant paragraph. 2016-05-24 18:27:14 -07:00
819ab9aa9a Add receive-string documentation page 2016-05-25 02:23:33 +01:00
318ffde27f Add send-string documentation page 2016-05-25 01:53:13 +01:00
525e59ae4f Heavy rewrite; added Fahrenheit example too for US. 2016-05-24 17:51:10 -07:00
ab087b4afa Add set-transmit-power documentation page 2016-05-25 01:40:01 +01:00
3b8ae69a6c Rewrite of text and examples. 2016-05-24 15:36:04 -07:00
8de6605112 0.2.128 2016-05-24 14:32:27 -07:00
daea493dcb Bump pxt-core to 0.2.138 2016-05-24 14:32:11 -07:00
b290692334 using pxt constant to find binary .hex 2016-05-24 14:06:25 -07:00
f25f295d0c 0.2.127 2016-05-24 13:03:06 -07:00
5fd691ef92 Bump pxt-core to 0.2.137 2016-05-24 13:03:04 -07:00
67c8753315 Updating loop docs 2016-05-24 12:30:31 -07:00
9d405afde0 0.2.126 2016-05-24 11:41:37 -07:00
b05c8ebd56 Bump pxt-core to 0.2.136 2016-05-24 11:41:35 -07:00
b69156a12e adding target compile service configuration 2016-05-24 09:46:33 -07:00
961e2cb6e9 Simple language rewrite. Needs new code example; legacy one broken. 2016-05-23 18:02:40 -07:00
924d31a211 Simple language for short topic. 2016-05-23 17:21:36 -07:00
8721b54679 Pretty thoroughly rewritten in simple language. 2016-05-23 16:21:08 -07:00
e99292d008 Minor clarification 2016-05-23 14:46:11 -07:00
cc1ed10efb pics for the 10 activities 2016-05-23 17:39:44 -04:00
b48c11d380 Simpler language; added another (simpler) example. 2016-05-23 13:41:01 -07:00
3f1602f2c0 Simpler language, more interesting example (running time was always 0). 2016-05-23 12:45:14 -07:00
324fd45fb6 Rewriting play-tone for correctness & clarity. 2016-05-23 11:50:08 -07:00
d1a3892eab Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-21 08:25:16 -07:00
28d28eb67f Rewrite text, code sample. 2016-05-20 18:33:31 -07:00
a67164d5e6 Making another topic easier to understand. 2016-05-20 16:05:45 -07:00
86b35ae88d Absolutely necessary tiny tweak. 2016-05-20 15:36:37 -07:00
919c8fdfca Rewrite in simple English, debug the examples. 2016-05-20 15:33:15 -07:00
4abdb28a59 More simple English docs. 2016-05-20 13:24:27 -07:00
21361708ec Rest of Basic in simple English. Reconsider some code samples? 2016-05-20 13:09:18 -07:00
4e56342e52 updated docs 2016-05-20 05:40:54 -07:00
7273354944 support for 3g/6g gestures 2016-05-20 05:39:44 -07:00
9c96591edd 0.2.125 2016-05-19 23:21:16 -07:00
4f38658d74 Bump pxt-core to 0.2.131 2016-05-19 23:21:14 -07:00
6329a79ce1 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-19 23:19:17 -07:00
befbdd32cc Four rewrites of basic.* API pages in simple English. 2016-05-19 16:50:02 -07:00
44688ee5d5 missing simulator function for serial 2016-05-19 14:50:02 -07:00
cc36bae97d Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-19 13:56:28 -07:00
c65bdb34af various docs updates 2016-05-19 13:56:24 -07:00
21f7ef9b55 Simplified (but not oversimplified) show-string docs. Proposed new reference format. 2016-05-19 13:49:26 -07:00
d7250d54f8 Simplified (but not oversimplified) show-string docs. Proposed new reference format. 2016-05-19 13:46:02 -07:00
9a36a2fc05 removing serial event (not supported in DAL) 2016-05-19 13:39:28 -07:00
539357237f 0.2.124 2016-05-19 12:37:54 -07:00
35d59da17e Bump pxt-core to 0.2.130 2016-05-19 12:37:52 -07:00
0b226bc9aa updated category colors theme 2016-05-19 11:59:57 -07:00
f2bab5d122 missing async annotation on serial 2016-05-19 10:53:48 -07:00
6e6a98559c updated setup instructions 2016-05-19 10:34:24 -07:00
217fce953d Table of contents proof of concept 2016-05-18 15:57:43 -07:00
bfac2910da tentative serial fix for #66 2016-05-18 11:57:10 -07:00
5962c28b0e Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-18 11:30:38 -07:00
d3509a6254 Test docs tweak 2016-05-18 11:28:15 -07:00
df91bf234c adding side menu 2016-05-18 11:15:00 -07:00
2a46935f62 better startup instructions 2016-05-18 09:18:14 -07:00
5e024c6f23 added test package 2016-05-17 10:42:44 -07:00
28b3d823b2 0.2.123 2016-05-17 10:28:46 -07:00
b7c9bc7978 fixing test suite 2016-05-17 10:28:26 -07:00
52b2ee3f4c 0.2.122 2016-05-17 09:59:06 -07:00
263cc25633 updated docs 2016-05-17 09:58:51 -07:00
2e3d875b7d added serial events 2016-05-17 09:36:01 -07:00
7704ad9f8d doc updates 2016-05-17 09:35:55 -07:00
845d7a004c updated docs 2016-05-16 22:18:58 -07:00
1cf070d649 changed starting template 2016-05-16 22:04:41 -07:00
24420a2cc4 0.2.121 2016-05-16 21:52:35 -07:00
2f8b61998b bringing back triangles / logo on simulator 2016-05-16 21:48:54 -07:00
af38071c6a 0.2.120 2016-05-16 16:25:04 -07:00
89f09c7f35 added pins->on pulsed 2016-05-16 16:24:44 -07:00
a667467bbd 0.2.119 2016-05-13 06:25:57 -07:00
ada2583e17 removing browserconfig.xml / favicon.ico until cloud supports it 2016-05-13 06:18:15 -07:00
c04538313d 0.2.118 2016-05-13 05:44:48 -07:00
1039dc560e Bump pxt-core to 0.2.129 2016-05-13 05:44:46 -07:00
957c7ad848 0.2.117 2016-05-13 05:08:07 -07:00
5e7351a481 Bump pxt-core to 0.2.127 2016-05-13 05:08:05 -07:00
f0c089373b updated mobile icons 2016-05-13 04:55:28 -07:00
879a85bdbb exposing i2c blocks in pins 2016-05-13 03:38:52 -07:00
7a9c2e0fe4 0.2.116 2016-05-12 22:23:46 -07:00
9656c1159a Bump pxt-core to 0.2.125 2016-05-12 22:23:45 -07:00
801117d6b0 remove head from simulator 2016-05-12 22:23:23 -07:00
c084bff334 remove logo in simulator 2016-05-12 21:56:22 -07:00
18bf35f179 updated camp 2016-05-12 13:56:03 -07:00
7e7dc91947 updated camp 2016-05-12 13:50:27 -07:00
da79f643dc 0.2.115 2016-05-12 13:41:34 -07:00
ea10cde3eb added camp 2016-05-12 13:41:15 -07:00
0a60b0ee37 0.2.114 2016-05-12 12:37:57 -07:00
b4bc985068 upgraded to lancaster 2.0.0.rc3 (core 0.1.9)
added radio.send/receive string
2016-05-12 12:35:40 -07:00
78f9af5bc2 0.2.113 2016-05-11 12:05:13 -07:00
e9410d17a6 0.2.112 2016-05-11 11:42:51 -07:00
ca8ef260d5 Bump pxt-core to 0.2.124 2016-05-11 11:42:49 -07:00
5ea5e9bb5b added accent color 2016-05-11 11:39:45 -07:00
19c689a8c4 added microsoft logo 2016-05-11 09:18:29 -07:00
72226cd4e5 0.2.111 2016-05-11 08:49:33 -07:00
0d3af60892 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-11 06:46:05 -07:00
f88cda8244 added privacy/tou urls 2016-05-11 06:45:45 -07:00
f71925fdd2 Simplify logo some more 2016-05-11 15:39:20 +02:00
bfeda371a9 Add simplified logo (more suitable for small size) 2016-05-11 15:33:55 +02:00
eb09530391 Fix typo 2016-05-11 14:12:09 +02:00
346d1e77da 0.2.110 2016-05-10 21:49:16 -07:00
bf384355c4 Bump pxt-core to 0.2.122 2016-05-10 21:49:15 -07:00
3801e52370 fixed build instructions 2016-05-10 21:43:41 -07:00
99574f1ec8 added link to live editor 2016-05-10 21:43:12 -07:00
12705eed06 removed some ids 2016-05-10 21:40:39 -07:00
a62f2b00b4 updated radio apis to support key/value pair 2016-05-10 21:13:16 -07:00
7d0101af25 marking various radio functions as debug until API is stable 2016-05-10 16:42:18 -07:00
60c3f1f427 0.2.109 2016-05-10 12:41:37 -07:00
8552a2de52 fixing docs icon size 2016-05-10 12:41:20 -07:00
b0d4fdb009 0.2.108 2016-05-10 11:42:14 -07:00
d3294ee99e 0.2.107 2016-05-10 11:34:59 -07:00
00d23f8437 updated windows 10 app 2016-05-10 11:34:41 -07:00
1c6c749dad 0.2.106 2016-05-10 11:08:46 -07:00
2803c00814 Bump pxt-core to 0.2.121 2016-05-10 11:08:44 -07:00
f150d93070 removing old logos 2016-05-10 10:51:47 -07:00
7f284b2a57 0.2.105 2016-05-10 10:44:52 -07:00
0e5c30ec7c updated logo 2016-05-10 10:44:40 -07:00
2cc6f864a8 remove logging 2016-05-10 10:26:36 -07:00
d428a2cd1f Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-10 10:15:25 -07:00
47f9362e5f read radio values 2016-05-10 10:14:51 -07:00
38b197bc03 0.2.104 2016-05-10 19:03:50 +02:00
9a404854e7 Rename target 2016-05-10 19:03:31 +02:00
d17a8de72d Use shorter domain name 2016-05-10 19:01:36 +02:00
9d1f2e024b missing shim 2016-05-10 09:28:05 -07:00
e7d8559fe3 Cache test scripts 2016-05-10 13:18:35 +02:00
fcfdbcc7e4 moving block down category 2016-05-09 23:03:42 -07:00
5884231399 null terminated name 2016-05-09 23:01:20 -07:00
e8887f5904 radio blocks to read/stream value pairs 2016-05-09 22:55:37 -07:00
07e8610e5d 0.2.103 2016-05-09 14:13:15 -07:00
37fb907f04 Bump pxt-core to 0.2.120 2016-05-09 14:13:13 -07:00
13f42f5892 added various tutorials 2016-05-09 10:32:02 -07:00
5fcf9165ea magic 8 tutorial 2016-05-09 09:45:57 -07:00
b33d0ba470 updated strings 2016-05-06 14:17:39 -07:00
b9f66c5c6b 0.2.102 2016-05-06 11:31:55 -07:00
9848409283 Bump pxt-core to 0.2.117 2016-05-06 11:31:53 -07:00
ce16e64660 added shuffled lessons 2016-05-06 11:31:25 -07:00
4d056e0c23 lessons updates 2016-05-06 09:32:29 -07:00
70b2827cf0 fixing various lessons menu 2016-05-06 09:28:26 -07:00
62e4b04931 0.2.101 2016-05-05 12:50:36 -07:00
17e33cc34f updated white space 2016-05-05 12:50:26 -07:00
d4ad150cba Bump pxt-core to 0.2.114 2016-05-05 12:48:59 -07:00
52bfd4e535 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-05 12:35:26 -07:00
f854dfd9c8 updated generated docs 2016-05-05 12:32:40 -07:00
d905f24f9c updated generated strings.json 2016-05-05 11:32:35 -07:00
81b8b1b69c updated docs 2016-05-05 11:16:14 -07:00
efce4c3698 linting 2016-05-05 08:57:44 -07:00
b5e4a36e9c Add libraries docs 2016-05-05 14:20:18 +01:00
04a60a5b47 fixing various lint violations 2016-05-04 23:31:55 -07:00
29b28e7f0d adding aspect ratio 2016-05-04 22:44:11 -07:00
979381eaef Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-04 14:46:46 -07:00
e4370f4e3c 0.2.100 2016-05-04 15:25:52 +01:00
ba707f080d Bump pxt-core to 0.2.112 2016-05-04 15:25:51 +01:00
3816e01f87 Add locale-specific theme 2016-05-04 15:23:04 +01:00
548d215b48 0.2.99 2016-05-04 13:31:59 +01:00
43da58f214 Bump pxt-core to 0.2.111 2016-05-04 13:31:57 +01:00
f90d052538 Add example localized doc 2016-05-04 13:25:56 +01:00
13ff7cd0ec removing readme.md from template 2016-05-03 14:45:10 -07:00
a3b34518b0 0.2.98 2016-05-02 21:24:17 -07:00
5a33dc8a81 updated thank you 2016-05-02 21:24:10 -07:00
7349e28898 0.2.97 2016-05-02 21:15:27 -07:00
26b9fdf40e adding survey completed 2016-05-02 21:15:10 -07:00
3cf82b9be2 0.2.96 2016-05-02 10:49:05 -07:00
546c44bafa Bump pxt-core to 0.2.107 2016-05-02 10:49:03 -07:00
d727d3fcde removing lists 2016-05-02 09:46:03 -07:00
6b0cf961c6 support for lists in blocks 2016-05-02 09:40:29 -07:00
18419d763d 0.2.95 2016-04-29 17:17:57 -07:00
99fdb53fa0 Bump pxt-core to 0.2.106 2016-04-29 17:17:54 -07:00
879fdd687e Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-04-29 16:25:57 -07:00
6c1b879c34 Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-04-29 16:18:43 -07:00
019bbc79fc 0.2.94 2016-04-29 11:20:30 -07:00
f857a88541 Bump pxt-core to 0.2.105 2016-04-29 11:20:28 -07:00
6531e7bfbb Merge remote-tracking branch 'origin/docs' 2016-04-29 07:58:13 -07:00
2147225afd update seismograph 2016-04-28 17:02:33 -07:00
841ea6d060 update lesson changes 2016-04-28 16:49:57 -07:00
3dddb2eb30 Merge pull request #55 from Microsoft/docs
Docs
2016-04-28 16:42:05 -07:00
651cf14556 update lesson 2016-04-28 14:12:02 -07:00
7f6fb5559b reworking charting lesson 2016-04-28 11:47:59 -07:00
ea724038dc Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-28 11:44:24 -07:00
19757d4245 updated chart 2016-04-28 11:44:11 -07:00
07a7b4048a fix missing loops 2016-04-28 11:21:58 -07:00
45742aa2ac Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-28 10:46:50 -07:00
db0c5d9f9f exposing serial number block. 2016-04-28 10:46:03 -07:00
8285250a1b updated charting 2016-04-28 10:27:51 -07:00
de0257c7e9 update lessons charting 2016-04-28 10:22:58 -07:00
3580012065 updated lessons
update
2016-04-27 16:36:29 -07:00
cdb23fffb6 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-27 15:30:51 -07:00
6937c51549 0.2.93 2016-04-27 15:02:21 -07:00
69e90523e2 Bump pxt-core to 0.2.101 2016-04-27 15:02:19 -07:00
f76235736a Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-27 14:54:20 -07:00
8431243b63 0.2.92 2016-04-27 13:38:07 -07:00
458b4553d2 Bump pxt-core to 0.2.100 2016-04-27 13:38:05 -07:00
0f6e8854d8 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-27 13:13:13 -07:00
5565bb7d24 updated target definition 2016-04-27 13:13:03 -07:00
6c539fb04f Add some debugger hooks 2016-04-27 19:26:55 +01:00
b30a0ced87 removing references to missing files 2016-04-26 17:13:19 -07:00
ac942e198a missed file in previous checkin 2016-04-26 17:09:27 -07:00
cef1f57e30 expose device serial number in javascript 2016-04-26 17:09:15 -07:00
980ad6ce91 update acc lesson 2016-04-26 16:52:18 -07:00
53bfea5752 updated charts 2016-04-26 16:40:55 -07:00
4917bb7e39 update chart 2 2016-04-26 16:38:27 -07:00
139823203e update charting activity 2016-04-26 16:34:10 -07:00
883f4d1a20 update images 2016-04-26 16:13:52 -07:00
0bce69edd0 updating images 2016-04-26 16:13:38 -07:00
efccc921cb Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-26 13:43:21 -07:00
55859b1237 support for exposing device name 2016-04-26 13:43:02 -07:00
ec09d40366 update charting 2016-04-26 12:34:58 -07:00
512e40fae3 clearer api name in serial 2016-04-26 12:19:42 -07:00
028dac25f6 updated lesson main 2016-04-26 12:04:05 -07:00
e0d4763974 update acc 2016-04-26 11:03:26 -07:00
3b3e402ffa Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-26 10:46:32 -07:00
e37ac1a1d7 0.2.91 2016-04-26 10:43:51 -07:00
17eb36a8dc Bump pxt-core to 0.2.99 2016-04-26 10:43:49 -07:00
10d44b97cc more serial infos 2016-04-26 10:29:05 -07:00
505c750dd0 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-25 16:34:50 -07:00
d0e900606a update chart 2016-04-25 16:19:22 -07:00
dcbb076266 light update 2016-04-25 16:01:57 -07:00
22c852f2d9 udpate lessons 2016-04-25 15:59:28 -07:00
76770bc0e1 acc update 2016-04-25 15:57:02 -07:00
572080bc6d update charting 2016-04-25 15:55:52 -07:00
0b8142ae73 update acc 2016-04-25 15:54:28 -07:00
09a06d9fa9 update acc 2016-04-25 15:44:07 -07:00
80e8c6684d update acc 2016-04-25 15:41:47 -07:00
4cccb36f3d update csv 2016-04-25 15:36:06 -07:00
a427a1e720 update csv 2016-04-25 15:35:26 -07:00
be77c5296b update acc 2016-04-25 15:34:15 -07:00
a0c1b2c580 pic up 2016-04-25 15:32:50 -07:00
fc905c5f8f update acc chart 2016-04-25 15:26:49 -07:00
f1bd84733b acc update 2016-04-25 15:16:01 -07:00
d3080d2e66 acc update 2016-04-25 15:14:01 -07:00
090e530ff0 update lessons 2016-04-25 14:45:09 -07:00
094e9d25cd update lesson 2016-04-25 14:43:30 -07:00
0bcb9c16fa update lessons 2016-04-25 14:42:47 -07:00
269bdb82a6 update acceleration 2016-04-25 14:33:02 -07:00
cba7e02bcd update lesson 2016-04-25 14:29:48 -07:00
8ef834b73b update chrat 2016-04-25 13:58:41 -07:00
ec54622f52 update chart 2016-04-25 13:58:05 -07:00
5d90b70425 update chart 2016-04-25 13:55:03 -07:00
8cef13e517 update chart activity 2016-04-25 13:51:32 -07:00
82986c091b update charting 2016-04-25 12:45:10 -07:00
67f2fdcfec 0.2.90 2016-04-25 12:44:04 -07:00
d11c5a9028 Bump pxt-core to 0.2.98 2016-04-25 12:44:03 -07:00
b7cb7e477e update charting1 2016-04-25 12:42:39 -07:00
0d1059aedf update charting 2016-04-25 12:42:05 -07:00
b92fc783fa updated charting 2016-04-25 12:33:11 -07:00
6d73e5e129 update chartting 2016-04-25 11:51:47 -07:00
6150850729 glowing pend update 2016-04-25 11:32:20 -07:00
76a18fa61b updated glowing pendulum 2016-04-25 11:31:06 -07:00
2bd66ae4ef 0.2.89 2016-04-22 23:14:03 -07:00
f6eefde27c Bump pxt-core to 0.2.96 2016-04-22 23:14:01 -07:00
60c9e4a82f 0.2.88 2016-04-22 14:54:24 -07:00
56713227c5 0.2.87 2016-04-22 14:48:01 -07:00
fd6e110790 Bump pxt-core to 0.2.95 2016-04-22 14:47:59 -07:00
2336521df1 0.2.86 2016-04-22 13:38:45 -07:00
2ce72aeb28 Bump pxt-core to 0.2.93 2016-04-22 13:38:43 -07:00
e746c13212 don't filter or throttle serial, let the user deal with it. 2016-04-22 13:12:43 -07:00
9e073aee36 fixing doc links. fix for #49 2016-04-22 12:37:47 -07:00
3906f06a2f 0.2.85 2016-04-22 00:15:11 -07:00
d89747fa46 typo in default value 2016-04-22 00:14:57 -07:00
c4e6618baa 0.2.84 2016-04-22 00:07:31 -07:00
5232be58ce auto adjusting bar graph + debouncing sending data over serial 2016-04-21 23:44:22 -07:00
5a75483811 updated target definition 2016-04-21 22:46:40 -07:00
4b40585690 0.2.83 2016-04-21 14:26:36 -07:00
dd65efaab6 Bump pxt-core to 0.2.92 2016-04-21 14:26:34 -07:00
890c2566af 0.2.82 2016-04-20 07:13:06 -07:00
cd71fc5d13 Bump pxt-core to 0.2.89 2016-04-20 07:13:04 -07:00
f626dd4bbb 0.2.81 2016-04-19 20:52:09 -07:00
956992e9ab Bump pxt-core to 0.2.88 2016-04-19 20:52:08 -07:00
215 changed files with 3412 additions and 1196 deletions

4
.gitignore vendored
View File

@ -1,9 +1,11 @@
node_modules
yotta_modules
yotta_targets
built
typings
tmp
temp
projects
projects/**
win10/app/bin
win10/app/bld
win10/*.opendb

View File

@ -13,4 +13,5 @@ notifications:
cache:
directories:
- node_modules
- built/cache

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
// Place your settings in this file to overwrite default and user settings.
{
"tslint.enable": true,
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib"
}

View File

@ -3,24 +3,44 @@
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
[Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt).
* [Try it live](https://m.pxt.io)
[![Build Status](https://travis-ci.org/Microsoft/pxt-microbit.svg?branch=master)](https://travis-ci.org/Microsoft/pxt-microbit)
# Getting started
## Local server
Please follow instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
### Setup
The following commands are a 1-time setup after synching the repo on your machine.
* install the PXT command line
```
npm install -g pxt
```
* install the dependencies
```
npm install
```
### Running
Run this command to open a local web server:
```
pxt serve
```
To make sure you're running the latest tools, run
```
npm update
```
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
## Universal Windows App
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.
### Sideloading
* Open Windows **settings** and search for **Developer options**
* Enable the developer mode.
* Find the latest build under ``win10/app/AppPackages/latest`` and run the ``Add-AppDevPackage.ps1`` PowerShell script (mouse right-click, then `run with PowerShell`)
that wraps m.pxt.io and provides additional features.
### Building
* 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.
* open the ``win10/app.sln`` solution and launch the ``m.pxt.io`` project.

View File

@ -1,8 +1,8 @@
/// <reference path="../node_modules/pxt-core/built/pxt.d.ts"/>
import * as fs from 'fs';
import * as path from 'path';
import * as child_process from 'child_process';
import * as fs from "fs";
import * as path from "path";
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)
@ -13,10 +13,10 @@ export function deployCoreAsync(res: ts.pxt.CompileResult) {
if (drives.length == 0) {
console.log("cannot find any drives to deploy to")
} else {
console.log("copy microbit.hex to " + drives.join(", "))
console.log(`copy ${ts.pxt.BINARY_HEX} to ` + drives.join(", "))
}
return Promise.map(drives, d =>
writeFileAsync(d + "microbit.hex", res.outfiles["microbit.hex"])
writeFileAsync(d + ts.pxt.BINARY_HEX, res.outfiles[ts.pxt.BINARY_HEX])
.then(() => {
console.log("wrote hex file to " + d)
}))

View File

@ -0,0 +1,22 @@
{
"name": "koduj z micro:bit",
"title": "koduj z micro:bit",
"docMenu": [
{
"name": "O nas",
"path": "/about"
},
{
"name": "Lekcje",
"path": "/lessons"
},
{
"name": "Instrukcja obsługi",
"path": "/reference"
},
{
"name": "Urządzenie",
"path": "/device"
}
]
}

7
docs/_locales/pl/docs.md Normal file
View File

@ -0,0 +1,7 @@
# Dokumentacja
Witamy na stronach dokumentacji!
* Przeglądnij [instrukcje obsługi](/reference)
* Dowiedz się więcej o [urządzeniu](/device)
* Wystartuj z [lekcjami](/lessons)

View File

@ -26,7 +26,7 @@ input.onButtonPressed(Button.B, () => {
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.
The BBC micro:bit was made possible by many [partners](https://www.microbit.co.uk/partners).
The micro:bit provides a fun introduction to programming and making switch on, program it to do something fun wear it, customize it.
The micro:bit provides an easy and fun introduction to programming and making switch on, program it to do something fun wear it, customize it.
Just like Arduino, the micro:bit can be connected to and interact with sensors, displays, and other devices.
## Blocks or JavaScript

View File

@ -11,9 +11,7 @@ This example displays a random number every time the crocodile clip holds `GND`
### Connecting Crocodile Clips
![](/static/mb/crocodile-clips-1.jpg)
![](/static/mb/crocodile-clips-2.jpg)
### Lessons

View File

@ -1,7 +1,35 @@
# Documentation
Welcome to the documentation.
```sim
basic.forever(() => {
basic.showString("DOCS ");
})
input.onButtonPressed(Button.A, () => {
led.stopAnimation();
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .`);
});
input.onButtonPressed(Button.B, () => {
led.stopAnimation();
basic.showLeds(`
. # . # .
# . # . #
# . . . #
. # . # .
. . # . .`);
});
```
* Browse the [reference](/reference)
* **[getting started](/getting-started)**
* Browse the [API reference](/reference)
* Learn more about the [device](/device)
* Get started with [lessons](/lessons)
* Follow up with the [release notes](/release-notes)
### Developers
* Learn about [packages](/packages) (possibly using C++ or ARM thumb)

171
docs/getting-started.md Normal file
View File

@ -0,0 +1,171 @@
# Getting started
Are you ready to build cool BBC micro:bit programs? For each challenge, reorder the blocks to recreate the program.
## Open [https://m.pxt.io](/) and create a new **Blocks Editor** project
## Basic
### Show leds
Use the blocks below to draw a figure on the screen. You can redo the smiley face or try something else!
```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 **Download**
* drag&drop the **.hex** file into the **MICROBIT** drive
* wait till the yellow light is done blinking!
### Show animation Forever
Show one image after the other to create an animation by snapping them together.
```blocks
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .
`)
basic.showLeds(`
. . . . .
. # . # .
. . . . .
. # # # .
# . . . #
`)
```
### Repeat forever
Use the ``forever`` block to repeat your code and have a continuous animation.
Unsuffle the blocks to create a happy, unhappy animation.... or changes the image to make it your own!
```shuffle
basic.forever(() => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .
`)
basic.showLeds(`
. . . . .
. # . # .
. . . . .
. # # # .
# . . . #
`)
});
```
### Your turn now!
Use the blocks ``show leds`` and ``forever``
to create your own custom awesome animation!
## Inputs
### Button A and B
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.
```blocks
input.onButtonPressed(Button.A, () => {
basic.showString("AAAAA");
});
```
Try to unshuffle those blocks:
```shuffle
input.onButtonPressed(Button.A, () => {
basic.showString("YES");
});
input.onButtonPressed(Button.B, () => {
basic.showString("NO");
});
```
### Shake
Using the data from the **accelerometer**, it is possible to detect that the BBC micro:bit is being shaken.
Unshuffle the code to display a frownie when shaken.
```shuffle
input.onGesture(Gesture.Shake, () => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
. # # # .
# . . . #`);
});
```
### Tilting
Aside from shake, it is also possible to detect tilt left and right, logo up and down or face up and down.
Let's build a rock paper scissors game where you turn the micro:bit left to display paper, right to display scissors and down to display rock.
Unshuffle and try this code on the micro:bit itself!
```shuffle
input.onGesture(Gesture.TiltLeft, () => {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #`);
});
input.onGesture(Gesture.LogoDown, () => {
basic.showLeds(`
. . . . .
. # # # .
. # # # .
. # # # .
. . . . .`);
});
input.onGesture(Gesture.TiltRight, () => {
basic.showLeds(`
# # . . #
# # . # .
. . # . .
# # . # .
# # . . #`);
});
```
### Pins
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.
Unshuffle the blocks to display a smiley when pin ``P0`` is pressed.
```shuffle
input.onPinPressed(TouchPin.P0, () => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .`);
});
```
### Your turn now!
Use the scree, buttons, gestures, pins to create a fun game using the micro:bit.

View File

@ -57,8 +57,10 @@
* [Telegraph](/lessons/telegraph), play the telegraph game between two BBC micro:bits
* [Pogo](/lessons/pogo), create a pogo game to test your jumping abilities
## Science
* [Charting](/lessons/charting), measure and chart acceleration
## Advanced
* [Charting](/lessons/charting), create a charting app between 2 BBC micro:bits
* [Prank WiFi](/lessons/prank-wifi), create fake WiFi to trick your friends
* [Speed Button](/lessons/speed-button), code a speed game with running time
* [Headbands](/lessons/headbands), create a charades game with a collection of strings that hold the words
@ -68,5 +70,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[ read more...](/lessons/teach)

View File

@ -21,7 +21,6 @@ basic.showString("ASK ME A QUESTION")
input.onButtonPressed(Button.A, () => {
basic.showString("Yes")
})
```
* `Run` the code to see if it works as expected.
@ -45,7 +44,6 @@ input.onButtonPressed(Button.B, () => {
* `Run` the code to see if it works as expected.
**Challenge 3**
When you are asked a yes or no question, do you always say yes or no? Add a condition for `on shake` that displays `MAYBE`.
### Challenge 3
When you are asked a yes or no question, do you always say yes or no? Add a condition for `on shake` that displays `MAYBE`.

View File

@ -12,7 +12,6 @@ Answers may vary. This is a function that will show a string on the LED screen o
```blocks
basic.showString("Y")
```
![](/static/mb/lessons/answering-machine-0.png)
@ -22,7 +21,6 @@ basic.showString("Y")
```blocks
basic.showString("Hi")
```
![](/static/mb/lessons/answering-machine-1.png)
@ -35,7 +33,6 @@ basic.showString("Hi")
```blocks
basic.showString("Z")
```

View File

@ -39,9 +39,9 @@ basic.showLeds(`
`)
```
* *Run* your code to see if it works as expected.
* Does your code work as expected?
### Challenge 2
Nice job! Why don't we create a third image that will show after the other two? Remember to add a pause before you create and show the image.
Nice job! Why don't we create a third image that will show after the other two?

View File

@ -12,17 +12,14 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
## 1. Write the code that will store the global variable named 'action' and returns a random number between 0 and 2
<br/>
```
action = Math.random(3)
```blocks
let action = Math.random(3)
```
## 2. Write the code that will display the string, "PUSH A" if the global variable called 'action' is equal to 0
<br />
```
```blocks
let action = Math.random(3)
if (action == 0) {
basic.showString("PUSH A", 150)
}
@ -30,10 +27,9 @@ if (action == 0) {
## 3. Write the code that increments the score if button A is pressed when the global variable called 'action' is equal to 1
<br />
```
```blocks
input.onButtonPressed(Button.A, () => {
let action = Math.random(3)
if (action == 0) {
game.addScore(1)
}
@ -42,9 +38,8 @@ input.onButtonPressed(Button.A, () => {
## 4. Write the code that will display the string "LOGO DOWN" if the global variable called 'action' is equal to 1
<br />
```
```blocks
let action = Math.random(3)
if (action == 1) {
basic.showString("LOGO DOWN", 150)
}
@ -52,10 +47,9 @@ if (action == 1) {
## 5. Write the code that increments the score if the BBC micro:bit logo is tilted down when the global variable called 'action' is equal to 1
<br />
```
```blocks
input.onLogoDown(() => {
let action = Math.random(3)
if (action == 1) {
game.addScore(1)
}
@ -64,9 +58,8 @@ input.onLogoDown(() => {
## 6. Write the code that will display the string "SHAKE" if the global variable called 'action' is equal to 2
<br />
```
```blocks
let action = Math.random(3)
if (action == 2) {
basic.showString("SHAKE", 150)
}
@ -74,13 +67,11 @@ if (action == 2) {
## 7. Write the code that increments the score if the BBC micro:bit is shaken when the global variable called 'action' is equal to 2
<br/>
```
```blocks
input.onLogoDown(() => {
let action = Math.random(3)
if (action == 1) {
game.addScore(1)
}
})
```

View File

@ -11,6 +11,7 @@ Variables
## Quick Links
* [activity](/lessons/catch-the-egg-game/activity)
* [tutorial](/lessons/catch-the-egg-game/tutorial)
* [quiz](/lessons/catch-the-egg-game/quiz)
* [quiz answers](/lessons/catch-the-egg-game/quiz-answers)
@ -20,18 +21,21 @@ Learn how to create a catch the egg game game with **plot**, `led->plot` , **unp
## Documentation
* **variables** : [read more...](/reference/variables/var)
* **forever** : [read more...](/reference/basic/forever)
* **unplot** : [read more...](/reference/led/unplot)
* **plot** : [read more...](/reference/led/plot)
* **if** : [read more...](/reference/logic/if)
* **acceleration** : [read more...](/reference/input/acceleration)
* **math minimum number** : [read more...](/reference/math)
* **math maximum number** : [read more...](/reference/math)
* **math random number** : [read more...](/reference/math)
* **math modulus** : [read more...](/reference/math)
* **show number** : [read more...](/reference/basic/show-number)
* **pause** : [read more...](/reference/basic/pause)
```cards
let x = 2;
led.unplot(0, 0);
basic.forever(() => {});
x += 1;
led.plot(0, 0);
basic.pause(300);
input.acceleration(Dimension.X);
Math.min(0,0);
Math.max(0,1);
Math.random(5);
game.addScore(1);
game.score();
game.removeLife(1);
```
## Objectives

View File

@ -1,7 +1,5 @@
# catch the egg game challenges
Coding challenges for catch the egg game.
## Before we get started
Your starting code should look like this:

View File

@ -0,0 +1,29 @@
# catch the egg game tutorial
### Rebuild the game!
The blocks have been shuffled! Put them back together so that...
* an egg LED falls from the top of the screen, row by row.
* a basket LED is on the bottom row and can be moved by using the accelerometer `X` data.
* if the egg LED reaches the last row, reset the egg position to the first row.
```shuffle
let basketX = 2
let eggX = 2
let eggY = 0
basic.forever(() => {
led.unplot(basketX, 4)
led.unplot(eggX, eggY)
eggY = eggY + 1
led.plot(eggX, eggY)
basic.pause(300)
let accX = input.acceleration(Dimension.X)
basketX = 2 + Math.min(2, Math.max(-2, accX / 200))
led.plot(basketX, 4)
if (eggY > 4) {
eggY = -1
eggX = Math.random(5)
}
basic.pause(300)
})
```

View File

@ -1,15 +1,16 @@
# charting lesson
Measure the acceleration on the micro:bit in the "z" direction.
Create a charting app for simulating and measuring the acceleration applied to the micro:bit
## Topic
Acceleration
## Quick Links
* [activity](/lessons/charting/activity)
* [activity](/lessons/charting/acceleration)
* [challenge](/lessons/charting/challenge)
* [quiz](/lessons/charting/quiz)
* [answers](/lessons/charting/quiz-answers)
## Prior learning/place of lesson in scheme of work
@ -18,9 +19,9 @@ Learn the functions of **on data received**, **send number** and **receive numbe
## Documentation
```cards
basic.showNumber(0)
input.acceleration(Dimension.X)
led.plotBarGraph(0, 1023)
basic.showNumber(0)
radio.onDataReceived(() => {})
radio.sendNumber(0)
radio.receiveNumber()

View File

@ -1,53 +1,85 @@
# charting activity
# Activity
Measure the acceleration on the micro:bit in the "z" direction.
Measure the acceleration on the micro:bit in the "x" direction.
### ~avatar avatar
Welcome! This activity will teach how to use the micro:bit to chart the acceleration in the "x" direction. Let's get started!
### ~
Let's measure `acceleration (mg)` in the "x" direction. Get the acceleration value (milli g-force), in one of three specified dimensions.
```blocks
input.acceleration(Dimension.X)
```
### ~
Use the plot bar chart to visualize the acceleration on the LED screen of the micro:bit in the specified range. You implement plot Bar Graph to display a vertical bar graph based on the "value" and "high" value. Then you must insert acceleration in the X dimension to measure the acceleration.
```blocks
basic.forever(() => {
led.plotBarGraph(input.acceleration(Dimension.X), 0)
})
```
### ~
Notice that moving the micro:bit in the simulator from left to right (x direction) changes the values beneath the micro:bit in a range from 1023 to -1023 as measured in milli-gravities. By hovering over the micro:bit from left to right, you can observe changing values beneath the micro:bit simulator. Also, the LEDs shown on the Bar Graph fluctates based on the movement of the micro:bit simulator in the x direction. The line underneath the micro:bit simulator reflect the acceleration in the x direction.
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bit is yellow. So the color of the data line reflects the color of the micro:bit
![](/static/mb/data4.png)
### ~
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.
### ~
Welcome! This activity will teach how to use the 1st micro:bit to chart the second micro:bit's acceleration in the "x" direction. Let's get started!
We want to chart the data collected by using a tool in Excel.
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X));
```
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
});
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.
```
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
})
```
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
led.plotBarGraph(radio.receiveNumber(), 1023)
})
```
### ~
* 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!
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
![](/static/mb/data7.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)
* Connect a micro:bit to your computer using your USB cable; compile; and repeat this experiment by moving the micro:bit in the "x" direction. Then collect and chart the data on Excel.
* Review and analyze the actual micro:bit device data on Excel
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/lessons/charting/acceleration-challenge)
### ~

View File

@ -0,0 +1,94 @@
# Challenge
### ~avatar avatar
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
### ~
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X));
```
### ~
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
});
```
### ~
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
})
```
### ~
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
led.plotBarGraph(radio.receiveNumber(), 1023)
})
```
### ~
Notice that moving the micro:bit the farthest direction in the x direction will be -1023 on the charting beneath the simulator. The second observation will be that the LEDs will be full brightness on the 2nd micro:bit. There is a single LED turned on with the 1st micro:bit. Additionally, the graphs will reflect 0 acceleation for the 1st micro:bit. In this scenario, if you are adjusting the acceleration in the simualator, you are also changing your chart that will be produced.
![](/static/mb/acc.png)
### ~
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.
![](/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!
* 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

@ -0,0 +1,33 @@
# charting quiz answers
Measure the acceleration on the micro:bit in the "x" direction.
## Name
## Directions
Use this activity document to guide your work in the [glowing pendulum activity](/lessons/charting/acceleration)
Answer the questions while completing the tutorial. Pay attention to the dialogues!
## 1. Why are you creating a 'forever' loop?
<br/>
We are creating a forever loop to constantly display the appropriate brightness on the LED display.
## 2. Write the line of code to measure the acceleration with respect to the "x" axis and display this value in a bar graph.
<br/>
```blocks
led.plotBarGraph(input.acceleration(Dimension.X), 0)
```
## 3. After vigarously moving the micro:bit from side to side along the "x" axis for a sufficient amount of time,insert the Excel graph for displaying a line chart used to display trends over time.
<br/>
![](/static/mb/line_chart.png)

View File

@ -0,0 +1,23 @@
# charting quiz
Measure the acceleration on the micro:bit in the "x" direction.
## Name
## Directions
Use this activity document to guide your work in the [glowing pendulum tutorial](/lessons/glowing-pendulum/activity)
Answer the questions while completing the tutorial. Pay attention to the dialogues!
## 1. Why are you creating a 'forever' loop?
<br/>
## 2. Write the line of code to measure the acceleration with respect to the "y" axis and store this value in a local variable called 'acceleration'.
<br/>
## 3. After vigarously moving the micro:bit from side to side along the "x" axis for a sufficient amount of time,insert the Excel graph for displaying a line chart used to display trends over time.

View File

@ -17,7 +17,7 @@ input.onPinPressed(TouchPin.P1, () => {
})
```
**Challenge 1**
### Challenge 1
Let's include a second sound `on pin pressed` *P2*. To do this, you need to add the same blocks as the banana keyboard activity. However, you must change alter `on pin pressed` from P1 to P2. Additionally, you must *decrease* the frequency of the variable "sound" by 25. Modify your code so that your code looks like this
@ -42,7 +42,7 @@ input.onPinPressed(TouchPin.P2, () => {
* click *run* to see if the code works as expected.
**Challenge 2**
### Challenge 2
Finally, we want images to be displayed with sounds `on pin pressed`. Add `show LEDs` blocks under `on pin pressed` P1 and P2.

View File

@ -42,7 +42,7 @@ input.onButtonPressed(Button.B, () => {
* `Run` the code to see if it works as expected.
**Challenge 3**
### Challenge 3
When you are asked a yes or no question, do you always say yes or no? Add a condition for `on shake` that displays `TRY AGAIN`.

View File

@ -9,6 +9,7 @@ Acceleration
## Quick Links
* [activity](/lessons/glowing-pendulum/activity)
* [tutorial](/lessons/glowing-pendulum/tutorial)
* [challenges](/lessons/glowing-pendulum/challenges)
* [quiz](/lessons/glowing-pendulum/quiz)
* [quiz answers](/lessons/glowing-pendulum/quiz-answers)

View File

@ -4,10 +4,29 @@ Construct a pendulum that glows using acceleration.
Welcome! This activity will teach how to construct a pendulum that glows using acceleration. Let's get started!
Turn on all the LEDs.
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
```
Create a **forever** loop that will constantly display the appropriate brightness on the LED display.
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
})
@ -15,9 +34,14 @@ basic.forever(() => {
Now let's measure the acceleration on the `y` axis and store that value in a variable. The `acceleration(y)` function will provide the value.
![](/static/mb/blocks/lessons/glowing-pendulum-1.png)
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
});
@ -25,27 +49,56 @@ basic.forever(() => {
Since the micro:bit will be swinging back and forth, the acceleration will only be positive half of the time. Thus, to always get a positive value, we want to take the absolute value of the acceleration.
![](/static/mb/blocks/lessons/glowing-pendulum-2.png)
```blocks
let acceleration = 0;
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
acceleration = input.acceleration(Dimension.Y);
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration)
});
```
The function `acceleration(y)` returns a number between 0 and 1024. We want to use this value for the brightness of the micro:bit, but the `set brightness()` only accepts a value between 0 and 256. Thus, we need to divide the acceleration by 4 to ensure we will be in the appropriate range.
![](/static/mb/blocks/lessons/glowing-pendulum-3.png)
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
});
```
Now let's use our acceleration value to set the brightness on the micro:bit.
![](/static/mb/blocks/lessons/glowing-pendulum-4.png)
Let's show what the brightness of the micro:bit is by turning all the LEDs on!
![](/static/mb/blocks/lessons/glowing-pendulum-5.png)
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
});
```
### ~avatar avatar

View File

@ -6,15 +6,31 @@ Coding challenges for the glowing pendulum tutorial.
Complete the following [glowing pendulum activity](/lessons/glowing-pendulum/activity) and your code should look like this:
![](/static/mb/blocks/lessons/glowing-pendulum-5.png)
```blocks
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
});
**Challenge 1**
```
### Challenge 1
![](/static/mb/lessons/glowing-pendulum-0.jpg)
Hold the micro:bit in your hand in a dark room. Move the micro:bit like a pendulum and produce a slow image that captures the pattern of the micro:bit LEDs.
**Challenge 2**
### Challenge 2
Replace "y" in `acceleration(y)` with "x" or "z". Changing the axis will cause the micro:bit to measure the force in a different direction. What differences in the resulting pattern does this replacement make?

View File

@ -44,13 +44,3 @@ let accelerationDivided = accelerationX / 4
led.setBrightness(accelerationX)
```
## 5. Write the code that tuns all the LEDs on (as the image displays below)
![](/static/mb/lessons/glowing-pendulum-1.png)
<br/>
```
led.plotAll()
```

View File

@ -24,11 +24,4 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
## 4. Write the code to include acceleration value question 3 to set the brightness on the BBC micro:bit.
<br/>
## 5. Write the code that tuns all the LEDs on (as the image displays below)
![](/static/mb/lessons/glowing-pendulum-1.png)
<br/>

View File

@ -0,0 +1,29 @@
# glowing pendulum block tutorial
The glowing pendulum changes the screen brightness based on the acceleration measured on the BBC micro:bit.
### Rebuild the game!
The blocks have been shuffled! Put them back together so that...
* all LEDs are turned on
* the BBC micro:bit repeats code **forever** that
* reads the acceleration along the ``y`` axis,
* calculate the absolute value of the acceleration
* scales down the acceleration value by a factor of `4`
* uses the scaled value to set the screen **brightness**
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
});
```

View File

@ -11,6 +11,7 @@ Math - Pick Random
## Quick links
* [activity](/lessons/guess-the-number/activity)
* [tutorial](/lessons/guess-the-number/tutorial)
* [challenges](/lessons/guess-the-number/challenges)
* [quiz](/lessons/guess-the-number/quiz)
* [quiz answers](/lessons/guess-the-number/quiz-answers)

View File

@ -19,12 +19,11 @@ input.onButtonPressed(Button.A, () => {
```
Create a local variable of type number `x` and set it to a random number using `pick random`. `pick random` 9 generates a random number between `0` and `09`.
Create a local variable of type number `x` and set it to a random number using `pick random`. `pick random` 9 generates a random number between `0` and `9`.
```blocks
input.onButtonPressed(Button.A, () => {
let x = Math.random(9)
let x = Math.random(10)
})
```
@ -34,7 +33,7 @@ Show the random number on the screen.
```blocks
input.onButtonPressed(Button.A, () => {
let x = Math.random(9)
let x = Math.random(10)
basic.showNumber(x)
})

View File

@ -0,0 +1,25 @@
# guess the number tutorial
### ~avatar avatar
### @video td/videos/guess-the-number-0
This tutorial will help you create a guess the number game! Let's get started!
### ~
### Rebuild the game!
The blocks have been shuffled! Put them back together so that...
* when the user presses button ``A``,
* generate a random number
* show the number on screen
```shuffle
input.onButtonPressed(Button.A, () => {
let x = Math.random(10)
basic.showNumber(x)
})
```

View File

@ -35,5 +35,5 @@ basic.showNumber(14)
### Challenge 3
Keep displaying multiples of 7 such as 21 and 28, but don't forget to add pauses between the numbers!
Keep displaying multiples of 7 such as 21 and 28...

View File

@ -9,6 +9,7 @@ If (Conditionals)
## Quick Links
* [activity](/lessons/magic-8/activity)
* [tutorial](/lessons/magic-8/tutorial)
* [challenges](/lessons/magic-8/challenges)
* [quiz](/lessons/magic-8/quiz)
* [quiz answers](/lessons/magic-8/quiz-answers)

View File

@ -1,8 +1,6 @@
# magic 8 activity
A fortune teller game on the micro:bit
Welcome! This tutorial will help you create a magic 8 ball on the micro:bit. Let's get started!
Welcome! This activity will help you create a magic 8 ball on the micro:bit. Let's get started!
Show a string to instruct the user how to play Magic 8! The magic 8 ball can only answer true or false questions.
@ -32,16 +30,13 @@ input.onGesture(Gesture.Shake, () => {
Create a variable of type number called **randomNumber**. Set **randomNumber** to a random number with a limit of 2. Remember the random function in the math library, picks a random number from 0 to the limit, but not including the limit unless it is 0.
```blocks
basic.showString("ASK A QUESTION")
basic.showNumber(8)
input.onGesture(Gesture.Shake, () => {
basic.clearScreen()
let randomNumber = Math.random(2)
let randomNumber = Math.random(3)
});
```
Create an if statement for the condition `if randomNumber = 2`. If **randomNumber** is 2, display the string 'Yes'
@ -52,7 +47,7 @@ basic.showString("ASK A QUESTION")
basic.showNumber(8)
input.onGesture(Gesture.Shake, () => {
basic.clearScreen();
let randomNumber = Math.random(2);
let randomNumber = Math.random(3);
if (randomNumber == 2) {
basic.showString("YES");
}
@ -68,7 +63,7 @@ basic.showString("ASK A QUESTION")
basic.showNumber(8)
input.onGesture(Gesture.Shake, () => {
basic.clearScreen()
let randomNumber = Math.random(2)
let randomNumber = Math.random(3)
if (randomNumber == 2) {
basic.showString("YES")
} else if (randomNumber == 1) {
@ -84,7 +79,7 @@ basic.showString("ASK A QUESTION")
basic.showNumber(8)
input.onGesture(Gesture.Shake, () => {
basic.clearScreen()
let randomNumber = Math.random(2)
let randomNumber = Math.random(3)
if (randomNumber == 2) {
basic.showString("YES")
} else if (randomNumber == 1) {
@ -106,14 +101,13 @@ basic.showString("ASK A QUESTION")
basic.showNumber(8)
input.onGesture(Gesture.Shake, () => {
basic.clearScreen()
let randomNumber = Math.random(2)
let randomNumber = Math.random(3)
if (randomNumber == 2) {
basic.showString("YES")
} else if (randomNumber == 1) {
basic.showString("NO")
} else {
basic.showString("I DON'T KNOW")
}
basic.showNumber(8)

View File

@ -26,7 +26,7 @@ input.onGesture(Gesture.Shake, () => {
```
**Challenge 1**
### Challenge 1
Now let's increase the number of responses the magic 8 ball can give. How about 5 responses instead? Let's change the limit of `pick random` to 4.
@ -49,7 +49,7 @@ input.onGesture(Gesture.Shake, () => {
})
```
**Challenge 2**
### Challenge 2
Now have the magic 8 ball respond "Try again" if **randomNumber** is 3.
@ -73,7 +73,7 @@ input.onGesture(Gesture.Shake, () => {
})
```
**Challenge 3**
### Challenge 3
Now what about if **randomNumber** is 4? Let's have the magic 8 ball respond "Definitely!".

View File

@ -0,0 +1,27 @@
# Magic 8 tutorial
Show a string to instruct the user how to play Magic 8! The magic 8 ball can only answer questions with "YES", "NO", or "MAYBE"...
### Rebuild the game!
The blocks have been shuffled! Put them back together so that...
* show "ASK A QUESTION" on the screen
* when the micro:bit is shaken,
* generate a random number between 0 and 2.
* if the number is `2`, show "YES"
* if the number is `1`, show "NO"
* otherwise show "MAYBE"...
```shuffle
basic.showString("ASK A QUESTION")
input.onGesture(Gesture.Shake, () => {
let randomNumber = Math.random(3)
if (randomNumber == 2) {
basic.showString("YES")
} else if (randomNumber == 1) {
basic.showString("NO")
} else {
basic.showString("MAYBE")
}
})
```

View File

@ -30,8 +30,6 @@ input.onGesture(Gesture.LogoUp, () => {
. . # . .
`)
})
```
Run your code and try to turn around the micro:bit to see the **logo up** event in action!

View File

@ -46,7 +46,7 @@ input.onButtonPressed(Button.B, () => {
```
**Challenge 3**
### Challenge 3
Add an event handler with `on shake` to change the LED brightness back to a `255`.

View File

@ -88,7 +88,7 @@ input.onButtonPressed(Button.B, () => {
* Run the code to see if it works as expected.
**Challenge 3**
### Challenge 3
Now make sure the image does not go off the left side and if it does, prompt the user to push button `A`.

View File

@ -42,7 +42,7 @@ basic.forever(() => {
```
**Challenge 1**
### Challenge 1
What if wanted to show the maximum connectivity of wifi instead of just 1, 3, or 4 bars?
@ -86,7 +86,7 @@ basic.forever(() => {
})
```
**Challenge 2**
### Challenge 2
Let's add an **IF** at the bottom of your code that checks to see if `sum >= to 1200` **and** if `sum <1400`
@ -135,7 +135,7 @@ basic.forever(() => {
})
```
**Challenge 3**
### Challenge 3
Now it's your turn! Be creative and change the Wifi meter images to your own wifi image you're sure will prank your friends by editing the lines that call `showLeds()`.

View File

@ -41,7 +41,7 @@ input.onButtonPressed(Button.A, () => {
```
**Challenge 1**
### Challenge 1
Create an event handler for Button B.
@ -83,7 +83,7 @@ input.onButtonPressed(Button.B, () => {
```
**Challenge 2**
### Challenge 2
### @video td/videos/screen-wipe-2
@ -155,7 +155,7 @@ basic.showLeds(`
```
**Challenge 3**
### Challenge 3
Show an animation that scrolls back up when you press button "B".

View File

@ -0,0 +1,34 @@
# Seismograph Lesson
Build a seismograph with household materials
## Topic
Acceleration & Analog Read Pin
## Quick Links
* [activity](/lessons/seismograph/activity)
* [challenge](/lessons/seismograph/challenges)
## Prior learning/place of lesson in scheme of work
Learn how to **show LEDs** to turn on a LED light pattern on the LED screen. We will be learning basic comments such as show LEDs and pause.
## Documentation
```cards
basic.forever(() => {
});
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
led.plotBarGraph(pins.analogReadPin(AnalogPin.P0), 0);
```
## Objectives
* learn how to repeat code forever in the background
* learn how to display a vertical bar graph based on the value.
* learn how to return the sum of the two numbers
* learn how to get acceleration value in milli-gravitys
* learn how to read the connector value as analog as a value comprised between 0 and 1023

View File

@ -0,0 +1,150 @@
# Seismograph Activity
### ~avatar avatar
In this project, you will build your own seismograph.
## What you'll need:
* micro:bit
* USB cable
* Scissors
* Glue gun
* String
* Cup (Plastic or Paper)
* Magnet
Welcome! This activity will teach how to use the micro:bit to chart the strength of the acceleration. Let's get started!
1. Setup Cup: Use scissors to cut a usable window on the cup, which will be a square sized hole at the lid side of the cup. Use scissors to create a small hole in the center of the base of the cup.
2. Fasten Magnet: Fasten end of the string to the magnet with glue
3. Secure String: Fasten string to base of the cup and hang the remaining string outside the base of the cup.
### ~avatar avatar
Seismograph built, let's code!
### ~
4. Go to Codemicrobit.com
Click or tap Create Code
Click or tap Block Editor
### ~
5.
We will measure `acceleration (mg)` in terms of strength. Get the acceleration value (milli g-force), as measured in strength.
```blocks
input.acceleration(Dimension.Strength);
```
### ~
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.
```blocks
basic.forever(() => {
led.plotBarGraph(input.acceleration(Dimension.Strength), 0);
});
```
### ~
7.
Finally, we subtract the gravity from acceleration strength.
```blocks
basic.forever(() => {
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
});
```
### ~
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)
### ~
9.
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.
### ~
10.
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.
### ~
10.
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
![](/static/mb/data7.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.
### ~
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.
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/lessons/seismograph/challenge)
### ~

View File

@ -0,0 +1,94 @@
# Challenge
### ~avatar avatar
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
### ~
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X));
```
### ~
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
});
```
### ~
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
})
```
### ~
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
led.plotBarGraph(radio.receiveNumber(), 1023)
})
```
### ~
Notice that moving the micro:bit the farthest direction in the x direction will be -1023 on the charting beneath the simulator. The second observation will be that the LEDs will be full brightness on the 2nd micro:bit. There is a single LED turned on with the 1st micro:bit. Additionally, the graphs will reflect 0 acceleation for the 1st micro:bit. In this scenario, if you are adjusting the acceleration in the simualator, you are also changing your chart that will be produced.
![](/static/mb/acc.png)
### ~
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.
![](/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!
* 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

@ -11,6 +11,7 @@ If (Conditionals)
## Quick Links
* [activity](/lessons/truth-or-dare/activity)
* [tutorial](/lessons/truth-or-dare/tutorial)
* [challenges](/lessons/truth-or-dare/challenges)
* [quiz](/lessons/truth-or-dare/quiz)
* [quiz answers](/lessons/truth-or-dare/quiz-answers)

View File

@ -0,0 +1,63 @@
# truth or dare tutorial
### ~avatar avatar
### @video td/videos/truth-or-dare-0
The *Truth or dare!* game works as follows: a player spins the BBC micro:bit on the table.
When the micro:bit stops spinning, the player pointed by the arrow (displayed on screen) must press the button "A"
to see if she has to provide a *truth* or a *dare*.
### ~
### Rebuild the game!
The blocks have been shuffled! Put them back together so that...
* an up arrow is displayed when the micro:bit is powered on.
* on button `A` is pressed,
* randomly display "TRUTH" or "DARE" on the screen
* show the up arrow again.
```shuffle
basic.showLeds(`
. . # . .
. # # # .
# # # # #
. . # . .
. . # . .
`)
input.onButtonPressed(Button.A, () => {
let random = Math.random(2)
if (random == 0) {
basic.showString("TRUTH")
} else {
basic.showString("DARE")
}
basic.showLeds(`
. . # . .
. # # # .
# # # # #
. . # . .
. . # . .
`)
})
```
### Hints and tips
Cut out these documentation cards to help you!
```cards
basic.showLeds(`
. . # . .
. # # # .
# . # . #
. . # . .
. . # . .
`);
Math.random(2);
basic.showString("TRUTH");
if (true) {} else {}
"TRUTH";
0;
input.onButtonPressed(Button.A, () => {});
```

9
docs/open-source.md Normal file
View File

@ -0,0 +1,9 @@
# Open Source
The editor is open source on GitHub under the MIT license. Contributions are welcome, please check our GitHub repos.
### Repos
* [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

14
docs/packages.md Normal file
View File

@ -0,0 +1,14 @@
# Extensions
You can publish libraries (also known as packages or extensions)
that users can then add to their scripts. These typically
provide a driver for a particular hardware device you can connect
to a microbit.
* [Sample C++ extension](https://github.com/Microsoft/pxt-microbit-cppsample)
* [Sample TypeScript extension](https://github.com/Microsoft/pxt-microbit/tree/master/libs/i2c-fram)
## Finding libraries
## Publishing libraries

15
docs/projects.md Normal file
View File

@ -0,0 +1,15 @@
# Projects
### @short Projects
### ~column
## Beginner
* [Rock Paper Scissors](/projects/rock-paper-scissors)
### ~
### ~column

View File

@ -0,0 +1,162 @@
# rock paper scissors
### ~avatar avatar
### @video td/videos/rock-paper-scissors-0
In this project, you will build a rock-paper-scissor game with the BBC micro:bit
### ~
## Materials needed
* your BBC micro:bit, that's it!
## 1
We want the micro:bit to choose rock, paper, or scissors when it is shaken. Let's begin by creating an on shake condition so the micro:bit will run code when it is shaken.
```blocks
input.onGesture(Gesture.Shake, () => {
})
```
Next, create a variable and store pick random number from 0 to 2. On shake, a number will be randomly picked from 0-2. We will randomly display an image based on the random number returned.
```blocks
input.onGesture(Gesture.Shake, () => {
let img = Math.random(3)
})
```
The micro:bit will look like it's showing 1 frame of the image by displaying the whole image when pick random is equal to 0. We can help the micro:bit randomly decide which image to use by pick random.
The micro:bit will randomly pick the image to display with show LEDs and the ``pick random`` block.
```blocks
input.onGesture(Gesture.Shake, () => {
let img = Math.random(3)
if (img == 2) {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #
`)
}
})
```
## 2
The micro:bit will look like it's showing 1 frame of the image by displaying the whole image when pick random is equal to 1.
We can help the micro:bit randomly decide which image to use by pick random.
The micro:bit will randomly pick the image to display with show LEDs and the pick random function.
### ~avatar avatar
Click on the blue gearwheel to open the ``if`` editor. Drag and drop the ``else if`` block in the ``if`` block to add it.
### ~
```blocks
input.onGesture(Gesture.Shake, () => {
let img = Math.random(3)
if (img == 0) {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #
`)
} else if (img == 1) {
basic.showLeds(`
. . . . .
. # # # .
. # # # .
. # # # .
. . . . .
`)
}
})
```
## 3
The micro:bit will look like it's showing 1 frame of the image by displaying the whole image when pick random is not equal to 0 and not equal to 1.
We can help the micro:bit randomly decide which image to use by pick random. The micro:bit will randomly pick the image to display with show LEDs and the pick random function.
```blocks
input.onGesture(Gesture.Shake, () => {
let img = Math.random(3)
if (img == 0) {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #
`)
} else if (img == 1) {
basic.showLeds(`
. . . . .
. # # # .
. # # # .
. # # # .
. . . . .
`)
} else {
basic.showLeds(`
. . . # #
# # . # .
. . # . .
# # . # .
. . . # #
`)
}
})
```
Your game is ready!
## 4
When the button ``A`` is pressed, increment the score by 1. You can select ``Game`` drawer then add ``change score by 1``.
```blocks
input.onButtonPressed(Button.A, () => {
game.addScore(1)
})
```
## 5
After incrementing the score, display the total number of wins you have.
```blocks
input.onButtonPressed(Button.A, () => {
game.addScore(1)
basic.showString("WINS:")
basic.showNumber(game.score())
})
```
## 6
You have successfully tracked and displayed the number of wins on the micro:bit! However, what about losses?
Use the Game drawer to change score by -1 when button `B` is pressed. Here are all the blocks you will need:
```shuffle
input.onButtonPressed(Button.B, () => {
game.addScore(-1)
basic.showString("LOSSES:")
basic.showNumber(game.score())
})
```

View File

@ -1,17 +1,28 @@
# Reference
```namespaces
basic.showString("Hello!");
input.onButtonPressed(Button.A, () => {});
for (let i = 0;i<5;++i) {}
if (true){}
let x = 0;
Math.random(5);
led.plot(0,0);
basic.showNumber(0);
input.onButtonPressed(Button.A, () => {
});
music.playTone(0, 0);
led.plot(0, 0);
radio.sendNumber(0);
music.playTone(music.noteFrequency(Note.C), music.beat(BeatFraction.Whole));
game.createSprite(2,2);
game.addScore(1);
images.createImage(`
. . . . .
. . . . .
. . # . .
. . . . .
. . . . .
`);
pins.digitalReadPin(DigitalPin.P0);
serial.writeLine("Hello!");
control.inBackground(() => {});
serial.writeValue(x, 0);
control.inBackground(() => {
});
```

View File

@ -2,7 +2,6 @@
Provides access to basic micro:bit functionality.
```cards
basic.showNumber(0);
basic.showLeds(`

View File

@ -8,7 +8,7 @@ basic.clearScreen()
### Example: vanishing heart
The following code displays a heart on the screen and then turns off all the LED lights using `clear screen`:
The following code shows a heart on the screen and then turns off all the LED lights using `clear screen`:
```blocks
basic.showLeds(`

View File

@ -1,6 +1,7 @@
# Forever
Repeat code [in the background](/reference/control/in-background) forever.
Keep running part of a program
[in the background](/reference/control/in-background).
```sig
basic.forever(() => {
@ -9,7 +10,9 @@ basic.forever(() => {
### Example: compass
The following example constantly checks the [compass heading](/reference/input/compass-heading) and updates the screen with the direction.
The following example constantly checks the
[compass heading](/reference/input/compass-heading)
and updates the screen with the direction.
```blocks
basic.forever(() => {
@ -30,7 +33,9 @@ basic.forever(() => {
### Example: counter
The following example continually shows the current value of a global variable:
The following example keeps showing the [number](/reference/types/number) stored in a global variable.
When you press button `A`, the number gets bigger.
You can use a program like this to count things with your BBC micro:bit.
```blocks
let num = 0
@ -42,9 +47,12 @@ input.onButtonPressed(Button.A, () => {
})
```
### Contention for the LED display
### Competing for the LED screen
If you have multiple processes that each show something on the LED screen, you may get unexpected results. Try, for example:
If different parts of a program are each trying
to show something on the LED screen at the same time,
you may get unexpected results.
Try this on your micro:bit:
```blocks
basic.forever(() => {

View File

@ -1,6 +1,7 @@
# Pause
Pause program execution for the specified number of milliseconds. This function is helpful when you need to slow down your program's execution.
Pause the program for the number of milliseconds you say.
You can use this function to slow your program down.
```sig
basic.pause(400)
@ -8,11 +9,13 @@ basic.pause(400)
### Parameters
* ``ms`` - the number of milliseconds that you want to pause (100 = 1/10 second, 1000 milliseconds = 1 second)
* ``ms`` is the number of milliseconds that you want to pause (100 milliseconds = 1/10 second, and 1000 milliseconds = 1 second).
### Example: diagonal line
The following example code turns on LED `0, 0` thru `4, 4`, pausing 500 milliseconds after each LED. Without `pause`, the code would run so fast that you wouldn't see each individual LED turning on.
This example draws a diagonal line by turning on LED `0, 0` (top left) through LED `4, 4` (bottom right).
The program pauses 500 milliseconds after turning on each LED.
Without `pause`, the program would run so fast that you would not have time to see each LED turning on.
```blocks
for (let i = 0; i < 5; i++) {

View File

@ -1,6 +1,6 @@
# Show Animation
Show a series of image frames on the [LED screen](/device/screen), pausing the specified time after each frame.
Show a group of image frames (pictures) one after another on the [LED screen](/device/screen). It pauses the amount of time you tell it after each frame.
```sig
basic.showAnimation(`
@ -14,10 +14,14 @@ basic.showAnimation(`
### Parameters
* `leds` - [String](/reference/types/string); a series of LED on/off states
* `interval` - [Number](/reference/types/number); the number of milliseconds to pause after each image frame
* `leds` is a [String](/reference/types/string) that shows which LEDs are on and off, in groups one after another.
* `interval` is an optional [Number](/reference/types/number). It means the number of milliseconds to pause after each image frame.
### Show a series of image frames
### Example: Animating a group of image frames
In this animation, each row is 15 spaces wide because
there are three frames in the animation, and each frame is
five spaces wide, just like the screen on the BBC micro:bit.
```
basic.showAnimation(`
@ -31,13 +35,17 @@ basic.showAnimation(`
### ~hint
If the series of images appear too fast, increase the value of the *interval* parameter.
If the animation is too fast, make `interval` bigger.
### ~
### Example: animating frames
### Example: animating frames with a pause
The following example creates an image with six frames and then shows each frame o the screen, pausing 500 milliseconds after each frame:
This example shows six frames on the screen, pausing 500 milliseconds after each frame.
In this animation, each row is 30 spaces wide because
there are six frames in the animation, and each frame is
five spaces wide, just like the screen.
```
basic.showAnimation(`
@ -51,7 +59,7 @@ basic.showAnimation(`
### ~hint
Use [forever](/reference/basic/forever) to continually repeat an animation
Use [forever](/reference/basic/forever) to show an animation over and over.
### ~

View File

@ -15,12 +15,13 @@ basic.showLeds(`
### Parameters
* ``leds`` - a series of LED on/off states that form an image (see steps below)
* (optional) ``ms`` - [Number](/reference/types/number) - time to wait after displaying image. In blocks, ``ms`` is 400 by default.
* `leds` is a [String](/reference/types/string) that shows which LEDs are on and off.
* `ms` is an optional [Number](/reference/types/number) that shows how many milliseconds to wait after showing a picture.
If you are programming with blocks, `ms` starts out as 400 milliseconds.
### Example - Block Editor
### Example
1. Open the `basic` category and select the `show leds` blocks.
Open the `basic` card in the Block Editor and select the `show leds` blocks.
```blocks
basic.showLeds(`
@ -33,7 +34,7 @@ basic.showLeds(`
)
```
In JavaScript, the led off is represented by a `.` and the led on by a `#` character.
If you are programming in JavaScript, `#` means an LED that is turned on and `.` means an LED that is turned off.
### Lessons

View File

@ -1,6 +1,6 @@
# Show Number
Show a number on the [LED screen](/device/screen), one digit at a time (scrolling from left to right)
Show a number on the [LED screen](/device/screen). It will slide left if it has more than one digit.
~~~~sig
basic.showNumber(2, 150)
@ -8,18 +8,18 @@ basic.showNumber(2, 150)
### Parameters
* value - a [Number](/reference/types/number)
* (optional) interval (ms) - [Number](/reference/types/number); the time (in milliseconds) before scrolling by one LED; the larger the number, the slower the scroll
* `value` is a [Number](/reference/types/number).
* `interval` is an optional [Number](/reference/types/number). It means the number of milliseconds before sliding the `value` left by one LED each time. Bigger intervals make the sliding slower.
### ~
### Examples:
To display the number 10:
To show the number 10:
~~~~blocks
basic.showNumber(10)
~~~~
To display the number stored in the `x` variable:
To show the number stored in a variable:
~~~~blocks
let x = 1
@ -28,19 +28,19 @@ basic.showNumber(x)
### Example: count to 5
This example uses a [for](/reference/loops/for) loop to show numbers ``1`` through ``5`` on the screen:
This example uses a [for](/reference/loops/for) loop to show numbers ``0`` through ``5`` on the screen:
~~~~blocks
for (let i = 0; i < 5; i++) {
basic.showNumber(i + 1)
for (let i = 0; i < 6; i++) {
basic.showNumber(i)
basic.pause(200)
}
~~~~
### Other show functions
* use [show string](/reference/basic/show-string) to show a string on the screen
* use [show animation](/reference/basic/show-animation) to show a series of images on the screen
* Use [show string](/reference/basic/show-string) to show a [String](/reference/types/string) with letters on the screen.
* Use [show animation](/reference/basic/show-animation) to show a group of pictures on the screen, one after another.
### Lessons

View File

@ -1,6 +1,6 @@
# Show String
Show a string on the [LED screen](/device/screen) one character at a time (scrolling from left to right).
Show a number on the [LED screen](/device/screen). It will slide left if it is bigger than the screen.
```sig
basic.showString("Hello!")
@ -8,18 +8,18 @@ basic.showString("Hello!")
### Parameters
* `text` - a [String](/reference/types/string)
* (optional) `ms` - [Number](/reference/types/number); the time (in milliseconds) before scrolling left by one LED; the larger the number, the slower the scroll
* `text` is a [String](/reference/types/string). It can contain letters, numbers, and punctuation.
* `ms` is an optional [Number](/reference/types/number). It means the number of milliseconds before sliding the [String](/reference/types/string) left by one LED each time. Bigger intervals make the sliding slower.
### Examples:
To display Hello:
To show the word **Hello**:
```blocks
basic.showString("Hello")
```
To display the content of a string variable:
To show what is stored in a [String](/reference/types/string) variable:
```blocks
let s = "Hi"
@ -28,8 +28,8 @@ basic.showString(s)
### Other show functions
* use [show number](/reference/basic/show-number) to show a number on the screen
* use [show animation](/reference/basic/show-animation) to show a series of images on the screen
* Use [show number](/reference/basic/show-number) to show a number on the [LED screen](/device/screen).
* Use [show animation](/reference/basic/show-animation) to show a group of pictures on the screen, one after another.
### Lessons

View File

@ -1,7 +1,6 @@
# Control
Runtime and event utilities.
```cards
control.inBackground(() => {

View File

@ -1,7 +1,6 @@
# Game
A single-LED sprite game engine
```cards
game.addScore(1);

View File

@ -1,7 +1,6 @@
# Images
Creation, manipulation and display of LED images.
```cards
images.createImage(`

View File

@ -1,7 +1,6 @@
# Input
Events and data from sensors
```cards
input.onButtonPressed(Button.A, () => {

View File

@ -1,6 +1,6 @@
# Button Is Pressed
Get the state of an input button. The micro:bit has two input buttons: A and B.
Check whether a button is pressed right now. The micro:bit has two buttons: button `A` and button `B`.
```sig
input.buttonIsPressed(Button.A);
@ -8,24 +8,26 @@ input.buttonIsPressed(Button.A);
### Parameters
* name - [String](/reference/types/string); input button "A", "B", or "A+B" (both input buttons)
* ``name`` is a [String](/reference/types/string). You should store `A` in it to check the left button, `B` to check the right button, or `A+B` to check both at the same time.
### Returns
* [Boolean](/reference/types/boolean) - `true` if pressed, `false` if not pressed
* [Boolean](/reference/types/boolean) that is `true` if the button you are checking is pressed, `false` if it is not pressed.
### Example
The following code uses an [if](/reference/logic/if) statement to run code, depending on whether or not the A button is pressed:
This program uses an [if](/reference/logic/if) to run
one part of the program if the `A` button is pressed, and
another part if it is not pressed.
```blocks
basic.forever(() => {
let pressed = input.buttonIsPressed(Button.A)
if (pressed) {
// this code runs if the A button is pressed
// this part runs if the A button is pressed
basic.showNumber(1, 150)
} else {
// this code runs if the A button is *not* pressed
// this part runs if the A button is *not* pressed
basic.showNumber(0, 150)
}
})

View File

@ -1,8 +1,14 @@
# Light Level
Gets the light level from ``0`` (dark) to ``255`` (bright). The light is measured by using various LEDs from the screen.
Find the light level (how bright or dark it is) where you are.
The light level ``0`` means darkness and ``255`` means bright light.
The BBC micro:bit measures the light around it by using some of the
LEDs on the [LED screen](/device/screen).
This function will return ``0`` on the first call to this method, a light reading will be available after the display has activated the light sensor for the first time.
The first time you use it, this function will say ``0``.
After that, it will say the real light level.
This is because the light sensor (the part that can find the light level)
has to be turned on first.
```sig
input.lightLevel();
@ -10,11 +16,26 @@ input.lightLevel();
### Returns
* [Number](/reference/types/number) - light level from ``0`` (dark) to ``255`` (bright).
* a [Number](/reference/types/number) that means a light level from ``0`` (dark) to ``255`` (bright).
### Example: show light level
When you press button `B` on the microbit, this
program shows the light level
on the [LED screen](/device/screen).
```blocks
input.onButtonPressed(Button.B, () => {
let level = input.lightLevel()
basic.showNumber(level)
})
```
### Example: chart light level
Use `plot bar chart` to visual the influence of various light source on the light level.
This program shows the light level with a [bar chart](/reference/led/plot-bar-graph) on the micro:bit screen.
If you carry the micro:bit around to different places with different light levels,
the bar chart will change.
```blocks
basic.forever(() => {

View File

@ -1,6 +1,9 @@
# On Button Pressed
Register an [event handler](/reference/event-handler) that will execute whenever an input button (A, B, or A and B together) is pressed during program execution. When [running code](/device/simulator) with this function in a web browser, click an on-screen input button - labelled A or B.
Start an [event handler](/reference/event-handler) (part of the program that will run when something happens, like when a button is pressed).
This handler works when button `A` or `B` is pressed, or `A` and `B` together.
When you are using this function in a web browser, click the buttons on the screen instead of the ones
on the BBC micro:bit.
```sig
input.onButtonPressed(Button.A, () => {})
@ -8,7 +11,8 @@ input.onButtonPressed(Button.A, () => {})
### Example: count button clicks
This example counts how many times the left or right input button is pressed. Each time a button is pressed, the global count variable is increased by 1 and displayed on the screen.
This example counts how many times you press the `A` button.
Each time you press the button, the [LED screen](/device/screen) shows the `count` variable getting bigger.
```blocks
let count = 0
@ -19,22 +23,29 @@ input.onButtonPressed(Button.A, () => {
})
```
### Example: roll a dice
### Example: roll dice
This example generates a random number when you press the B input button, and then displays a random die image:
This example shows a number from 1 to 6 when you press the `B` button.
```blocks
input.onButtonPressed(Button.B, () => {
let dice = Math.random(6)
let dice = Math.random(6) + 1
basic.showNumber(dice)
})
```
### ~hint
This program adds a `1` to `random(6)` so the numbers on the dice will come out right.
Otherwise, sometimes they would show a `0`.
### ~
### Lessons
[smiley](/lessons/smiley), [answering machine](/lessons/answering-machine), [screen wipe](/lessons/screen-wipe), [rotation animation](/lessons/rotation-animation)
### See also
[button is pressed](/reference/input/button-is-pressed), [forever](/reference/basic/forever)
[button is pressed](/reference/input/button-is-pressed), [forever](/reference/basic/forever), [random](/reference/math/math)

View File

@ -1,6 +1,6 @@
# Running Time
Get the number of milliseconds elapsed since the script began. 1,000 milliseconds = 1 second.
Find how long it has been since the program started.
```sig
input.runningTime();
@ -8,15 +8,20 @@ input.runningTime();
### Returns
* [Number](/reference/types/number)
* the [Number](/reference/types/number) of milliseconds since the program started.
(One second is 1000 milliseconds.)
### Example: elapsed time
This code gets the elapsed time since the start of the program execution and displays it on the screen.
When you press button `B` on the microbit, this
program finds the number of milliseconds since the program started
and shows it on the [LED screen](/device/screen).
```blocks
let now = input.runningTime()
basic.showNumber(now)
input.onButtonPressed(Button.B, () => {
let now = input.runningTime()
basic.showNumber(now)
})
```
### Lessons

View File

@ -1,6 +1,7 @@
# Temperature
Get the ambient temperature (degree Celsius °C). The temperature is inferred from the the surface temperature of the various chips on the micro:bit.
Find the temperature where you are. The temperature is measured in Celsius (metric).
The micro:bit can find the temperature nearby by checking how hot its computer chips are.
```sig
input.temperature();
@ -8,24 +9,48 @@ input.temperature();
### Returns
* [Number](/reference/types/number) - temperature in degree Celsius °C.
* a [Number](/reference/types/number) that means the Celsius temperature.
### How does it work?
The BBC micro:bit does not have a dedicated temperature sensor. Instead, the temperature provided is actually the temperature of the silicon die on the main CPU. As the processor generally runs cold though (it is a high efficiency ARM core), the temperature is a good approximation of the ambient temperature... you might warm up if you give the processor a lot of work to do though, and don't [sleep](/reference/basic/pause)!
The temperature sensor has a high precision, but isn't trimmed for accuracy. In other words, it can sense changes in temperature very well, but there may be (and probably is) base line offset. i.e. it might return 20 degrees when it's actually 17, but it would return 21 when it is 18 etc.
The BBC micro:bit checks how hot its CPU (main computer chip) is.
Because the micro:bit does not usually get very hot, the temperature of the CPU
is usually close to the temperature of wherever you are.
The micro:bit might warm up a little if you make it work hard, though!
### Example: micro:bit thermometer
The following example uses the `temperature` and the `show number` to display the room temperature.
The following example uses `temperature` and `show number` to show the temperature of the room.
```sig
```blocks
basic.forever(() => {
let temp = input.temperature()
basic.showNumber(temp)
})
```
### Example: Fahrenheit thermometer
This program measures the temperature using Fahrenheit degrees.
Fahrenheit is a way of measuring temperature that is commonly used in the United States.
To make a Celsius temperature into a Fahrenheit one, multiply the Celsius temperature by
1.8 and add 32.
```blocks
basic.forever(() => {
let c = input.temperature()
let f = (c * 1.8) + 32
basic.showNumber(f)
})
```
### ~hint
Try comparing the temperature your micro:bit shows to a real thermometer in the same place.
You might be able to figure out how much to subtract from the number the micro:bit
shows to get the real temperature. Then you can change your program so the micro:bit is a
better thermometer.
### ~
### Lessons

View File

@ -1,7 +1,6 @@
# Led
Control of the LED screen.
```cards
led.plot(0, 0);
@ -10,7 +9,7 @@ led.point(0, 0);
led.brightness();
led.setBrightness(255);
led.stopAnimation();
led.plotBarGraph(0, 1023);
led.plotBarGraph(0, 0);
led.fadeIn();
led.fadeOut();
led.plotAll();

View File

@ -1,6 +1,6 @@
# Brightness
Set the brightness of the [LED screen](/device/screen).
Find how bright the [LED screen](/device/screen) is.
```sig
led.brightness();
@ -8,11 +8,11 @@ led.brightness();
### Returns
* [Number](/reference/types/number) - returns the LCD screen brightness as a number from 0 to 255. A return value of 255 means the screen brightness is at 100% and 127 is about 50% brightness.
* a [Number](/reference/types/number) that means how bright the screen is, from `0` (darkest) to `255` (brightest). For example, the number `127` means the screen is halfway bright.
### Example: maximum brightness
### Example: highest brightness
If the screen brightness is < 100%, the following code sets the brightness to 100% (255):
This program makes the screen completely bright if it is not that way already:
```blocks
if (led.brightness() < 255) {

View File

@ -1,6 +1,7 @@
# Plot Bar Graph
Displays a vertical bar graph based on the value and high value.
Displays a bar graph of the numbers you say.
A bar graph is a kind of chart that shows numbers as lines with different lengths.
```sig
led.plotBarGraph(2, 20);
@ -8,10 +9,18 @@ led.plotBarGraph(2, 20);
### Parameters
* value: [Number](/reference/types/number) , high : [Number](/reference/types/number) displays a vertical bar graph based on the value and high value
* `value` is a [Number](/reference/types/number) that means what you are measuring or trying to show. For example, if you are measuring the temperature of ice with the BBC micro:bit, `value` might be 0 because the temperature might be 0 degrees centigrade.
* `high` is a [Number](/reference/types/number) that means the highest possible number that the `value` parameter can be. This number is also the tallest that the lines in the bar chart can be.
### Example: chart acceleration
This program shows a bar graph of the [acceleration](/reference/input/acceleration)
in the `x` direction of the micro:bit.
The micro:bit's `x` direction is from left to right (or right to left).
The more you speed up moving the micro:bit in this direction,
the taller the lines in the bar graph will be,
until they are as tall as the parameter `high` says they can be.
```blocks
basic.forever(() => {
let a = input.acceleration(Dimension.X);

View File

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

View File

@ -1,23 +1,26 @@
# If
Run code based on a condition.
### @parent blocks/language
Conditionally run code depending on whether a [Boolean](/reference/types/boolean) condition is true or false.
### Block Editor
![](/static/mb/hourofcode-0.png)
```blocks
if(true) {
}
```
In the Block Editor, click on the dark blue gear icon (see above) to add an *else* or *if* to the current block.
### Example: adjusting screen brightness
![](/static/mb/blocks/game-library/pic0.png)
```blocks
if(input.lightLevel()<100){
led.setBrightness(255);
}
```
If the screen [brightness](/reference/led/brightness) is `< 100`, this code sets the brightness to `255`:
If the [light level](/input/light-level) is `< 100`, this code sets the brightness to `255`:
### Lessons

View File

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

View File

@ -1,20 +1,16 @@
# For
Repeat code a preset number of times.
### @parent blocks/language
Run part of the program the number of times you say.
Repeat code a fixed number of times.
### Example: Count to 4
### Block Editor
This program will show the numbers 0, 1, 2, 3, and 4 one after another on the LED screen.
![](/static/mb/events-0.png)
The Block Editor *for* loop is different than the Touch Develop *for* loop in an important way. The above for loop will iterate *five* times, with the loop variable *i* taking on values 0, 1, 2, 3, and 4. The Touch Develop for loop shown below will iterate four times:
```
for (let k = 0; k < 4; k++) {
```blocks
for(let i = 0; i < 5; ++i) {
basic.showNumber(i)
}
```
@ -24,5 +20,5 @@ for (let k = 0; k < 4; k++) {
### See also
[while](/reference/loops/while), [if](/reference/logic/if)
[repeat](/reference/loops/repeat), [while](/reference/loops/while), [if](/reference/logic/if), [show number](/reference/basic/show-number)

View File

@ -1,21 +1,16 @@
# Repeat
Repeat code a preset number of times.
Repeat code a fixed number of times.
Run part of the program the number of times you say.
### Block Editor
![](/static/mb/blocks/contents-0.png)
### Touch Develop
### Lessons
Touch Develop has no `repeat` loop. Instead you can used a for loop
[looper](/lessons/looper)
```
for (let i = 0; i < 5; i++) {
}
```
### See also
The loop above will repeat five (5) times.
[for](/reference/loops/for), [while](/reference/loops/while), [if](/reference/logic/if), [show number](/reference/basic/show-number)

View File

@ -1,23 +1,14 @@
# While
Repeat code in a loop while a condition is true.
### @parent blocks/language
Repeat code while a [Boolean](/reference/types/boolean) `condition` is true.
### ~hide
```blocks
while(true) {
}
```
let condition = false
```
### ~
### Block Editor
![](/static/mb/string-0.png)
The while loop has a *condition* that evaluates to a [Boolean](/reference/types/boolean) value. After the `do` keyword, add the code that you want to run while the `condition` is `true`. The while loop concludes with `end while`.
@ -27,11 +18,13 @@ The condition is tested before any code runs. Which means that if the condition
The following example uses a while loop to make a diagonal line on the LED screen (points `0, 0`, `1, 1`, `2, 2`, `3, 3`, `4, 4`).
// index is set to 4
![](/static/mb/blocks/var-10.png)
// subtract 1 from `index` each time through loop
```blocks
let index = 4;
while(index >= 0) {
led.plot(index, index);
index--;
}
```
### Lessons

View File

@ -1,14 +1,13 @@
# Music
Generation of music tones through pin ``P0``.
```cards
music.playTone(0, 0);
music.ringTone(0);
music.rest(0);
music.noteFrequency(Note.C);
music.beat();
music.beat(BeatFraction.Whole);
music.tempo();
music.changeTempoBy(20);
music.setTempo(120);

View File

@ -1,10 +1,10 @@
# Play Tone
Plays a music tone through pin ``P0`` for the given duration.
Play a musical tone through pin ``P0`` of the micro:bit for as long as 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.playTone(440, 120)
@ -12,11 +12,14 @@ music.playTone(440, 120)
### Parameters
* `frequency` : [Number](/reference/types/number) - the frequency of the note (in Herz)
* `ms`: [Number](/reference/types/number) - the duration of the note (milliseconds)
* `Hz` is the [Number](/reference/types/number) of Hertz (the frequency, how high or low the tone is).
* `ms` is the [Number](/reference/types/number) of milliseconds that the tone lasts.
## Example
This example stores the musical note C in the variable `freq`.
Next, it plays that note for 1000 milliseconds (one second).
```blocks
let freq = music.noteFrequency(Note.C)
music.playTone(freq, 1000)

View File

@ -1,16 +1,16 @@
# Tempo
Returns the tempo in beats per minute.
Finds the tempo (speed of a piece of music).
```sig
music.tempo()
```
### Parameters
### Returns
* Returns : [Number](/reference/types/number) - returns the tempo in beats per minute
* a [Number](/reference/types/number) that means the bpm (beats per minute, or number of beats in a minute of the music that the micro:bit is playing).
### See also
[play tone](/reference/music/play-tone), [ring tone](/reference/music/ring-tone) , [rest](/reference/music/rest), [set tempo](/reference/music/set-tempo), [change tempo by](/reference/music/change-tempo-by)
[play tone](/reference/music/play-tone), [ring tone](/reference/music/ring-tone), [rest](/reference/music/rest), [set tempo](/reference/music/set-tempo), [change tempo by](/reference/music/change-tempo-by)

View File

@ -4,7 +4,7 @@ The micro:bit pins.
## How to work offline
If you have loaded the web app at some time in the past (by clicking on "my scripts" from the home page), then if you later open the same browser (whether you are online or offline) and type in [https://codemicrobit.com/](https://codemicrobit.com/), you will be able to access all the features of the web app. Note that it is important to end the URL with "/".
If you have loaded the web app at some time in the past (by clicking on "my scripts" from the home page), then if you later open the same browser (whether you are online or offline) and type in [https://m.pxt.io/](https://m.pxt.io/), you will be able to access all the features of the web app. Note that it is important to end the URL with "/".
## Save and load code using files

View File

@ -1,7 +1,6 @@
# Pins
Control currents in Pins for analog/digital signals, servos, i2c, ...
```cards
pins.digitalReadPin(DigitalPin.P0);
@ -9,8 +8,14 @@ pins.digitalWritePin(DigitalPin.P0, 0);
pins.analogReadPin(AnalogPin.P0);
pins.analogWritePin(AnalogPin.P0, 1023);
pins.analogSetPeriod(AnalogPin.P0, 20000);
pins.onPulsed(DigitalPin.P0, PulseValue.High, () => {
});
pins.pulseDuration();
pins.servoWritePin(AnalogPin.P0, 180);
pins.servoSetPulse(AnalogPin.P0, 1500);
pins.i2cReadNumber(0, NumberFormat.Int8LE);
pins.i2cWriteNumber(0, 0, NumberFormat.Int8LE);
pins.map(0, 0, 1023, 0, 4);
pins.analogPitch(0, 0);
pins.analogSetPitchPin(AnalogPin.P0);

View File

@ -1,17 +1,20 @@
# Radio
Communicate data using radio packets
```cards
radio.sendNumber(0);
radio.sendNumbers(0, 0, 0, 0);
radio.sendValue("data", 0);
radio.sendString("");
radio.onDataReceived(() => {
});
radio.receiveNumber();
radio.receivedNumberAt(0);
radio.receiveString();
radio.receivedSignalStrength();
radio.setGroup(0);
radio.setTransmitPower(0);
radio.writeValueToSerial();
radio.setTransmitSerialNumber(true);
```

View File

@ -0,0 +1,67 @@
# Receive String
Reads the next radio packet if any and returns the first string.
## 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.receiveString()
```
### Return value
* the first [string](/reference/types/string) of the packet if any. ```""``` otherwise.
### Examples
Read the string broadcasted by other micro:bits and display it.
```blocks
radio.onDataReceived(() => {
basic.showString(radio.receiveString());
});
```
A simple program to send whether you are happy, or sad over ```radio```, using the A or B button to select an emotion.
```blocks
let data: string = "";
input.onButtonPressed(Button.A, () => {
radio.sendString("H");
});
input.onButtonPressed(Button.B, () => {
radio.sendString("S");
});
radio.onDataReceived(() => {
data = radio.receiveString();
if ("H" == data) {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .
`);
} else if ("S" == data) {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
. # # # .
# . . . #
`);
} else {
basic.showString("?");
}
});
```
### See also
[send string](/reference/input/send-string), [on data received](/reference/radio/on-data-received)

View File

@ -0,0 +1,33 @@
# Send String
Broadcasts a string data packet to other micro:bits connected via ``radio``.
## 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.sendString("Hello world!")
```
### Parameters
* msg - a string to be transmitted.
### Examples
Broadcasts the provided string to other micro:bits.
```blocks
input.onButtonPressed(Button.A, () => {
radio.sendString("Mr. Watson, come here, I want to see you.")
})
```
### See also
[receive string](/reference/radio/receive-string), [on data received](/reference/radio/on-data-received)

View File

@ -0,0 +1,38 @@
# Set Transmit Power
Sets the transmitter power for ``radio`` communications.
The power can be set to a value between 0 (-30dbm) and 7 (+4dbm).
## 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)
```
### Parameters
* ``power`` -- a [number](/reference/types/number) between ``0`` and ``7``.
### Example
Sets the transmitter power to full power at 7.
```blocks
radio.setTransmitPower(7)
```
### See also
[receive number](/reference/radio/receive-number), [send number](/reference/radio/send-number), [on data received](/reference/radio/on-data-received)

View File

@ -0,0 +1,45 @@
# Write Value To Serial
Writes the full data received data via ``radio`` to serial in JSON format.
**Note** - This method only works for [send number](/reference/radio/send-number) and [send value](/reference/radio/send-value). It does not work for [send string](/reference/radio/send-string) (although a string can be sent with [send value](/reference/radio/send-value)).
## Data received format
The format for received data printed to serial is as follows
- [send number](/reference/radio/send-number) - ```{v:ValueSent,t:MicrobitTimeAlive,s:Unused}```
- [send value](/reference/radio/send-number) - ```{v:Value,t:MicrobitTimeAlive,s:Unused,n:"Name"}```
- [send string](/reference/radio/send-string) - ```{}``` (currently unavailable)
## 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.writeValueToSerial()
```
### Parameters
* None
### Examples
When ```radio``` data is received (after pressing A button on 2nd micro:bit), output temperature data to serial.
```blocks
input.onButtonPressed(Button.A, () => {
radio.sendNumber(input.temperature());
});
radio.onDataReceived(() => {
radio.writeValueToSerial();
});
```
Example output to serial when A button pressed:
```{v:27,t:323,s:0}```
### See also
[send number](/reference/radio/send-number), [send value](/reference/radio/send-number), [on data received](/reference/radio/on-data-received)

View File

@ -1,8 +1,11 @@
# Serial
[Serial communication](/device/serial) between the BBC micro:bit and another computer.
Reading and writing data over a serial connection.
```cards
serial.writeLine("");
serial.writeValue("x", 0);
serial.writeNumber(0);
serial.writeValue(x, 0);
serial.writeString("");
serial.readLine();
```

197
docs/reference/toc.md Normal file
View File

@ -0,0 +1,197 @@
acceleration
analog-pitch
analog-read-pin
analog-set-period
analog-set-pitch-pin
analog-write-pin
assign
boolean
brightness
button-is-pressed
change
change-score-by
change-tempo
change-var
clear
clear-screen
compass-heading
create-image
digital-read-pin
digital-write-pin
fade-in
fade-out
for
forever
game-library
game-over
if
image
in-background
light-level
magnetic-force
map
math
move
number
[on button pressed](/reference/input/on-button-pressed)
on-data-received
on-gamepad-button
on-gesture
on-pin-pressed
on-signal-strength-changed
pause
pin-is-pressed
pixel
play-tone
plot
plot-all
plot-bar-graph
plot-frame
plot-image
plot-leds
point
position
raise-alert-to
receive-number
receive-number
repeat
reports
reset
rest
ring-tone
rotation
running-time
score
screenshot
scroll-image
send-number
servo-set-pulse
servo-write-pin
set-brightness
set-display-mode
set-group
set-pixel
set-tempo
show-animation
show-frame
show-image
show-leds
show-number
show-string
signal-strength
start-countdown
stop-animation
string
tell-camera-to
tell-microphone-to
tell-remote-control-to
temperature
tempo
toggle
toggle-all
touching
turn
unplot
var
while
width
write-line
write-value

View File

@ -1,34 +1,34 @@
# Assignment Operator
Set the value for local and global variables.
Use an equals sign to make a [variable](/reference/variables/var) store the [number](/reference/types/number)
or [string](/reference/types/string) you say.
### @parent blocks/operators
When you use the equals sign to store something in a variable, the equals sign is called
an *assignment operator*, and what you store is called a *value*.
Set or change the value of a variable
### Storing numbers in variables
This program makes the variable `item` equal `5` and then shows it on the [LED screen](/device/screen).
````blocks
let item = 0
let item = 5
basic.showNumber(item)
````
Use the assignment operator to set or change the value of a [variable](/reference/variables/var).
### Storing strings in variables
### Declare a variable
Declare a new *local* variable using the [variable](/reference/variables/var) statement and the assignment operator. Like this:
This program makes the variable `name` equal `Joe` and then shows it on the [LED screen](/device/screen).
````blocks
let num1 = 42;
let name = "Joe";
let name = "Joe"
basic.showString(name);
````
The variable's name is on the left of the assignment operator and the variable's value is on the right:
````blocks
let num1 = 42
````
### Notes
* You can use the assignment operator with variables of each of the supported [types](/reference/types).
You can use the assignment operator with variables of
every [type](/reference/types). A *type* is which kind of thing
a variable can store, like a number or string.
### Lessons

11
docs/release-notes.md Normal file
View File

@ -0,0 +1,11 @@
# Release notes
```sim
basic.forever(() => { basic.showString("RELEASE NOTES"); });
```
### May 2017
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!

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1 +0,0 @@
<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:#ffffff' /></g></svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -1 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 B

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