Compare commits

...

328 Commits

Author SHA1 Message Date
94f1b6c785 0.2.145 2016-06-03 11:11:08 -07:00
c749c8b644 Bump pxt-core to 0.2.157 2016-06-03 11:11:05 -07:00
b108f1538d Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-03 10:35:40 -07:00
45ecd883bb fixed uploader page... 2016-06-03 10:16:22 -07:00
641a714f74 updated configuration 2016-06-03 09:47:06 -07:00
d1cd0a23a2 Nearing end of radio docs 2016-06-02 17:08:09 -07:00
54331eb113 Second pass 2016-06-02 16:24:06 -07:00
d4c53f1fb3 Extra examples and hints 2016-06-02 15:48:11 -07:00
40305c3ccd Updated to be funner (and clearer) 2016-06-02 15:25:19 -07:00
e6761699d3 added faq 2016-06-02 14:47:37 -07:00
b15f140181 0.2.144 2016-06-02 13:52:30 -07:00
00e38e202b Bump pxt-core to 0.2.156 2016-06-02 13:52:28 -07:00
4cbabcd112 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-02 13:11:23 -07:00
5def3518cf adding link to start rock-paper-scissor in editor 2016-06-02 13:10:47 -07:00
2c6f76e1a5 First pass 2016-06-02 12:52:03 -07:00
3eb529852b Bump pxt-core to 0.2.154 2016-06-02 12:35:18 -07:00
3b0cb40ea9 0.2.143 2016-06-02 12:33:01 -07:00
5cb3467194 Bump pxt-core to 0.2.155 2016-06-02 12:32:56 -07:00
d5628c08c8 updated getting started 2016-06-02 12:32:13 -07:00
c5c0103573 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-02 12:07:49 -07:00
b89d6477c7 Temporarily broken. 2016-06-02 11:38:14 -07:00
f3a6b00734 fixing localized file path 2016-06-02 09:48:40 -07:00
091fbb9db8 fixing some game content 2016-06-02 09:13:02 -07:00
3de977c98f updated naming of locale strings 2016-06-02 09:07:30 -07:00
d262dc3704 removed duplicate file 2016-06-02 08:33:21 -07:00
b2e59eb676 0.2.142 2016-06-01 21:51:03 -07:00
f2d5237d5c Bump pxt-core to 0.2.154 2016-06-01 21:51:02 -07:00
0c701a6809 more typos 2016-06-01 21:36:32 -07:00
d571ce85c1 fixing broken path 2016-06-01 21:35:37 -07:00
6fa316ff0e shrinking various images 2016-06-01 21:28:57 -07:00
1e436f4e71 more docs updates 2016-06-01 21:19:16 -07:00
d54aa41fc9 updated some lessons 2016-06-01 21:13:30 -07:00
0d90aec229 tweaks 2016-06-01 21:08:46 -07:00
98ee6899a1 renaming image files 2016-06-01 21:01:57 -07:00
c3e9ec2dc4 Merge branch 'origin/docs' 2016-06-01 20:54:57 -07:00
4cba801d78 Merge branch 'master' into origin/docs 2016-06-01 20:53:46 -07:00
a3d559c7af Rewrite for simplicity. 2016-06-01 17:11:28 -07:00
985ed56984 Fixed typo. 2016-06-01 16:29:43 -07:00
be284c5e52 0.2.141 2016-06-01 16:13:16 -07:00
d59d7cb19f Bump pxt-core to 0.2.153 2016-06-01 16:13:14 -07:00
28d522175b Second edit pass. Needs better image examples? 2016-06-01 16:02:22 -07:00
7b74428275 more glow / stop sound on player stop 2016-06-01 15:45:40 -07:00
c5571c20c7 updated release notes 2016-06-01 15:06:47 -07:00
fc97b59d0e 0.2.140 2016-06-01 13:36:58 -07:00
8417d10ad3 Bump pxt-core to 0.2.152 2016-06-01 13:36:56 -07:00
1a6d47a1c9 First edit pass. Please push to server. 2016-06-01 13:35:53 -07:00
d74702353f 0.2.139 2016-06-01 09:11:55 -07:00
53922986b1 Bump pxt-core to 0.2.149 2016-06-01 09:11:53 -07:00
230de475d1 0.2.138 2016-06-01 08:52:21 -07:00
9b1d2085ba Bump pxt-core to 0.2.148 2016-06-01 08:52:20 -07:00
246d81ffd5 0.2.137 2016-06-01 08:13:26 -07:00
3b2729d9d8 0.2.136 2016-06-01 07:42:41 -07:00
571ae8337f Bump pxt-core to 0.2.147 2016-06-01 07:42:39 -07:00
cc2d18b969 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-01 07:42:37 -07:00
fd02bd9407 updated docs menu 2016-06-01 07:42:03 -07:00
6429b57081 Improve docs (terminology, hyperlinks). 2016-05-31 17:17:36 -07:00
5650f7dc35 Finishing pass on send/receive number. Examples distributed more sensibly. 2016-05-31 17:02:22 -07:00
a9cfe83bdf Target=kids so removing all 'Important Security Considerations' for now. 2016-05-31 12:06:03 -07:00
f9409b5fb5 Mailbot example works now. 2016-05-31 11:44:20 -07:00
7f9f14df18 rename 2016-05-27 21:40:59 -07:00
a383060b4d Improved examples; last one needs work. 2016-05-27 16:22:38 -07:00
04c8221b41 0.2.135 2016-05-27 14:48:59 -07:00
facea7d27d Bump pxt-core to 0.2.146 2016-05-27 14:48:57 -07:00
cfe65569ad Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-05-27 14:48:56 -07:00
7a0ad8e3ed disabling source maps 2016-05-27 14:16:47 -07:00
4fb10faec2 Radio send/receive string. Rewrote text. Updated examples. 2016-05-27 12:03:54 -07:00
f3463b5961 refactor strings.json generation for packages 2016-05-27 09:23:47 -07:00
f39703e6f7 refreshed docs 2016-05-27 08:55:40 -07:00
74b333dee4 various small updates to docs 2016-05-27 07:06:24 -07:00
466bda468f update instructions 2016-05-26 21:38:11 -07:00
f4afa773ad missing images blocks 2016-05-26 20:42:15 -07:00
21280f41bc updated random boolean color 2016-05-26 19:55:25 -07:00
41c7053f3f added math.randomBoolean 2016-05-26 19:49:38 -07:00
1a00fded98 final vidoe cleanup 2016-05-26 19:33:26 -07:00
304ef89a1d 0.2.134 2016-05-26 19:30:45 -07:00
433b2bb08d Bump pxt-core to 0.2.145 2016-05-26 19:30:43 -07:00
273e23095b Merged. 2016-05-26 16:52:33 -07:00
8af6d640d3 Exhaustive rewrite. Did not change code much. 2016-05-26 16:18:33 -07:00
5553fb93bb removing videos from docs 2016-05-26 15:24:10 -07:00
493f76eba7 removed video from rps 2016-05-26 15:10:46 -07:00
91b90bf70e 0.2.133 2016-05-26 12:49:32 -07:00
43adfa198f Bump pxt-core to 0.2.143 2016-05-26 12:49:30 -07:00
59f7d0b537 update logo 2016-05-26 12:27:05 -07:00
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
d4a55bd53d update seismograph 2016-05-12 11:55:10 -07:00
2b8d8f7b44 update seis challenge 2016-05-12 10:44:12 -07:00
8b2037f51d update seis challenge 2016-05-12 10:40:41 -07:00
1477fc4bed update seis challenge 2016-05-12 10:36:35 -07:00
e4badc18b8 udpate seis change 2016-05-12 09:44:32 -07:00
625d4de530 update seis challenge 2016-05-12 09:41:54 -07:00
a3cf104185 update challenge 2016-05-12 09:02:02 -07:00
608f2d8f82 update seis challenge 2016-05-12 09:01:05 -07:00
8f9ac35d70 update seis 2016-05-12 08:49:25 -07:00
ce18ddbb70 update seis challenge 2016-05-12 08:48:10 -07:00
ac64cbb8c5 update seis activity 2016-05-11 16:35:13 -07:00
706c51c99c update seis challenge 2016-05-11 15:59:19 -07:00
7fa88249d6 update seis challenge 2016-05-11 15:53:47 -07:00
5c735e839e update seis lesson 2016-05-11 15:35:24 -07:00
19752b01b6 seismograph challenge 2016-05-11 15:31:51 -07:00
4192eeb413 update seis challenge 2016-05-11 15:29:47 -07:00
87c63959cf update challenge 2016-05-11 15:28:14 -07:00
79ee825926 update seis challenge 2016-05-11 15:21:11 -07:00
20dbcfd203 updated challenge 2016-05-11 15:19:05 -07:00
993952cbe9 update seis challenge 2016-05-11 15:10:07 -07:00
90a8bdcea1 update seis challenge 2016-05-11 15:01:44 -07:00
b9cff5a5e9 seis challenge 2016-05-11 14:52:25 -07:00
638594bb5e update seis activity 2016-05-11 14:16:37 -07:00
d3b5809fe7 update seis acti 2016-05-11 14:11:22 -07:00
365f5dcecf Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-05-11 13:39:05 -07:00
4c9982051e update activity 2016-05-11 13:36:36 -07:00
655c9c4431 update seis activity 2016-05-11 13:28:13 -07:00
e328c22a2d update seis activity 2016-05-11 13:24:57 -07:00
dc9eb26038 update seis activity 2016-05-11 12:34:00 -07:00
3971bb5fc1 update seis activity 2016-05-11 12:24:58 -07:00
acfdfd3668 update seis activity 2016-05-11 12:21:39 -07:00
35edde573e seis activity 2016-05-11 12:20:01 -07:00
6d21e28360 update seis activity 2016-05-11 12:08:19 -07:00
f636a7e37f update seis activity 2016-05-11 12:07:12 -07:00
78f9af5bc2 0.2.113 2016-05-11 12:05:13 -07:00
c15c3255ef seis activity 2016-05-11 11:57:30 -07:00
7f64328079 update seis activity 2016-05-11 11:51:52 -07:00
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
b19d7a5b7b update seismograph activity 2016-05-11 11:42:21 -07:00
5ea5e9bb5b added accent color 2016-05-11 11:39:45 -07:00
8322310640 update seis activity 2016-05-11 11:12:39 -07:00
8f6577f029 update seis activity 2016-05-11 11:11:46 -07:00
a64b3e2b09 update seis activity 2016-05-11 11:10:55 -07:00
95ed3f419b update seismograph activity 2016-05-11 11:09:38 -07:00
8fcc59c9c3 update acc challenge 2016-05-11 10:40:16 -07:00
a83a7f7135 update charting 2016-05-11 10:39:19 -07:00
2f1a7e3896 Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-05-11 09:30:54 -07:00
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
b32c14937c seismograph activity 2016-05-10 16:59:57 -07:00
a5e1f84975 seismograph sync 2016-05-10 16:53:41 -07:00
6d0beb1aa3 seismograph 2016-05-10 16:48:37 -07:00
7d0101af25 marking various radio functions as debug until API is stable 2016-05-10 16:42:18 -07:00
26d92f993b update seismograph lesson 2016-05-10 16:35:00 -07:00
d4c0dddb62 seis activity 2016-05-10 15:22:27 -07:00
fa17ce43f7 update seis activity 2016-05-10 15:20:56 -07:00
b9a9abb478 update seis activity 2016-05-10 14:23:34 -07:00
ae925da409 seis activity 2016-05-10 14:05:25 -07:00
b82c3c0277 seismograph activity 2016-05-10 13:29:07 -07:00
b4ce65cdf3 seismograph act 2016-05-10 13:17:23 -07:00
db7e8b6fd4 update seis activity 2016-05-10 13:15:53 -07:00
7532cc01a2 seis activity 2016-05-10 13:10:18 -07:00
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
6725f8ef90 update seis activity 2016-05-10 12:31:22 -07:00
dea8054fbe update seis activity 2016-05-10 12:29:56 -07:00
f9cc3d2ee1 update seis activity 2016-05-10 12:28:45 -07:00
220ada6cd8 update seis activity 2016-05-10 11:56:41 -07:00
b68b12e6f1 update seis activity 2016-05-10 11:52:55 -07:00
5838c4d740 update seis activity 2016-05-10 11:47:35 -07:00
b0d4fdb009 0.2.108 2016-05-10 11:42:14 -07:00
68d25e3814 update seis activity 2016-05-10 11:40:46 -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
06be2019a6 seis activity 2016-05-10 11:21:40 -07:00
6a742f5348 update seis activity 2016-05-10 11:08:53 -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
73cf802300 update seis act 2016-05-10 11:03:16 -07:00
2b71e2b834 update images lowercase 2016-05-10 11:01:27 -07:00
0442c33808 update seis activity 2016-05-10 10:54:25 -07:00
2975e6acc9 updated seis activity 2016-05-10 10:52:10 -07:00
f150d93070 removing old logos 2016-05-10 10:51:47 -07:00
df38904ba1 updated acc activity 2016-05-10 10:47:51 -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
d744e21975 update seis act 2016-05-10 10:41:36 -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
81c86f544c seis act 2016-05-10 09:27:36 -07:00
fa145ecd5c update act 2016-05-10 09:24:30 -07:00
cdfc99ad3f update seis act 2016-05-10 09:11:11 -07:00
f77e7b8850 update seis act 2016-05-10 09:09:30 -07:00
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
d71186b083 update seis act 2016-05-09 16:56:29 -07:00
852067c641 update seis act 2016-05-09 16:53:18 -07:00
7445db5707 update seis act 2016-05-09 16:51:59 -07:00
e4fd00c827 update seis act 2016-05-09 16:47:08 -07:00
5ccecc1195 update seis activity 2016-05-09 16:42:41 -07:00
cdfcd30c3c update acc activity 2016-05-09 16:41:43 -07:00
25b4f46440 update seis act 2016-05-09 16:32:06 -07:00
9f9cd6b766 update seis act 2016-05-09 16:18:10 -07:00
4dafa4d42c update seis act 2016-05-09 16:14:13 -07:00
fdff0a7f19 update act 2016-05-09 16:12:25 -07:00
a63daed690 update seis act 2016-05-09 16:10:39 -07:00
3eeaf2ca46 update seis act 2016-05-09 16:08:10 -07:00
005e002fd8 update seis act 2016-05-09 16:07:11 -07:00
b1db17fc27 sesimo update 2016-05-09 16:04:43 -07:00
a51791414c updated seismograph act 2016-05-09 16:02:22 -07:00
265dd660ef seismograph act 2016-05-09 15:50:39 -07:00
7517776492 update seismograph act 2016-05-09 15:44:49 -07:00
29b901b856 update seismograph activity 2016-05-09 15:33:57 -07:00
20637aeb29 updated activity 2016-05-09 15:20:51 -07:00
90dbc6dd08 updated lessons page 2016-05-09 14:49:53 -07:00
8f99ee3608 beautiful image tutorial 2016-05-09 14:34:51 -07:00
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
15bbc13595 update seismograph activity 2016-05-05 14:23:56 -07:00
cac5df56eb update activity 2016-05-05 14:00:56 -07:00
0c7f9058a7 Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-05-05 10:13:18 -07:00
378 changed files with 3267 additions and 1641 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

