Finishing pass on send/receive number. Examples distributed more sensibly.

This commit is contained in:
Ron Hale-Evans 2016-05-31 17:02:22 -07:00
parent a9cfe83bdf
commit 5650f7dc35
2 changed files with 50 additions and 42 deletions

View File

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

View File

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