Compare commits

...

235 Commits

Author SHA1 Message Date
57c8698b58 0.2.56 2016-04-11 22:30:20 -07:00
4e3ed27f93 0.2.55 2016-04-11 21:50:39 -07:00
41977f087e win10 docs 2016-04-11 21:49:57 -07:00
c1a4a55e2b Fix typo 2016-04-11 20:54:26 -07:00
abc9e90cb9 Add control.panic and control.assert 2016-04-11 19:44:49 -07:00
3119bcc625 Fix note block names 2016-04-11 19:44:39 -07:00
905da373c0 Update README.md 2016-04-11 13:46:14 -07:00
05dce8efce 0.2.54 2016-04-11 13:09:46 -07:00
cbfc960594 Bump pxt-core to 0.2.58 2016-04-11 13:09:43 -07:00
c2c765098d use pointerevents if available 2016-04-11 10:58:09 -07:00
9daf6ad9fc updated package 2016-04-11 08:23:33 -07:00
0c05ae9b64 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-10 20:52:22 -07:00
27ea7cae56 added serial/bluetooth capability 2016-04-10 20:51:57 -07:00
80f9c52bac clean up 2016-04-09 16:42:29 -04:00
afef607ccf 0.2.53 2016-04-09 01:35:25 -07:00
45fe7e6bb4 Bump pxt-core to 0.2.56 2016-04-09 01:35:23 -07:00
8e66b041e2 updated filters 2016-04-09 01:27:08 -07:00
e99a2df578 0.2.52 2016-04-08 18:49:43 -07:00
7e5f3fdbf3 Bump pxt-core to 0.2.55 2016-04-08 18:49:41 -07:00
b538526948 Add webmanifest files 2016-04-08 18:38:25 -07:00
889142d0f7 0.2.51 2016-04-08 17:31:02 -07:00
3791689fc4 Bump pxt-core to 0.2.54 2016-04-08 17:30:59 -07:00
d05f66650f Merge branch 'master' of github.com:Microsoft/kindscript-microbit 2016-04-08 17:28:56 -07:00
a4f08e99a9 Add own manifest 2016-04-08 17:28:52 -07:00
3999c215ce 0.2.50 2016-04-08 16:57:58 -07:00
c6b8acb0b8 Bump pxt-core to 0.2.53 2016-04-08 16:57:56 -07:00
1e054f96ec updated about page 2016-04-08 16:57:37 -07:00
190e5e2e03 Add empty sim.manifestfiles 2016-04-08 16:00:11 -07:00
63ae951249 0.2.49 2016-04-08 15:06:07 -07:00
e5aeacae2f Bump pxt-core to 0.2.51 2016-04-08 15:06:05 -07:00
9ecb7f11cd Merge branch 'master' of github.com:Microsoft/kindscript-microbit 2016-04-08 14:57:27 -07:00
d1660f1361 0.2.48 2016-04-08 14:56:34 -07:00
edf5345492 Bump pxt-core to 0.2.50 2016-04-08 14:56:33 -07:00
5eadb3483f Remove explicit caching from simulator 2016-04-08 14:44:24 -07:00
c4d3fd5d67 moved svg files around 2016-04-08 13:57:37 -07:00
5166c5141f added build of windows app 2016-04-08 13:49:53 -07:00
c21b45a084 updated windows app manifest 2016-04-08 13:21:03 -07:00
fa0d365aae importing target logos from files 2016-04-08 12:04:43 -07:00
43cab7a156 added portrait logo 2016-04-08 11:50:21 -07:00
79b000b1bb 0.2.47 2016-04-08 11:02:01 -07:00
0af25f4230 Bump pxt-core to 0.2.49 2016-04-08 11:01:59 -07:00
0fcca0792a Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-08 10:54:05 -07:00
cb1260419b updated manifest 2016-04-08 10:49:43 -07:00
17150e0d71 added uwp app 2016-04-07 20:48:00 -07:00
693d019525 0.2.46 2016-04-07 18:17:30 -07:00
fa6b48e421 Bump pxt-core to 0.2.48 2016-04-07 18:17:28 -07:00
8286561125 Add app manifest 2016-04-07 18:14:24 -07:00
78083e18a7 using classlist polyfill 2016-04-07 14:18:12 -07:00
cba7ccbacb One more rename 2016-04-07 13:34:52 -07:00
391e0ed897 0.2.45 2016-04-07 13:34:13 -07:00
fce6206d28 Bump pxt-core to 0.2.46 2016-04-07 13:34:11 -07:00
faf1385933 Redirect to main repo for instructions 2016-04-07 13:33:55 -07:00
7a74def276 0.2.44 2016-04-07 13:11:12 -07:00
81b93c13ad Bump pxt-core to 0.2.45 2016-04-07 13:11:10 -07:00
2852684f89 Remove unused images 2016-04-07 13:00:38 -07:00
2798b579a6 0.2.43 2016-04-07 12:53:53 -07:00
9d23f82238 Bump pxt-core to 0.2.44 2016-04-07 12:53:51 -07:00
ce53d5c386 Renaming stuff in the simulator 2016-04-07 12:52:02 -07:00
5d3471b3b2 0.2.42 2016-04-07 11:41:51 -07:00
08b9b10ac8 Files renamed 2016-04-07 11:41:39 -07:00
404d7cc4a2 Bump pxt-core to 0.2.43 2016-04-07 11:41:23 -07:00
7c43739e4b Rename references 2016-04-07 11:30:22 -07:00
92d8adfdbd Rename json files 2016-04-07 11:30:07 -07:00
0f273131f6 0.2.41 2016-04-07 09:46:17 -07:00
9ae0c48477 Bump kindscript to 0.2.42 2016-04-07 09:46:15 -07:00
5f538f418e 0.2.40 2016-04-07 09:18:35 -07:00
859b68b6e3 Bump kindscript to 0.2.41 2016-04-07 09:18:33 -07:00
6576f7bd66 better handlings of logs 2016-04-07 09:03:21 -07:00
5a670f3291 0.2.39 2016-04-07 06:45:52 -07:00
7129487618 0.2.38 2016-04-07 06:34:15 -07:00
e1797b457a Bump kindscript to 0.2.39 2016-04-07 06:34:14 -07:00
c82efa452d 0.2.37 2016-04-07 04:48:45 -07:00
493014af01 Bump kindscript to 0.2.38 2016-04-07 04:48:43 -07:00
fb4a96d81b 0.2.36 2016-04-07 03:56:24 -07:00
bbf115f33c Bump kindscript to 0.2.36 2016-04-07 03:56:22 -07:00
5d9c2cf590 svg refactored into kindsim 2016-04-07 03:52:32 -07:00
b99231f6e2 0.2.35 2016-04-06 18:24:27 -07:00
2676907129 Bump kindscript to 0.2.35 2016-04-06 18:24:25 -07:00
6f4c533ebb 0.2.34 2016-04-06 16:41:29 -07:00
85dcaea979 0.2.33 2016-04-06 16:36:41 -07:00
8560b31657 Bump kindscript to 0.2.33 2016-04-06 16:36:40 -07:00
b896588f45 0.2.32 2016-04-06 16:09:30 -07:00
0b4d4facfe fix target 2016-04-06 16:09:20 -07:00
52ad897ee3 0.2.31 2016-04-06 15:49:03 -07:00
72582f2a60 updated title 2016-04-06 15:48:45 -07:00
2b2048da7d 0.2.30 2016-04-06 15:34:37 -07:00
e85fa990bd Bump kindscript to 0.2.31 2016-04-06 15:34:35 -07:00
81a61538c3 updated target 2016-04-06 15:23:58 -07:00
cc8751bd09 updated target 2016-04-06 15:12:55 -07:00
03f933a1c8 0.2.29 2016-04-06 14:02:53 -07:00
10a77d9fef Bump kindscript to 0.2.30 2016-04-06 14:02:51 -07:00
773f8a8688 0.2.28 2016-04-06 08:05:40 -07:00
f67743d935 Bump kindscript to 0.2.29 2016-04-06 08:05:38 -07:00
237a57ee86 updated logos 2016-04-06 07:32:14 -07:00
b80edb43fc removing some serial functions 2016-04-06 07:00:34 -07:00
6c9b609fe0 annotate math namespace 2016-04-06 06:16:59 -07:00
26d78768c0 0.2.27 2016-04-05 23:15:42 -07:00
6812767555 Bump kindscript to 0.2.28 2016-04-05 23:15:39 -07:00
2aa7c91ca7 various docs updates 2016-04-05 23:11:48 -07:00
baf2c3247f Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-04-05 20:49:54 -07:00
c9536b0cf2 Use constant for end of memory 2016-04-05 19:19:27 -07:00
7fd7e15bd4 Add README.md to kind.json 2016-04-05 19:02:12 -07:00
948b0ef304 Add readme to neopixel 2016-04-05 18:21:24 -07:00
715771b991 Add readme to i2c fram module 2016-04-05 18:21:15 -07:00
65d48f4b02 Add FRAM driver 2016-04-05 17:25:45 -07:00
283c331a5e moving namespace docs 2016-04-05 16:54:09 -07:00
ba96e94fa7 added jsdoc 2016-04-05 16:52:50 -07:00
7e1248b8dc 0.2.26 2016-04-05 16:15:58 -07:00
cbe280187a Bump kindscript to 0.2.26 2016-04-05 16:15:56 -07:00
761e4f38cd adding namespace descriptions 2016-04-05 15:59:25 -07:00
a9137f7761 first radio namespace docs 2016-04-05 14:10:53 -07:00
3274e237cf 0.2.25 2016-04-05 14:05:36 -07:00
5261b2b270 0.2.24 2016-04-05 13:54:55 -07:00
1adede163a Bump kindscript to 0.2.25 2016-04-05 13:54:53 -07:00
bb80874ef9 fixing docs enum 2016-04-05 13:54:48 -07:00
9e9d11cb94 0.2.23 2016-04-05 13:28:03 -07:00
c004aa4b1b Bump kindscript to 0.2.24 2016-04-05 13:28:01 -07:00
cdd4798945 namspace docs 2016-04-05 13:23:42 -07:00
0f56142317 updated about 2016-04-05 10:36:23 -07:00
6927085d64 0.2.22 2016-04-04 22:46:48 -07:00
c1b654f092 Bump kindscript to 0.2.23 2016-04-04 22:46:46 -07:00
2f551c97b5 0.2.21 2016-04-04 22:38:41 -07:00
01e6aab376 0.2.20 2016-04-04 22:33:39 -07:00
df17ba09ae updated links 2016-04-04 22:33:13 -07:00
9c09a427c9 0.2.19 2016-04-04 22:17:12 -07:00
4b35f0f751 Bump kindscript to 0.2.22 2016-04-04 22:17:10 -07:00
bb03cc4357 static microbit image (svg) 2016-04-04 22:15:52 -07:00
6f8b17e4ba 0.2.18 2016-04-04 21:52:10 -07:00
60c5dfc539 Bump kindscript to 0.2.21 2016-04-04 21:52:09 -07:00
bca5839b49 Forever moved to common sim 2016-04-04 21:52:03 -07:00
47e3737245 Use common helpers/core 2016-04-04 21:18:16 -07:00
b8d5ec853e Prep for moving common stuff out to main ks 2016-04-04 20:28:08 -07:00
46d42e5300 0.2.17 2016-04-04 19:13:35 -07:00
ffabb9b16d Bump kindscript to 0.2.19 2016-04-04 19:13:34 -07:00
d62c10d278 Use the improved default parameters 2016-04-04 19:11:33 -07:00
e2b2aa7ff1 0.2.16 2016-04-04 19:04:04 -07:00
664c8dcd35 Bump kindscript to 0.2.18 2016-04-04 19:04:03 -07:00
bd7430b642 Add Buffer.get/setNumber and i2c methods 2016-04-04 19:02:40 -07:00
61fd28d840 Move all target stuff to kindtarget.json 2016-04-04 18:03:52 -07:00
c33df897d5 Remove unused code 2016-04-04 12:56:57 -07:00
3bb0bd2a9f 0.2.15 2016-04-04 09:50:05 -07:00
7751061b51 Bump kindscript to 0.2.17 2016-04-04 09:50:04 -07:00
88a7fa5038 0.2.14 2016-04-03 17:51:51 -07:00
3c8a62df54 Bump kindscript to 0.2.16 2016-04-03 17:51:50 -07:00
c661fd0eca Neopixel seems to work 2016-04-03 17:49:35 -07:00
8a124812b6 First draft of neopixel 2016-04-03 17:38:50 -07:00
02c41b59bd Add Buffer; go to core v0.1.5 2016-04-03 16:52:57 -07:00
b003af6eae Try to fix travis 2016-04-02 21:49:09 -07:00
5e5709e48d 0.2.13 2016-04-02 21:47:15 -07:00
dafb056730 Bump kindscript to 0.2.15 2016-04-02 21:47:14 -07:00
721ae893bb 0.2.12 2016-04-02 21:40:55 -07:00
45dd3fc1bf Bump kindscript to 0.2.14 2016-04-02 21:40:54 -07:00
9626207a61 Try to run lang-test0 during build 2016-04-02 21:36:00 -07:00
87b6e0aba1 Make lang-test0 work 2016-04-02 21:34:29 -07:00
0d9890cfac Add some image methods 2016-04-02 20:53:51 -07:00
5d40750542 Add missing control stuff 2016-04-02 20:47:27 -07:00
bd09754466 Move pin stuff to pins 2016-04-02 20:44:29 -07:00
5740133921 Moving simulator stuff into namespaces to match C++ 2016-04-02 20:35:38 -07:00
4e23553824 Naming fixes 2016-04-02 20:35:22 -07:00
9b68519aff Disable two image blocks - they crash block injection 2016-04-02 18:09:31 -07:00
e6dc3b8974 Remove shims 2016-04-02 17:49:31 -07:00
53634f4d6a Convert bluetooth to new style 2016-04-02 17:47:49 -07:00
3ee0c6ea42 Radio stuff moved for new style 2016-04-02 17:34:06 -07:00
ef098cbd28 Use -core v0.1.2 2016-04-02 14:18:10 -07:00
356b17cb13 Moving lang-test0 from kindscript main 2016-04-02 14:18:00 -07:00
47d382135b Use new APIs in the core 2016-04-02 13:44:29 -07:00
241da7fbed Add remaining shims 2016-04-02 11:22:36 -07:00
feb17c5e45 Remove remaining external shims 2016-04-01 22:46:06 -07:00
6559f386d2 Move most of core stuff 2016-04-01 22:32:33 -07:00
6bf46577f9 Migrate serial 2016-04-01 22:00:42 -07:00
0130ecb0c2 Remove shim=s 2016-04-01 21:53:50 -07:00
9820a035ce Migrate LED shims 2016-04-01 21:52:25 -07:00
88acd9254d Remove redundant shim annotations 2016-04-01 21:27:22 -07:00
650fe61dcd Move more stuff to C++ 2016-04-01 21:26:06 -07:00
c4e57e0165 0.2.11 2016-04-01 20:10:45 -07:00
a55ddcbab3 Bump kindscript to 0.2.11 2016-04-01 20:10:44 -07:00
f58508afa2 Event implementation 2016-04-01 19:59:14 -07:00
4b92de7516 Implement Images 2016-04-01 19:55:51 -07:00
6176963504 Fix pin names 2016-04-01 18:29:39 -07:00
37ec692dc4 0.2.10 2016-04-01 18:18:37 -07:00
1c2dc68479 Bump kindscript to 0.2.10 2016-04-01 18:18:36 -07:00
a33472dbd4 Merge branch 'master' of github.com:Microsoft/kindscript-microbit 2016-04-01 18:18:33 -07:00
746dc5d5ab Proper BLE setup 2016-04-01 18:01:44 -07:00
70bd81d9c2 Generate enums from C++ 2016-04-01 17:45:18 -07:00
8ee34ec4c4 0.2.9 2016-04-01 16:23:02 -07:00
9f4a121829 removing hashtags from docs 2016-04-01 16:22:47 -07:00
64eec2875b 0.2.8 2016-04-01 16:14:50 -07:00
400b9269ee Use the new enums 2016-04-01 15:44:04 -07:00
58d854f6f5 0.2.7 2016-04-01 14:49:07 -07:00
13dcbd3a62 Bump kindscript to 0.2.9 2016-04-01 14:49:04 -07:00
a2310f150f mergin changes 2016-04-01 14:44:11 -07:00
b4d7cbc1f0 updated kind.json 2016-04-01 14:43:10 -07:00
d54baaca51 Use the new enum syntax in devices as well 2016-04-01 14:18:11 -07:00
7c564ebaab Export constants from DAL in dal.d.ts 2016-04-01 14:14:57 -07:00
4b3efd434e Add C++ compile config 2016-04-01 10:29:25 -07:00
68143500da Use enum initializers not enumval= where possible 2016-04-01 09:17:41 -07:00
a7a9685963 remove logging 2016-04-01 06:35:59 -07:00
a3b2682cc1 0.2.6 2016-03-31 22:17:11 -07:00
9e7d3b86ba Bump kindscript to 0.2.8 2016-03-31 22:17:10 -07:00
68d22947bb adding simulator options 2016-03-31 20:46:11 -07:00
a92236b3d8 0.2.5 2016-03-31 19:54:00 -07:00
832bb77987 Bump kindscript to 0.2.7 2016-03-31 19:53:58 -07:00
46713ef6c3 udpate pacman 2016-03-31 18:41:54 -07:00
f9b17a844a hero updates 2016-03-31 18:37:55 -07:00
c5e3f2c673 hero 6 2016-03-31 18:27:46 -07:00
3a12314332 hero 5 2016-03-31 18:27:20 -07:00
3c9c30e489 hero 4 2016-03-31 18:24:09 -07:00
dd28c6318e hero 3 2016-03-31 18:17:36 -07:00
d43c0f6e23 hero 2 2016-03-31 18:16:45 -07:00
e0da743cb4 updated hero 2016-03-31 18:16:03 -07:00
3774b705a2 updated headbands 2016-03-31 17:50:12 -07:00
c1f6e45e36 headband update 2016-03-31 17:47:36 -07:00
7c6d3a0509 updated quizzes 2016-03-31 17:42:40 -07:00
25e83b52f3 Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-03-31 17:39:25 -07:00
3640ddbd0e udpate quiz ans 2016-03-31 17:39:17 -07:00
7f3b07e43f update speed lesson 2016-03-31 17:38:43 -07:00
dd6e937472 updated docs 2016-03-31 17:35:44 -07:00
1b9dfd1622 updated maker 2016-03-31 17:32:26 -07:00
58ac6429df updated maker 2016-03-31 17:31:08 -07:00
75461512f7 0.2.4 2016-03-31 17:27:20 -07:00
a7a91459ff Packages published 2016-03-31 17:27:11 -07:00
4bd5b556a6 Bump kindscript to 0.2.6 2016-03-31 17:26:25 -07:00
cf32012d4e updated wifi lesson 2016-03-31 17:25:22 -07:00
19e49652f8 charting lesson 2016-03-31 17:18:16 -07:00
691da3605f charting lesson 2016-03-31 17:17:22 -07:00
34c5a5e216 update wifi quiz ans 2016-03-31 17:01:28 -07:00
5b1ccd3978 0.2.3 2016-03-31 17:00:55 -07:00
5552b42c6e Bump kindscript to 0.2.5 2016-03-31 17:00:53 -07:00
2ab7175283 update wifi quiz 2016-03-31 16:57:48 -07:00
a23042a787 update wifi lesson 2016-03-31 16:54:51 -07:00
130768301c update wifi 2016-03-31 16:52:44 -07:00
5ead39cf51 telegraph lesson 2016-03-31 16:45:53 -07:00
e6a1728f6e update wifi lesson 2016-03-31 16:39:32 -07:00
b210e505a2 Merge branch 'master' of https://github.com/Microsoft/kindscript-microbit 2016-03-31 16:28:16 -07:00
b6d81f73bc telegraph lessons 2016-03-31 16:22:35 -07:00
491 changed files with 6729 additions and 3271 deletions

