Merge branch 'master' of https://github.com/Microsoft/pxt-microbit
@ -4,7 +4,7 @@ You can write micro:bit programs in a subset of [TypeScript](https://www.typescr
|
||||
Many micro:bit programs, especially at the beginner's level, are just plain JavaScript. TypeScript introduces class-based
|
||||
object-oriented programming, such as:
|
||||
|
||||
```js
|
||||
```typescript
|
||||
class Greeter {
|
||||
greeting: string;
|
||||
constructor(message: string) {
|
||||
|
36
docs/reference/bluetooth/start-io-pin-service.md
Executable file
@ -0,0 +1,36 @@
|
||||
# Bluetooth IO Pin Service
|
||||
|
||||
![](/static/bluetooth/Bluetooth_SIG.png)
|
||||
|
||||
The Bluetooth IO pin service makes it possible for another device such as a smartphone to communicate with other electronic 'things' connected to a micro:bit's edge connector. You could for example, use your smartphone to switch on or off a light which is connected to the micro:bit or your smartphone could receive data collected from a sensor connected to the micro:bit. In fact you could do both of these things at the same time since the Bluetooth IO pin service lets you interact with multiple 'pins' on the edge conector in different ways all at the same time.
|
||||
|
||||
No additional code is needed on the micro:bit to use the Bluetooth IO pin service from another device.
|
||||
|
||||
~~~~sig
|
||||
bluetooth.startIOPinService();
|
||||
~~~~
|
||||
|
||||
### Example: Starting the Bluetooth IO pin service
|
||||
|
||||
The following code shows the Bluetooth IO pin service being started:
|
||||
|
||||
~~~~blocks
|
||||
bluetooth.startIOPinService();
|
||||
~~~~
|
||||
|
||||
### Video - IO pin service demo starts at 3:49
|
||||
|
||||
[![micro:bit Bluetooth demo video](/static/bluetooth/microbit_pin_io.png)](
|
||||
http://www.youtube.com/watch?v=aep_GVowKfs "Click to launch YouTube video"
|
||||
)
|
||||
|
||||
### Advanced
|
||||
|
||||
For more advanced information on the micro:bit Bluetooth IO pin service including information on using a smartphone, see the [Lancaster University micro:bit runtime technical documentation](http://lancaster-university.github.io/microbit-docs/ble/iopin-service/)
|
||||
|
||||
### See also
|
||||
|
||||
[Bluetooth SIG](https://www.bluetooth.com)
|
||||
|
||||
[Bluetooth on micro:bit resources](http://bluetooth-mdw.blogspot.co.uk/p/bbc-microbit.html)
|
||||
|
BIN
docs/static/bluetooth/Bluetooth_SIG.png
vendored
Executable file
After Width: | Height: | Size: 4.0 KiB |
BIN
docs/static/bluetooth/microbit_pin_io.png
vendored
Executable file
After Width: | Height: | Size: 144 KiB |
BIN
docs/static/mb/projects/a1-display.png
vendored
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 20 KiB |
BIN
docs/static/mb/projects/a10-watch.png
vendored
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
BIN
docs/static/mb/projects/a2-buttons.png
vendored
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
BIN
docs/static/mb/projects/a3-pins.png
vendored
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
BIN
docs/static/mb/projects/a4-motion.png
vendored
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
docs/static/mb/projects/a5-compass.png
vendored
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 38 KiB |
BIN
docs/static/mb/projects/a6-music.png
vendored
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 29 KiB |
BIN
docs/static/mb/projects/a7-conductive.png
vendored
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 28 KiB |
BIN
docs/static/mb/projects/a8-network.png
vendored
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
BIN
docs/static/mb/projects/a9-radio.png
vendored
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 18 KiB |
@ -5,7 +5,7 @@ using namespace pxt;
|
||||
//% color=#0082FB weight=20
|
||||
namespace bluetooth {
|
||||
/**
|
||||
* Starts the Bluetooth IO pin service
|
||||
* Starts the Bluetooth IO pin service.
|
||||
*/
|
||||
//% help=bluetooth/start-io-pin-service
|
||||
//% blockId=bluetooth_start_io_pin_service block="bluetooth io pin service" blockGap=8
|
||||
@ -23,7 +23,7 @@ namespace bluetooth {
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the temperature service
|
||||
* Starts the Bluetooth temperature service
|
||||
*/
|
||||
//% help=bluetooth/start-temperature-service
|
||||
//% blockId=bluetooth_start_temperature_service block="bluetooth temperature service" blockGap=8
|
||||
@ -32,7 +32,7 @@ namespace bluetooth {
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the magnetometer service
|
||||
* Starts the Bluetooth magnetometer service
|
||||
*/
|
||||
//% help=bluetooth/start-magnetometer-service
|
||||
//% blockId=bluetooth_start_magnetometer_service block="bluetooth magnetometer service" blockGap=8
|
||||
@ -41,7 +41,7 @@ namespace bluetooth {
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the accelerometer service
|
||||
* Starts the Bluetooth accelerometer service
|
||||
*/
|
||||
//% help=bluetooth/start-accelerometer-service
|
||||
//% blockId=bluetooth_start_accelerometer_service block="bluetooth accelerometer service" blockGap=8
|
||||
@ -50,11 +50,33 @@ namespace bluetooth {
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the button service
|
||||
* Starts the Bluetooth button service
|
||||
*/
|
||||
//% help=bluetooth/start-button-service
|
||||
//% blockId=bluetooth_start_button_service block="bluetooth button service" blockGap=8
|
||||
void startButtonService() {
|
||||
new MicroBitButtonService(*uBit.ble);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register code to run when the micro:bit is connected to over Bluetooth
|
||||
* @param body Code to run when a Bluetooth connection is established
|
||||
*/
|
||||
//% help=bluetooth/on-bluetooth-connected
|
||||
//% blockId=bluetooth_on_connected block="on bluetooth connected"
|
||||
void onBluetoothConnected(Action body) {
|
||||
registerWithDal(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, body);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register code to run when a bluetooth connection to the micro:bit is lost
|
||||
* @param body Code to run when a Bluetooth connection is lost
|
||||
*/
|
||||
//% help=bluetooth/on-bluetooth-disconnected
|
||||
//% blockId=bluetooth_on_disconnected block="on bluetooth disconnected"
|
||||
void onBluetoothDisconnected(Action body) {
|
||||
registerWithDal(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, body);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -15,8 +15,18 @@
|
||||
"config": {
|
||||
"microbit-dal": {
|
||||
"bluetooth": {
|
||||
"enabled": 1
|
||||
}
|
||||
"enabled": 1,
|
||||
"pairing_mode": 1,
|
||||
"private_addressing": 0,
|
||||
"open": 0,
|
||||
"whitelist": 1,
|
||||
"advertising_timeout": 0,
|
||||
"tx_power": 0,
|
||||
"dfu_service": 1,
|
||||
"event_service": 1,
|
||||
"device_info_service": 1
|
||||
},
|
||||
"gatt_table_size": "0x700"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
26
libs/microbit-bluetooth/shims.d.ts
vendored
@ -6,7 +6,7 @@
|
||||
declare namespace bluetooth {
|
||||
|
||||
/**
|
||||
* Starts the Bluetooth IO pin service
|
||||
* Starts the Bluetooth IO pin service.
|
||||
*/
|
||||
//% help=bluetooth/start-io-pin-service
|
||||
//% blockId=bluetooth_start_io_pin_service block="bluetooth io pin service" blockGap=8 shim=bluetooth::startIOPinService
|
||||
@ -20,32 +20,48 @@ declare namespace bluetooth {
|
||||
function startLEDService(): void;
|
||||
|
||||
/**
|
||||
* Starts the temperature service
|
||||
* Starts the Bluetooth temperature service
|
||||
*/
|
||||
//% help=bluetooth/start-temperature-service
|
||||
//% blockId=bluetooth_start_temperature_service block="bluetooth temperature service" blockGap=8 shim=bluetooth::startTemperatureService
|
||||
function startTemperatureService(): void;
|
||||
|
||||
/**
|
||||
* Starts the magnetometer service
|
||||
* Starts the Bluetooth magnetometer service
|
||||
*/
|
||||
//% help=bluetooth/start-magnetometer-service
|
||||
//% blockId=bluetooth_start_magnetometer_service block="bluetooth magnetometer service" blockGap=8 shim=bluetooth::startMagnetometerService
|
||||
function startMagnetometerService(): void;
|
||||
|
||||
/**
|
||||
* Starts the accelerometer service
|
||||
* Starts the Bluetooth accelerometer service
|
||||
*/
|
||||
//% help=bluetooth/start-accelerometer-service
|
||||
//% blockId=bluetooth_start_accelerometer_service block="bluetooth accelerometer service" blockGap=8 shim=bluetooth::startAccelerometerService
|
||||
function startAccelerometerService(): void;
|
||||
|
||||
/**
|
||||
* Starts the button service
|
||||
* Starts the Bluetooth button service
|
||||
*/
|
||||
//% help=bluetooth/start-button-service
|
||||
//% blockId=bluetooth_start_button_service block="bluetooth button service" blockGap=8 shim=bluetooth::startButtonService
|
||||
function startButtonService(): void;
|
||||
|
||||
/**
|
||||
* Register code to run when the micro:bit is connected to over Bluetooth
|
||||
* @param body Code to run when a Bluetooth connection is established
|
||||
*/
|
||||
//% help=bluetooth/on-bluetooth-connected
|
||||
//% blockId=bluetooth_on_connected block="on bluetooth connected" shim=bluetooth::onBluetoothConnected
|
||||
function onBluetoothConnected(body: () => void): void;
|
||||
|
||||
/**
|
||||
* Register code to run when a bluetooth connection to the micro:bit is lost
|
||||
* @param body Code to run when a Bluetooth connection is lost
|
||||
*/
|
||||
//% help=bluetooth/on-bluetooth-disconnected
|
||||
//% blockId=bluetooth_on_disconnected block="on bluetooth disconnected" shim=bluetooth::onBluetoothDisconnected
|
||||
function onBluetoothDisconnected(body: () => void): void;
|
||||
}
|
||||
|
||||
// Auto-generated. Do not edit. Really.
|
||||
|