Compare commits
24 Commits
v0.5.2
...
v0.5.0-rc1
Author | SHA1 | Date | |
---|---|---|---|
40cfca4eef | |||
00608fca4f | |||
b5cbdef3b7 | |||
94556d3303 | |||
5a600245ff | |||
8bbfcb694c | |||
329da0b65b | |||
7850ff198d | |||
17b76559fd | |||
ef8d7185ee | |||
b0392da8b1 | |||
c817f9e3ff | |||
5f78f98f94 | |||
395b6184b9 | |||
3274964a11 | |||
f5e8b35df4 | |||
996073728c | |||
1e964ba1ea | |||
895a099ebf | |||
f7ed06108d | |||
0ffccdca85 | |||
9f5ebdfb78 | |||
6e64e80c05 | |||
dde16fec14 |
3
.vscode/settings.json
vendored
@ -16,5 +16,6 @@
|
|||||||
"**/pxt_modules/**": true
|
"**/pxt_modules/**": true
|
||||||
},
|
},
|
||||||
"tslint.enable": true,
|
"tslint.enable": true,
|
||||||
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib"
|
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib",
|
||||||
|
"typescript.tsdk": "./node_modules/typescript/lib"
|
||||||
}
|
}
|
@ -2,5 +2,5 @@
|
|||||||
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
||||||
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
|
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
|
||||||
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e", { disable_persistence: true });
|
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e", { disable_persistence: true });
|
||||||
if (pxtConfig) mixpanel.register({ target: pxtConfig.targetId, version: pxtConfig.targetVersion });
|
if (typeof pxtConfig !== "undefined") mixpanel.register({ target: pxtConfig.targetId, version: pxtConfig.targetVersion });
|
||||||
</script>
|
</script>
|
||||||
|
@ -2,5 +2,5 @@
|
|||||||
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
||||||
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
|
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
|
||||||
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e", { disable_persistence: true });
|
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e", { disable_persistence: true });
|
||||||
if (pxtConfig) mixpanel.register({ target: pxtConfig.targetId, version: pxtConfig.targetVersion });
|
if (typeof pxtConfig !== "undefined") mixpanel.register({ target: pxtConfig.targetId, version: pxtConfig.targetVersion });
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,11 +1,40 @@
|
|||||||
# crocodile clips
|
# crocodile clips
|
||||||
|
|
||||||
The large holes at the bottom of the board are designed to attach alligator/crocodile clips.
|
The large holes at the bottom of the board are designed to attach alligator/crocodile clips
|
||||||
Register an event that will execute whenever the user attaches one side of the crocodile clip to the `GND` pin, then connects and disconnects the unattached side of the crocodile clip to pin `0`, `1`, or `2`.
|
to create electrical circuit with other components.
|
||||||
|
|
||||||
### Example: on pin pressed with random numbers
|
# ~hint
|
||||||
|
|
||||||
This example displays a random number every time the crocodile clip holds `GND` then connects and disconnects the `P0` pin. Each time the crocodile clip is firmly connected and disconnected from pin `P0`, the micro:bit will return a random Number between 0 and the parameter limit
|
**No crocodile clips!?!?!** Use wires or Aluminium foil! [Read more...](/device/foil-circuits)
|
||||||
|
|
||||||
|
# ~
|
||||||
|
|
||||||
|
|
||||||
|
## Connecting Crocodile Clips
|
||||||
|
|
||||||
|
The hole for ``P0`` and ``GND`` allow to grab the board on the side which makes for a great grip.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Pass one jaw in the hole and grab the side of the board with the other jaw.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
For the center holes, ``P1`` and ``P2``, you can also grab the bottom of the board but they are a bit harder to grip.
|
||||||
|
|
||||||
|
You can also grip the board between the jaws. In which case, you will want to make sure to avoid overlapping the jaws
|
||||||
|
with the other pins as it will create short-circuit in the board.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Adding a little tape helps keeping the crocodile clips in place.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Example: on pin pressed with random numbers
|
||||||
|
|
||||||
|
This example displays a random number every time the crocodile clip holds `GND` then connects and disconnects the `P0` pin.
|
||||||
|
Each time the crocodile clip is firmly connected and disconnected from pin `P0`, the micro:bit will return a random Number between 0 and the parameter limit.
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
input.onPinPressed(TouchPin.P0, () => {
|
input.onPinPressed(TouchPin.P0, () => {
|
||||||
@ -13,11 +42,6 @@ input.onPinPressed(TouchPin.P0, () => {
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
### Connecting Crocodile Clips
|
## See also
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### See also
|
|
||||||
|
|
||||||
[micro:bit pins](/device/pins), [pin is pressed](/reference/input/pin-is-pressed), [analog read pin](/reference/pins/analog-read-pin), [analog write pin](/reference/pins/analog-write-pin), [digital read pin](/reference/pins/digital-read-pin), [digital write pin](/reference/pins/digital-write-pin)
|
|
||||||
|
|
||||||
|
[micro:bit pins](/device/pins)
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
# Error codes
|
# Error codes
|
||||||
|
|
||||||
The micro:bit error codes
|
|
||||||
|
|
||||||
Your micro:bit may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your micro:bit screen (see picture) followed by an error number.
|
Your micro:bit may encounter a situation that prevents it from running your code. When this happens, a frowny face will appear on your micro:bit screen (see picture) followed by an error number.
|
||||||
|
|
||||||
Below is a list of error numbers and what they mean:
|
Below is a list of error numbers and what they mean:
|
||||||
|
52
docs/device/foil-circuits.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# foil circuits
|
||||||
|
|
||||||
|
The large holes at the bottom of the board are designed to attach alligator/crocodile clips
|
||||||
|
to create electrical circuit with other components.
|
||||||
|
|
||||||
|
If you do not have crocodile clips at hand, dyou can use wires or even Aluminium foil to acheive the same result.
|
||||||
|
We will show you how to connect the micro:bit to headphones using Alumunium foil and tape.
|
||||||
|
|
||||||
|
https://youtu.be/mhXYyPuvpz0
|
||||||
|
|
||||||
|
### Materials
|
||||||
|
|
||||||
|
* micro:bit and battery pack (you can also power it via USB)
|
||||||
|
* a small piece of cardboard
|
||||||
|
* Aluminium foil
|
||||||
|
* tape
|
||||||
|
|
||||||
|
### Assembly instructions
|
||||||
|
|
||||||
|
Tape the micro:bit and battery pack to the card board. Make sure to remove the batteries while you are building your circuit.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Cut the thinest strip of foil possible and roll it into a cable. You can also try to fold, whatever works for you.
|
||||||
|
Build two of those wires.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Place the foil wire on the ``GND`` pin and attach with a piece of tape. Press hard to get the best connection between
|
||||||
|
the foil and the pin board. Make sure the foil is not overlapping with the other pins!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Place the second wire on the ``P0`` pin the same way. Make sure the wire does not overlap with the other pins!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Tape the headphone jack connector to the cardboard and roll the wire coming from ``GND`` around the metal base.
|
||||||
|
Make sure the wire does not touch the other metal rings on the jack.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Tape the second wire on the head of the jack connector.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## See also
|
||||||
|
|
||||||
|
[micro:bit pins](/device/pins)
|
3
docs/index-ref.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"appref": "Microsoft/pxt-microbit-built#vtest8"
|
||||||
|
}
|
@ -7,11 +7,12 @@
|
|||||||
```sim
|
```sim
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
# # # # #
|
# # # # #
|
||||||
# # # # #
|
# # # # #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`);
|
. . # . .`
|
||||||
|
);
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.clearScreen();
|
basic.clearScreen();
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
@ -29,11 +30,12 @@ Use [show leds](/reference/basic/show-leds) and make your code look like this:
|
|||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
# # # # #
|
# # # # #
|
||||||
# # # # #
|
# # # # #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`);
|
. . # . .`
|
||||||
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 2
|
## Step 2
|
||||||
@ -42,11 +44,11 @@ Add a [pause](/reference/basic/pause) to wait and [clear screen](/reference/basi
|
|||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
# # # # #
|
# # # # #
|
||||||
# # # # #
|
# # # # #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`);
|
. . # . .`);
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.clearScreen();
|
basic.clearScreen();
|
||||||
```
|
```
|
||||||
@ -58,11 +60,12 @@ Put a [forever loop](/reference/basic/forever) around it.
|
|||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
# # # # #
|
# # # # #
|
||||||
# # # # #
|
# # # # #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`);
|
. . # . .`
|
||||||
|
);
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.clearScreen();
|
basic.clearScreen();
|
||||||
})
|
})
|
||||||
@ -75,11 +78,12 @@ Add a [pause](/reference/basic/pause) to wait after clearing the screen.
|
|||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
# # # # #
|
# # # # #
|
||||||
# # # # #
|
# # # # #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`);
|
. . # . .`
|
||||||
|
);
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.clearScreen();
|
basic.clearScreen();
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
@ -94,20 +98,22 @@ Add a second image of a broken heart.
|
|||||||
```blocks
|
```blocks
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
# # # # #
|
# # # # #
|
||||||
# # # # #
|
# # # # #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`);
|
. . # . .`
|
||||||
|
);
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.clearScreen();
|
basic.clearScreen();
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
# . # # #
|
# . # # #
|
||||||
# . . . #
|
# . . . #
|
||||||
. # # # .
|
. # # # .
|
||||||
. . # . .`);
|
. . # . .`
|
||||||
|
);
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.clearScreen();
|
basic.clearScreen();
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
|
@ -24,6 +24,12 @@ Build your own music player micro:bit from headphones.
|
|||||||
* [Connect your headphone](/projects/hack-your-headphone/making)
|
* [Connect your headphone](/projects/hack-your-headphone/making)
|
||||||
* [Play sounds!]()
|
* [Play sounds!]()
|
||||||
|
|
||||||
|
# ~hint
|
||||||
|
|
||||||
|
**No crocodile clips!?!?!** Use wires or Aluminium foil! [Read more...](/device/foil-circuits)
|
||||||
|
|
||||||
|
# ~
|
||||||
|
|
||||||
### ~button /projects/hack-your-headphones/making
|
### ~button /projects/hack-your-headphones/making
|
||||||
|
|
||||||
Let's get started!
|
Let's get started!
|
||||||
|
@ -6,6 +6,12 @@ Did you know you could attach your headhpones to the micro:bit to generate sound
|
|||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
|
# ~hint
|
||||||
|
|
||||||
|
**No crocodile clips!?!?!** Use wires or Aluminium foil! [Read more...](/device/foil-circuits)
|
||||||
|
|
||||||
|
# ~
|
||||||
|
|
||||||
### Step 1
|
### Step 1
|
||||||
|
|
||||||