View File

@ -1,26 +1,55 @@
# micro:bit target for PXT
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
[Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt).
PXT ([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
```
If the local server opens in the wrong browser, make sure to copy the URL containing the local token.
Otherwise, the editor will not be able to load the projects.
If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt`` flag:
```
pxt serve -yt
```
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

@ -8,6 +8,6 @@
"module": "commonjs",
"rootDir": ".",
"newLine": "LF",
"sourceMap": true
"sourceMap": false
}
}

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

@ -1,6 +1,6 @@
# micro:bit - the device
The micro:bit device #docs
The micro:bit device
The micro:bit is a very capable device with many components:

View File

@ -1,6 +1,6 @@
# Error codes
The micro:bit error codes #docs
The micro:bit error codes
Your micro:bit may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your micro:bit screen (see picture) followed by an error number.

View File

@ -1,6 +1,6 @@
# The micro:bit - a reactive system
The micro:bit is a reactive system. #docs
The micro:bit is a reactive system.
### Computing systems

View File

@ -1,8 +1,36 @@
# 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(`
. # . # .
# . # . #
# . . . #
. # . # .
. . # . .`);
});
```
* **[getting started](/getting-started)**
* Browse the [API reference](/reference)
* Learn more about the [device](/device)
* Get started with [lessons](/lessons)
* Learn about [libraries](/libraries) (possibly using C++)
* Frequently Asked Question [faq](/faq)
* Follow up with the [release notes](/release-notes)
### Developers
* Learn about [packages](/packages) (possibly using C++ or ARM thumb)

6
docs/faq.md Normal file
View File

@ -0,0 +1,6 @@
# Frequently Asked Questions
## Where can I get a BBC micro:bit?
More information at [http://uk.farnell.com/bbc-microbit](http://uk.farnell.com/bbc-microbit).

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

@ -0,0 +1,273 @@
# Getting started
Are you ready to build cool BBC micro:bit programs?
Here are some challenges for you. Unscramble the blocks in the editor
to make real programs that work!
### Happy face
There are three blocks in the editor (the area to the left).
They should look like this:
```blocks
basic.forever(() => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .
`)
basic.showLeds(`
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
`)
});
```
When you run this program, you will see a smiley face, then a blank
screen, then a smiley again -- it never stops! (That's because of the
``forever`` block.)
To move your program from your computer to the BBC micro:bit:
* Connect your micro:bit to the computer with the USB cable.
* Click **Compile**.
* Drag and drop the new file whose name ends in **.hex** into the **MICROBIT** window.
* Wait until the yellow light stops blinking!
### Happy unhappy face
Draw an unhappy face instead of the blank screen. Click on the dots
in the second ``show leds`` block until it matches the blocks below.
Now you have an **animation** (cartoon) that shows a happy face,
then an unhappy one, then a happy one again, forever (or until
you turn off your micro:bit)!
```blocks
basic.forever(() => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .
`)
basic.showLeds(`
. . . . .
. # . # .
. . . . .
. # # # .
# . . . #
`)
});
```
To move your program from your computer to the BBC micro:bit:
* Connect your micro:bit to the computer with the USB cable.
* Click **Compile**.
* Drag and drop the new file whose name ends in **.hex** into the **MICROBIT** window.
* Wait until the yellow light stops blinking!
### Your turn!
Pile up more ``show leds`` blocks to create your animation! Create an
animation with at least 5 pictures. What does this animation show?
```blocks
basic.forever(() => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .
`)
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# # # # #
. . . . .
`)
basic.showLeds(`
. . . . .
. # . # .
. . . . .
. # # # .
# . . . #
`)
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# # # # #
. . . # #
`)
basic.showLeds(`
. . . . .
# . # . .
. . . . .
# . . . #
. # # # .
`)
basic.showLeds(`
. . . . .
. . # . #
. . . . .
# . . . #
. # # # .
`)
});
```
To move your program from your computer to the BBC micro:bit:
* Connect your micro:bit to the computer with the USB cable.
* Click **Compile**.
* Drag and drop the new file whose name ends in **.hex** into the **MICROBIT** window.
* Wait until the yellow light stops blinking!
#### ~hint
You can find the ``show leds`` block in the **Basic** part of the editor.
#### ~
### Button A and button B
This program will show the word **anteater** on the LED
screen when you press button `A`.
```blocks
input.onButtonPressed(Button.A, () => {
basic.showString("anteater");
});
```
#### ~hint
The ``showString`` block can show letters, numbers, and punctuation
on the micro:bit screen.
#### ~
Now try to unscramble these blocks in the editor so that the micro:bit
shows **banana** when you press button `B`.
```shuffle
input.onButtonPressed(Button.B, () => {
basic.showString("banana");
});
```
#### ~hint
You can find the letter `B` by clicking the letter `A` on the
``onButtonPressed`` block.
#### ~
#### Your turn!
Can you combine these blocks so your program shows your real name
instead of **anteater** when you press `A`, but _your secret agent
name_ instead of **banana** when you press `B`?
### Shake
You can find when someone is shaking the BBC micro:bit by checking its
**accelerometer** (it finds whether the micro:bit is speeding up or
slowing down).
Unscramble these blocks in the editor to show a frownie when someone
shakes the micro:bit. (Ouch!)
```shuffle
input.onGesture(Gesture.Shake, () => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
. # # # .
# . . . #`);
});
```
### Tilting with gestures
You can also find when someone is tilting the micro:bit left or right,
face up or face down, and logo up or logo down (the logo is the yellow
oval picture at the top of the board). Tilting a micro:bit like this
is called a **gesture**.
Try to build a Rock Paper Scissors game where you tilt the micro:bit
left to show paper, right to show scissors, and down to show rock.
Unscramble these blocks in the editor and try this program on a real
micro:bit!
```shuffle
input.onGesture(Gesture.TiltLeft, () => {
basic.showLeds(`
# # # # #
# . . . #
# . . . #
# . . . #
# # # # #`);
});
input.onGesture(Gesture.LogoDown, () => {
basic.showLeds(`
. . . . .
. # # # .
. # # # .
. # # # .
. . . . .`);
});
input.onGesture(Gesture.TiltRight, () => {
basic.showLeds(`
# # . . #
# # . # .
. . # . .
# # . # .
# # . . #`);
});
```
### Pins
You can also use the pins as buttons. (The pins are the holes in the
metal stripe at the bottom of the micro:bit board.) For example, hold
the ``GND`` button with one hand and touch the ``0`` pin (called
``P0``) with your other hand to tell the micro:bit you're pressing it.
Unscramble the blocks in the editor to show a smiley when you press
pin ``P0``.
```shuffle
input.onPinPressed(TouchPin.P0, () => {
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .`);
});
```
### Your turn!
Use the screen, buttons, gestures, and pins to make your own fun game
with the BBC micro:bit! What about some of these?
* A backpack burglar alarm
* Daily news broadcaster for your class
* Animated jewelry
* A _complete_ animated cartoon
* A calculator
* A music box
These are all things you can make with the BBC micro:bit by itself.
Just think what you can do if you connect the micro:bit's pins to
extra parts like microphones and other **sensors**!

View File

@ -5,9 +5,6 @@
### ~column
## O365 Integration
* [Science Experiments: Chart](/lessons/charting), create an app for simulating and measuring sensor data of acceleration, temperature, light level, and rotation
## Beginner
* [Beautiful Image](/lessons/beautiful-image), show a beautiful image with show LEDs
@ -37,7 +34,7 @@
* [Rock Paper Scissors](/lessons/rock-paper-scissors), create the classic game of rock paper scissors with if statement
* [Truth or Dare](/lessons/truth-or-dare), a game that forces each player to reveal a secret or do something funny with if statement
* [Spinner](/lessons/spinner), spin the arrow with multiple if statements
* [Die Roll](/lessons/die-roll), spin with more if statements
* [Dice Roll](/lessons/dice-roll), spin with more if statements
* [Looper](/lessons/looper), display a series of numbers with a for loop index
* [Strobe Light](/lessons/strobe-light), develop shapes with a nested for loops
* [Temperature](/lessons/temperature), get the ambient temperature (degree Celsius °C)
@ -60,6 +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
* [Seismograph](/lessons/seismograph), create a seismograph with household items
## Advanced
* [Prank WiFi](/lessons/prank-wifi), create fake WiFi to trick your friends
* [Speed Button](/lessons/speed-button), code a speed game with running time
@ -70,5 +71,4 @@
### @section full
The lessons promote computational thinking and computer science literacy[ read more...](/lessons/teach)
The lessons promote computational thinking and computer science literacy[ read more...](/lessons/teach)

View File

@ -1,8 +1,6 @@
# answering machine blocks lesson
create an answering machine on the BBC micro:bit #docs
### @video td/videos/answering-machine-0
Create an answering machine on the BBC micro:bit
## Topic
@ -25,12 +23,8 @@ Learn how to creating a message with a **string**, `show string` to write your m
```cards
basic.showString('Hi!')
input.onButtonPressed(Button.A, () => {})
```
* **on button pressed** : [read more...](/reference/input/on-button-pressed)
## Objectives
* learn how to show a string on the LED screen one character at a time

View File

@ -4,7 +4,6 @@ Learn to create an answering machine on the micro:bit
### ~avatar avatar
### @video td/videos/answering-machine-0
Let's learn how to create an answering machine!

View File

@ -12,8 +12,6 @@ basic.showString("ASK ME A QUESTION")
### Challenge 1
### @video td/videos/answering-machine-1
Now we need to reply after someone asks micro:bit a yes or no question. We want to respond `YES` when button `A` is pressed. Add a condition for button `A` and inside it show the string `YES`.
```blocks
@ -21,15 +19,12 @@ basic.showString("ASK ME A QUESTION")
input.onButtonPressed(Button.A, () => {
basic.showString("Yes")
})
```
* `Run` the code to see if it works as expected.
### Challenge 2
### @video td/videos/answering-machine-2
What if micro:bit's answer to the question is no? Let's have `NO` be displayed when button `B` is pressed. Add a condition for button `B` and inside it show the string `NO`.
```blocks
@ -45,7 +40,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

@ -1,8 +1,6 @@
# beautiful image lesson
display beautiful images on the BBC micro:bit.
### @video td/videos/beautiful-image-0
Display beautiful images on the BBC micro:bit.
## Topic

View File

@ -4,8 +4,6 @@ Generate and show a beautiful image.
### ~avatar avatar
### @video td/videos/beautiful-image-0
Let's learn how to show an image on the LED screen.
### ~

View File

@ -18,8 +18,6 @@ basic.showLeds(`
### Challenge 1
### @video td/videos/beautiful-image-1-2
Now show an new image that will display on the micro:bit.
```blocks
@ -39,9 +37,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

@ -0,0 +1,48 @@
# beautiful image blocks challenges
Beautiful Image tutorial.
### ~avatar avatar
### @video td/videos/beautiful-image-0
Rebuild the game!
The blocks have been shuffled! Put them back together so that…
* display images on the screen with show LEDs
```shuffle
basic.showLeds(`
# # # # #
# # . # #
# . # . #
# # . # #
# # # # #
`)
basic.showLeds(`
# . # . #
. # # # .
. . # . .
. # # # .
# . # . #
`)
basic.pause(100)
```
Hints and tips
Cut out these documentation cards to help you!
```cards
basic.showLeds(`
. . . . .
. . . . .
. . # . .
. . . . .
. . . . .
`)
basic.pause(100)
```

View File

@ -2,8 +2,6 @@
Learn how to create a blinking LED.
### @video td/videos/blink-0
## Topic
Plot
@ -30,7 +28,6 @@ basic.pause(100)
basic.forever(() => {})
```
## Objectives
* learn how to turn on LED lights on the LED screen

View File

@ -4,7 +4,15 @@ Turn an LED on and off with forever
### ~avatar avatar
### @video td/videos/blink-0
```sim
basic.forever(() => {
led.plot(2, 2)
basic.pause(500)
led.unplot(2, 2)
basic.pause(500)
})
```
Let's build a blinking light!
### ~
@ -43,7 +51,6 @@ basic.forever(() => {
led.unplot(2, 2)
basic.pause(500)
})
```
### ~avatar boothing

View File

@ -17,8 +17,6 @@ basic.forever(() => {
### Challenge 1
### @video td/videos/blink-1
Let's display a "smiley face" on the screen! We'll start by plotting the eyes.
Add `plot(1,1)` and `plot(3,1)` under `plot(2,2)` ; then add `unplot(1,1)`, `unplot(3,1)` and `unplot(2,2)` after `pause`. When you're ready, don't forget to run your code to try it out!
@ -38,8 +36,6 @@ basic.forever(() => {
### Challenge 2
### @video td/videos/blink-2
Let's add the code to plot the mouth by using `plot` and `unplot` to the following coordinates: (1,4), (2,4) and (3,4). When you're ready, don't forget to run your code to try it out!
```blocks
@ -63,8 +59,6 @@ basic.forever(() => {
### Challenge 3
### @video td/videos/blink-3
Let's keep using `plot` to convert the mouth into a smiley face.
```` bitmatrix

View File

@ -1,6 +1,6 @@
# blocks - if statements
An introduction to conditions for the Block Editor. #docs
An introduction to conditions for the Block Editor.
## Introduction to conditions

View File

@ -1,6 +1,6 @@
# bop it challenges
a game similar to "Simon Says" with the BBC micro:bit. #docs
a game similar to "Simon Says" with the BBC micro:bit.
## Before we get started

View File

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

@ -2,8 +2,6 @@
A game to catch eggs in a basket.
### @video td/videos/catch-the-egg-game-0
## Topic
Variables
@ -11,6 +9,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 +19,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:
@ -110,8 +108,6 @@ basic.forever(() => {
### Challenge 3
### @video td/videos/catch-the-egg-game-4
Let's make the egg fall faster by decreasing the amount of time it pauses in each position by decreasing **falling pause** by `25` every 5 catches. Now, instead of pausing for 300 milliseconds we can pause for the value of **falling pause**.
```blocks

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,6 +1,6 @@
# blocks - challenges
Extra stuff for the Block Editor - an introduction to GPIO #docs
Extra stuff for the Block Editor - an introduction to GPIO
## Before we get started

View File

@ -7,7 +7,7 @@ Create a charting app for simulating and measuring the acceleration applied to t
Acceleration
## Quick Links
* [activity](/lessons/charting/acceleration)
* [activity](/lessons/charting/activity)
* [challenge](/lessons/charting/challenge)
* [quiz](/lessons/charting/quiz)
* [answers](/lessons/charting/quiz-answers)

View File

@ -13,7 +13,6 @@ Let's measure `acceleration (mg)` in the "x" direction. Get the acceleration val
```blocks
input.acceleration(Dimension.X)
```
### ~
@ -41,7 +40,7 @@ Vigorously move the micro:bit in the micro:bit simulatator by moving the micro:b
We want to chart the data collected by using a tool in Excel.
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local Downloads Folder.
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local ``Downloads`` Folder.
### ~
@ -57,29 +56,13 @@ Use the Recommended Charts command on the Insert tab to quickly create a chart t
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
![](/static/mb/lessons/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
![](/static/mb/chart_title.png)
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
![](/static/mb/elements_styles_filters.png)
* Connect a micro:bit to your computer using your USB cable; compile; and repeat this experiment by moving the micro:bit in the "x" direction. Then collect and chart the data on Excel.
* Review and analyze the actual micro:bit device data on Excel
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data. Pick the **scatter plot**.
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/lessons/charting/acceleration-challenge)
Excellent, you're ready to continue with the [challenges](/lessons/charting/challenge)
### ~

View File

@ -2,7 +2,8 @@
### ~avatar avatar
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit.
Let's get started!
### ~
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
@ -52,7 +53,7 @@ Notice that moving the micro:bit the farthest direction in the x direction will
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bits are blue and green. So the colors of the line graphs reflect the colors of the micro:bit
### ~
After running this simulatation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
After running this simulation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
![](/static/mb/acc2.png)
@ -67,15 +68,9 @@ Use the Recommended Charts command on the Insert tab to quickly create a chart t
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
![](/static/mb/lessons/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data. Pick the **scatter plot**.
![](/static/mb/chart_title.png)
@ -91,4 +86,3 @@ Have fun reviewing your simulation and analyze the acceleration by chart the Exc
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
* Review and analyze the actual micro:bit device acceleration data on Excel
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"

View File

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

@ -2,8 +2,6 @@
create a die on the BBC micro:bit.
### @video td/videos/compass-0
## Topic
If (Conditionals)

View File

@ -2,8 +2,6 @@
Learn how to create a counter with with on button pressed.
### @video td/videos/counter-0
## Topic
Variables

View File

@ -4,8 +4,6 @@ Display a number with a variable.
### ~avatar avatar
### @video td/videos/counter-0
Welcome! This tutorial will teach you how to make a counter that increments when button A is pressed. Let's get started!
### ~

View File

@ -16,8 +16,6 @@ input.onButtonPressed(Button.A, () => {
### Challenge 1
### @video td/videos/counter-1-2
Let's add the code to `count` when `B` is pressed. Add an event handler with `on button pressed(B)` then add the code to `count`.
@ -33,7 +31,6 @@ input.onButtonPressed(Button.B, () => {
})
```
### Challenge 3
Now let's try to reset the counter when the micro:bit is shaken. You will need to register an event handler with `on shake`.

View File

@ -1,8 +1,6 @@
# die roll lesson
# dice roll lesson
create a die on the BBC micro:bit.
### @video td/videos/die-roll-0
Create a dice on the BBC micro:bit.
## Topic
@ -10,10 +8,10 @@ If (Conditionals)
## Quick Links
* [activity](/lessons/die-roll/activity)
* [challenges](/lessons/die-roll/challenges)
* [quiz](/lessons/die-roll/quiz)
* [quiz answers](/lessons/die-roll/quiz-answers)
* [activity](/lessons/dice-roll/activity)
* [challenges](/lessons/dice-roll/challenges)
* [quiz](/lessons/dice-roll/quiz)
* [quiz answers](/lessons/dice-roll/quiz-answers)
## Prior learning/place of lesson in scheme of work

View File

@ -1,12 +1,10 @@
# die roll activity
# dice roll activity
Create a die on the micro:bit
Create a dice on the micro:bit
### ~avatar avatar
### @video td/videos/die-roll-0
Welcome! This tutorial will help you create a die. Let's get started!
Welcome! This tutorial will help you create a dice. Let's get started!
### ~
@ -19,7 +17,7 @@ input.onGesture(Gesture.Shake, () => {
})
```
We need to show a random value from 1 to 6 on our die. So let's make a local variable called **roll**.
We need to show a random value from 1 to 6 on our dice. So let's make a local variable called **roll**.
```blocks
input.onGesture(Gesture.Shake, () => {
@ -27,7 +25,7 @@ input.onGesture(Gesture.Shake, () => {
})
```
We need a condition for if **roll** is 5. We will show a `6` if **roll** is 5 because **roll** has a range from 0 to 5. We can use `show LEDs` to display the side of a die that shows 6.
We need a condition for if **roll** is 5. We will show a `6` if **roll** is 5 because **roll** has a range from 0 to 5. We can use `show LEDs` to display the side of a dice that shows 6.
```blocks
@ -45,7 +43,7 @@ input.onGesture(Gesture.Shake, () => {
```
Let's use an `else if` condition for if **roll** is 4. If **roll** is 4 we can show 5 dots on the die.
Let's use an `else if` condition for if **roll** is 4. If **roll** is 4 we can show 5 dots on the dice.
```blocks
@ -72,7 +70,7 @@ input.onGesture(Gesture.Shake, ()=> {
```
Now we need to repeat the same steps for if **roll** is 3. If **roll** is 3 we will show `4` on the die.
Now we need to repeat the same steps for if **roll** is 3. If **roll** is 3 we will show `4` on the dice.
```blocks
@ -106,7 +104,7 @@ input.onGesture(Gesture.Shake, () => {
```
Let's also repeat these steps to show the 3, 2, and 1 on the die. We are almost done with our die!
Let's also repeat these steps to show the 3, 2, and 1 on the dice. We are almost done with our dice!
```blocks
input.onGesture(Gesture.Shake, () => {
@ -165,7 +163,7 @@ input.onGesture(Gesture.Shake, () => {
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/lessons/die-roll/challenges)!
Excellent, you're ready to continue with the [challenges](/lessons/dice-roll/challenges)!
### ~

View File

@ -1,10 +1,10 @@
# die roll challenges
# dice roll challenges
Create a die on the micro:bit.
Create a dice on the micro:bit.
## Before we get started
Complete the following [guided tutorial](/lessons/die-roll/activity), your code should look like this:
Complete the following [guided tutorial](/lessons/dice-roll/activity), your code should look like this:
```blocks
input.onGesture(Gesture.Shake, () => {
@ -62,7 +62,7 @@ input.onGesture(Gesture.Shake, () => {
### Challenge 1
Modify the line of code with `pick random` so that only number 1-4 can appear on the die.
Modify the line of code with `pick random` so that only number 1-4 can appear on the dice.
```blocks
@ -121,7 +121,7 @@ input.onGesture(Gesture.Shake, () => {
### Challenge 2
Let's make a trick die! Modify the line of code with `pick random` so that only numbers 3-6 can appear on the die. Also note that we need to ensure `roll = 0` when only 1 dot is shown on the BBC micro:bit.
Let's make a trick dice! Modify the line of code with `pick random` so that only numbers 3-6 can appear on the dice. Also note that we need to ensure `roll = 0` when only 1 dot is shown on the BBC micro:bit.
```blocks
input.onGesture(Gesture.Shake, () => {

View File

@ -1,8 +1,8 @@
# die roll quiz answers
# dice roll quiz answers
Create a die when the BBC micro:bit is shaken
Create a dice when the BBC micro:bit is shaken
These are the answers to the [die roll quiz](/lessons/die-roll/quiz).
These are the answers to the [dice roll quiz](/lessons/dice-roll/quiz).
## 1. Create a variable named 'roll' that will be randomly assigned to a number between 0 and 5.

View File

@ -1,12 +1,12 @@
# die roll quiz
# dice roll quiz
Create a die when the BBC micro:bit is shaken
Create a dice when the BBC micro:bit is shaken
## Name
## Directions
Use this activity document to guide your work in the [die roll tutorial](/lessons/die-roll/activity).
Use this activity document to guide your work in the [dice roll tutorial](/lessons/dice-roll/activity).
Answer the questions while completing the tutorial. Pay attention to the dialogues!

View File

@ -1,8 +1,6 @@
# digi yoyo lesson
create a counter with a while loop.
### @video td/videos/digi-yoyo-0
Create a counter with a while loop.
## Topic

View File

@ -4,8 +4,6 @@ Create a counter with a while loop.
### ~avatar avatar
### @video td/videos/digi-yoyo-0
Welcome! This tutorial will teach how to create a counter with a while loop. Let's get started!
### ~

View File

@ -40,8 +40,6 @@ while (count > 0) {
### Challenge 2
### @video td/videos/digi-yoyo-1-2
Inside of the while loop, let's add `pause->(1000)` so that we have a pause between each number as it's counting down. Also, let's show `count`!

View File

@ -2,8 +2,6 @@
Learn how to create LED images with a global variable.
### @video td/videos/flashing-heart-0
## Topic
Pause

View File

@ -4,8 +4,6 @@ Control images with a variable.
### ~avatar avatar
### @video td/videos/flashing-heart-0
In this activity, you will learn how to blink an image on the LED screen.
### ~

View File

@ -25,8 +25,6 @@ basic.forever(() => {
### Challenge 1
### @video td/videos/flashing-heart-1
Let's plot a different image. Let's display a broken heart!
To do this, you need to add a block between the last line and the end loop. Add a `show LEDs` block and then add a `pause` of 500 milliseconds.
@ -60,8 +58,6 @@ basic.forever(() => {
### Challenge 2
### @video td/videos/flashing-heart-2
Now let's alternate flashing the heart and the broken heart. To do this, we need to add a `clear screen` block and then add a `pause` block of 500 milliseconds under the new code we added in Challenge 1.

View File

@ -2,8 +2,6 @@
Learn how to create a counter with with on button pressed.
### @video td/videos/counter-0
## Topic
Game Library

View File

@ -1,13 +1,5 @@
# game counter activity
Turn an LED on and off with forever loop
### ~avatar avatar
### @video td/videos/counter-0
### ~
Have you ever tried to create a game counter? The concept is fairly simply: increase the game `score` with `on button pressed` .
Let's start by adding `on button (A) pressed` will run each time the user presses A. Let's add a line of code that increments `score` by `1`.

View File

@ -15,8 +15,6 @@ input.onButtonPressed(Button.A, () => {
### Challenge 1
### @video td/videos/counter-1-2
Let's add the code to `score` when `B` is pressed. Add an event handler with `on button (B) pressed` then add the code to `score`.

View File

@ -1,6 +1,6 @@
# game of chance blocks lesson
create an answering machine on the BBC micro:bit #docs
create an answering machine on the BBC micro:bit
## Topic

View File

@ -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(() => {
})
@ -16,6 +35,13 @@ 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.
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
});
@ -25,9 +51,15 @@ Since the micro:bit will be swinging back and forth, the acceleration will only
```blocks
let acceleration = 0;
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
acceleration = input.acceleration(Dimension.Y);
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration)
});
```
@ -35,6 +67,13 @@ basic.forever(() => {
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.
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
@ -46,37 +85,19 @@ basic.forever(() => {
Now let's use our acceleration value to set the brightness on the micro:bit.
```blocks
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
});
```
Let's show what the brightness of the micro:bit is by turning all the LEDs on!
```blocks
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
});
```
### ~avatar avatar

View File

@ -24,13 +24,13 @@ basic.forever(() => {
```
**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

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

@ -1,6 +1,6 @@
# blocks - rendering graphics
An introduction to graphics for the Block Editor. #docs
An introduction to graphics for the Block Editor.
## Before we get started

View File

@ -2,8 +2,6 @@
Learn to create a random number with input from button A.
### @video td/videos/guess-the-number-0
## Topic
Math - Pick Random
@ -11,6 +9,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

@ -4,8 +4,6 @@ Guess the number with math random.
### ~avatar avatar
### @video td/videos/guess-the-number-0
Welcome! This tutorial will help you create a guess the number game! Let's get started!
### ~
@ -19,12 +17,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 +31,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

@ -15,8 +15,6 @@ input.onButtonPressed(Button.A, () => {
### Challenge 1
### @video td/videos/guess-the-number-2
When button `B` is pressed, we want to clear the screen. This will make it so users can play your game over and over again! Add an event handler to handle this case.
```blocks

View File

@ -0,0 +1,23 @@
# guess the number tutorial
### ~avatar avatar
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

@ -2,8 +2,6 @@
Learn to control blinking LEDs.
### @video td/videos/looper-0
## Topic
For Loop

View File

@ -1,13 +1,5 @@
# looper blocks activity
Display a series of numbers with a for loop.
### ~avatar avatar
### @video td/videos/looper-0
### ~
Welcome! This activity will teach how to display a series of numbers for a for loop. Let's get started!
Let's create a for loop where `0` is the loop's starting value, `i` is the index variable, and `5` is the ending value. The index variable `i` starts at 0 and increases by 1 each time through the loop. The loop ends when `i = 5`.

View File

@ -20,8 +20,6 @@ for (let i = 0; i < 6; i++) {
### Challenge 1
### @video td/videos/looper-1
What if we want to count up to lucky number 7 instead? Let's do that by changing the ending value to `7` instead of `5`.
@ -37,8 +35,6 @@ for (let i = 0; i < 8; i++) {
### Challenge 2
### @video td/videos/looper-2
What about 9? Let's do that by changing the ending value to `9`.
```blocks
@ -55,8 +51,6 @@ for (let i = 0; i < 10; i++) {
### Challenge 3
### @video td/videos/looper-3
Now let's start counting from `3` instead! Our for loop will always start at `0` so we simply add `3` to the `i` variable when passing it to `show number`.
```blocks
@ -72,8 +66,6 @@ Run it on the simulator!
### Challenge 4
### @video td/videos/looper-4
Now, let's **count down from 9**. Change the line `show number(i + 2, 150)` to `show number(9 - i, 150)`.
```blocks

View File

@ -1,6 +1,6 @@
# blocks - loops
An introduction to Loops for the Block Editor. #docs
An introduction to Loops for the Block Editor.
We may want to handle the users input multiple times or remain waiting for their input for a long time. We use loops to make sure that our code runs multiple times. These can be found in the **Loops** drawer.

View File

@ -1,8 +1,6 @@
# love meter blocks lesson
create a love meter with the BBC micro:bit.
### @video td/videos/love-meter-0
Create a love meter with the BBC micro:bit.
## Topic

View File

@ -4,8 +4,6 @@ Create a love meter with the micro:bit
### ~avatar avatar
### @video td/videos/love-meter-0
Welcome! This activity will help you create a love meter with the micro:bit. Let's get started!
### ~

View File

@ -45,8 +45,6 @@ input.onPinPressed(TouchPin.P0, () => {
### Challenge 3
### @video td/videos/love-meter-3
**If** the rating is between 4 and 7, display the text "MEDIOCRE!" **else** display the text "MATCHED!"
```blocks

View File

@ -1,8 +1,6 @@
# lucky 7 blocks lesson
show a number on the LED screen.
### @video td/videos/lucky-7-0
Show a number on the LED screen.
## Topic

View File

@ -4,8 +4,6 @@ Show a number on the LED screen.
### ~avatar avatar
### @video td/videos/lucky-7-0
Let's learn how to show the lucky number 7 on the LED screen.
### ~

View File

@ -21,8 +21,6 @@ basic.pause(500)
### Challenge 2
### @video td/videos/lucky-7-1-2
What about other multiples of 7? Let's display the next multiple of 7 on the screen!
```blocks
@ -35,5 +33,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

@ -0,0 +1,31 @@
# lucky 7 blocks challenges
Coding challenges for lucky 7.
###~ Avatar
### @video td/videos/lucky-7-1-2
### Rebuild the game!
The blocks have been shuffled! Put them back together so that…
* The blocks should be multiples of 7 and a pause between the numbers
```shuffle
basic.showNumber(7)
basic.pause(500)
basic.showNumber(14)
```
### Hints and tips
Cut out these documentation cards to help you!
```cards
basic.showNumber()
basic.pause()
```
* Run the code to see if it works as expected.

View File

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

@ -2,7 +2,7 @@
show an image that points up when the logo is up.
### @video td/videos/magic-logo-0
## Topic

View File

@ -4,8 +4,6 @@ Show an image that points up when the logo is up.
### ~avatar avatar
### @video td/videos/magic-logo-0
Welcome! This tutorial will help you display an arrow pointing toward the logo! Let's get started.
### ~
@ -30,8 +28,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

@ -24,8 +24,6 @@ input.onLogoUp(() => {
How about when the logo is down? We should display an arrow pointing downward!
### @video td/videos/magic-logo-1-2
```blocks
input.onLogoUp(() => {
basic.showLeds(`

View File

@ -2,8 +2,6 @@
change the brightness of the BBC micro:bit.
### @video td/videos/night-light-0
## Topic
Set Brightness

View File

@ -4,8 +4,6 @@ Change the brightness of the micro:bit.
### ~avatar avatar
### @video td/videos/night-light-0
Welcome! This tutorial will teach you how to change the brightness of the micro:bit. Let's get started!
### ~

View File

@ -23,7 +23,7 @@ input.onButtonPressed(Button.A, () => {
```
### Challenge 1
### @video td/videos/night-light-2
What if we want to turn off all the LEDs? Let's do this by setting the brightness to `0` when button `B` is pressed. Add an event handler with `on button pressed(B)` add `set brightness(0)` to turn off the LEDs.
@ -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

@ -1,6 +1,6 @@
# offset image challenges
Coding challenges for the offset image tutorial. #docs
Coding challenges for the offset image tutorial.
## Before we get started
@ -55,7 +55,7 @@ input.onButtonPressed(Button.B, () => {
### Challenge 2
### @video td/videos/offset-image-2
Now we want to make sure that the button does not go off the screen to the right. Add a new line that checks to see if offset = 5 after button `A` is pressed.
@ -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

@ -1,8 +1,6 @@
# prank wifi lesson
create a fake wifi app to trick your friends.
create a fake wifi app to trick your friends
Create a fake wifi app to trick your friends
* [activity](/lessons/prank-wifi/activity)
* [quiz](/lessons/prank-wifi/quiz)

View File

@ -1,6 +1,6 @@
# prank wifi challenges
create a fake wifi app to trick your friends. #docs
create a fake wifi app to trick your friends.
## Before we get started
@ -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

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

View File

@ -4,7 +4,7 @@ A classic game against the micro:bit.
### ~avatar avatar
### @video td/videos/rock-paper-scissors-0
Welcome! This tutorial will help you create a game of rock paper scissors with the micro:bit. Let's get started!

View File

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

View File

@ -93,7 +93,7 @@ input.onButtonPressed(Button.A, () => {
### Challenge 2
### @video td/videos/rotation-animation-1-and-2
Now that we have the on button pressed condition, let's make the animation stop rotating by setting the rotating global variable to false when button `A` is pressed.

View File

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

View File

@ -4,7 +4,7 @@ Clear the screen by pressing buttons on the micro:bit
### ~avatar avatar
### @video td/videos/screen-wipe-0
This activity will teach how to clear the screen by pressing button A on the micro:bit.

View File

@ -4,7 +4,7 @@ Coding challenges for screen wipe.
## Before we get started
Complete the [screen wipe](/lessons/screen-wipe) activity and your code will look like this:
Complete the [screen wipe](/lessons/screen-wipe/activity) activity and your code will look like this:
```blocks
basic.showLeds(`
@ -41,7 +41,7 @@ input.onButtonPressed(Button.A, () => {
```
**Challenge 1**
### Challenge 1
Create an event handler for Button B.
@ -83,9 +83,9 @@ input.onButtonPressed(Button.B, () => {
```
**Challenge 2**
### Challenge 2
### @video td/videos/screen-wipe-2
Replay the animation when the "B" button is pressed placing the `show LEDs` block on the canvas.
@ -155,7 +155,7 @@ basic.showLeds(`
```
**Challenge 3**
### Challenge 3
Show an animation that scrolls back up when you press button "B".

View File

@ -9,7 +9,7 @@ Acceleration & Analog Read Pin
## Quick Links
* [activity](/lessons/seismograph/activity)
* [challenge](/lessons/seismograph/challenges)
* [challenge](/lessons/seismograph/challenge)
## Prior learning/place of lesson in scheme of work
@ -18,11 +18,12 @@ Learn how to **show LEDs** to turn on a LED light pattern on the LED screen. We
## Documentation
```cards
basic.forever(() => {
});
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
led.plotBarGraph(pins.analogReadPin(AnalogPin.P0), 0);
basic.forever(() => {});
radio.sendNumber(0);
input.acceleration(Dimension.Strength)
radio.onDataReceived(() => {});
led.plotBarGraph(0, 0);
radio.receiveNumber();
```
## Objectives

View File

@ -1,53 +1,56 @@
# Seismograph Activity
Welcome! In this project, you will build your own seismograph. This activity will teach how to use the micro:bit to chart the strength of the acceleration. Let's get started! Project duration: 25 minutes.
### ~avatar avatar
In this project, you will build your own seismograph.
Engineering: In this project, you will build your own seismograph micro:bit from tape and a household plate.
### ~
## What you'll need:
* micro:bit
* USB cable
* BBC micro:bit
* micro USB cable
* Plate
* Tape
* Scissors
* Glue gun
* String
* Cup (Plastic or Paper)
* Magnet
Welcome! This activity will teach how to use the micro:bit to chart the strength of the acceleration. Let's get started!
![](/static/mb/lessons/seismograph11.png)
1. Setup Cup: Use scissors to cut a usable window on the cup, which will be a square sized hole at the lid side of the cup. Use scissors to create a small hole in the center of the base of the cup.
# Engineering Steps
2. Fasten Magnet: Fasten end of the string to the magnet with glue
## 1.
3. Secure String: Fasten string to base of the cup and hang the remaining string outside the base of the cup.
Prepare Tape: Measure and cut approximately 10mm of tape. The tape will be fastened to a micro USB cable.
![](/static/mb/lessons/seismograph1.png)
## 2.
Fasten Tape: Fasten tape to the micro USB cable and to the plate. Attach the micro:bit to the micro:bit USB cable.
![](/static/mb/lessons/seismograph0.png)
### ~avatar avatar
Seismograph built, let's code!
Computer Science: The seismograph has been built. We are ready to program the micro:bit to be a seismograph!
### ~
4. Go to Codemicrobit.com
Click or tap Create Code
Click or tap Block Editor
# Programming Steps
### ~
## 3.
5.
We will measure `acceleration (mg)` in terms of strength. Get the acceleration value (milli g-force), as measured in strength.
We will measure `acceleration (mg)` in terms of strength or Magnitude.
```blocks
input.acceleration(Dimension.Strength);
```
### ~
## 4.
6.
Use the plot bar chart to visualize the acceleration on the LED screen of the micro:bit in the specified range. You implement plot Bar Graph to display a vertical bar graph based on the "value" and "high" value. Then you must insert acceleration in based on strength.
Use the plot bar chart to visualize the acceleration on the LED screen. Use a forever to keep reading the acceleration value and displaying it on the screen.
```blocks
basic.forever(() => {
@ -56,11 +59,9 @@ basic.forever(() => {
```
### ~
## 6.
7.
Finally, we subtract the gravity from acceleration strength.
At rest, the micro:bit is always subject to Earth gravity, whose magnitude is measured around ``1023``. Substract ``1023`` to measure a data close to ``0``.
```blocks
basic.forever(() => {
@ -71,76 +72,113 @@ basic.forever(() => {
### ~
8.
Notice that making vibrating the object below the micro:bit changes the values and the line appears as a wave to display the value of the strength as measured in milli-gravities. By making the object below the micro:bit vibrate, you will observe changing values of the micro:bit. Also, the LEDs shown on the Bar Graph fluctates based on the movement of the micro:bit strength.
NOTE: The black color reflects the micro:bit device.
![](/static/mb/data4.png)
### ~avatar avatar
Data Analysis: We now need to use the micro:bit to Analyze Data and chart for the strength of the acceleration.
### ~
9.
# Data Analysis Steps
## 7.
First, notice that moving the micro:bit in the simulator in any direction, you will change the acceleration value, which is being displayed as the same color as the micro:bit simulator. Also, notice that by moving the micro:bit simulator, there is a changing acceleration value. Second, the flat colored horizontal line will start a waving line to display the value of the strength as measured in milli-gravities. Finally, notice that the LED display will fluctate based on the movement of the micro:bit simulator.
![](/static/mb/lessons/analyze20.png)
## 8.
Vigorously move the micro:bit in the micro:bit simulatator by moving the micro:bit image from side to side. Every time the micro:bit moves in the x direction in the simulator, you are generating data points that can be reviewed in Excel. The more attempts to move the micro:bit from side to side, the more data being saved in Excel. After you have vigarously moved the micro:bit simulator from side to side for a sufficient amount of time, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel that can be graphed in Excel.
Connect a micro:bit to your computer using your USB cable
![](/static/mb/lessons/seismograph33.png)
Click or tap the compile button for the seismograph program to run the program on the micro:bit.
![](/static/mb/lessons/seismograph22.png)
## 9.
A black line should appear directly beneath the colored line. The black line measures the micro:bit acceleration. And the colored line measures micro:bit simulator acceleration.
Run the acceleration experiment by vigarously moving the plate in any direction or move the object below the micro:bit (such as a table).
Every time the micro:bit moves in any direction, you generate data points that can be reviewed in Excel later. The more attempts to move the micro:bit, the more data to be reviewed in Excel.
![](/static/mb/lessons/seismograph5.png)
## 10.
Please find seismogrph experiment obervations:
First, notice that moving the micro:bit in any direction, you will change the acceleration value, which is being displayed as a milli-gravities value. By moving the micro:bit, there will be a changing acceleration value.
![](/static/mb/lessons/seismograph7.png)
Second, the horizontal line will move to plot the value of the strength as measured in milli-gravities. The horizontal line's movement is based on the micro:bit acceleration in Magnitude or Strength.
![](/static/mb/lessons/seismograph6.png)
Third, notice that the LED display fluctates based on the movement of the micro:bit.
![](/static/mb/lessons/seismograph8.png)
Now we are ready to graph or chart the accceleration of the micro:bit. We want a printout of the micro:bit acceleration graphed in Excel.
## 11.
In order to receive the the data plotted by Excel, click or tap anywhere in the on the chart data.
![](/static/mb/analyze1.png)
## 12.
You have two options to Analyze Data:
* Local File: Save the data to your local Downloads folder and open it in Excel.
* Stream to Cloud: Upload your data to Microsoft Azure to analyze it.
Click or tap Download data
![](/static/mb/lessons/seismograph9.png)
## 13.
A CSV file will be generated to display the data points collected by the micro:bit. Click or tap on the data Excel file that was downloaded to your local Downloads Folder.
![](/static/mb/lessons/analyze9.png)
## 14.
Select the data that you want to include in your chart. The chart should include the first two columns: time and acceleration.
Click or tap on the first two columns (A, B) to include time and acceleration data from the micro:bit
### ~
## 15.
10.
Click or tap on Insert then select Recommended Charts. We can select a chart thats just right for the data.
We want to chart the data collected by using a tool in Excel.
![](/static/mb/analyze3.png)
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local Downloads Folder.
On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
### ~
Click on the chart type to see how your data will look in that format. When you find the chart type that you want, click it, and then click OK.
10.
![](/static/mb/lessons/analyze16.png)
Tip: If you dont see the line chart, click the All Charts tab to see the line chart.
First, click or tap on the first two columns (A, B) to include the time of the data being collected; b) the results of acceleration data on the micro:bit
## 16.
![](/static/mb/data7.png)
Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
Use the Recommended Charts command on the Insert tab to quickly create a chart thats just right for your data.
Alternatively, click or tap on the Design Ribbon.
* Select the data that you want to include in your chart.
Let's select Style 10 as an example.
* Click Insert > Recommended Charts.
### ~
11.
![](/static/mb/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
### ~
12.
![](/static/mb/chart_title.png)
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
### ~
13.
![](/static/mb/elements_styles_filters.png)
* Connect a micro:bit to your computer using your USB cable; compile; and repeat this experiment by vibrating the micro:bit. Then chart the data on Excel.
![](/static/mb/lessons/analyze19.png)
### ~avatar avatar

View File

@ -1,94 +1,198 @@
# Challenge
# Seismograph Challenge
### ~avatar avatar
Coding challenges for the seismograph.
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
### ~avatar avatar
Engineering: In this project, you will build a remote control based on the seismograph micro:bit activity using a second micro:bit and micro USB cable.
### ~
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X));
```
### ~
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
## What you'll need:
* BBC micro:bits (2)
* micro USB cables (2)
* Plate
* Tape
* Scissors
![](/static/mb/lessons/seis_challenge01.png)
## Before we get started
Complete the [seismograph](/lessons/seismograph/activity) activity and your code will look like this:
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
});
```
### ~avatar avatar
Computer Science: Welcome! The activity will teach you how to code the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
### ~
# Computer Science Steps
## 1.
We want to simply detach the blocks from the recent activity. We will use blocks from the activity to create a brand new program to show the way micro:bit devices communicate through the BLE (Bluetooth low energy) radio.
```shuffle
basic.forever(() => {
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
});
```
### ~
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
## 2.
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
We need add send number block found in the Radio drawer. We will attach send number to acceleration and subtract the gravity from acceleration strength.
Your finished code will look like this:
```blocks
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
```
## 3.
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever. We need attach forever loop to send number.
Your finished code will look like this:
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
})
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
});
```
### ~
## 4.
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`block found in the radio drawer.
Your finished code will look like this:
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
});
radio.onDataReceived(() => {
});
```
## 5.
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
Your finished code will look like this:
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.sendNumber(input.acceleration(Dimension.Strength) - 1023);
});
radio.onDataReceived(() => {
led.plotBarGraph(radio.receiveNumber(), 1023)
})
led.plotBarGraph(radio.receiveNumber(), 0);
});
```
### ~
Notice that moving the micro:bit the farthest direction in the x direction will be -1023 on the charting beneath the simulator. The second observation will be that the LEDs will be full brightness on the 2nd micro:bit. There is a single LED turned on with the 1st micro:bit. Additionally, the graphs will reflect 0 acceleation for the 1st micro:bit. In this scenario, if you are adjusting the acceleration in the simualator, you are also changing your chart that will be produced.
![](/static/mb/acc.png)
### ~avatar avatar
Science: Welcome! The activity will teach you how to chart the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
### ~
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bits are blue and green. So the colors of the line graphs reflect the colors of the micro:bit
# Science Steps
## 6.
First, notice that moving the 1st micro:bit in the simulator in any direction, you will change the acceleration value of the 2nd micro:bit. Also, notice that by moving the micro:bit simulator, there is a changing acceleration value of the second micro:bit. Second, the flat colored horizontal line will start a waving line on the 2nd micro:bit to display the value of the strength as measured in milli-gravities. Finally, notice that the LED display will fluctate based on the movement of the 2nd micro:bit simulator.
![](/static/mb//lessons/seis_challenge02.png)
## 7.
### ~
After running this simulatation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
Connect the 2nd micro:bit to your computer using your USB cable. We should have two micro:bit devices attached to the computer.
![](/static/mb/lessons/seismograph33.png)
## 8.
Click or tap the compile button for the seismograph program to run the program on the 1st micro:bit and 2nd micro:bit.
## 9.
The black lines should appear directly beneath the colored lines. The black lines measure the micro:bit acceleration. And the colored lines measures micro:bit simulator acceleration.
![](/static/mb/lessons/seis_challenge05.png)
Run the acceleration experiment by vigarously moving the plate in any direction or move the object below the micro:bit (such as a table).
![](/static/mb/lessons/seis_challenge06.png)
Every time the micro:bit moves in any direction, you generate data points that can be reviewed in Excel later. The more attempts to move the micro:bit, the more data to be reviewed in Excel. Notice that the LED on the 2nd micro:bit changes to communicate the movement of the 1st micro:bit.
![](/static/mb/lessons/seis_challenge04.png)
Now we are ready to graph or chart the accceleration of the micro:bit. We want a printout of the micro:bit acceleration graphed in Excel.
## 10.
In order to receive the the data plotted by Excel, click or tap anywhere in the on the chart data.
![](/static/mb/lessons/seis_challenge07.png)
## 11.
You have two options to Analyze Data:
* Local File: Save the data to your local Downloads folder and open it in Excel.
* Stream to Cloud: Upload your data to Microsoft Azure to analyze it.
Click or tap Download data
![](/static/mb/lessons/seismograph9.png)
## 12.
A CSV file will be generated to display the data points collected by the micro:bit. Click or tap on the data Excel file that was downloaded to your local Downloads Folder.
![](/static/mb/lessons/analyze9.png)
## 13.
Select the data that you want to include in your chart. The chart should include the first two columns: time and acceleration.
Click or tap on the first two columns (A, B) to include time and acceleration data from the micro:bit. We only need the first two columns (A, B) because the 2nd micro:bit changes have been communicated by the 1st micro:bit. So the data points of the seismograph are being recorded on the 1st micro:bit.
## 14.
Click or tap on Insert then select Recommended Charts. We can select a chart thats just right for the data.
![](/static/mb/analyze3.png)
On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Click on the chart type to see how your data will look in that format. When you find the chart type that you want, click it, and then click OK.
![](/static/mb/lessons/analyze16.png)
Tip: If you dont see the line chart, click the All Charts tab to see the line chart.
## 15.
Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
Alternatively, click or tap on the Design Ribbon.
Let's select Style 10 as an example.
![](/static/mb/lessons/analyze19.png)
![](/static/mb/acc2.png)
### ~
Finally, you must open the Excel CSV file by clicking on the data.xls file that was downloaded to Downloads Folder.
![](/static/mb/data3.png)
Use the Recommended Charts command on the Insert tab to quickly create a chart thats just right for your data.
* Select the data that you want to include in your chart.
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
![](/static/mb/chart_title.png)
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
![](/static/mb/elements_styles_filters.png)
### ~
Have fun reviewing your simulation and analyze the acceleration by chart the Excel data using Excel.
* Connect the first micro:bit to your computer using your USB cable and run the charting script on it.
* Connect the second micro:bit to your computer using your USB cable and run the charting script on it.
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
* Have fun reviewing your seismograph data and analyzing the acceleration with Excel.
* The first person and second person take shaking or moving the micor:bit in any direction while the other player charts the data on the micro:bit!
* Review and analyze the actual micro:bit device acceleration data on Excel
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"

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