1
.gitattributes vendored
View File

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

15
.gitignore vendored
View File

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

View File

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

2
.vscode/tasks.json vendored
View File

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

View File

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

View File

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

View File

@ -1,3 +1,8 @@
```sim
basic.forever(() => {
basic.showString("Hi!");
})
```
# About
The [BBC micro:bit](https://www.microbit.co.uk) is a [pocket-size computer](/device) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone.
@ -57,7 +62,7 @@ basic.showString("BBC micro:bit");
## C++ Runtime
The C++ BBC micro:bit library, created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
The [C++ BBC micro:bit runtime](http://lancaster-university.github.io/microbit-docs/), created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
as well as a set of helper functions (such as displaying a number/image/string on the LED screen).
The JavaScript micro:bit library mirrors the functions of the C++ library.
When code is compiled to ARM machine code, the calls to JavaScript micro:bit functions are replaced with calls to the corresponding C++ functions.

View File

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

View File

@ -1,6 +1,6 @@
# Run Scripts on your micro:bit
How to compile, transfer, and run a script on your micro:bit. #docs #USB #compile #transfer
How to compile, transfer, and run a script on your micro:bit.
While you're writing and testing your Block Editor or Touch Develop scripts, you'll mostly be running scripts in your browser by clicking the `Run` button (see [run code in your browser](/microbit/js/simulator) for info about this).

View File

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

View File

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

View File

@ -1,6 +1,6 @@
# answering machine blocks quiz answers
Create an answering machine on the micro:bit. #LED #screen #show #math #docs #input
Create an answering machine on the micro:bit.
This is the answer key for the [answering machine quiz](/microbit/lessons/answering-machine/quiz).

View File

@ -1,6 +1,6 @@
# answering machine blocks quiz
Create an answering machine on the micro:bit. #LED #screen #show #math #docs #input
Create an answering machine on the micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# banana keyboard blocks lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -81,3 +81,9 @@ Your banana keyboard is ready!
Connect your micro:bit to your computer using your USB cable and run the [banana keyboard](/microbit/lhpkbr) script on it. Tap your banana instrument to play sound against... the fruit!
### ~avatar boothing
Excellent, you're ready to continue with the [challenges](/microbit/lessons/banana-keyboard/challenges)!
### ~

View File

@ -1,6 +1,6 @@
# beatbox blocks lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# beautiful image lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
### @video td/videos/beautiful-image-0
@ -20,7 +20,7 @@ Learn how to **show LEDs**, to show an image on the BBC micro:bit's LED screen.
## Documentation
```docs
```cards
basic.showLeds(`
. . . . .
. . . . .
@ -28,10 +28,7 @@ basic.showLeds(`
. . . . .
. . . . .
`)
basic.pause(100)
```
## Objectives

View File

@ -1,6 +1,6 @@
# beautiful image blocks activity
Generate and show a beautiful image. #docs #microbit
Generate and show a beautiful image.
### ~avatar avatar

View File

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

View File

@ -1,6 +1,6 @@
# blink blocks quiz answers
Learn how to create a blinking LED script. #LED #screen #plot #docs
Learn how to create a blinking LED script.
This is the answer key for the [blink quiz](/microbit/lessons/blink/quiz).

View File

@ -1,6 +1,6 @@
# blink blocks quiz
Learn how to create a blinking LED script. #LED #screen #plot #docs
Learn how to create a blinking LED script.
## Name

View File

@ -1,6 +1,6 @@
# bop it quiz answers
a game where you have to keep up with the commands #math #random #docs
a game where you have to keep up with the commands.
## Name

View File

@ -1,6 +1,6 @@
# bop it quiz
a game where you have to keep up with the commands #math #random #docs
a game where you have to keep up with the commands.
## Name

View File

@ -1,6 +1,6 @@
# catch the egg game lesson
a game to catch eggs in a basket #var #data #if #random #min #max #mod #plot #unplot #pause #accceleration #docs
A game to catch eggs in a basket.
### @video td/videos/catch-the-egg-game-0

View File

@ -56,9 +56,9 @@ basic.forever(() => {
}
if (eggY1 == 4) {
if (basketX1 == eggX1) {
game.addScore(1) // ***
game.addScore(1)
} else {
game.removeLife(1) // ***
game.removeLife(1)
}
}
basic.pause(300)
@ -142,7 +142,7 @@ basic.forever(() => {
game.removeLife(1)
}
}
basic.pause(fallingPause1) // ***
basic.pause(fallingPause1)
})
```

View File

@ -1,6 +1,6 @@
# charting lesson
measure the acceleration on the micro:bit in the "z" direction #acceleration #var #docs #if #show
Measure the acceleration on the micro:bit in the "z" direction.
## Topic
@ -17,23 +17,13 @@ Learn the functions of **on data received**, **send number** and **receive numbe
## Documentation
```docs
```cards
basic.showNumber(0)
input.acceleration(Dimension.X)
led.plotBarGraph(0, 1023)
radio.onDataReceived(() => {
})
radio.onDataReceived(() => {})
radio.sendNumber(0)
radio.receiveNumber()
```
## Objectives

View File

@ -13,15 +13,17 @@ Welcome! This activity will teach how to use the 1st micro:bit to chart the seco
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))
radio.sendNumber(input.acceleration(Dimension.X));
```
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.sendNumber(input.acceleration(Dimension.X));
});
```
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.