|

|
||||||
|
@ -10,11 +10,12 @@ Use [show leds](/reference/basic/show-leds) to make a smiley face:
|
|||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
. # . # .
|
. # . # .
|
||||||
. . . . .
|
. . . . .
|
||||||
# . . . #
|
# . . . #
|
||||||
. # # # .`);
|
. # # # .`
|
||||||
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 2
|
## Step 2
|
||||||
@ -24,18 +25,20 @@ frowny face inside it:
|
|||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
. # . # .
|
. # . # .
|
||||||
. . . . .
|
. . . . .
|
||||||
# . . . #
|
# . . . #
|
||||||
. # # # .`);
|
. # # # .`
|
||||||
|
);
|
||||||
input.onButtonPressed(Button.A, () => {
|
input.onButtonPressed(Button.A, () => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
. # . # .
|
. # . # .
|
||||||
. . . . .
|
. . . . .
|
||||||
. # # # .
|
. # # # .
|
||||||
# . . . #`);
|
# . . . #`
|
||||||
|
);
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -45,18 +48,20 @@ Now add blocks so that when [button B is pressed](/reference/input/button-is-pre
|
|||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
. # . # .
|
. # . # .
|
||||||
. . . . .
|
. . . . .
|
||||||
# . . . #
|
# . . . #
|
||||||
. # # # .`);
|
. # # # .`
|
||||||
|
);
|
||||||
input.onButtonPressed(Button.A, () => {
|
input.onButtonPressed(Button.A, () => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
. # . # .
|
. # . # .
|
||||||
. # . # .
|
. # . # .
|
||||||
. . . . .
|
. . . . .
|
||||||
. # # # .
|
. # # # .
|
||||||
# . . . #`);
|
# . . . #`
|
||||||
|
);
|
||||||
});
|
});
|
||||||
input.onButtonPressed(Button.B, () => {
|
input.onButtonPressed(Button.B, () => {
|
||||||
basic.showLeds(`
|
basic.showLeds(`
|
||||||
@ -64,6 +69,7 @@ input.onButtonPressed(Button.B, () => {
|
|||||||
. # . # .
|
. # . # .
|
||||||
. . . . .
|
. . . . .
|
||||||
# . . . #
|
# . . . #
|
||||||
. # # # .`);
|
. # # # .`
|
||||||
|
);
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
@ -10,6 +10,10 @@ input.onButtonPressed(Button.A, () => {
|
|||||||
music.playTone(0, 0);
|
music.playTone(0, 0);
|
||||||
led.plot(0, 0);
|
led.plot(0, 0);
|
||||||
radio.sendNumber(0);
|
radio.sendNumber(0);
|
||||||
|
```
|
||||||
|
## Advanced
|
||||||
|
|
||||||
|
```namespaces
|
||||||
game.addScore(1);
|
game.addScore(1);
|
||||||
images.createImage(`
|
images.createImage(`
|
||||||
. . . . .
|
. . . . .
|
||||||
@ -24,7 +28,8 @@ control.inBackground(() => {
|
|||||||
|
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
## Advanced
|
|
||||||
|
## Bluetooth
|
||||||
|
|
||||||
```namespaces
|
```namespaces
|
||||||
devices.tellCameraTo(MesCameraEvent.TakePhoto);
|
devices.tellCameraTo(MesCameraEvent.TakePhoto);
|
||||||
|
BIN
docs/static/mb/device/croc-clips/badclamp.jpg
vendored
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
docs/static/mb/device/croc-clips/crocclipsclamped.jpg
vendored
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
docs/static/mb/device/croc-clips/foilcircuit.jpg
vendored
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
docs/static/mb/device/croc-clips/foilcut.jpg
vendored
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
docs/static/mb/device/croc-clips/frontclamp.jpg
vendored
Normal file
After Width: | Height: | Size: 93 KiB |
BIN
docs/static/mb/device/croc-clips/groundconnected.jpg
vendored
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
docs/static/mb/device/croc-clips/jackconnect.jpg
vendored
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
docs/static/mb/device/croc-clips/jackground.jpg
vendored
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
docs/static/mb/device/croc-clips/microbitattached.jpg
vendored
Normal file
After Width: | Height: | Size: 85 KiB |
BIN
docs/static/mb/device/croc-clips/microbitconnect.jpg
vendored
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
docs/static/mb/device/croc-clips/sideclamp.jpg
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
@ -110,6 +110,7 @@ enum EventBusValue {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//% weight=1 color="#333333"
|
//% weight=1 color="#333333"
|
||||||
|
//% advanced=true
|
||||||
namespace control {
|
namespace control {
|
||||||
void fiberDone(void *a)
|
void fiberDone(void *a)
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
* Runtime and event utilities.
|
* Runtime and event utilities.
|
||||||
*/
|
*/
|
||||||
//% weight=1 color="#333333"
|
//% weight=1 color="#333333"
|
||||||
|
//% advanced=true
|
||||||
namespace control {
|
namespace control {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
26
libs/core/dal.d.ts
vendored
@ -79,6 +79,7 @@ declare const enum DAL {
|
|||||||
MICROBIT_BLE_PAIRING_TIMEOUT = 90,
|
MICROBIT_BLE_PAIRING_TIMEOUT = 90,
|
||||||
MICROBIT_BLE_POWER_LEVELS = 8,
|
MICROBIT_BLE_POWER_LEVELS = 8,
|
||||||
MICROBIT_BLE_MAXIMUM_BONDS = 4,
|
MICROBIT_BLE_MAXIMUM_BONDS = 4,
|
||||||
|
MICROBIT_BLE_EDDYSTONE_URL_ADV_INTERVAL = 400,
|
||||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitButtonService.h
|
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitButtonService.h
|
||||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitDFUService.h
|
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitDFUService.h
|
||||||
MICROBIT_DFU_OPCODE_START_DFU = 1,
|
MICROBIT_DFU_OPCODE_START_DFU = 1,
|
||||||
@ -88,6 +89,7 @@ declare const enum DAL {
|
|||||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitIOPinService.h
|
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitIOPinService.h
|
||||||
MICROBIT_IO_PIN_SERVICE_PINCOUNT = 19,
|
MICROBIT_IO_PIN_SERVICE_PINCOUNT = 19,
|
||||||
MICROBIT_IO_PIN_SERVICE_DATA_SIZE = 10,
|
MICROBIT_IO_PIN_SERVICE_DATA_SIZE = 10,
|
||||||
|
MICROBIT_PWM_PIN_SERVICE_DATA_SIZE = 2,
|
||||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitLEDService.h
|
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitLEDService.h
|
||||||
MICROBIT_BLE_MAXIMUM_SCROLLTEXT = 20,
|
MICROBIT_BLE_MAXIMUM_SCROLLTEXT = 20,
|
||||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitMagnetometerService.h
|
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitMagnetometerService.h
|
||||||
@ -305,6 +307,30 @@ declare const enum DAL {
|
|||||||
MICROBIT_DISPLAY_ROTATION_90 = 1,
|
MICROBIT_DISPLAY_ROTATION_90 = 1,
|
||||||
MICROBIT_DISPLAY_ROTATION_180 = 2,
|
MICROBIT_DISPLAY_ROTATION_180 = 2,
|
||||||
MICROBIT_DISPLAY_ROTATION_270 = 3,
|
MICROBIT_DISPLAY_ROTATION_270 = 3,
|
||||||
|
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitFile.h
|
||||||
|
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitFileSystem.h
|
||||||
|
MBFS_FILENAME_LENGTH = 16,
|
||||||
|
MB_READ = 0x01,
|
||||||
|
MB_WRITE = 0x02,
|
||||||
|
MB_CREAT = 0x04,
|
||||||
|
MB_APPEND = 0x08,
|
||||||
|
MB_SEEK_SET = 0x01,
|
||||||
|
MB_SEEK_END = 0x02,
|
||||||
|
MB_SEEK_CUR = 0x04,
|
||||||
|
MBFS_STATUS_INITIALISED = 0x01,
|
||||||
|
MBFS_UNUSED = 0xFFFF,
|
||||||
|
MBFS_EOF = 0xEFFF,
|
||||||
|
MBFS_DELETED = 0x0000,
|
||||||
|
MBFS_DIRECTORY_ENTRY_FREE = 0x8000,
|
||||||
|
MBFS_DIRECTORY_ENTRY_VALID = 0x4000,
|
||||||
|
MBFS_DIRECTORY_ENTRY_DIRECTORY = 0x2000,
|
||||||
|
MBFS_DIRECTORY_ENTRY_NEW = 0xffff,
|
||||||
|
MBFS_DIRECTORY_ENTRY_DELETED = 0x0000,
|
||||||
|
MBFS_BLOCK_TYPE_FILE = 1,
|
||||||
|
MBFS_BLOCK_TYPE_DIRECTORY = 2,
|
||||||
|
MBFS_BLOCK_TYPE_FILETABLE = 3,
|
||||||
|
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitFlash.h
|
||||||
|
PAGE_SIZE = 1024,
|
||||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitI2C.h
|
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitI2C.h
|
||||||
MICROBIT_I2C_MAX_RETRIES = 9,
|
MICROBIT_I2C_MAX_RETRIES = 9,
|
||||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitIO.h
|
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitIO.h
|
||||||
|
@ -22,6 +22,7 @@ enum LedSpriteProperty {
|
|||||||
* A single-LED sprite game engine
|
* A single-LED sprite game engine
|
||||||
*/
|
*/
|
||||||
//% color=#008272 weight=32
|
//% color=#008272 weight=32
|
||||||
|
//% advanced=true
|
||||||
namespace game {
|
namespace game {
|
||||||
let _score: number = 0;
|
let _score: number = 0;
|
||||||
let _life: number = 3;
|
let _life: number = 3;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
* Creation, manipulation and display of LED images.
|
* Creation, manipulation and display of LED images.
|
||||||
*/
|
*/
|
||||||
//% color=#5C2D91 weight=31
|
//% color=#5C2D91 weight=31
|
||||||
|
//% advanced=true
|
||||||
namespace images {
|
namespace images {
|
||||||
/**
|
/**
|
||||||
* Creates an image that fits on the LED screen.
|
* Creates an image that fits on the LED screen.
|
||||||
|
@ -159,6 +159,7 @@ namespace input {
|
|||||||
*/
|
*/
|
||||||
//% help=input/on-pin-released weight=6 blockGap=8
|
//% help=input/on-pin-released weight=6 blockGap=8
|
||||||
//% blockId=device_pin_released block="on pin %NAME|released" icon="\uf094"
|
//% blockId=device_pin_released block="on pin %NAME|released" icon="\uf094"
|
||||||
|
//% advanced=true
|
||||||
void onPinReleased(TouchPin name, Action body) {
|
void onPinReleased(TouchPin name, Action body) {
|
||||||
auto pin = getPin((int)name);
|
auto pin = getPin((int)name);
|
||||||
if (!pin) return;
|
if (!pin) return;
|
||||||
@ -171,7 +172,7 @@ namespace input {
|
|||||||
/**
|
/**
|
||||||
* Get the button state (pressed or not) for ``A`` and ``B``.
|
* Get the button state (pressed or not) for ``A`` and ``B``.
|
||||||
*/
|
*/
|
||||||
//% help=input/button-is-pressed weight=57
|
//% help=input/button-is-pressed weight=60
|
||||||
//% block="button|%NAME|is pressed"
|
//% block="button|%NAME|is pressed"
|
||||||
//% blockId=device_get_button2
|
//% blockId=device_get_button2
|
||||||
//% icon="\uf192" blockGap=8
|
//% icon="\uf192" blockGap=8
|
||||||
@ -190,7 +191,7 @@ namespace input {
|
|||||||
* Get the pin state (pressed or not). Requires to hold the ground to close the circuit.
|
* Get the pin state (pressed or not). Requires to hold the ground to close the circuit.
|
||||||
* @param name pin used to detect the touch
|
* @param name pin used to detect the touch
|
||||||
*/
|
*/
|
||||||
//% help=input/pin-is-pressed weight=56
|
//% help=input/pin-is-pressed weight=58
|
||||||
//% blockId="device_pin_is_pressed" block="pin %NAME|is pressed" icon="\uf094"
|
//% blockId="device_pin_is_pressed" block="pin %NAME|is pressed" icon="\uf094"
|
||||||
//% blockGap=8
|
//% blockGap=8
|
||||||
bool pinIsPressed(TouchPin name) {
|
bool pinIsPressed(TouchPin name) {
|
||||||
@ -198,6 +199,40 @@ namespace input {
|
|||||||
return pin && pin->isTouched();
|
return pin && pin->isTouched();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getAccelerationStrength() {
|
||||||
|
double x = uBit.accelerometer.getX();
|
||||||
|
double y = uBit.accelerometer.getY();
|
||||||
|
double z = uBit.accelerometer.getZ();
|
||||||
|
return (int)sqrt(x*x+y*y+z*z);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the acceleration value in milli-gravitys (when the board is laying flat with the screen up, x=0, y=0 and z=-1024)
|
||||||
|
* @param dimension TODO
|
||||||
|
*/
|
||||||
|
//% help=input/acceleration weight=58 icon="\uf135"
|
||||||
|
//% blockId=device_acceleration block="acceleration (mg)|%NAME" blockGap=8
|
||||||
|
//% parts="accelerometer"
|
||||||
|
int acceleration(Dimension dimension) {
|
||||||
|
switch (dimension) {
|
||||||
|
case Dimension::X: return uBit.accelerometer.getX();
|
||||||
|
case Dimension::Y: return uBit.accelerometer.getY();
|
||||||
|
case Dimension::Z: return uBit.accelerometer.getZ();
|
||||||
|
case Dimension::Strength: return getAccelerationStrength();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads the light level applied to the LED screen in a range from ``0`` (dark) to ``255`` bright.
|
||||||
|
*/
|
||||||
|
//% help=input/light-level weight=57
|
||||||
|
//% blockId=device_get_light_level block="light level" blockGap=8 icon="\uf185"
|
||||||
|
//% parts="ledmatrix"
|
||||||
|
int lightLevel() {
|
||||||
|
return uBit.display.readLightLevel();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current compass heading in degrees.
|
* Get the current compass heading in degrees.
|
||||||
*/
|
*/
|
||||||
@ -221,48 +256,13 @@ namespace input {
|
|||||||
return uBit.thermometer.getTemperature();
|
return uBit.thermometer.getTemperature();
|
||||||
}
|
}
|
||||||
|
|
||||||
int getAccelerationStrength() {
|
|
||||||
double x = uBit.accelerometer.getX();
|
|
||||||
double y = uBit.accelerometer.getY();
|
|
||||||
double z = uBit.accelerometer.getZ();
|
|
||||||
return (int)sqrt(x*x+y*y+z*z);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the acceleration value in milli-gravitys (when the board is laying flat with the screen up, x=0, y=0 and z=-1024)
|
|
||||||
* @param dimension TODO
|
|
||||||
*/
|
|
||||||
//% help=input/acceleration weight=54 icon="\uf135"
|
|
||||||
//% blockId=device_acceleration block="acceleration (mg)|%NAME" blockGap=8
|
|
||||||
//% parts="accelerometer"
|
|
||||||
int acceleration(Dimension dimension) {
|
|
||||||
switch (dimension) {
|
|
||||||
case Dimension::X: return uBit.accelerometer.getX();
|
|
||||||
case Dimension::Y: return uBit.accelerometer.getY();
|
|
||||||
case Dimension::Z: return uBit.accelerometer.getZ();
|
|
||||||
case Dimension::Strength: return getAccelerationStrength();
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reads the light level applied to the LED screen in a range from ``0`` (dark) to ``255`` bright.
|
|
||||||
*/
|
|
||||||
//% help=input/light-level weight=53
|
|
||||||
//% blockId=device_get_light_level block="light level" blockGap=8 icon="\uf185"
|
|
||||||
//% parts="ledmatrix"
|
|
||||||
int lightLevel() {
|
|
||||||
return uBit.display.readLightLevel();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The pitch or roll of the device, rotation along the ``x-axis`` or ``y-axis``, in degrees.
|
* The pitch or roll of the device, rotation along the ``x-axis`` or ``y-axis``, in degrees.
|
||||||
* @param kind TODO
|
* @param kind TODO
|
||||||
*/
|
*/
|
||||||
//% help=input/rotation weight=52
|
//% help=input/rotation weight=52
|
||||||
//% blockId=device_get_rotation block="rotation (°)|%NAME" blockGap=8 icon="\uf197"
|
//% blockId=device_get_rotation block="rotation (°)|%NAME" blockGap=8 icon="\uf197"
|
||||||
//% parts="accelerometer"
|
//% parts="accelerometer" advanced=true
|
||||||
int rotation(Rotation kind) {
|
int rotation(Rotation kind) {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case Rotation::Pitch: return uBit.accelerometer.getPitch();
|
case Rotation::Pitch: return uBit.accelerometer.getPitch();
|
||||||
@ -278,6 +278,7 @@ namespace input {
|
|||||||
//% help=input/magnetic-force weight=51
|
//% help=input/magnetic-force weight=51
|
||||||
//% blockId=device_get_magnetic_force block="magnetic force (µT)|%NAME" blockGap=8 icon="\uf076"
|
//% blockId=device_get_magnetic_force block="magnetic force (µT)|%NAME" blockGap=8 icon="\uf076"
|
||||||
//% parts="compass"
|
//% parts="compass"
|
||||||
|
//% advanced=true
|
||||||
int magneticForce(Dimension dimension) {
|
int magneticForce(Dimension dimension) {
|
||||||
if (!uBit.compass.isCalibrated())
|
if (!uBit.compass.isCalibrated())
|
||||||
uBit.compass.calibrate();
|
uBit.compass.calibrate();
|
||||||
@ -296,6 +297,7 @@ namespace input {
|
|||||||
*/
|
*/
|
||||||
//% help=input/running-time weight=50
|
//% help=input/running-time weight=50
|
||||||
//% blockId=device_get_running_time block="running time (ms)" icon="\uf017"
|
//% blockId=device_get_running_time block="running time (ms)" icon="\uf017"
|
||||||
|
//% advanced=true
|
||||||
int runningTime() {
|
int runningTime() {
|
||||||
return system_timer_current_time();
|
return system_timer_current_time();
|
||||||
}
|
}
|
||||||
@ -314,6 +316,7 @@ namespace input {
|
|||||||
//% blockId=device_set_accelerometer_range block="set accelerometer|range %range" icon="\uf135"
|
//% blockId=device_set_accelerometer_range block="set accelerometer|range %range" icon="\uf135"
|
||||||
//% weight=5
|
//% weight=5
|
||||||
//% parts="accelerometer"
|
//% parts="accelerometer"
|
||||||
|
//% advanced=true
|
||||||
void setAccelerometerRange(AcceleratorRange range) {
|
void setAccelerometerRange(AcceleratorRange range) {
|
||||||
uBit.accelerometer.setRange((int)range);
|
uBit.accelerometer.setRange((int)range);
|
||||||
}
|
}
|
||||||
|
@ -54,6 +54,7 @@ namespace led {
|
|||||||
//% help=led/brightness weight=60
|
//% help=led/brightness weight=60
|
||||||
//% blockId=device_get_brightness block="brightness" icon="\uf042" blockGap=8
|
//% blockId=device_get_brightness block="brightness" icon="\uf042" blockGap=8
|
||||||
//% parts="ledmatrix"
|
//% parts="ledmatrix"
|
||||||
|
//% advanced=true
|
||||||
int brightness() {
|
int brightness() {
|
||||||
return uBit.display.getBrightness();
|
return uBit.display.getBrightness();
|
||||||
}
|
}
|
||||||
@ -65,6 +66,7 @@ namespace led {
|
|||||||
//% help=led/set-brightness weight=59
|
//% help=led/set-brightness weight=59
|
||||||
//% blockId=device_set_brightness block="set brightness %value" icon="\uf042"
|
//% blockId=device_set_brightness block="set brightness %value" icon="\uf042"
|
||||||
//% parts="ledmatrix"
|
//% parts="ledmatrix"
|
||||||
|
//% advanced=true
|
||||||
void setBrightness(int value) {
|
void setBrightness(int value) {
|
||||||
uBit.display.setBrightness(value);
|
uBit.display.setBrightness(value);
|
||||||
}
|
}
|
||||||
@ -75,6 +77,7 @@ namespace led {
|
|||||||
//% weight=50 help=led/stop-animation
|
//% weight=50 help=led/stop-animation
|
||||||
//% blockId=device_stop_animation block="stop animation" icon="\uf04d"
|
//% blockId=device_stop_animation block="stop animation" icon="\uf04d"
|
||||||
//% parts="ledmatrix"
|
//% parts="ledmatrix"
|
||||||
|
//% advanced=true
|
||||||
void stopAnimation() {
|
void stopAnimation() {
|
||||||
uBit.display.stopAnimation();
|
uBit.display.stopAnimation();
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
* Control currents in Pins for analog/digital signals, servos, i2c, ...
|
* Control currents in Pins for analog/digital signals, servos, i2c, ...
|
||||||
*/
|
*/
|
||||||
//% color=#A80000 weight=30
|
//% color=#A80000 weight=30
|
||||||
|
//% advanced=true
|
||||||
namespace pins {
|
namespace pins {
|
||||||
/**
|
/**
|
||||||
* Re-maps a number from one range to another. That is, a value of ``from low`` would get mapped to ``to low``, a value of ``from high`` to ``to high``, values in-between to values in-between, etc.
|
* Re-maps a number from one range to another. That is, a value of ``from low`` would get mapped to ``to low``, a value of ``from high`` to ``to high``, values in-between to values in-between, etc.
|
||||||
|
@ -20,6 +20,7 @@ enum class BaudRate {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//% weight=2 color=30
|
//% weight=2 color=30
|
||||||
|
//% advanced=true
|
||||||
namespace serial {
|
namespace serial {
|
||||||
// note that at least one // followed by % is needed per declaration!
|
// note that at least one // followed by % is needed per declaration!
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
* Reading and writing data over a serial connection.
|
* Reading and writing data over a serial connection.
|
||||||
*/
|
*/
|
||||||
//% weight=2 color=#002050
|
//% weight=2 color=#002050
|
||||||
|
//% advanced=true
|
||||||
namespace serial {
|
namespace serial {
|
||||||
/**
|
/**
|
||||||
* Prints a line of text to the serial
|
* Prints a line of text to the serial
|
||||||
|
64
libs/core/shims.d.ts
vendored
@ -5,6 +5,7 @@
|
|||||||
* Creation, manipulation and display of LED images.
|
* Creation, manipulation and display of LED images.
|
||||||
*/
|
*/
|
||||||
//% color=#5C2D91 weight=31
|
//% color=#5C2D91 weight=31
|
||||||
|
//% advanced=true
|
||||||
declare namespace images {
|
declare namespace images {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -247,13 +248,14 @@ declare namespace input {
|
|||||||
* @param body the code to run when the pin is released
|
* @param body the code to run when the pin is released
|
||||||
*/
|
*/
|
||||||
//% help=input/on-pin-released weight=6 blockGap=8
|
//% help=input/on-pin-released weight=6 blockGap=8
|
||||||
//% blockId=device_pin_released block="on pin %NAME|released" icon="\uf094" shim=input::onPinReleased
|
//% blockId=device_pin_released block="on pin %NAME|released" icon="\uf094"
|
||||||
|
//% advanced=true shim=input::onPinReleased
|
||||||
function onPinReleased(name: TouchPin, body: () => void): void;
|
function onPinReleased(name: TouchPin, body: () => void): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the button state (pressed or not) for ``A`` and ``B``.
|
* Get the button state (pressed or not) for ``A`` and ``B``.
|
||||||
*/
|
*/
|
||||||
//% help=input/button-is-pressed weight=57
|
//% help=input/button-is-pressed weight=60
|
||||||
//% block="button|%NAME|is pressed"
|
//% block="button|%NAME|is pressed"
|
||||||
//% blockId=device_get_button2
|
//% blockId=device_get_button2
|
||||||
//% icon="\uf192" blockGap=8
|
//% icon="\uf192" blockGap=8
|
||||||
@ -264,11 +266,28 @@ declare namespace input {
|
|||||||
* Get the pin state (pressed or not). Requires to hold the ground to close the circuit.
|
* Get the pin state (pressed or not). Requires to hold the ground to close the circuit.
|
||||||
* @param name pin used to detect the touch
|
* @param name pin used to detect the touch
|
||||||
*/
|
*/
|
||||||
//% help=input/pin-is-pressed weight=56
|
//% help=input/pin-is-pressed weight=58
|
||||||
//% blockId="device_pin_is_pressed" block="pin %NAME|is pressed" icon="\uf094"
|
//% blockId="device_pin_is_pressed" block="pin %NAME|is pressed" icon="\uf094"
|
||||||
//% blockGap=8 shim=input::pinIsPressed
|
//% blockGap=8 shim=input::pinIsPressed
|
||||||
function pinIsPressed(name: TouchPin): boolean;
|
function pinIsPressed(name: TouchPin): boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the acceleration value in milli-gravitys (when the board is laying flat with the screen up, x=0, y=0 and z=-1024)
|
||||||
|
* @param dimension TODO
|
||||||
|
*/
|
||||||
|
//% help=input/acceleration weight=58 icon="\uf135"
|
||||||
|
//% blockId=device_acceleration block="acceleration (mg)|%NAME" blockGap=8
|
||||||
|
//% parts="accelerometer" shim=input::acceleration
|
||||||
|
function acceleration(dimension: Dimension): number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads the light level applied to the LED screen in a range from ``0`` (dark) to ``255`` bright.
|
||||||
|
*/
|
||||||
|
//% help=input/light-level weight=57
|
||||||
|
//% blockId=device_get_light_level block="light level" blockGap=8 icon="\uf185"
|
||||||
|
//% parts="ledmatrix" shim=input::lightLevel
|
||||||
|
function lightLevel(): number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current compass heading in degrees.
|
* Get the current compass heading in degrees.
|
||||||
*/
|
*/
|
||||||
@ -287,30 +306,13 @@ declare namespace input {
|
|||||||
//% parts="thermometer" shim=input::temperature
|
//% parts="thermometer" shim=input::temperature
|
||||||
function temperature(): number;
|
function temperature(): number;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the acceleration value in milli-gravitys (when the board is laying flat with the screen up, x=0, y=0 and z=-1024)
|
|
||||||
* @param dimension TODO
|
|
||||||
*/
|
|
||||||
//% help=input/acceleration weight=54 icon="\uf135"
|
|
||||||
//% blockId=device_acceleration block="acceleration (mg)|%NAME" blockGap=8
|
|
||||||
//% parts="accelerometer" shim=input::acceleration
|
|
||||||
function acceleration(dimension: Dimension): number;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reads the light level applied to the LED screen in a range from ``0`` (dark) to ``255`` bright.
|
|
||||||
*/
|
|
||||||
//% help=input/light-level weight=53
|
|
||||||
//% blockId=device_get_light_level block="light level" blockGap=8 icon="\uf185"
|
|
||||||
//% parts="ledmatrix" shim=input::lightLevel
|
|
||||||
function lightLevel(): number;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The pitch or roll of the device, rotation along the ``x-axis`` or ``y-axis``, in degrees.
|
* The pitch or roll of the device, rotation along the ``x-axis`` or ``y-axis``, in degrees.
|
||||||
* @param kind TODO
|
* @param kind TODO
|
||||||
*/
|
*/
|
||||||
//% help=input/rotation weight=52
|
//% help=input/rotation weight=52
|
||||||
//% blockId=device_get_rotation block="rotation (°)|%NAME" blockGap=8 icon="\uf197"
|
//% blockId=device_get_rotation block="rotation (°)|%NAME" blockGap=8 icon="\uf197"
|
||||||
//% parts="accelerometer" shim=input::rotation
|
//% parts="accelerometer" advanced=true shim=input::rotation
|
||||||
function rotation(kind: Rotation): number;
|
function rotation(kind: Rotation): number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -319,14 +321,16 @@ declare namespace input {
|
|||||||
*/
|
*/
|
||||||
//% help=input/magnetic-force weight=51
|
//% help=input/magnetic-force weight=51
|
||||||
//% blockId=device_get_magnetic_force block="magnetic force (µT)|%NAME" blockGap=8 icon="\uf076"
|
//% blockId=device_get_magnetic_force block="magnetic force (µT)|%NAME" blockGap=8 icon="\uf076"
|
||||||
//% parts="compass" shim=input::magneticForce
|
//% parts="compass"
|
||||||
|
//% advanced=true shim=input::magneticForce
|
||||||
function magneticForce(dimension: Dimension): number;
|
function magneticForce(dimension: Dimension): number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of milliseconds elapsed since power on.
|
* Gets the number of milliseconds elapsed since power on.
|
||||||
*/
|
*/
|
||||||
//% help=input/running-time weight=50
|
//% help=input/running-time weight=50
|
||||||
//% blockId=device_get_running_time block="running time (ms)" icon="\uf017" shim=input::runningTime
|
//% blockId=device_get_running_time block="running time (ms)" icon="\uf017"
|
||||||
|
//% advanced=true shim=input::runningTime
|
||||||
function runningTime(): number;
|
function runningTime(): number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -342,13 +346,15 @@ declare namespace input {
|
|||||||
//% help=input/set-accelerometer-range
|
//% help=input/set-accelerometer-range
|
||||||
//% blockId=device_set_accelerometer_range block="set accelerometer|range %range" icon="\uf135"
|
//% blockId=device_set_accelerometer_range block="set accelerometer|range %range" icon="\uf135"
|
||||||
//% weight=5
|
//% weight=5
|
||||||
//% parts="accelerometer" shim=input::setAccelerometerRange
|
//% parts="accelerometer"
|
||||||
|
//% advanced=true shim=input::setAccelerometerRange
|
||||||
function setAccelerometerRange(range: AcceleratorRange): void;
|
function setAccelerometerRange(range: AcceleratorRange): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//% weight=1 color="#333333"
|
//% weight=1 color="#333333"
|
||||||
|
//% advanced=true
|
||||||
declare namespace control {
|
declare namespace control {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -457,7 +463,8 @@ declare namespace led {
|
|||||||
*/
|
*/
|
||||||
//% help=led/brightness weight=60
|
//% help=led/brightness weight=60
|
||||||
//% blockId=device_get_brightness block="brightness" icon="\uf042" blockGap=8
|
//% blockId=device_get_brightness block="brightness" icon="\uf042" blockGap=8
|
||||||
//% parts="ledmatrix" shim=led::brightness
|
//% parts="ledmatrix"
|
||||||
|
//% advanced=true shim=led::brightness
|
||||||
function brightness(): number;
|
function brightness(): number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -466,7 +473,8 @@ declare namespace led {
|
|||||||
*/
|
*/
|
||||||
//% help=led/set-brightness weight=59
|
//% help=led/set-brightness weight=59
|
||||||
//% blockId=device_set_brightness block="set brightness %value" icon="\uf042"
|
//% blockId=device_set_brightness block="set brightness %value" icon="\uf042"
|
||||||
//% parts="ledmatrix" shim=led::setBrightness
|
//% parts="ledmatrix"
|
||||||
|
//% advanced=true shim=led::setBrightness
|
||||||
function setBrightness(value: number): void;
|
function setBrightness(value: number): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -474,7 +482,8 @@ declare namespace led {
|
|||||||
*/
|
*/
|
||||||
//% weight=50 help=led/stop-animation
|
//% weight=50 help=led/stop-animation
|
||||||
//% blockId=device_stop_animation block="stop animation" icon="\uf04d"
|
//% blockId=device_stop_animation block="stop animation" icon="\uf04d"
|
||||||
//% parts="ledmatrix" shim=led::stopAnimation
|
//% parts="ledmatrix"
|
||||||
|
//% advanced=true shim=led::stopAnimation
|
||||||
function stopAnimation(): void;
|
function stopAnimation(): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -636,6 +645,7 @@ declare namespace pins {
|
|||||||
|
|
||||||
|
|
||||||
//% weight=2 color=30
|
//% weight=2 color=30
|
||||||
|
//% advanced=true
|
||||||
declare namespace serial {
|
declare namespace serial {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -104,6 +104,7 @@ namespace radio {
|
|||||||
//% help=radio/write-value-to-serial
|
//% help=radio/write-value-to-serial
|
||||||
//% weight=3
|
//% weight=3
|
||||||
//% blockId=radio_write_value_serial block="radio write value to serial"
|
//% blockId=radio_write_value_serial block="radio write value to serial"
|
||||||
|
//% advanced=true
|
||||||
void writeValueToSerial() {
|
void writeValueToSerial() {
|
||||||
if (radioEnable() != MICROBIT_OK) return;
|
if (radioEnable() != MICROBIT_OK) return;
|
||||||
PacketBuffer p = uBit.radio.datagram.recv();
|
PacketBuffer p = uBit.radio.datagram.recv();
|
||||||
@ -198,6 +199,7 @@ namespace radio {
|
|||||||
//% help=radio/received-signal-strength
|
//% help=radio/received-signal-strength
|
||||||
//% weight=40
|
//% weight=40
|
||||||
//% blockId=radio_datagram_rssi block="radio received signal strength"
|
//% blockId=radio_datagram_rssi block="radio received signal strength"
|
||||||
|
//% advanced=true
|
||||||
int receivedSignalStrength() {
|
int receivedSignalStrength() {
|
||||||
if (radioEnable() != MICROBIT_OK) return 0;
|
if (radioEnable() != MICROBIT_OK) return 0;
|
||||||
return packet.getRSSI();
|
return packet.getRSSI();
|
||||||
@ -208,7 +210,7 @@ namespace radio {
|
|||||||
* @ param id the group id between ``0`` and ``255``, 1 eg
|
* @ param id the group id between ``0`` and ``255``, 1 eg
|
||||||
*/
|
*/
|
||||||
//% help=radio/set-group
|
//% help=radio/set-group
|
||||||
//% weight=10 blockGap=8
|
//% weight=10 blockGap=8 advanced=true
|
||||||
//% blockId=radio_set_group block="radio set group %ID"
|
//% blockId=radio_set_group block="radio set group %ID"
|
||||||
void setGroup(int id) {
|
void setGroup(int id) {
|
||||||
if (radioEnable() != MICROBIT_OK) return;
|
if (radioEnable() != MICROBIT_OK) return;
|
||||||
@ -222,6 +224,7 @@ namespace radio {
|
|||||||
//% help=radio/set-transmit-power
|
//% help=radio/set-transmit-power
|
||||||
//% weight=9 blockGap=8
|
//% weight=9 blockGap=8
|
||||||
//% blockId=radio_set_transmit_power block="radio set transmit power %power"
|
//% blockId=radio_set_transmit_power block="radio set transmit power %power"
|
||||||
|
//% advanced=true
|
||||||
void setTransmitPower(int power) {
|
void setTransmitPower(int power) {
|
||||||
if (radioEnable() != MICROBIT_OK) return;
|
if (radioEnable() != MICROBIT_OK) return;
|
||||||
uBit.radio.setTransmitPower(power);
|
uBit.radio.setTransmitPower(power);
|
||||||
@ -229,10 +232,12 @@ namespace radio {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the radio to transmit the serial number in each message.
|
* Set the radio to transmit the serial number in each message.
|
||||||
|
* @param transmit value indicating if the serial number is transmitted, eg: true
|
||||||
*/
|
*/
|
||||||
//% help=radio/set-transmit-serial-number
|
//% help=radio/set-transmit-serial-number
|
||||||
//% weight=8 blockGap=8
|
//% weight=8 blockGap=8
|
||||||
//% blockId=radio_set_transmit_serial_number block="radio set transmit serial number %transmit"
|
//% blockId=radio_set_transmit_serial_number block="radio set transmit serial number %transmit"
|
||||||
|
//% advanced=true
|
||||||
void setTransmitSerialNumber(bool transmit) {
|
void setTransmitSerialNumber(bool transmit) {
|
||||||
if (radioEnable() != MICROBIT_OK) return;
|
if (radioEnable() != MICROBIT_OK) return;
|
||||||
transmitSerialNumber = transmit;
|
transmitSerialNumber = transmit;
|
||||||
|
15
libs/radio/shims.d.ts
vendored
@ -38,7 +38,8 @@ declare namespace radio {
|
|||||||
*/
|
*/
|
||||||
//% help=radio/write-value-to-serial
|
//% help=radio/write-value-to-serial
|
||||||
//% weight=3
|
//% weight=3
|
||||||
//% blockId=radio_write_value_serial block="radio write value to serial" shim=radio::writeValueToSerial
|
//% blockId=radio_write_value_serial block="radio write value to serial"
|
||||||
|
//% advanced=true shim=radio::writeValueToSerial
|
||||||
function writeValueToSerial(): void;
|
function writeValueToSerial(): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -79,7 +80,8 @@ declare namespace radio {
|
|||||||
*/
|
*/
|
||||||
//% help=radio/received-signal-strength
|
//% help=radio/received-signal-strength
|
||||||
//% weight=40
|
//% weight=40
|
||||||
//% blockId=radio_datagram_rssi block="radio received signal strength" shim=radio::receivedSignalStrength
|
//% blockId=radio_datagram_rssi block="radio received signal strength"
|
||||||
|
//% advanced=true shim=radio::receivedSignalStrength
|
||||||
function receivedSignalStrength(): number;
|
function receivedSignalStrength(): number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -87,7 +89,7 @@ declare namespace radio {
|
|||||||
* @ param id the group id between ``0`` and ``255``, 1 eg
|
* @ param id the group id between ``0`` and ``255``, 1 eg
|
||||||
*/
|
*/
|
||||||
//% help=radio/set-group
|
//% help=radio/set-group
|
||||||
//% weight=10 blockGap=8
|
//% weight=10 blockGap=8 advanced=true
|
||||||
//% blockId=radio_set_group block="radio set group %ID" shim=radio::setGroup
|
//% blockId=radio_set_group block="radio set group %ID" shim=radio::setGroup
|
||||||
function setGroup(id: number): void;
|
function setGroup(id: number): void;
|
||||||
|
|
||||||
@ -97,15 +99,18 @@ declare namespace radio {
|
|||||||
*/
|
*/
|
||||||
//% help=radio/set-transmit-power
|
//% help=radio/set-transmit-power
|
||||||
//% weight=9 blockGap=8
|
//% weight=9 blockGap=8
|
||||||
//% blockId=radio_set_transmit_power block="radio set transmit power %power" shim=radio::setTransmitPower
|
//% blockId=radio_set_transmit_power block="radio set transmit power %power"
|
||||||
|
//% advanced=true shim=radio::setTransmitPower
|
||||||
function setTransmitPower(power: number): void;
|
function setTransmitPower(power: number): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the radio to transmit the serial number in each message.
|
* Set the radio to transmit the serial number in each message.
|
||||||
|
* @param transmit value indicating if the serial number is transmitted, eg: true
|
||||||
*/
|
*/
|
||||||
//% help=radio/set-transmit-serial-number
|
//% help=radio/set-transmit-serial-number
|
||||||
//% weight=8 blockGap=8
|
//% weight=8 blockGap=8
|
||||||
//% blockId=radio_set_transmit_serial_number block="radio set transmit serial number %transmit" shim=radio::setTransmitSerialNumber
|
//% blockId=radio_set_transmit_serial_number block="radio set transmit serial number %transmit"
|
||||||
|
//% advanced=true shim=radio::setTransmitSerialNumber
|
||||||
function setTransmitSerialNumber(transmit: boolean): void;
|
function setTransmitSerialNumber(transmit: boolean): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pxt-microbit",
|
"name": "pxt-microbit",
|
||||||
"version": "0.4.43",
|
"version": "0.5.0",
|
||||||
"description": "micro:bit target for PXT",
|
"description": "micro:bit target for PXT",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"JavaScript",
|
"JavaScript",
|
||||||
@ -29,6 +29,6 @@
|
|||||||
"typescript": "^1.8.7"
|
"typescript": "^1.8.7"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pxt-core": "0.4.51"
|
"pxt-core": "0.5.0-rc1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
"cloud": {
|
"cloud": {
|
||||||
"workspace": false,
|
"workspace": false,
|
||||||
"packages": true,
|
"packages": true,
|
||||||
"sharing": false,
|
"sharing": true,
|
||||||
"publish": false,
|
"publish": false,
|
||||||
"preferredPackages": [
|
"preferredPackages": [
|
||||||
"Microsoft/pxt-neopixel",
|
"Microsoft/pxt-neopixel",
|
||||||
|