From f9409b5fb59c0f595ad37df9edc07fb2e1561449 Mon Sep 17 00:00:00 2001 From: Ron Hale-Evans Date: Tue, 31 May 2016 11:44:20 -0700 Subject: [PATCH 1/4] Mailbot example works now. --- docs/reference/radio/send-number.md | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/docs/reference/radio/send-number.md b/docs/reference/radio/send-number.md index 71de3fb9..9b0686cb 100644 --- a/docs/reference/radio/send-number.md +++ b/docs/reference/radio/send-number.md @@ -2,18 +2,6 @@ Broadcasts a number data packet to other micro:bits connected via ``radio``. -## Important Security Consideration - -The functions in the ``radio`` namespace allow the BBC micro:bit to communicate with other micro:bits. - -This API does not contain any form of encryption, authentication or authorization. It's purpose is solely for use as a teaching aid to demonstrate how simple communications operates, and to provide a sandpit through which learning can take place. - -For serious applications, BLE should be considered a substantially more secure alternative. - -```sig -radio.sendNumber(0) -``` - ### Parameters * packet - a number to be transmitted. @@ -64,7 +52,7 @@ let max = 0 basic.forever(() => { let level = radio.receiveNumber() if (level > max) { - let max = level + max = level } if (max > 10) { basic.showString("ALERT") From a9cfe83bdf26b88b945c5aa451a63a11bf5abba2 Mon Sep 17 00:00:00 2001 From: Ron Hale-Evans Date: Tue, 31 May 2016 12:06:03 -0700 Subject: [PATCH 2/4] Target=kids so removing all 'Important Security Considerations' for now. --- docs/reference/radio/on-data-received.md | 12 ------------ docs/reference/radio/receive-number.md | 12 ------------ docs/reference/radio/set-group.md | 12 ------------ 3 files changed, 36 deletions(-) diff --git a/docs/reference/radio/on-data-received.md b/docs/reference/radio/on-data-received.md index 61f2d6a2..b0095175 100644 --- a/docs/reference/radio/on-data-received.md +++ b/docs/reference/radio/on-data-received.md @@ -2,18 +2,6 @@ Registers code to run when a packet is received over ``radio``. -## Important Security Consideration - -The functions in the ``radio`` namespace allow the BBC micro:bit to communicate with other micro:bits. - -This API does not contain any form of encryption, authentication or authorization. It's purpose is solely for use as a teaching aid to demonstrate how simple communications operates, and to provide a sandpit through which learning can take place. - -For serious applications, BLE should be considered a substantially more secure alternative. - -```sig -radio.onDataReceived(() => {}) -``` - ### Parameters * body - is an action diff --git a/docs/reference/radio/receive-number.md b/docs/reference/radio/receive-number.md index 1d80eaff..85b45230 100644 --- a/docs/reference/radio/receive-number.md +++ b/docs/reference/radio/receive-number.md @@ -2,18 +2,6 @@ Reads the next radio packet if any and returns the first number. -## Important Security Consideration - -The functions in the ``radio`` namespace allow the BBC micro:bit to communicate with other micro:bits. - -This API does not contain any form of encryption, authentication or authorization. It's purpose is solely for use as a teaching aid to demonstrate how simple communications operates, and to provide a sandpit through which learning can take place. - -For serious applications, BLE should be considered a substantially more secure alternative. - -```sig -radio.receiveNumber() -``` - ### Return value * the first number [number](/reference/types/number) of the packet if any. `0` otherwise. diff --git a/docs/reference/radio/set-group.md b/docs/reference/radio/set-group.md index 161085d4..16c91118 100644 --- a/docs/reference/radio/set-group.md +++ b/docs/reference/radio/set-group.md @@ -4,18 +4,6 @@ Sets the group id for ``radio`` communications. A micro:bit can only listen to o Unless specified, the group id is automatically inferred from the script source. Every script with the same exact source code with start with the same group id. -## Important Security Consideration - -The functions in the ``radio`` namespace allow the BBC micro:bit to communicate with other micro:bits. - -This API does not contain any form of encryption, authentication or authorization. It's purpose is solely for use as a teaching aid to demonstrate how simple communications operates, and to provide a sandpit through which learning can take place. - -For serious applications, BLE should be considered a substantially more secure alternative. - -```sig -radio.setGroup(1) -``` - ### Parameters * ``id`` -- a [number](/reference/types/number) between ``0`` and ``255``. From 5650f7dc35c2c54e07a1eff10f01faac1ca480a1 Mon Sep 17 00:00:00 2001 From: Ron Hale-Evans Date: Tue, 31 May 2016 17:02:22 -0700 Subject: [PATCH 3/4] Finishing pass on send/receive number. Examples distributed more sensibly. --- docs/reference/radio/receive-number.md | 46 +++++++++++++++++++++++--- docs/reference/radio/send-number.md | 46 +++++--------------------- 2 files changed, 50 insertions(+), 42 deletions(-) diff --git a/docs/reference/radio/receive-number.md b/docs/reference/radio/receive-number.md index 85b45230..8b25e601 100644 --- a/docs/reference/radio/receive-number.md +++ b/docs/reference/radio/receive-number.md @@ -1,14 +1,15 @@ # Receive Number -Reads the next radio packet if any and returns the first number. +Receives the next number sent by a micro:bit in the same ``radio`` group. ### Return value -* the first number [number](/reference/types/number) of the packet if any. `0` otherwise. +* the first [number](/reference/types/number) that the micro:bit received. If it did not receive any numbers, this function will return `0`. -### Examples +### Example: Simple number receiver -Read the number broadcasted by other micro:bits. +This example receives the number broadcasted another micro:bit and shows it +as a bar graph. ```blocks radio.onDataReceived(() => { @@ -16,7 +17,42 @@ radio.onDataReceived(() => { }) ``` +### Example: Light level receiver + +This example shows the light level from the [light level sender example](/reference/input/send-number) +as a number. + +```blocks +radio.setGroup(99) +basic.forever(() => { + let level = radio.receiveNumber() + basic.showNumber(level) +}) +``` + +### Example: Mailbot + +This example receives the light level from the [light level sender example](/reference/input/send-number) +and shows a text string like **ALERT** if the light level becomes much brighter. +To find when the mail arrives, you can put the light level sender in your mailbox and it will +tell you when someone opens the box. You can try this with a normal +box too, like a present for a friend. + +```blocks +radio.setGroup(99) +let max = 0 +basic.forever(() => { + let level = radio.receiveNumber() + if (level > max) { + max = level + } + if (max > 10) { + basic.showString("ALERT") + } +}) +``` + ### See also -[receive number](/reference/input/receive-number), [on data received](/reference/radio/on-data-received) +[send number](/reference/input/send-number), [on data received](/reference/radio/on-data-received) diff --git a/docs/reference/radio/send-number.md b/docs/reference/radio/send-number.md index 9b0686cb..45f70cf5 100644 --- a/docs/reference/radio/send-number.md +++ b/docs/reference/radio/send-number.md @@ -1,14 +1,16 @@ # Send Number -Broadcasts a number data packet to other micro:bits connected via ``radio``. +Broadcast a number to other micro:bits connected via ``radio``. ### Parameters -* packet - a number to be transmitted. +* num - a number to send. -### Examples +### Example: Broadcasting acceleration -Broadcasts the value of ``acceleration`` x to other micro:bits. +This example broadcasts the value of your micro:bit's ``acceleration`` in the `x` direction +(left and right) to other micro:bits. +This kind of program might be useful in a model car or model rocket. ```blocks input.onButtonPressed(Button.A, () => { @@ -18,7 +20,9 @@ input.onButtonPressed(Button.A, () => { ### Light level sender -This example broadcasts the level of the light around it: +This example broadcasts the level of the light around it. +You can do some interesting things with it if you use it along with the +[Mailbot](/reference/radio/receive-number) example. ```blocks radio.setGroup(99) @@ -28,38 +32,6 @@ basic.forever(() => { }) ``` -This example shows the light level from the sender (above): - -```blocks -radio.setGroup(99) -basic.forever(() => { - let level = radio.receiveNumber() - basic.showNumber(level) -}) -``` - -### Mailbot - -This example takes the signal from the light level sender (above) -and shows a text string if the light level becomes much brighter. -You can put the light level sender in your mailbox and it will -tell you when someone opens the box. You can try this with a normal -box too, like a present. - -```blocks -radio.setGroup(99) -let max = 0 -basic.forever(() => { - let level = radio.receiveNumber() - if (level > max) { - max = level - } - if (max > 10) { - basic.showString("ALERT") - } -}) -``` - ### See also [receive number](/reference/radio/receive-number), [on data received](/reference/radio/on-data-received) From 6429b5708130e999da9d2f5a602c23673c1d856b Mon Sep 17 00:00:00 2001 From: Ron Hale-Evans Date: Tue, 31 May 2016 17:17:36 -0700 Subject: [PATCH 4/4] Improve docs (terminology, hyperlinks). --- docs/projects/rock-paper-scissors.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/projects/rock-paper-scissors.md b/docs/projects/rock-paper-scissors.md index 88e1c605..df597ee4 100644 --- a/docs/projects/rock-paper-scissors.md +++ b/docs/projects/rock-paper-scissors.md @@ -55,7 +55,8 @@ input.onGesture(Gesture.Shake, () => { ``` Next, when you shake the micro:bit, it should pick a random number from `0` to `2` -and store it in the variable. +and store it in the variable `weapon`. (This variable is named `weapon` because +rock, paper, and scissors are the weapons you use to battle your friends!) Add a ``set`` block with a variable. Then add a ``pick random`` block, and store the random number in the variable, @@ -230,4 +231,4 @@ input.onButtonPressed(Button.B, () => { ## Step 8: Hacking Rock Paper Scissors How else can you make your game better? -Ever hear of [Rock Paper Scissors Spock Lizard](https://en.wikipedia.org/wiki/Rock-paper-scissors#Additional_weapons)? +Ever hear of [Rock Paper Scissors Spock Lizard](http://www.samkass.com/theories/RPSSL.html)?