View File

@ -1,6 +1,6 @@
# classic beatbox
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# compass lesson
create a die on the BBC micro:bit #button #pressed #math #random #var #string #if #docs
create a die on the BBC micro:bit.
### @video td/videos/compass-0
@ -21,17 +21,12 @@ Learn how to use an if statements to run code run code depending on whether a co
## Documentation
```docs
```cards
input.compassHeading()
basic.forever(() => {})
let x = 0
if (true) {}
basic.showString("Hello!")
basic.showLeds(`
. . . . .
. . . . .

View File

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

View File

@ -1,6 +1,6 @@
# die roll lesson
create a die on the BBC micro:bit #button #pressed #math #random #var #string #if #docs
create a die on the BBC micro:bit.
### @video td/videos/die-roll-0
@ -21,21 +21,11 @@ Learn how to use an if statements to run code run code depending on whether a co
## Documentation
```docs
input.onGesture(Gesture.Shake, () => {
})
```cards
input.onGesture(Gesture.Shake, () => {})
let x = 0
x = Math.random(3)
if (true) {
}
Math.random(3)
if (true) {}
basic.showLeds(`
. . . . .
. . . . .
@ -43,10 +33,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -1,6 +1,6 @@
# digi yoyo lesson
create a counter with a while loop #while #loop #counter #docs
create a counter with a while loop.
### @video td/videos/digi-yoyo-0
@ -21,13 +21,11 @@ Learn how to creating a **while loop**, `while condition do` to repeat code whil
## Documentation
```docs
```cards
let x = 0
basic.showNumber(0)
while (true) {
basic.pause(20)
}
while (true) {}
basic.pause(20)
```
## Objectives

View File

@ -1,6 +1,6 @@
# flashing heart blocks lesson
Learn how to create LED images with a global variable. #LED #screen #plot #docs
Learn how to create LED images with a global variable.
### @video td/videos/flashing-heart-0
@ -20,13 +20,8 @@ Learn how to `show LEDs` by showing an image on the LED screen. We will be learn
## Documentation
```docs
basic.forever(() => {
})
```cards
basic.forever(() => {})
basic.showLeds(`
. . . . .
. . . . .
@ -34,11 +29,8 @@ basic.showLeds(`
. . . . .
. . . . .
`)
basic.pause(100)
basic.clearScreen()
```
## Objectives

View File

@ -1,6 +1,6 @@
# game counter lesson
Learn how to create a counter with with on button pressed. #show #number #screen #number #math #docs
Learn how to create a counter with with on button pressed.
### @video td/videos/counter-0
@ -19,15 +19,10 @@ Learn how to create game blocks to keep track of the current score. We will be l
## Documentation
```docs
```cards
game.addScore(1)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
basic.showNumber(0)
```
## Objectives

View File

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

View File

@ -1,6 +1,6 @@
# glowing pendulum blocks lesson
construct a pendulum that glows using acceleration #var #acceleration #abs #brightness #plot #docs
construct a pendulum that glows using acceleration.
## Topic
@ -19,21 +19,12 @@ Learn how to get the acceleration **acceleration**, `acceleration` value (g-forc
## Documentation
```docs
basic.forever(() => {
})
```cards
basic.forever(() => {})
let x = 0
input.acceleration(Dimension.X)
Math.abs(0)
led.setBrightness(255)
basic.showLeds(`
. . . . .
. . . . .
@ -41,7 +32,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -1,6 +1,6 @@
# glowing pendulum quiz answers
construct a pendulum that glows using acceleration #LED #number #math #acceleration #docs
construct a pendulum that glows using acceleration.
## Name

View File

@ -1,6 +1,6 @@
# glowing pendulum quiz
construct a pendulum that glows using acceleration #LED #number #math #acceleration #docs
construct a pendulum that glows using acceleration.
## Name

View File

@ -1,6 +1,6 @@
# glowing sword blocks lesson
make a glowing sword #image #docs
make a glowing sword.
### @video td/videos/glowing-sword-0

View File

@ -1,6 +1,6 @@
# guess the number lesson
Learn to create a random number with input from button A. #input #screen #math #docs
Learn to create a random number with input from button A.
### @video td/videos/guess-the-number-0
@ -21,22 +21,12 @@ Learn how to create numbers randomly by using the input of the BBC micro:bit. We
## Documentation
```docs
input.onButtonPressed(Button.A, () => {
})
```cards
input.onButtonPressed(Button.A, () => {})
let x = 0
basic.showNumber(0)
Math.random(3)
basic.clearScreen()
```
## Objectives

View File

@ -1,6 +1,6 @@
# guess the number quiz answers
Learn how to generate a random number on the micro:bit. #math #random #docs
Learn how to generate a random number on the micro:bit.
This is the answer key for the [guess the number quiz](/microbit/lessons/guess-the-number/quiz).

View File

@ -1,6 +1,6 @@
# guess the number quiz
Learn how to generate a random number on the micro:bit. #math #random #docs
Learn how to generate a random number on the micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# hack your headphones lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -54,3 +54,8 @@ You hacked your headphones!
Connect your micro:bit to your computer using your USB cable and program [light beatbox](/microbit/lessons/light-beatbox/activity) music on it. Press the reset button to restart your music player!
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/microbit/lessons/light-beatbox/activity)!
### ~

View File

@ -1,6 +1,6 @@
# happy birthday blocks lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# headbands lesson
create a charades game that can be played with your friends #data #string #collection #at #Boolean #on-logo-down #on-logo-up #running-time #string #number #docs
create a charades game that can be played with your friends.
## Topic
@ -8,10 +8,10 @@ Collection
## Quick Links
* [tutorial](/microbit/lessons/headbands/tutorial)
* [activity](/microbit/lessons/headbands/activity)
* [quiz](/microbit/lessons/headbands/quiz)
* [quiz answers](/microbit/lessons/headbands/quiz-answers)
* [challenges](/microbit/lessons/headbands/challenges)
## Class

View File

@ -1,6 +1,4 @@
# headbands challenges
These challenges will teach you how to create a fun charades game to play with your friends. #docs
# headbands activity
## Before we get started

View File

@ -1,12 +1,12 @@
# headbands quiz answers
create a charades game with a collection of strings #offset #screen #variables #docs
create a charades game with a collection of strings.
## Name
## Directions
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
Answer the questions while completing the tutorial. Pay attention to the dialogues!

View File

@ -1,12 +1,12 @@
# headbands quiz
create a charades game with a collection of strings #offset #screen #variables #docs
create a charades game with a collection of strings.
## Name
## Directions
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
Answer the questions while completing the tutorial. Pay attention to the dialogues!

View File

@ -1,6 +1,6 @@
# hero
make a game to test hand-eye coordination #docs #functions #var
make a game to test hand-eye coordination.
Make a game to test hand-eye coordination

View File

@ -39,8 +39,14 @@ ghost.change(LedSpriteProperty.Blink, 100);
We want to identify the food so the player moves towards the food. We need to set the `brightness` of the `variable` food to 8. The brightness of the LED screen is expressed as a number between 0 and 255.
![](/static/mb/blocks/lessons/hero-3.png)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
```
We want to include a block from the Loops drawer called `While`. Then set the `While` loop to `true`. This code will be important for repeating code of the game logic of the game. The game will continue to run using `While` loop while the Boolean condition is true. Finally, include a `pause` of 400 milliseconds before the logic of the game begins.
@ -50,52 +56,223 @@ let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400)
basic.pause(400);
}
```
Let's create a function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The first condition will check if the horizontal coordinates of the ghost is less than the horizontal coordinates of the hero. We create a function from the Game drawer that will check the coordinates of the hero and the ghost. Finally, change the x-direction of the ghost by 1.
Then create another function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The second condition will check if the horizontal coordinates of the ghost is greater than the x-direction of hero. We create a function from the Game drawer that will check the x-direction of hero and ghost. Finally, change the x-direction of the ghost by -1.
![](/static/mb/blocks/lessons/hero-5.png)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) > hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (false) {
}
else if (false) {
}
}
```
Let's create the third function and forth function that continues the same logic in the y-direction of pacman and ghost. We create a function from the Game drawer that will check the y-direction of pacman and ghost. Finally, change the y-direction of the ghost to continue following pacman.
![](/static/mb/blocks/lessons/hero-6.png)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
}
```
Let's enable pacman to move in the x-direction and move in the y-direction with acceleration using the micor:bit sensor
![](/static/mb/blocks/lessons/hero-7.png)
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
if (input.acceleration(Dimension.X) > 200) {
hero.change(LedSpriteProperty.X, 1);
}
else if (input.acceleration(Dimension.X) < -200 ) {
hero.change(LedSpriteProperty.X, -1 );
}
if (input.acceleration(Dimension.Y) > 200) {
hero.change(LedSpriteProperty.Y, 1);
}
else if (input.acceleration(Dimension.Y) > -200 ) {
hero.change(LedSpriteProperty.Y, -1 );
}
}
```
Let's setup the logic for the food. If hero is `touching` "food", increase the score of the game by 1 and `set` ``x`` -direction of food randomly randomly from 0 to 4 and `set` ``y``-direction of food randomly from 0 to 4.
![](/static/mb/blocks/lessons/hero-8.jpg)
```blocks
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
if (input.acceleration(Dimension.X) > 200) {
hero.change(LedSpriteProperty.X, 1);
}
else if (input.acceleration(Dimension.X) < -200 ) {
hero.change(LedSpriteProperty.X, -1 );
}
if (input.acceleration(Dimension.Y) > 200) {
hero.change(LedSpriteProperty.Y, 1);
}
else if (input.acceleration(Dimension.Y) > -200 ) {
hero.change(LedSpriteProperty.Y, -1 );
}
if (hero.isTouching(food)) {
game.addScore(1);
food.set(LedSpriteProperty.X, Math.random(5));
food.set(LedSpriteProperty.Y, Math.random(5));
}
**Do not disconnect the blocks from the conditional statements. We are focusing on this section of the code and are not showing the entire code**
}
Let's setup the logic for the food and the ghost to be in different quadrants.
![](/static/mb/blocks/lessons/hero-9.jpg)
```
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
The game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
![](/static/mb/blocks/lessons/hero-10.jpg)
Let's setup the logic for the food and the ghost to be in different quadrants. Finally, the game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
**Do not disconnect the conditional statements blocks from the remaining blocks. We are focusing on this section of the code and are not showing the entire code**
```blocks
The game can also use the buttons. Let's create a `while` loop for button A is pressed. If button A is pressed, the micro:bit will display the word Hero. Let's use a `while` loop for button B is pressed. If button B is pressed, the micro:bit will display image of the hero.
let hero = game.createSprite(2, 2);
let food = game.createSprite(4, 4);
let ghost = game.createSprite(0, 0);
let ghost.change(LedSpriteProperty.Blink, 100);
food = led.brightness() == 8;
while (true) {
basic.pause(400);
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, 1);
}
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
ghost.change(LedSpriteProperty.X, -1 );
}
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, 1);
}
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
ghost.change(LedSpriteProperty.Y, -1 );
}
if (input.acceleration(Dimension.X) > 200) {
hero.change(LedSpriteProperty.X, 1);
}
else if (input.acceleration(Dimension.X) < -200 ) {
hero.change(LedSpriteProperty.X, -1 );
}
if (input.acceleration(Dimension.Y) > 200) {
hero.change(LedSpriteProperty.Y, 1);
}
else if (input.acceleration(Dimension.Y) > -200 ) {
hero.change(LedSpriteProperty.Y, -1 );
}
if (hero.isTouching(food)) {
game.addScore(1);
food.set(LedSpriteProperty.X, Math.random(5));
food.set(LedSpriteProperty.Y, Math.random(5));
if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) < 2) {
ghost.set(LedSpriteProperty.X, 4);
ghost.set(LedSpriteProperty.Y, 4);
}
else if (food.get(LedSpriteProperty.X) > 2 && food.get(LedSpriteProperty.Y) < 2) {
ghost.set(LedSpriteProperty.X, 0);
ghost.set(LedSpriteProperty.Y, 4);
}
else if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) > 2) {
ghost.set(LedSpriteProperty.X, 4);
ghost.set(LedSpriteProperty.Y, 0);
}
else {
ghost.set(LedSpriteProperty.X, 0);
ghost.set(LedSpriteProperty.Y, 0);
}
}
if (hero.isTouching(ghost)) {
game.gameOver();
}
![](/static/mb/blocks/lessons/hero-11.jpg)
}
0.set(LedSpriteProperty.X, 4);
```
### ~avatar avatar
You can review the final code for [hero](/microbit/numraj)
Congratulations! You have a homemade hero game based on the classic version of PacMan
### ~

View File

@ -1,6 +1,6 @@
# light beatbox
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic

View File

@ -1,6 +1,6 @@
# looper blocks lesson
Learn to control blinking LEDs. #LED #screen #for #docs
Learn to control blinking LEDs.
### @video td/videos/looper-0
@ -26,10 +26,8 @@ Learn how to control a blinking LED. We will be learning how to create a blinkin
## Documentation
```docs
for (let i = 0; i < 5; i++) {
}
```cards
for (let i = 0; i < 5; i++) {}
basic.showNumber(0)
basic.pause(100)

View File

@ -1,6 +1,6 @@
# looper quiz answers
Learn how to create a series of numbers with a for loop. #LED #screen #plot #docs
Learn how to create a series of numbers with a for loop.
This is the answer key for the [looper quiz](/microbit/lessons/looper/quiz).

View File

@ -1,6 +1,6 @@
# looper quiz
Learn how to create a series of numbers with a for loop. #LED #screen #plot #docs
Learn how to create a series of numbers with a for loop.
## Name

View File

@ -1,6 +1,6 @@
# love meter blocks lesson
create a love meter with the BBC micro:bit #pin #pressed #string #if #var #pause #show #docs
create a love meter with the BBC micro:bit.
### @video td/videos/love-meter-0
@ -22,19 +22,11 @@ Learn how to use the **pin pressed**, `on pin pressed` to run code when the user
## Documentation
```docs
if (true) {
}
input.onPinPressed(TouchPin.P0, () => {
})
```cards
if (true) {}
input.onPinPressed(TouchPin.P0, () => {})
let x = 0
Math.random(3)
basic.showNumber(0)
basic.pause(100)
```

View File

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

View File

@ -1,6 +1,6 @@
# magic 8 lesson
a fortune teller game with the BBC micro:bit #string #shake #clear-screen #if #string #number #var #docs
a fortune teller game with the BBC micro:bit.
## Topic
@ -19,14 +19,10 @@ Learn how to creating **conditionals**, `if condition do` to conditionally run c
## Documentation
```docs
if (true) {
}
```cards
if (true) {}
Math.random(3)
input.onGesture(Gesture.Shake, () => {
})
input.onGesture(Gesture.Shake, () => {})
basic.showNumber(7)
basic.clearScreen()
basic.showString("Hello!")

View File

@ -1,6 +1,6 @@
# magic 8 quiz answers
create a magic 8 ball on the BBC micro:bit #math #random #docs
create a magic 8 ball on the BBC micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# magic 8 quiz
create a magic 8 ball on the BBC micro:bit #math #random #docs
create a magic 8 ball on the BBC micro:bit.
## Name

View File

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

View File

@ -1,6 +1,6 @@
# magic logo quiz answers
show an image that points up when the logo is up #logo #show #create #docs
show an image that points up when the logo is up.
## Name

View File

@ -1,6 +1,6 @@
# magic logo quiz
show an image that points up when the logo is up #logo #show #create #docs
show an image that points up when the logo is up.
## Name

View File

@ -1,6 +1,6 @@
# night light lesson
change the brightness of the BBC micro:bit #brightness #plot #docs
change the brightness of the BBC micro:bit.
### @video td/videos/night-light-0
@ -21,11 +21,9 @@ Learn how to **set brightness** of an image `set brightness` to set the brightne
## Documentation
```docs
```cards
led.setBrightness(255)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
basic.showLeds(`
. . . . .
. . . . .
@ -33,7 +31,6 @@ basic.showLeds(`
. . . . .
. . . . .
`)
```
## Objectives

View File

@ -1,6 +1,6 @@
# night light quiz answers
Answers to the night light quiz. #LED #image #brightness #fade #docs
Answers to the night light quiz.
This is the answer key for the [night light quiz](/microbit/lessons/night-light/quiz).

View File

@ -1,6 +1,6 @@
# night light quiz
change the brightness of the BBC micro:bit #LED #image #brightness #fade #docs
change the brightness of the BBC micro:bit.
## Name

View File

@ -1,6 +1,6 @@
# offset image quiz answers
shift an image horizontally across the display with offset #offset #screen #variables #docs
shift an image horizontally across the display with offset.
This is the answer key for the [offset image quiz](/microbit/lessons/offset-image/quiz).

View File

@ -1,6 +1,6 @@
# offset image quiz
shift an image horizontally across the display with offset #offset #screen #variables #docs
shift an image horizontally across the display with offset.
## Name

View File

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

View File

@ -1,9 +1,9 @@
# prank wifi lesson
create a fake wifi app to trick your friends #abs #acceleration #if #math #plot #image #functions #var #docs
create a fake wifi app to trick your friends.
create a fake wifi app to trick your friends
* [activity](/microbit/lessons/prank-wifi/activity)
* [quiz](/microbit/lessons/prank-wifi/quiz)
* [quiz answers](/microbit/lessons/prank-wifi/quiz-answers)

View File

@ -9,37 +9,37 @@ Complete the following exercise. Your code should look like this:
```blocks
basic.showString("Check Wifi", 150)
basic.forever(() => {
let xAccel = math.abs(input.acceleration("x"))
let yAccel = math.abs(input.acceleration("y"))
let zAccel = math.abs(input.acceleration("z"))
let xAccel = Math.abs(input.acceleration(Dimension.X))
let yAccel = Math.abs(input.acceleration(Dimension.Y))
let zAccel = Math.abs(input.acceleration(Dimension.Z))
let sum = xAccel + yAccel + zAccel
if (sum < 1400) {
basic.showleds(`
. . . . .
. . . . .
. . # . .
. # # . .
# # # . .
`)
basic.showLeds(`
. . . . .
. . . . .
. . # . .
. # # . .
# # # . .
`)
} else if (sum >= 1400 && sum < 1680) {
basic.showleds(`
. . . . .
. . . # .
. . # # .
. # # # .
# # # # .
`)
}
else if (sum >= 1680) {
basic.showleds(`
. . . . .
. . . . .
. . . . .
. . . . .
# . . . .
`)
basic.showLeds(`
. . . . .
. . . # .
. . # # .
. # # # .
# # # # .
`)
} else if (sum >= 1680) {
basic.showLeds(`
. . . . .
. . . . .
. . . . .
. . . . .
# . . . .
`)
}
})
```
**Challenge 1**
@ -53,12 +53,12 @@ Edit this line: if sum is greater than 1400 then just click on the `1400` and ba
```blocks
basic.showString("Check Wifi", 150)
basic.forever(() => {
let xAccel1 = math.abs(input.acceleration("x"))
let yAccel1 = math.abs(input.acceleration("y"))
let zAccel1 = math.abs(input.acceleration("z"))
let xAccel1 = Math.abs(input.acceleration(Dimension.X))
let yAccel1 = Math.abs(input.acceleration(Dimension.Y))
let zAccel1 = Math.abs(input.acceleration(Dimension.Z))
let sum1 = xAccel1 + yAccel1 + zAccel1
if (sum1 < 1200) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . . .
. . # . .
@ -66,7 +66,7 @@ basic.forever(() => {
# # # . .
`)
} else if (sum1 >= 1400 && sum1 < 1680) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . # .
. . # # .
@ -75,7 +75,7 @@ basic.forever(() => {
`)
}
else if (sum1 >= 1680) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . . .
. . . . .
@ -93,12 +93,12 @@ Let's add an **IF** at the bottom of your code that checks to see if `sum >= to
```blocks
basic.showString("Check Wifi", 150)
basic.forever(() => {
let xAccel2 = math.abs(input.acceleration("x"))
let yAccel2 = math.abs(input.acceleration("y"))
let zAccel2 = math.abs(input.acceleration("z"))
let xAccel2 = Math.abs(input.acceleration(Dimension.X))
let yAccel2 = Math.abs(input.acceleration(Dimension.Y))
let zAccel2 = Math.abs(input.acceleration(Dimension.Z))
let sum2 = xAccel2 + yAccel2 + zAccel2
if (sum2 < 1200) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . . .
. . # . .
@ -106,7 +106,7 @@ basic.forever(() => {
# # # . .
`)
} else if (sum2 >= 1400 && sum2 < 1680) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . # .
. . # # .
@ -115,7 +115,7 @@ basic.forever(() => {
`)
}
else if (sum2 >= 1680) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . . .
. . . . .
@ -124,18 +124,18 @@ basic.forever(() => {
`)
}
if (sum2 >= 1200 && sum2 < 1400) {
basic.showleds(`
basic.showLeds(`
. . . . #
. . . # #
. . # # #
. # # # #
# # # # #
`) // ***
`)
}
})
```
**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 `plot image()`.
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,6 +1,6 @@
# prank wifi quiz answers
create a fake wifi app to trick your friends #string #forever #abs #var #plot #image #if #math #abs #acceleration #docs
create a fake wifi app to trick your friends.
## Name
@ -15,9 +15,9 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
<br/>
```blocks
let xAccel = math.abs(input.acceleration("x"))
let yAccel = math.abs(input.acceleration("y"))
let zAccel = math.abs(input.acceleration("z"))
let xAccel = Math.abs(input.acceleration(Dimension.X))
let yAccel = Math.abs(input.acceleration(Dimension.Y))
let zAccel = Math.abs(input.acceleration(Dimension.Z))
```
<br/>
@ -29,6 +29,9 @@ let zAccel = math.abs(input.acceleration("z"))
<br/>
```blocks
let xAccel = Math.abs(input.acceleration(Dimension.X))
let yAccel = Math.abs(input.acceleration(Dimension.Y))
let zAccel = Math.abs(input.acceleration(Dimension.Z))
let sum = xAccel + yAccel + zAccel
```
@ -39,8 +42,12 @@ let sum = xAccel + yAccel + zAccel
<br/>
```blocks
let xAccel = Math.abs(input.acceleration(Dimension.X))
let yAccel = Math.abs(input.acceleration(Dimension.Y))
let zAccel = Math.abs(input.acceleration(Dimension.Z))
let sum = xAccel + yAccel + zAccel
if (sum < 1400) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . . .
. . # . .
@ -59,8 +66,12 @@ if (sum < 1400) {
<br/>
```blocks
let xAccel = Math.abs(input.acceleration(Dimension.X))
let yAccel = Math.abs(input.acceleration(Dimension.Y))
let zAccel = Math.abs(input.acceleration(Dimension.Z))
let sum = xAccel + yAccel + zAccel
if (sum >= 1400 && sum < 1680) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . # .
. . # # .
@ -70,7 +81,7 @@ if (sum >= 1400 && sum < 1680) {
}
```
## 5. Write the 'if statement' needed to display this specific plot image on the device
## 5. Write the code to display this specific image on the device
![](/static/mb/lessons/prank-wifi-0.png)
@ -78,9 +89,13 @@ if (sum >= 1400 && sum < 1680) {
<br/>
```
```blocks
let xAccel = Math.abs(input.acceleration(Dimension.X))
let yAccel = Math.abs(input.acceleration(Dimension.Y))
let zAccel = Math.abs(input.acceleration(Dimension.Z))
let sum = xAccel + yAccel + zAccel
if (sum >= 1680) {
basic.showleds(`
basic.showLeds(`
. . . . .
. . . . .
. . . . .

View File

@ -1,12 +1,12 @@
# prank wifi quiz
create a fake wifi app to trick your friends #string #forever #abs #var #plot #image #if #math #abs #acceleration #docs
create a fake wifi app to trick your friends.
## Name
## Directions
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/tutorial)
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/activity)
Answer the questions while completing the tutorial. Pay attention to the dialogues!

View File

@ -1,6 +1,6 @@
# rock paper scissors lesson
a game against the BBC micro:bit #var #image #button #string #number #docs
a game against the BBC micro:bit.
### @video td/videos/rock-paper-scissors-0
@ -23,10 +23,8 @@ Learn how to create a **local variable**, `var t :=time` where you can store dat
## Documentation
```docs
input.onGesture(Gesture.Shake, () => {
})
```cards
input.onGesture(Gesture.Shake, () => {})
Math.random(3)
let x = 0
basic.showLeds(`

View File

@ -1,6 +1,6 @@
# rock paper scissors quiz
shift an image horizontally across the display with offset #offset #screen #variables #docs
shift an image horizontally across the display with offset.
## Name

View File

@ -1,6 +1,6 @@
# rotation animation block lesson
Learn how to create images with a global variable and while loop. #LED #screen #plot #docs
Learn how to create images with a global variable and while loop.
## Topic
@ -19,11 +19,9 @@ Learn how to create images that look like a rotating animation by using a while
## Documentation
```docs
```cards
let x = 0
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
basic.showLeds(`
. . . . .
. . . . .
@ -32,10 +30,8 @@ basic.showLeds(`
. . . . .
`)
basic.pause(100)
while (true) {
basic.pause(20)
}
while (true) {}
basic.pause(20)
```
## Objectives

View File

@ -1,6 +1,6 @@
# rotation animation quiz answers
Learn how to create a rotating image with a while loop. #image #loop #while #docs
Learn how to create a rotating image with a while loop.
This is the answer key for the [rotation animation quiz](/microbit/lessons/rotation-animation/quiz).

View File

@ -1,6 +1,6 @@
# rotation animation quiz
Learn how to create a rotating image with a while loop. #image #loop #while #docs
Learn how to create a rotating image with a while loop.
## Name

View File

@ -1,6 +1,6 @@
# screen wipe blocks lesson
clear the screen by pressing button "A" #button #clear #docs
clear the screen by pressing button "A".
### @video td/videos/screen-wipe-0
@ -23,7 +23,7 @@ Learn how to **clear screen**, `clear screen` to turn off all the LED lights on
## Documentation
```docs
```cards
basic.clearScreen()
basic.showLeds(`
. . . . .
@ -32,10 +32,7 @@ basic.showLeds(`
. . . . .
. . . . .
`)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
```
## Objectives

View File

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

View File

@ -1,6 +1,6 @@
# snowflake fall blocks lesson
design a blinking rectangle animation #animation #loop #forever #docs
design a blinking rectangle animation.
### @video td/videos/snowflake-fall-0
@ -25,7 +25,7 @@ Learn how to show LEDs with a, `pause` to pause program execution for a specifie
* **pause** : [read more...](/microbit/reference/basic/pause)
* **forever** : [read more...](/microbit/reference/basic/forever)
```docs
```cards
basic.showLeds(`
. . . . .
. . . . .
@ -34,8 +34,5 @@ basic.showLeds(`
. . . . .
`)
basic.pause(100)
basic.forever(() => {
})
basic.forever(() => {})
```

View File

@ -1,6 +1,6 @@
# snowflake fall blocks activity
design a blinking rectangle animation. #docs #tutorials #stepByStep
design a blinking rectangle animation.
### ~avatar avatar

View File

@ -1,6 +1,6 @@
# speed button lesson
code a speed game by declaring Booleans on the BBC micro:bit #if #string #var #data #docs
code a speed game by declaring Booleans on the BBC micro:bit.
### @video td/videos/speed-button-3

View File

@ -1,6 +1,6 @@
# speed button quiz answers
counter that keeps track of how many times button "A" has been pressed #LED #screen #variables #docs #input
counter that keeps track of how many times button "A" has been pressed.
This is the answer key for the [speed button quiz](/microbit/lessons/speed-button/quiz).
@ -37,7 +37,7 @@ After two button presses, **count** will be equal to 2.
## 5. If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed after five button presses on Button A. Explain why that particular area is shaded.
```blocks
count_ = 0
let count_ = 0
input.onButtonPressed(Button.A, () => {
count_ = count_ + 1
basic.showNumber(count_, 100)

View File

@ -1,12 +1,12 @@
# speed button quiz
counter that keeps track of how many times button "A" has been pressed #LED #screen #variables #docs #input
counter that keeps track of how many times button "A" has been pressed.
## Name
## Directions
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/tutorial).
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/activity).
Answer the questions while completing the tutorial. Pay attention to the dialogues!
@ -37,7 +37,7 @@ input.onButtonPressed(Button.A, () => {
## 4. Draw which LED is ON after running this code and pressing Button A five times. Explain why you chose to draw that number.
```blocks
count_ = 0
let count_ = 0
input.onButtonPressed(Button.A, () => {
count_ = count_ + 1
basic.showNumber(count_, 100)

View File

@ -1,6 +1,6 @@
# spinner lesson
a spin the BBC micro:bit game with the input on shake #button #pressed #math #random #var #string #if #docs
a spin the BBC micro:bit game with the input on shake.
### @video td/videos/spinner-0
@ -22,14 +22,10 @@ Learn how to use an if statement to run code run code depending on whether a con
## Documentation
```docs
if (true) {
}
```cards
if (true) {}
let x = 0
input.onGesture(Gesture.Shake, () => {
})
input.onGesture(Gesture.Shake, () => {})
Math.random(3)
basic.showLeds(`
. . . . .

View File

@ -1,6 +1,6 @@
# spinner quiz answers
a spin the BBC micro:bit game with the input on shake #math #random #docs #shake
a spin the BBC micro:bit game with the input on shake.
## Name

View File

@ -1,6 +1,6 @@
# spinner quiz
a spin the BBC micro:bit game with the input on shake #math #random #docs #shake
a spin the BBC micro:bit game with the input on shake.
## Name

View File

@ -1,6 +1,6 @@
# Block Editor STEM Lessons
Overview of Blocks lessons for the BBC micro:bit. #docs #contents
Overview of Blocks lessons for the BBC micro:bit.
### @short Lessons

View File

@ -1,6 +1,6 @@
# strobe light lesson
Learn how to create a blinking LED script. #LED #screen #plot #docs
Learn how to create a blinking LED script.
### @video td/videos/strobe-light-0
@ -17,14 +17,11 @@ For Loop
## Documentation
```docs
```cards
led.plot(0, 0)
led.unplot(0, 0)
for (let i = 0; i < 5; i++) {
}
for (let i = 0; i < 5; i++) {}
basic.pause(100)
```
## Objectives

View File

@ -1,6 +1,6 @@
# strobe light quiz answers
Learn how to create a blinking images with a for loop. #LED #screen #plot #docs
Learn how to create a blinking images with a for loop.
This is the answer key for the [strobe light quiz](/microbit/lessons/strobe-light/quiz).

View File

@ -1,6 +1,6 @@
# strobe light quiz
Learn how to create a blinking LED script with a for loop. #LED #screen #plot #docs
Learn how to create a blinking LED script with a for loop.
## Name

View File

@ -1,6 +1,6 @@
# Teach Blocks
Overview of lesson instructions for the BBC micro:bit. #docs #contents
Overview of lesson instructions for the BBC micro:bit.
### @short Teach

View File

@ -1,6 +1,6 @@
# telegraph lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
## Topic
@ -9,6 +9,8 @@ Telegraph
## Quick Links
* [activity](/microbit/lessons/telegraph/activity)
* [challenges](/microbit/lessons/telegraph/challenges)
## Prior learning/place of lesson in scheme of work

View File

@ -1,6 +1,6 @@
# telegraph activity
Build a telgraph #microbit #docs
Build a telgraph.
# micro:bit telegraph
@ -67,10 +67,9 @@ Using the 4th crocodile clip, connect the unattached end of the crocodile clip o
![](/static/mb/lessons/telegraph-0.png)
Your telegraph is ready!
### Step 10
### ~avatar avatar
* Connect the first micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
* Connect the second micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
* The first person and second person take turns pressing button A to play the telegraph game!
Excellent, you're ready to continue with the [challenges](/microbit/lessons/telegraph/challenges)!
### ~

View File

@ -0,0 +1,114 @@
# telegraph activity
Build a telgraph.
# micro:bit telegraph
Have you ever tried to communicate through a telegraph? Let's try coding a "Telegraph" on two BBC micro:bits !
Complete the following [guided tutorial](/microbit/lessons/telegraph/activity), your hack should look like this:
![](/static/mb/lessons/telegraph-0.png)
### Step 1
We now need to digitally write to the specified pin (P0) as digital. Let's start by adding the code in the pin drawer that includes 'digital write (0,1) to pin P0'.. Then insert 1 for digital write.
```blocks
pins.digitalWritePin(DigitalPin.P0, 1)
```
### Step 2
We want to add a block to turn on an LED in the middle area of the LED display using plot x, y. So insert the appropriate LED plot x, y.
```blocks
pins.digitalWritePin(DigitalPin.P0, 1)
led.plot(2, 2)
```
### Step 3
We want to insert a condition that tells us when to turn on the LED. So insert the if block under logic drawer. Then add a condition that occurs if we do not turn on a LED with plot x, y. We also should plot an LED on the display if button A is pressed. Your code should appear as follows:
```blocks
if (input.buttonIsPressed(Button.A)) {
pins.digitalWritePin(DigitalPin.P0, 1)
led.plot(2, 2)
} else {
}
```
### Step 4
We want to write code if button A is NOT pressed. It is important to say that digital write is not on. We also want to turn off all LED lights on the LED screen
```blocks
if (input.buttonIsPressed(Button.A)) {
pins.digitalWritePin(DigitalPin.P0, 1)
led.plot(2, 2)
} else {
pins.digitalWritePin(DigitalPin.P0, 0)
basic.clearScreen()
}
```
### Step 5
Let's add a forever loop so this code runs in the background forever. Modify your code so that your code looks like this. Run the code and press Button A.
```blocks
basic.forever(() => {
if (input.buttonIsPressed(Button.A)) {
pins.digitalWritePin(DigitalPin.P0, 1)
led.plot(2, 2)
} else {
pins.digitalWritePin(DigitalPin.P0, 0)
basic.clearScreen()
}
})
```
### Step 6
We now need to digitally read to the specified pin (P1) as digital. Let's start by going to the pin drawer and adding digital read pin (0,1) and changing the pin to P1. Now we need to create a condition for digital read pin (0,1). So we go to the logic drawer and select the comparison operator. Then we want to set the comparison operator to 1 to turn on digital read on pin 1. We want to insert a condition that tells us if button A is pressed and we should turn on digital read on pin 1. So insert the if block under logic drawer. Then add a condition that occurs if digital read on P1 is on. Then we want to plot x, y at the x, y coordinates of 2,2. we also want to say that if digital read pin P1 is not on, we want to turn off all LED lights on the screen. Your code should appear as follows:
```blocks
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
led.plot(2, 2);
}
else {
basic.clearScreen();
}
basic.forever(() => {
if (input.buttonIsPressed(Button.A)) {
pins.digitalWritePin(DigitalPin.P0, 1);
led.plot(2, 2);
}
else {
pins.digitalWritePin(DigitalPin.P0, 0);
basic.clearScreen();
}
});
```
Your telegraph is ready!
### Step 7
* Connect the first micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
* Connect the second micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
* The first person and second person take turns pressing button A to play the telegraph game!

View File

@ -1,6 +1,6 @@
# temperature blocks lesson
measure the temperature on the BBC micro:bit #temp #var #docs
measure the temperature on the BBC micro:bit.
## Topic
@ -17,15 +17,12 @@ Learn how to get the ambient temperature (degree Celsius °C). The temperature i
## Documentation
```docs
```cards
input.temperature()
let x = 0
basic.showNumber(7)
basic.showString("Hello!")
input.onGesture(Gesture.Shake, () => {
})
input.onGesture(Gesture.Shake, () => {})
```
## Objectives

View File

@ -1,6 +1,6 @@
# the watch lesson
display beautiful images on the BBC micro:bit #var #pause #docs
display beautiful images on the BBC micro:bit.
![](/static/mb/lessons/the-watch-0.png)

View File

@ -150,9 +150,11 @@ Trim any leftover fabric, threads or tape.
Your watch is ready!
### Step 22
### ~avatar avatar
Connect your micro:bit to your computer using your USB cable and upload the [rock paper scissors](/microbit/rrwupw) script on it. Shake your watch to play against... the micro:bit!
Excellent, you're ready to continue with the [challenges](/microbit/lessons/rock-paper-scissors/activity)!
### ~
### Acknowledgements

View File

@ -1,6 +1,6 @@
# truth or dare lesson
create a love meter with the BBC micro:bit #button #pressed #math #random #var #string #if #docs
create a love meter with the BBC micro:bit.
### @video td/videos/truth-or-dare-0
@ -21,7 +21,7 @@ Learn how to use an if statement to run code run code depending on whether a con
## Documentation
```docs
```cards
basic.showLeds(`
. . . . .
. . . . .
@ -29,16 +29,11 @@ basic.showLeds(`
. . . . .
. . . . .
`)
input.onButtonPressed(Button.A, () => {
})
input.onButtonPressed(Button.A, () => {})
let x = 0
Math.random(3)
if (true) {
}
if (true) {}
basic.showString("Hello!")
```
## Objectives

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