Merge remote-tracking branch 'origin/master' into V3
13
calliope.code-workspace
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "..\\pxt"
|
||||
},
|
||||
{
|
||||
"path": "..\\pxt-common-packages"
|
||||
},
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
]
|
||||
}
|
96
docs/about.md
Normal file
@ -0,0 +1,96 @@
|
||||
![](/static/mb/device/calliope_website.jpg)
|
||||
|
||||
# About
|
||||
|
||||
## @description A Blocks / Javascript code editor for the Calliope mini, a pocket-size computer with 5x5 display, sensors and Bluetooth.
|
||||
|
||||
The [Calliope mini](https://calliope.cc) is a [pocket-size computer]([/device](https://calliope.cc/en/calliope-mini/tech-facts)) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone.
|
||||
|
||||
The Calliope mini provides an easy and fun introduction to programming and making ??? switch on, program it to do something fun ??? wear it, customize it.
|
||||
Just like Arduino, the Calliope mini can additionally be connected to and interact with sensors, displays, and other devices.
|
||||
|
||||
* [Read the docs](/docs)
|
||||
|
||||
## [Hardware: The Device](/device)
|
||||
|
||||
The Calliope mini is packaged with sensors, radio and other goodies. Learn about the [hardware components]([/device](https://calliope.cc/en/calliope-mini/tech-facts)) of the Calliope mini to make the most of it!
|
||||
|
||||
## ~ hint
|
||||
|
||||
**Looking to buy a Calliope mini?** See the [list of resellers](https://calliope.cc/en/shops).
|
||||
|
||||
## ~
|
||||
|
||||
## Programming: [Blocks](/blocks) or [JavaScript](/javascript)
|
||||
|
||||
You can program the Calliope mini using [Blocks](/blocks) or [JavaScript](/javascript) in your web browser via the [Calliope mini APIs](/reference):
|
||||
|
||||
```block
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showString("Hi!");
|
||||
})
|
||||
```
|
||||
```typescript
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
basic.showString("Hi!");
|
||||
})
|
||||
```
|
||||
|
||||
The editor work in [most modern browsers](/browsers), work [offline](/offline) once loaded and do not require any installation.
|
||||
|
||||
## [Compile and Flash: Your Program!](/device/usb)
|
||||
|
||||
When you have your code ready, you connect your Calliope mini to a computer via a USB cable, so it appears as a mounted drive (named MINI). If you are using the Calliope mini REV2 you also see another drive (FLASH) that handels up to 25 additional programs.
|
||||
|
||||
Compilation to ARM thumb machine code from [Blocks](/blocks) or [JavaScript](/javascript) happens in the browser. You save the ARM binary
|
||||
program to a file, which you then copy to the micro:bit drive, which flashes the micro:bit device with the new program.
|
||||
|
||||
## Simulator: Test Your Code
|
||||
|
||||
You can run your code using the micro:bit simulator, all within the confines of a web browser.
|
||||
The simulator has support for the LED screen, buttons, as well as compass, accelerometer, and digital I/O pins.
|
||||
|
||||
```sim
|
||||
basic.forever(() => {
|
||||
basic.showString("Hi!");
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
led.stopAnimation();
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. # . # .
|
||||
. . . . .
|
||||
# . . . #
|
||||
. # # # .`);
|
||||
});
|
||||
input.onButtonPressed(Button.B, () => {
|
||||
led.stopAnimation();
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
# . # . #
|
||||
# . . . #
|
||||
. # . # .
|
||||
. . # . .`);
|
||||
});
|
||||
```
|
||||
|
||||
## Learn!
|
||||
|
||||
We have tons of [projects](/projects), [examples](/examples) and [courses](/courses) to get your started!
|
||||
|
||||
|
||||
## [Command Line Tools](/cli)
|
||||
|
||||
Looking to use @homeurl@ in your favorite editor? Install the [command line tools](/cli) and get rolling!
|
||||
|
||||
## [Extensions](/extensions)
|
||||
|
||||
Create, edit and distribute your own blocks and JavaScript using [extensions](/extensions). Extensions are hosted on GitHub and may be written using C++, JavaScript and/or ARM thumb.
|
||||
|
||||
## [Open Source](/open-source)
|
||||
|
||||
The code for the Calliope mini is [open source](/open-source) on GitHub. Contributors are welcome!
|
||||
|
||||
```package
|
||||
radio
|
||||
```
|
BIN
docs/static/download/pair.png
vendored
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
docs/static/download/unpair.gif
vendored
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
docs/static/mb/device/calliope_website.jpg
vendored
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
docs/static/packages/bluetooth/icon.png
vendored
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 6.6 KiB |
38
docs/static/packages/bluetooth/icon.svg
vendored
@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg2" inkscape:export-filename="/Users/sammysam/Work/pxt-microbit/docs/static/packages/bluetooth/icon.png" inkscape:export-xdpi="100.04" inkscape:export-ydpi="100.04" inkscape:version="0.91 r13725" sodipodi:docname="icon.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 286 176"
|
||||
style="enable-background:new 0 0 286 176;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#0082FB;stroke:#CDCDCD;stroke-width:3.333091e-02;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#00FFFF;}
|
||||
.st3{fill:#0A3D91;}
|
||||
.st4{fill:none;stroke:#FFFFFF;stroke-width:5.3;}
|
||||
</style>
|
||||
<sodipodi:namedview bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview4" inkscape:current-layer="svg2" inkscape:cx="138.77058" inkscape:cy="82.582563" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="744" inkscape:window-maximized="0" inkscape:window-width="1558" inkscape:window-x="0" inkscape:window-y="0" inkscape:zoom="1.9493364" objecttolerance="10" pagecolor="#ffffff" showgrid="false">
|
||||
</sodipodi:namedview>
|
||||
<rect id="rect4138" x="0" y="0" class="st0" width="286" height="176"/>
|
||||
<image style="overflow:visible;enable-background:new ;" width="1440" height="496" id="image4156" xlink:href="99048C5B9AD515D2.png" transform="matrix(0.3665 0 0 0.3665 -73.8575 -2.0237)">
|
||||
</image>
|
||||
<path class="st1" d="M228.1,65.4l-59.5-10.1c-3.2-0.4-6.1,1.7-6.8,4.8l-9.8,45.8c-0.7,2.9,1,5.9,4,6.6c0.1,0,0.2,0.1,0.3,0.1
|
||||
l59.5,10.1c3.2,0.4,6.1-1.7,6.8-4.8l9.9-45.8c0.7-2.9-1.1-5.9-4-6.6C228.3,65.5,228.2,65.4,228.1,65.4L228.1,65.4z M164.3,62
|
||||
c0.5-2.4,2.7-3.9,5.1-3.6l12.6,2.1l8.5,1.4l4.2,0.7l-5.2,3.6l0.9-4.3l-10.3,7.3l1.9-8.8l-20.4,14.3L164.3,62z M168.6,88.7l-0.6,2.9
|
||||
c-0.2,1.2-1.4,2-2.5,1.8l-2.8-0.5c-1.1-0.2-1.8-1.3-1.6-2.4c0,0,0-0.1,0-0.1l0.6-2.9c0.2-1.2,1.3-1.9,2.5-1.8l2.8,0.5
|
||||
c1.1,0.2,1.8,1.3,1.6,2.4C168.6,88.6,168.6,88.6,168.6,88.7z M209.5,87.8c-2.1,3.9-6.5,5.9-10.8,5.2l-14.2-2.4
|
||||
c-4.3-0.7-7.5-4.1-7.9-8.4c-0.6-5.9,3.7-11.1,9.6-11.7c0.8-0.1,1.7-0.1,2.5,0l14.5,2.5C209.5,74.1,213.1,81.3,209.5,87.8L209.5,87.8
|
||||
z M221.2,97.6l-0.6,2.9c-0.2,1.2-1.4,2-2.6,1.8l-2.8-0.5c-1.1-0.2-1.8-1.3-1.6-2.4c0,0,0-0.1,0-0.1l0.6-2.9c0.2-1.2,1.3-2,2.5-1.8
|
||||
l2.8,0.5c1.1,0.2,1.8,1.3,1.6,2.4C221.2,97.5,221.2,97.5,221.2,97.6L221.2,97.6z"/>
|
||||
<path class="st1" d="M201.6,77.2L188.3,75c-3-0.5-6,1.3-6.9,4.2c-1,2.9,0.5,6,3.4,7c0.3,0.1,0.5,0.2,0.8,0.2l13.8,2.3
|
||||
c3.3,0.4,6.4-1.9,6.8-5.2c0,0,0-0.1,0-0.1C206.6,80.4,204.5,77.7,201.6,77.2L201.6,77.2z M188.6,80.4c-0.2,1.1-1.2,1.8-2.3,1.7
|
||||
c-1-0.2-1.7-1.2-1.5-2.2c0,0,0-0.1,0-0.1c0.2-1.1,1.3-1.8,2.4-1.7c1,0.2,1.7,1.2,1.5,2.2C188.6,80.3,188.6,80.3,188.6,80.4z
|
||||
M202.7,82.8c-0.2,1.1-1.2,1.8-2.3,1.7c-1-0.2-1.7-1.2-1.5-2.2c0,0,0-0.1,0-0.1c0.2-1.1,1.3-1.8,2.4-1.7c1,0.2,1.7,1.2,1.5,2.2
|
||||
C202.7,82.7,202.7,82.7,202.7,82.8L202.7,82.8z"/>
|
||||
<path class="st2" d="M144.6,100c0,9.2,3.2,18.2,9.1,25.3l-3.1,2.6c-6.4-7.8-10-17.7-10-27.8H144.6z M231.6,51
|
||||
c5.9,7.1,9.1,16.1,9.1,25.3h4c0-10.2-3.5-20-10-27.8L231.6,51z M240,47c5.9,7.1,9.1,16.1,9.1,25.3h4c0-10.2-3.5-20-10-27.8L240,47z
|
||||
M134.9,103.7c0,9.2,3.2,18.2,9.1,25.3l-3.1,2.6c-6.4-7.8-10-17.7-10-27.8H134.9z"/>
|
||||
<path class="st3" d="M59.2,37.5H65c16.1,0,29.1,13,29.1,29.1V106c0,16.1-13,29.1-29.1,29.1h-5.8c-16.1,0-29.1-13-29.1-29.1V66.6
|
||||
C30.1,50.5,43.2,37.5,59.2,37.5z"/>
|
||||
<path class="st4" d="M45.8,70.5l30.5,30.7L61.6,119V55.4l14.7,17l-30.5,29.9"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.8 KiB |
BIN
docs/static/packages/devices/icon.png
vendored
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 6.7 KiB |
1948
docs/static/packages/devices/icon.svg
vendored
Before Width: | Height: | Size: 92 KiB |
BIN
docs/static/packages/radio-broadcast/icon.png
vendored
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 6.8 KiB |
65
docs/static/packages/radio-broadcast/icon.svg
vendored
@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg2" inkscape:export-filename="/Users/sammysam/Work/pxt-microbit/docs/static/packages/radio/icon.png" inkscape:export-xdpi="100.04" inkscape:export-ydpi="100.04" inkscape:version="0.91 r13725" sodipodi:docname="icon.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 286 176"
|
||||
style="enable-background:new 0 0 286 176;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E3008B;stroke:#CDCDCD;stroke-width:3.333091e-02;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#00FFFF;}
|
||||
</style>
|
||||
<sodipodi:namedview bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview4" inkscape:current-layer="svg2" inkscape:cx="240.23897" inkscape:cy="53.563179" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="744" inkscape:window-maximized="0" inkscape:window-width="1558" inkscape:window-x="11" inkscape:window-y="0" inkscape:zoom="1.378389" objecttolerance="10" pagecolor="#ffffff" showgrid="false">
|
||||
</sodipodi:namedview>
|
||||
<rect id="rect4138" x="0" y="0" class="st0" width="286" height="176"/>
|
||||
<image style="overflow:visible;enable-background:new ;" width="1440" height="496" id="image4156" xlink:href="B3A78EF0E366567F.png" transform="matrix(0.3665 0 0 0.3665 -73.8575 -2.0237)">
|
||||
</image>
|
||||
<path class="st1" d="M250.8,26l-44-7.5c-2.3-0.3-4.5,1.2-5,3.5L194.5,56c-0.5,2.2,0.8,4.3,2.9,4.9c0.1,0,0.2,0,0.2,0.1l44,7.5
|
||||
c2.3,0.3,4.5-1.2,5-3.5l7.3-33.9c0.5-2.2-0.8-4.3-2.9-4.9C251,26,250.9,26,250.8,26L250.8,26z M203.6,23.5c0.3-1.7,2-2.9,3.8-2.7
|
||||
l9.3,1.6l6.3,1.1l3.1,0.5l-3.8,2.7l0.7-3.2l-7.7,5.4l1.4-6.5L201.5,33L203.6,23.5z M206.8,43.2l-0.4,2.1c-0.2,0.9-1,1.4-1.9,1.3
|
||||
l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.4,1.9-1.3l2.1,0.3C206.4,41.5,206.9,42.3,206.8,43.2
|
||||
C206.8,43.2,206.8,43.2,206.8,43.2z M237.1,42.6c-1.6,2.9-4.8,4.4-8,3.9l-10.5-1.8c-3.1-0.5-5.6-3.1-5.8-6.2
|
||||
c-0.4-4.3,2.7-8.2,7.1-8.6c0.6-0.1,1.2-0.1,1.8,0l10.8,1.8C237,32.5,239.7,37.8,237.1,42.6L237.1,42.6z M245.7,49.8l-0.4,2.1
|
||||
c-0.2,0.9-1,1.5-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.5,1.9-1.3l2,0.4
|
||||
C245.3,48.1,245.9,48.9,245.7,49.8C245.7,49.8,245.7,49.8,245.7,49.8L245.7,49.8z"/>
|
||||
<path class="st1" d="M231.2,34.7l-9.8-1.7c-2.2-0.4-4.4,1-5.1,3.1c-0.7,2.1,0.4,4.4,2.5,5.2c0.2,0.1,0.4,0.1,0.6,0.2l10.2,1.7
|
||||
c2.5,0.3,4.7-1.4,5.1-3.9c0,0,0,0,0-0.1C234.9,37.1,233.4,35.1,231.2,34.7L231.2,34.7z M221.6,37.1c-0.2,0.8-0.9,1.3-1.7,1.2
|
||||
c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2C221.2,35.5,221.7,36.3,221.6,37.1
|
||||
C221.6,37,221.6,37.1,221.6,37.1z M232,38.9c-0.2,0.8-0.9,1.3-1.7,1.2c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1
|
||||
c0.2-0.8,0.9-1.4,1.7-1.2C231.7,37.3,232.2,38,232,38.9C232.1,38.8,232.1,38.8,232,38.9L232,38.9z"/>
|
||||
<path class="st2" d="M189,51.6c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H189z M253.4,15.3
|
||||
c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6L253.4,15.3z M259.7,12.4c4.3,5.3,6.7,11.9,6.7,18.7h3
|
||||
c0-7.5-2.6-14.8-7.4-20.6L259.7,12.4z M181.8,54.4c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H181.8z"/>
|
||||
<path class="st1" d="M90.3,29.8l-44-7.5c-2.3-0.3-4.5,1.2-5,3.5L34,59.8c-0.5,2.2,0.8,4.3,2.9,4.9c0.1,0,0.2,0,0.2,0.1l44,7.5
|
||||
c2.3,0.3,4.5-1.2,5-3.5l7.3-33.9c0.5-2.2-0.8-4.3-2.9-4.9C90.5,29.9,90.4,29.9,90.3,29.8L90.3,29.8z M43.1,27.3
|
||||
c0.3-1.7,2-2.9,3.8-2.7l9.3,1.6l6.3,1.1l3.1,0.5l-3.8,2.7l0.7-3.2l-7.7,5.4l1.4-6.5L41.1,36.8L43.1,27.3z M46.3,47.1l-0.4,2.1
|
||||
c-0.2,0.9-1,1.4-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.4,1.9-1.3l2.1,0.3
|
||||
C45.9,45.4,46.5,46.1,46.3,47.1C46.3,47,46.3,47,46.3,47.1z M76.6,46.4c-1.6,2.9-4.8,4.4-8,3.9l-10.5-1.8c-3.1-0.5-5.6-3.1-5.8-6.2
|
||||
c-0.4-4.3,2.7-8.2,7.1-8.6c0.6-0.1,1.2-0.1,1.8,0l10.8,1.8C76.6,36.3,79.2,41.6,76.6,46.4L76.6,46.4z M85.2,53.7l-0.4,2.1
|
||||
c-0.2,0.9-1,1.5-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.5,1.9-1.3l2,0.4
|
||||
C84.8,52,85.4,52.7,85.2,53.7C85.2,53.6,85.2,53.6,85.2,53.7L85.2,53.7z"/>
|
||||
<path class="st1" d="M70.7,38.6l-9.8-1.7c-2.2-0.4-4.4,1-5.1,3.1c-0.7,2.1,0.4,4.4,2.5,5.2c0.2,0.1,0.4,0.1,0.6,0.2l10.2,1.7
|
||||
c2.5,0.3,4.7-1.4,5.1-3.9c0,0,0,0,0-0.1C74.4,40.9,72.9,38.9,70.7,38.6L70.7,38.6z M61.1,40.9c-0.2,0.8-0.9,1.3-1.7,1.2
|
||||
c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2C60.8,39.4,61.3,40.1,61.1,40.9C61.1,40.9,61.1,40.9,61.1,40.9z
|
||||
M71.6,42.7c-0.2,0.8-0.9,1.3-1.7,1.2c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2
|
||||
C71.2,41.1,71.7,41.9,71.6,42.7C71.6,42.6,71.6,42.7,71.6,42.7L71.6,42.7z"/>
|
||||
<path class="st2" d="M28.5,55.5c0,6.8,2.4,13.4,6.7,18.7L33,76.1c-4.8-5.8-7.4-13.1-7.4-20.6H28.5z M93,19.2
|
||||
c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6L93,19.2z M99.2,16.2c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6
|
||||
L99.2,16.2z M21.3,58.2c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9C21,73,18.4,65.7,18.4,58.2H21.3z"/>
|
||||
<path class="st1" d="M157.4,107.7l-44-7.5c-2.3-0.3-4.5,1.2-5,3.5l-7.3,33.9c-0.5,2.2,0.8,4.3,2.9,4.9c0.1,0,0.2,0,0.2,0.1l44,7.5
|
||||
c2.3,0.3,4.5-1.2,5-3.5l7.3-33.9c0.5-2.2-0.8-4.3-2.9-4.9C157.6,107.8,157.5,107.8,157.4,107.7L157.4,107.7z M110.2,105.2
|
||||
c0.3-1.7,2-2.9,3.8-2.7l9.3,1.6l6.3,1.1l3.1,0.5l-3.8,2.7l0.7-3.2l-7.7,5.4l1.4-6.5l-15.1,10.6L110.2,105.2z M113.4,125l-0.4,2.1
|
||||
c-0.2,0.9-1,1.4-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.4,1.9-1.3l2.1,0.3
|
||||
C113.1,123.3,113.6,124.1,113.4,125C113.4,124.9,113.4,124.9,113.4,125z M143.7,124.3c-1.6,2.9-4.8,4.4-8,3.9l-10.5-1.8
|
||||
c-3.1-0.5-5.6-3.1-5.8-6.2c-0.4-4.3,2.7-8.2,7.1-8.6c0.6-0.1,1.2-0.1,1.8,0l10.8,1.8C143.7,114.2,146.3,119.5,143.7,124.3
|
||||
L143.7,124.3z M152.4,131.6l-0.4,2.1c-0.2,0.9-1,1.5-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1
|
||||
c0.2-0.9,1-1.5,1.9-1.3l2,0.4C152,129.9,152.5,130.6,152.4,131.6C152.4,131.5,152.3,131.5,152.4,131.6L152.4,131.6z"/>
|
||||
<path class="st1" d="M137.9,116.5l-9.8-1.7c-2.2-0.4-4.4,1-5.1,3.1c-0.7,2.1,0.4,4.4,2.5,5.2c0.2,0.1,0.4,0.1,0.6,0.2l10.2,1.7
|
||||
c2.5,0.3,4.7-1.4,5.1-3.9c0,0,0,0,0-0.1C141.6,118.8,140,116.8,137.9,116.5L137.9,116.5z M128.2,118.8c-0.2,0.8-0.9,1.3-1.7,1.2
|
||||
c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2C127.9,117.3,128.4,118,128.2,118.8
|
||||
C128.3,118.8,128.2,118.8,128.2,118.8z M138.7,120.6c-0.2,0.8-0.9,1.3-1.7,1.2c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1
|
||||
c0.2-0.8,0.9-1.4,1.7-1.2C138.4,119,138.9,119.8,138.7,120.6C138.7,120.6,138.7,120.6,138.7,120.6L138.7,120.6z"/>
|
||||
<path class="st2" d="M95.7,133.4c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H95.7z M160.1,97.1
|
||||
c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6L160.1,97.1z M166.3,94.1c4.3,5.3,6.7,11.9,6.7,18.7h3
|
||||
c0-7.5-2.6-14.8-7.4-20.6L166.3,94.1z M88.5,136.1c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H88.5z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 7.1 KiB |
BIN
docs/static/packages/radio/icon.png
vendored
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 7.9 KiB |
65
docs/static/packages/radio/icon.svg
vendored
@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1"
|
||||
id="svg2" inkscape:export-filename="/Users/sammysam/Work/pxt-microbit/docs/static/packages/radio/icon.png" inkscape:export-xdpi="100.04" inkscape:export-ydpi="100.04" inkscape:version="0.91 r13725" sodipodi:docname="icon.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 286 176"
|
||||
style="enable-background:new 0 0 286 176;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E3008B;stroke:#CDCDCD;stroke-width:3.333091e-02;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#00FFFF;}
|
||||
</style>
|
||||
<sodipodi:namedview bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview4" inkscape:current-layer="svg2" inkscape:cx="240.23897" inkscape:cy="53.563179" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="744" inkscape:window-maximized="0" inkscape:window-width="1558" inkscape:window-x="11" inkscape:window-y="0" inkscape:zoom="1.378389" objecttolerance="10" pagecolor="#ffffff" showgrid="false">
|
||||
</sodipodi:namedview>
|
||||
<rect id="rect4138" x="0" y="0" class="st0" width="286" height="176"/>
|
||||
<image style="overflow:visible;enable-background:new ;" width="1440" height="496" id="image4156" xlink:href="B3A78EF0E366567F.png" transform="matrix(0.3665 0 0 0.3665 -73.8575 -2.0237)">
|
||||
</image>
|
||||
<path class="st1" d="M250.8,26l-44-7.5c-2.3-0.3-4.5,1.2-5,3.5L194.5,56c-0.5,2.2,0.8,4.3,2.9,4.9c0.1,0,0.2,0,0.2,0.1l44,7.5
|
||||
c2.3,0.3,4.5-1.2,5-3.5l7.3-33.9c0.5-2.2-0.8-4.3-2.9-4.9C251,26,250.9,26,250.8,26L250.8,26z M203.6,23.5c0.3-1.7,2-2.9,3.8-2.7
|
||||
l9.3,1.6l6.3,1.1l3.1,0.5l-3.8,2.7l0.7-3.2l-7.7,5.4l1.4-6.5L201.5,33L203.6,23.5z M206.8,43.2l-0.4,2.1c-0.2,0.9-1,1.4-1.9,1.3
|
||||
l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.4,1.9-1.3l2.1,0.3C206.4,41.5,206.9,42.3,206.8,43.2
|
||||
C206.8,43.2,206.8,43.2,206.8,43.2z M237.1,42.6c-1.6,2.9-4.8,4.4-8,3.9l-10.5-1.8c-3.1-0.5-5.6-3.1-5.8-6.2
|
||||
c-0.4-4.3,2.7-8.2,7.1-8.6c0.6-0.1,1.2-0.1,1.8,0l10.8,1.8C237,32.5,239.7,37.8,237.1,42.6L237.1,42.6z M245.7,49.8l-0.4,2.1
|
||||
c-0.2,0.9-1,1.5-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.5,1.9-1.3l2,0.4
|
||||
C245.3,48.1,245.9,48.9,245.7,49.8C245.7,49.8,245.7,49.8,245.7,49.8L245.7,49.8z"/>
|
||||
<path class="st1" d="M231.2,34.7l-9.8-1.7c-2.2-0.4-4.4,1-5.1,3.1c-0.7,2.1,0.4,4.4,2.5,5.2c0.2,0.1,0.4,0.1,0.6,0.2l10.2,1.7
|
||||
c2.5,0.3,4.7-1.4,5.1-3.9c0,0,0,0,0-0.1C234.9,37.1,233.4,35.1,231.2,34.7L231.2,34.7z M221.6,37.1c-0.2,0.8-0.9,1.3-1.7,1.2
|
||||
c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2C221.2,35.5,221.7,36.3,221.6,37.1
|
||||
C221.6,37,221.6,37.1,221.6,37.1z M232,38.9c-0.2,0.8-0.9,1.3-1.7,1.2c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1
|
||||
c0.2-0.8,0.9-1.4,1.7-1.2C231.7,37.3,232.2,38,232,38.9C232.1,38.8,232.1,38.8,232,38.9L232,38.9z"/>
|
||||
<path class="st2" d="M189,51.6c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H189z M253.4,15.3
|
||||
c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6L253.4,15.3z M259.7,12.4c4.3,5.3,6.7,11.9,6.7,18.7h3
|
||||
c0-7.5-2.6-14.8-7.4-20.6L259.7,12.4z M181.8,54.4c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H181.8z"/>
|
||||
<path class="st1" d="M90.3,29.8l-44-7.5c-2.3-0.3-4.5,1.2-5,3.5L34,59.8c-0.5,2.2,0.8,4.3,2.9,4.9c0.1,0,0.2,0,0.2,0.1l44,7.5
|
||||
c2.3,0.3,4.5-1.2,5-3.5l7.3-33.9c0.5-2.2-0.8-4.3-2.9-4.9C90.5,29.9,90.4,29.9,90.3,29.8L90.3,29.8z M43.1,27.3
|
||||
c0.3-1.7,2-2.9,3.8-2.7l9.3,1.6l6.3,1.1l3.1,0.5l-3.8,2.7l0.7-3.2l-7.7,5.4l1.4-6.5L41.1,36.8L43.1,27.3z M46.3,47.1l-0.4,2.1
|
||||
c-0.2,0.9-1,1.4-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.4,1.9-1.3l2.1,0.3
|
||||
C45.9,45.4,46.5,46.1,46.3,47.1C46.3,47,46.3,47,46.3,47.1z M76.6,46.4c-1.6,2.9-4.8,4.4-8,3.9l-10.5-1.8c-3.1-0.5-5.6-3.1-5.8-6.2
|
||||
c-0.4-4.3,2.7-8.2,7.1-8.6c0.6-0.1,1.2-0.1,1.8,0l10.8,1.8C76.6,36.3,79.2,41.6,76.6,46.4L76.6,46.4z M85.2,53.7l-0.4,2.1
|
||||
c-0.2,0.9-1,1.5-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.5,1.9-1.3l2,0.4
|
||||
C84.8,52,85.4,52.7,85.2,53.7C85.2,53.6,85.2,53.6,85.2,53.7L85.2,53.7z"/>
|
||||
<path class="st1" d="M70.7,38.6l-9.8-1.7c-2.2-0.4-4.4,1-5.1,3.1c-0.7,2.1,0.4,4.4,2.5,5.2c0.2,0.1,0.4,0.1,0.6,0.2l10.2,1.7
|
||||
c2.5,0.3,4.7-1.4,5.1-3.9c0,0,0,0,0-0.1C74.4,40.9,72.9,38.9,70.7,38.6L70.7,38.6z M61.1,40.9c-0.2,0.8-0.9,1.3-1.7,1.2
|
||||
c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2C60.8,39.4,61.3,40.1,61.1,40.9C61.1,40.9,61.1,40.9,61.1,40.9z
|
||||
M71.6,42.7c-0.2,0.8-0.9,1.3-1.7,1.2c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2
|
||||
C71.2,41.1,71.7,41.9,71.6,42.7C71.6,42.6,71.6,42.7,71.6,42.7L71.6,42.7z"/>
|
||||
<path class="st2" d="M28.5,55.5c0,6.8,2.4,13.4,6.7,18.7L33,76.1c-4.8-5.8-7.4-13.1-7.4-20.6H28.5z M93,19.2
|
||||
c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6L93,19.2z M99.2,16.2c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6
|
||||
L99.2,16.2z M21.3,58.2c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9C21,73,18.4,65.7,18.4,58.2H21.3z"/>
|
||||
<path class="st1" d="M157.4,107.7l-44-7.5c-2.3-0.3-4.5,1.2-5,3.5l-7.3,33.9c-0.5,2.2,0.8,4.3,2.9,4.9c0.1,0,0.2,0,0.2,0.1l44,7.5
|
||||
c2.3,0.3,4.5-1.2,5-3.5l7.3-33.9c0.5-2.2-0.8-4.3-2.9-4.9C157.6,107.8,157.5,107.8,157.4,107.7L157.4,107.7z M110.2,105.2
|
||||
c0.3-1.7,2-2.9,3.8-2.7l9.3,1.6l6.3,1.1l3.1,0.5l-3.8,2.7l0.7-3.2l-7.7,5.4l1.4-6.5l-15.1,10.6L110.2,105.2z M113.4,125l-0.4,2.1
|
||||
c-0.2,0.9-1,1.4-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1c0.2-0.9,1-1.4,1.9-1.3l2.1,0.3
|
||||
C113.1,123.3,113.6,124.1,113.4,125C113.4,124.9,113.4,124.9,113.4,125z M143.7,124.3c-1.6,2.9-4.8,4.4-8,3.9l-10.5-1.8
|
||||
c-3.1-0.5-5.6-3.1-5.8-6.2c-0.4-4.3,2.7-8.2,7.1-8.6c0.6-0.1,1.2-0.1,1.8,0l10.8,1.8C143.7,114.2,146.3,119.5,143.7,124.3
|
||||
L143.7,124.3z M152.4,131.6l-0.4,2.1c-0.2,0.9-1,1.5-1.9,1.3l-2-0.4c-0.8-0.1-1.4-0.9-1.2-1.7c0,0,0-0.1,0-0.1l0.4-2.1
|
||||
c0.2-0.9,1-1.5,1.9-1.3l2,0.4C152,129.9,152.5,130.6,152.4,131.6C152.4,131.5,152.3,131.5,152.4,131.6L152.4,131.6z"/>
|
||||
<path class="st1" d="M137.9,116.5l-9.8-1.7c-2.2-0.4-4.4,1-5.1,3.1c-0.7,2.1,0.4,4.4,2.5,5.2c0.2,0.1,0.4,0.1,0.6,0.2l10.2,1.7
|
||||
c2.5,0.3,4.7-1.4,5.1-3.9c0,0,0,0,0-0.1C141.6,118.8,140,116.8,137.9,116.5L137.9,116.5z M128.2,118.8c-0.2,0.8-0.9,1.3-1.7,1.2
|
||||
c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1c0.2-0.8,0.9-1.4,1.7-1.2C127.9,117.3,128.4,118,128.2,118.8
|
||||
C128.3,118.8,128.2,118.8,128.2,118.8z M138.7,120.6c-0.2,0.8-0.9,1.3-1.7,1.2c-0.8-0.1-1.3-0.9-1.1-1.6c0,0,0-0.1,0-0.1
|
||||
c0.2-0.8,0.9-1.4,1.7-1.2C138.4,119,138.9,119.8,138.7,120.6C138.7,120.6,138.7,120.6,138.7,120.6L138.7,120.6z"/>
|
||||
<path class="st2" d="M95.7,133.4c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H95.7z M160.1,97.1
|
||||
c4.3,5.3,6.7,11.9,6.7,18.7h3c0-7.5-2.6-14.8-7.4-20.6L160.1,97.1z M166.3,94.1c4.3,5.3,6.7,11.9,6.7,18.7h3
|
||||
c0-7.5-2.6-14.8-7.4-20.6L166.3,94.1z M88.5,136.1c0,6.8,2.4,13.4,6.7,18.7l-2.3,1.9c-4.8-5.8-7.4-13.1-7.4-20.6H88.5z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 7.1 KiB |
BIN
docs/static/packages/servo/icon.png
vendored
Normal file
After Width: | Height: | Size: 9.1 KiB |
@ -257,6 +257,8 @@
|
||||
"basic.showArrow": "Draws an arrow on the LED screen",
|
||||
"basic.showArrow|param|direction": "the direction of the arrow",
|
||||
"basic.showArrow|param|interval": "the amount of time (milliseconds) to show the icon. Default is 600.",
|
||||
"basic.showCompass": "Draws needle on the screen which always points to north",
|
||||
"basic.showCompass|param|interval": "the amount of time (milliseconds) to show the needle. Default is 600.",
|
||||
"basic.showIcon": "Draws the selected icon on the LED screen",
|
||||
"basic.showIcon|param|icon": "the predefined icon id",
|
||||
"basic.showIcon|param|interval": "the amount of time (milliseconds) to show the icon. Default is 600.",
|
||||
@ -537,7 +539,6 @@
|
||||
"pins.C16": "Pin C16",
|
||||
"pins.C17": "Pin C17",
|
||||
"pins.C18": "Pin C18",
|
||||
"pins.C19": "Pin C19",
|
||||
"pins.C4": "Pin C4",
|
||||
"pins.C5": "Pin C5",
|
||||
"pins.C6": "Pin C6",
|
||||
@ -553,16 +554,16 @@
|
||||
"pins.analogPitch|param|frequency": "frequency to modulate in Hz.",
|
||||
"pins.analogPitch|param|ms": "duration of the pitch in milli seconds.",
|
||||
"pins.analogReadPin": "Read the connector value as analog, that is, as a value comprised between 0 and 1023.",
|
||||
"pins.analogReadPin|param|name": "pin to write to, eg: AnalogPin.P0",
|
||||
"pins.analogReadPin|param|name": "pin to write to, eg: AnalogPin.P1",
|
||||
"pins.analogSetPeriod": "Configure the pulse-width modulation (PWM) period of the analog output in microseconds.\nIf this pin is not configured as an analog output (using `analog write pin`), the operation has no effect.",
|
||||
"pins.analogSetPeriod|param|micros": "period in micro seconds. eg:20000",
|
||||
"pins.analogSetPeriod|param|name": "analog pin to set period to, eg: AnalogPin.P0",
|
||||
"pins.analogSetPeriod|param|name": "analog pin to set period to, eg: AnalogPin.P1",
|
||||
"pins.analogSetPitchPin": "Set the pin used when using analog pitch or music.",
|
||||
"pins.analogSetPitchPin|param|name": "pin to modulate pitch from",
|
||||
"pins.analogSetPitchVolume": "Sets the volume on the pitch pin",
|
||||
"pins.analogSetPitchVolume|param|volume": "the intensity of the sound from 0..255",
|
||||
"pins.analogWritePin": "Set the connector value as analog. Value must be comprised between 0 and 1023.",
|
||||
"pins.analogWritePin|param|name": "pin name to write to, eg: AnalogPin.P0",
|
||||
"pins.analogWritePin|param|name": "pin name to write to, eg: AnalogPin.P1",
|
||||
"pins.analogWritePin|param|value": "value to write to the pin between ``0`` and ``1023``. eg:1023,0",
|
||||
"pins.createBuffer": "Create a new zero-initialized buffer.",
|
||||
"pins.createBuffer|param|size": "number of bytes in the buffer",
|
||||
@ -594,7 +595,7 @@
|
||||
"pins.servoSetPulse|param|micros": "pulse duration in micro seconds, eg:1500",
|
||||
"pins.servoSetPulse|param|name": "pin name",
|
||||
"pins.servoWritePin": "Write a value to the servo, controlling the shaft accordingly. On a standard servo, this will set the angle of the shaft (in degrees), moving the shaft to that orientation. On a continuous rotation servo, this will set the speed of the servo (with ``0`` being full-speed in one direction, ``180`` being full speed in the other, and a value near ``90`` being no movement).",
|
||||
"pins.servoWritePin|param|name": "pin to write to, eg: AnalogPin.P0",
|
||||
"pins.servoWritePin|param|name": "pin to write to, eg: AnalogPin.P1",
|
||||
"pins.servoWritePin|param|value": "angle or rotation speed, eg:180,90,0",
|
||||
"pins.setEvents": "Configure the events emitted by this pin. Events can be subscribed to\nusing ``control.onEvent()``.",
|
||||
"pins.setEvents|param|name": "pin to set the event mode on, eg: DigitalPin.P0",
|
||||
|
@ -103,6 +103,14 @@
|
||||
"Gesture.TiltRight": "Raised when the screen is pointing right",
|
||||
"Gesture.TiltRight|block": "tilt right",
|
||||
"IconNames.Angry|block": "angry",
|
||||
"IconNames.ArrowEast|block": "arrow East",
|
||||
"IconNames.ArrowNorthEast|block": "arrow north east",
|
||||
"IconNames.ArrowNorthWest|block": "arrow north west",
|
||||
"IconNames.ArrowNorth|block": "arrow north",
|
||||
"IconNames.ArrowSouthEast|block": "arrow south east",
|
||||
"IconNames.ArrowSouthWest|block": "arrow south west",
|
||||
"IconNames.ArrowSouth|block": "arrow south",
|
||||
"IconNames.ArrowWest|block": "arrow west",
|
||||
"IconNames.Asleep|block": "asleep",
|
||||
"IconNames.Butterfly|block": "butterfly",
|
||||
"IconNames.Chessboard|block": "chess board",
|
||||
@ -258,6 +266,7 @@
|
||||
"basic.rgbw|block": "red %red|green %green|blue %blue|white %white",
|
||||
"basic.setLedColor|block": "set led to %color=colorNumberPicker",
|
||||
"basic.showArrow|block": "show arrow %i=device_arrow",
|
||||
"basic.showCompass|block": "show compass needle for $interval|ms",
|
||||
"basic.showIcon|block": "show icon %i",
|
||||
"basic.showLeds|block": "show leds",
|
||||
"basic.showNumber|block": "show|number %number",
|
||||
|
273
libs/core/compass.ts
Normal file
@ -0,0 +1,273 @@
|
||||
let compassImages = [
|
||||
images.createImage(`
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. # . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
# . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
# . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
# . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
# . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
# . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. # . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . # .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . #
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . #
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . #
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . #
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . #
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . # .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)];
|
||||
|
||||
let compassImagesDownside = [
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . # .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . #
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . #
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . #
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . #
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . #
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . # .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. # . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
# . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
# . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
# . # . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
# . . . .
|
||||
. . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
# . . . .
|
||||
`),
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. # . . .
|
||||
`)];
|
||||
|
||||
|
||||
|
||||
|
||||
namespace basic {
|
||||
/**
|
||||
* Draws needle on the screen which always points to north
|
||||
* @param interval the amount of time (milliseconds) to show the needle. Default is 600.
|
||||
*/
|
||||
//% weight=50 blockGap=8
|
||||
//% blockId=basic_show_compass
|
||||
//% block="show compass needle for $interval|ms"
|
||||
//% interval.shadow=timePicker
|
||||
//% interval.min=1
|
||||
//% interval.defl=600
|
||||
//% parts="ledmatrix"
|
||||
//% advanced=true
|
||||
export function showCompass(interval = 600) {
|
||||
let i = 0
|
||||
let startTime = input.runningTime()
|
||||
let endTime = startTime + interval
|
||||
let refreshRate = 100
|
||||
let rest = 0
|
||||
|
||||
while ((endTime) > (input.runningTime() + refreshRate)) {
|
||||
i = Math.round((input.compassHeading() - 11.25) / 22.5)
|
||||
if (input.isGesture(Gesture.ScreenDown)) {
|
||||
compassImagesDownside[i].showImage(0, refreshRate)
|
||||
} else {
|
||||
compassImages[i].showImage(0, refreshRate)
|
||||
}
|
||||
}
|
||||
|
||||
rest = (endTime - input.runningTime())
|
||||
if(rest > 0) {
|
||||
i = Math.round((input.compassHeading() - 11.25) / 22.5)
|
||||
if (input.isGesture(Gesture.ScreenDown)) {
|
||||
compassImagesDownside[i].showImage(0, rest)
|
||||
} else {
|
||||
compassImages[i].showImage(0, rest)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
1
libs/core/enums.d.ts
vendored
@ -465,7 +465,6 @@ declare namespace motors {
|
||||
C16 = 102, // MICROBIT_ID_IO_P2
|
||||
C17 = 108, // MICROBIT_ID_IO_P8
|
||||
C18 = 120, // MICROBIT_ID_IO_P20
|
||||
C19 = 119, // MICROBIT_ID_IO_P19
|
||||
}
|
||||
|
||||
|
||||
|
@ -122,5 +122,29 @@
|
||||
},
|
||||
"scissors": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFUUlEQVR4nO3dMW6cRRgG4G+RaCL6AAfgAjkA4k5Jg9JCE+6EoM8FOEBC+ihNiqVYU0TZeT3rnd/6/vXztB57Ps3odWTFnrcKAAAAaOGQPng8Hn+uqldV9aKqvl+8979V9baq3hwOh78e8gW6z1dV31XV86p6VlXfrhrszueq+lRVH6rq4wO/Ruv5OtzvMCDH4/HXqvpt8VBnt6qq14fD4feLPqn5fHW60B83mOecd3W68Eu0nq/L/Z4NyF1y/xx9fAPHqvpl9jt19/nq9J35pw3nOeefmv9O3Xq+Tvf7zeATXtXjDVd3e728YH33+Z5vNciiPbvP1+Z+RwF5sd0sQ5fs2X2+Z5tNsWbP7vO1ud9RQFb/QDTjhwvWdp9v9Q+8q/fsPl+b+x0FBCgBgUhAIBAQCAQEAgGBQEAgEBAIBAQCAYFAQCAQEAgEBAIBgUBAIBAQCAQEAgGBQEAgGAXk0jeWVnh/wdru833ebIo1e3afr839jgLydsNBRi7Zs/t8nzabYs2e3edrc7+jgLyp02Naj+V4t+es7vN92GqQRXt2n6/N/Z4NyN0Lc6/rcYb8/+nHv2c/oft8dXpB8N1G85zzri57/7b1fJ3ud+bx6pd1elTrknehZryv0z9rf1z5eHXb+ar549DVfL4d3C8AAAAAAAAAPDF60sduvifd+d1/fnrSJ7aqG+xJd35fGJ6fnvQ5N9WT7vzOOnt+etLn3FpPuvOb3FNP+jZ76iG/bs8256cnfd4t9aQ7v8k9vWoCgYBAICAQCAgEAgKBgEAgIBAICAQCAoGAQCAgEAgIBAICgYBAICAQCAgEAgKBgEAgIBDoSZ93Sz3pzm9yTz3p2+yph/y6Pducn570ObfWk+78JvfUk36/m+tJd35fGZ6fnvSxm+9Jd35X98wDAAAAAAAAwBNzX5Fj9//qbz2fHvL9328KSIue6qD1fHrIv7Db+x0FpE1P9UDr+fSQn7XL+x39PUibnuoFa1fRQ36dXd7vKCBteqoXrF1FD/l1dnm/o4C06alesHYVPeTX2eX9etUEAgGBQEAgEBAIBAQCAYFAQCAQEAgEBAIBgUBAIBAQCAQEAgGBQEAgEBAIBAQCAYFAQCAYBaRNT/WCtavoIb/OLu93FJA2PdUL1q6ih/w6u7zfUUDa9FQvWLuKHvLr7PJ+RwFp01M90Ho+PeRf2e39erx6TA/5dW7+fgEAAAAAAADg6Ym/atK957v7fNX8VyWc3xU96d17vrvPV016vkec3xcu60nv3vPdfb5q1PN9jvM766Ke9O49393na9PzPeD8JvccBaR7z3f3+dr0fA84v8k9RwHp3vPdfb42Pd8Dzm9yT6+aQCAgEAgIBAICgYBAICAQCAgEAgKBgEAgIBAICAQCAoGAQCAgEAgIBAICgYBAICAQCAgEo4B07/nuPl+bnu8B5ze55ygg3Xu+u8/Xpud7wPlN7jkKSPee7+7zten5HnB+k3ueDUj3nu/u81Wjnu9znN9XHtaT3r3nu/t81eDx5cT56UkHAAAAAAAAgMvoSR+7iZ7ve7Ser8P96kmf2Kp23PMdtJ6vy/3qSZ+z257vgdbzdbpfPelzdtvzvWDtKrvscdeTvs2ebXq+F6xdZZc97nrS5+2y53vB2lV22ePuVRMIBAQCAYFAQCAQEAgEBAIBgUBAIBAQCAQEAgGBQEAgEBAIBAQCAYFAQCAQEAgEBAIBgUBP+rxd9nwvWLvKLnvc9aRvs2ebnu8Fa1fZZY+7nvQ5u+35XrB2lV32uOtJv9+ue74HWs/X6X71pI89hZ7v1vPt4H4BAACAx/IfV5v6DSxvZ+4AAAAASUVORK5CYII="
|
||||
},
|
||||
"arrownorth": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTg1QjQxRjlFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTg1QjQxRkFFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBODVCNDFGN0VDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBODVCNDFGOEVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrDq62kAAAdCSURBVHja7N2x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"
|
||||
},
|
||||
"arrownortheast": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3Njk4REZFQzNDMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3Njk4RTBFQzNDMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNDM5M0RCMEVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTc2OThERUVDM0MxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pts1YdYAAAXoSURBVHja7N3B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"
|
||||
},
|
||||
"arroweast": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTg1QjQxRkRFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTg1QjQxRkVFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBODVCNDFGQkVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBODVCNDFGQ0VDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkRp+VEAAAbPSURBVHja7N09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"
|
||||
},
|
||||
"arrowsoutheast": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3Njk4RTNFQzNDMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3Njk4RTRFQzNDMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTc2OThFMUVDM0MxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTc2OThFMkVDM0MxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pu4vAMQAAAXfSURBVHja7N3B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"
|
||||
},
|
||||
"arrowsouth": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQzOTNEQTZFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQzOTNEQTdFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBODVCNDFGRkVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBODVCNDIwMEVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrnT/wkAAAdjSURBVHja7N0/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"
|
||||
},
|
||||
"arrowsouthwest": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3Njk4RTdFQzNDMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3Njk4RThFQzNDMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTc2OThFNUVDM0MxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTc2OThFNkVDM0MxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgEb5sEAAAXPSURBVHja7N3N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"
|
||||
},
|
||||
"arrowwest": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQzOTNEQUFFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQzOTNEQUJFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNDM5M0RBOEVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNDM5M0RBOUVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvkudBoAAAcJSURBVHja7N3B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"
|
||||
},
|
||||
"arrownorthwest": {
|
||||
"icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQzOTNEQUVFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQzOTNEQUZFQzNCMTFFQTkwMDREMjM3Rjg3MzY4NzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNDM5M0RBQ0VDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNDM5M0RBREVDM0IxMUVBOTAwNEQyMzdGODczNjg3OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pncgm/sAAAXOSURBVHja7N3NThtXGAbgceQuQOxoRGEFm+xyH1HvJ/25gqrt/VTtdXTXDaxMo5ZdBIsguTPgShYaDzNz7PF3jp9HsiIlkPPpjF//gc47Wy6XFdDujS0AAQEBAQGBCc3b/nI2mz39eX19/eH09PS7o6Oj9/P5/OttLvz4+Pjvw8PDn3d3d79cXV39Pub/MF/afLWT+nZW347r21dbvm99qW/39e1Tffucw3xtH1jNWv+yDshisfjp/Pz8hwlCury9vf354uLixyHfZL60+Wrf1LeLiR6IF/Xt7+jz9Q7Izc3Nh8vLy9+af59owGW95rd9HwmbR2bzjZ9v9cj8buJXK38NeCbZy3x1Fj73eg/SvCyY8OI+BbVe82PfLzZf2nyrly1TO8txvtaANK+Zp55uyJrmS17zeA93wOMc52sNyLbfUPb6tGA+fzvga82XMN8O3vBue80w8/mYFzoICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICBwsAFpDiWbepB6zX8GfK35Euarng9Nm9qXHOdrDUhzYt/U0w1Z03zJa97v4Q54n+N8rQFpjrOs/5iyOGS5WrMX86XNVz0ftzm1TznO1xqQ5oS+5jjLiS7y09GZ9Zp/9P0G86XNVz2fcLiY8M63qIadzxtmvo1n8zZWhy9/XB2+/HabEzWvmVeHL/+aeDi0+RxevZX5Bh1eDYemLQs+5oUOAgICAgICAgICAgICAgJZm9uCcdp+qMQ4kX8w3RkQPeTj5lu74Hv/VYkc51uz91+F0ZM+cr6ui726A4bo+c5hvg3PIHrS1+9vufWQvxKQMD3fOczXEhA96S/3SA95sjPzbX8+Pem7WVMPeSHz6UnfwXyVHvJi5vNzEOggICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgIDAwQZED3nafJUe8mLm05O+mzX1kBcyn570HcxX6SEvZj496TuYr9JDXsx8etJHztfjbN6Gw6t7zNdxurue9FypP9ieKPc3PekwkIBABw1Tmb8swDMIeAbJ+Y2xZxMBIXMeXLzEAgEBAYEc3oPoIU/r+bZ/w/bv/3/f13yte5VTT/qLDQzd8x1t/9Znj7R/63sX8fq+2fTIV1/c76f6IKNZq1lzwPecTLh51WqtkyHPHPZv/P5Fmi/LnvQqeM+3/UteU0964pqhe77tX/KaetJb1iymh9z+Ja+pJx1yICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAwMEGRA952pr2L3lNPemJa4bu+bZ/yWvqSX+hqB5y+5e8pp709YtbWg+5/Uvbv0pP+rie9H0fbjy05zvS/rWczRti/zrO5o0xX0496VqSyt67iDP6mBcEBMZR4omXqh0v8TyDQCnPIPrIERA8uAhIOXz0XDbvQUBAYDcvsfbeU53jfHrc03rcI13frl81mbyneuD3hJgv0v5t+H2r9m8I1uMe4foO+TmIHu2C59Pj3n//NgVEj3bB8+lx77/mpoDo0S54Pj3u/dfcFBA92gXPp8e9/5o+5oUOAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgIHHJA9GgXPJ8e9/5rbgqIHu2C59Pj3n/NTQHRo13wfHrc+6+5KSB6tAueT497//17rQba4dWvzBdp/4aczduI1OMe4fpm35MekQKdsq+lj3mhg4CAgICAgICAgICAgICAgECp9KTvYL5cetKjX98IPe560hPny7UnPfr13UePu55082UxX6Qedz3p5gs3X6Qedz3p5gs3X6Qedz3p5gs3X6Qedx/zQgcBAQEBAQEBAQEBAQEBAQEBAQEBAQQEBAQEBAQEBAQEBAQEBAQOOSB6yM23t/ki9bjrSTdfuPki9bjrSTdfuPki9bjrSTdfuPki9bjrSU+cL+ee9CqPw6sn63Hv3ZMOdL/EAgQEBAQEBHbhPwEGAINqOacrDo3YAAAAAElFTkSuQmCC"
|
||||
}
|
||||
}
|
@ -145,7 +145,31 @@ enum IconNames {
|
||||
SmallSquare,
|
||||
//% block="scissors"
|
||||
//% jres=icons.scissors
|
||||
Scissors
|
||||
Scissors,
|
||||
//% block="arrow north"
|
||||
//% jres=icons.arrownorth
|
||||
ArrowNorth,
|
||||
//% block="arrow north east"
|
||||
//% jres=icons.arrownortheast
|
||||
ArrowNorthEast,
|
||||
//% block="arrow East"
|
||||
//% jres=icons.arroweast
|
||||
ArrowEast,
|
||||
//% block="arrow south east"
|
||||
//% jres=icons.arrowsoutheast
|
||||
ArrowSouthEast,
|
||||
//% block="arrow south"
|
||||
//% jres=icons.arrowsouth
|
||||
ArrowSouth,
|
||||
//% block="arrow south west"
|
||||
//% jres=icons.arrowsouthwest
|
||||
ArrowSouthWest,
|
||||
//% block="arrow west"
|
||||
//% jres=icons.arrowwest
|
||||
ArrowWest,
|
||||
//% block="arrow north west"
|
||||
//% jres=icons.arrownorthwest
|
||||
ArrowNorthWest
|
||||
}
|
||||
|
||||
enum ArrowNames {
|
||||
@ -164,7 +188,7 @@ enum ArrowNames {
|
||||
//% blockIdentity=images.arrowNumber block="West"
|
||||
West,
|
||||
//% blockIdentity=images.arrowNumber block="North West"
|
||||
NorthWest,
|
||||
NorthWest
|
||||
}
|
||||
|
||||
namespace basic {
|
||||
@ -199,6 +223,7 @@ namespace basic {
|
||||
//% parts="ledmatrix"
|
||||
//% advanced=true
|
||||
//% help=basic/show-arrow
|
||||
//% deprecated=true
|
||||
export function showArrow(direction: number, interval = 600) {
|
||||
let res = images.arrowImage(direction)
|
||||
res.showImage(0, interval)
|
||||
@ -211,6 +236,7 @@ namespace images {
|
||||
//% weight=50 blockGap=8
|
||||
//% help=images/arrow-image
|
||||
//% blockId=builtin_arrow_image block="arrow image %i"
|
||||
//% deprecated=true
|
||||
export function arrowImage(i: ArrowNames): Image {
|
||||
switch (i) {
|
||||
// compass directions
|
||||
@ -528,6 +554,55 @@ namespace images {
|
||||
# # . # #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
// arrows
|
||||
case IconNames.ArrowNorth: return images.createImage(`
|
||||
. . # . .
|
||||
. # # # .
|
||||
# . # . #
|
||||
. . # . .
|
||||
. . # . .`);
|
||||
case IconNames.ArrowNorthEast: return images.createImage(`
|
||||
. . # # #
|
||||
. . . # #
|
||||
. . # . #
|
||||
. # . . .
|
||||
# . . . .`);
|
||||
case IconNames.ArrowEast: return images.createImage(`
|
||||
. . # . .
|
||||
. . . # .
|
||||
# # # # #
|
||||
. . . # .
|
||||
. . # . .`);
|
||||
case IconNames.ArrowSouthEast: return images.createImage(`
|
||||
# . . . .
|
||||
. # . . .
|
||||
. . # . #
|
||||
. . . # #
|
||||
. . # # #`);
|
||||
case IconNames.ArrowSouth: return images.createImage(`
|
||||
. . # . .
|
||||
. . # . .
|
||||
# . # . #
|
||||
. # # # .
|
||||
. . # . .`);
|
||||
case IconNames.ArrowSouthWest: return images.createImage(`
|
||||
. . . . #
|
||||
. . . # .
|
||||
# . # . .
|
||||
# # . . .
|
||||
# # # . .`);
|
||||
case IconNames.ArrowWest: return images.createImage(`
|
||||
. . # . .
|
||||
. # . . .
|
||||
# # # # #
|
||||
. # . . .
|
||||
. . # . .`);
|
||||
case IconNames.ArrowNorthWest: return images.createImage(`
|
||||
# # # . .
|
||||
# # . . .
|
||||
# . # . .
|
||||
. . . # .
|
||||
. . . . #`);
|
||||
default: return images.createImage(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -542,6 +617,7 @@ namespace images {
|
||||
//% help=images/arrow-number
|
||||
//% blockId=device_arrow block="%arrow"
|
||||
//% shim=TD_ID
|
||||
//% deprecated=true
|
||||
export function arrowNumber(arrow: ArrowNames): number {
|
||||
return arrow;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 699 B |
Before Width: | Height: | Size: 1014 B |
Before Width: | Height: | Size: 919 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 808 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.1 KiB |
BIN
libs/core/jres/icons/arroweast-icon.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
libs/core/jres/icons/arrownorth-icon.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
libs/core/jres/icons/arrownortheast-icon.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
libs/core/jres/icons/arrownorthwest-icon.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
libs/core/jres/icons/arrowsouth-icon..png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
libs/core/jres/icons/arrowsoutheast-icon.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
libs/core/jres/icons/arrowsouthwest-icon.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
libs/core/jres/icons/arrowwest-icon.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
@ -482,6 +482,7 @@ namespace music {
|
||||
//% help=music/set-volume
|
||||
//% weight=70
|
||||
//% group="Volume"
|
||||
//% deprecated=true
|
||||
export function setVolume(volume: number): void {
|
||||
pins.analogSetPitchVolume(volume);
|
||||
}
|
||||
@ -494,6 +495,7 @@ namespace music {
|
||||
//% help=music/volume
|
||||
//% weight=69
|
||||
//% group="Volume"
|
||||
//% deprecated=true
|
||||
export function volume(): number {
|
||||
return pins.analogPitchVolume();
|
||||
}
|
||||
|
@ -16,8 +16,7 @@ enum class DigitalPin {
|
||||
C12 = MICROBIT_ID_IO_P6, // LED matrix C9
|
||||
C16 = MICROBIT_ID_IO_P2, // RX
|
||||
C17 = MICROBIT_ID_IO_P8, // TX
|
||||
C18 = MICROBIT_ID_IO_P20, // SDA
|
||||
C19 = MICROBIT_ID_IO_P19 // SCL
|
||||
C18 = MICROBIT_ID_IO_P20 // SDA
|
||||
};
|
||||
|
||||
enum class AnalogPin {
|
||||
|
@ -212,16 +212,11 @@ namespace pins {
|
||||
*/
|
||||
//% fixedInstance whenUsed
|
||||
export const C17: AnalogInPin = new MicrobitPin(DigitalPin.C17);
|
||||
|
||||
|
||||
/**
|
||||
* Pin C18
|
||||
*/
|
||||
//% fixedInstance whenUsed
|
||||
export const C18: DigitalInOutPin = new MicrobitPin(DigitalPin.C18);
|
||||
|
||||
/**
|
||||
* Pin C19
|
||||
*/
|
||||
//% fixedInstance whenUsed
|
||||
export const C19: DigitalInOutPin = new MicrobitPin(DigitalPin.C19);
|
||||
|
||||
}
|
@ -56,6 +56,7 @@
|
||||
"templates.ts",
|
||||
"sendbuffer.s",
|
||||
"light.cpp",
|
||||
"compass.ts",
|
||||
"parts/speaker.svg",
|
||||
"parts/headphone.svg",
|
||||
"parts/dcmotor.svg",
|
||||
|
8
libs/core/shims.d.ts
vendored
@ -662,7 +662,7 @@ declare namespace pins {
|
||||
|
||||
/**
|
||||
* Read the connector value as analog, that is, as a value comprised between 0 and 1023.
|
||||
* @param name pin to write to, eg: AnalogPin.P0
|
||||
* @param name pin to write to, eg: AnalogPin.P1
|
||||
*/
|
||||
//% help=pins/analog-read-pin weight=25
|
||||
//% blockId=device_get_analog_pin block="analog read|pin %name" blockGap="8"
|
||||
@ -672,7 +672,7 @@ declare namespace pins {
|
||||
|
||||
/**
|
||||
* Set the connector value as analog. Value must be comprised between 0 and 1023.
|
||||
* @param name pin name to write to, eg: AnalogPin.P0
|
||||
* @param name pin name to write to, eg: AnalogPin.P1
|
||||
* @param value value to write to the pin between ``0`` and ``1023``. eg:1023,0
|
||||
*/
|
||||
//% help=pins/analog-write-pin weight=24
|
||||
@ -685,7 +685,7 @@ declare namespace pins {
|
||||
/**
|
||||
* Configure the pulse-width modulation (PWM) period of the analog output in microseconds.
|
||||
* If this pin is not configured as an analog output (using `analog write pin`), the operation has no effect.
|
||||
* @param name analog pin to set period to, eg: AnalogPin.P0
|
||||
* @param name analog pin to set period to, eg: AnalogPin.P1
|
||||
* @param micros period in micro seconds. eg:20000
|
||||
*/
|
||||
//% help=pins/analog-set-period weight=23 blockGap=8
|
||||
@ -728,7 +728,7 @@ declare namespace pins {
|
||||
|
||||
/**
|
||||
* Write a value to the servo, controlling the shaft accordingly. On a standard servo, this will set the angle of the shaft (in degrees), moving the shaft to that orientation. On a continuous rotation servo, this will set the speed of the servo (with ``0`` being full-speed in one direction, ``180`` being full speed in the other, and a value near ``90`` being no movement).
|
||||
* @param name pin to write to, eg: AnalogPin.P0
|
||||
* @param name pin to write to, eg: AnalogPin.P1
|
||||
* @param value angle or rotation speed, eg:180,90,0
|
||||
*/
|
||||
//% help=pins/servo-write-pin weight=20
|
||||
|
@ -1,3 +1,4 @@
|
||||
{
|
||||
"additionalFilePath": "../../node_modules/pxt-common-packages/libs/radio-broadcast"
|
||||
"additionalFilePath": "../../node_modules/pxt-common-packages/libs/radio-broadcast",
|
||||
"icon": "./static/packages/radio-broadcast/icon.png"
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
"additionalFilePath": "../../node_modules/pxt-common-packages/libs/radio",
|
||||
"icon": "./static/packages/radio/icon.png",
|
||||
"yotta": {
|
||||
"config": {
|
||||
"microbit-dal": {
|
||||
|
@ -6,6 +6,7 @@
|
||||
"ns.ts",
|
||||
"targetoverrides.ts"
|
||||
],
|
||||
"icon": "./static/packages/servo/icon.png",
|
||||
"public": true,
|
||||
"dependencies": {
|
||||
"core": "file:../core"
|
||||
|
8
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pxt-calliope",
|
||||
"version": "3.0.26",
|
||||
"version": "3.0.33",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@ -4322,9 +4322,9 @@
|
||||
}
|
||||
},
|
||||
"pxt-core": {
|
||||
"version": "6.0.20",
|
||||
"resolved": "https://registry.npmjs.org/pxt-core/-/pxt-core-6.0.20.tgz",
|
||||
"integrity": "sha512-dugQC1/10P72exsR3Ed3vGuK8rLkP3+NjrWE+NrLqSH9064Fl20d1fGe8yHGjlbPYyKACDjJeX3fZy1Y12GzEA==",
|
||||
"version": "6.0.23",
|
||||
"resolved": "https://registry.npmjs.org/pxt-core/-/pxt-core-6.0.23.tgz",
|
||||
"integrity": "sha512-3RYVuojjcN3AkFxivFnjRkghknXGbfVGYwkzdx6UGLlr4c+AtZqKJf9SNV0eJBDpQEukpe4DXEct7ADWHtXwoA==",
|
||||
"requires": {
|
||||
"applicationinsights-js": "^1.0.20",
|
||||
"bluebird": "3.5.1",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pxt-calliope",
|
||||
"version": "3.0.26",
|
||||
"name": "pxt-calliopemini",
|
||||
"version": "3.0.33",
|
||||
"description": "micro:bit target for Microsoft MakeCode (PXT)",
|
||||
"keywords": [
|
||||
"JavaScript",
|
||||
|
@ -21,9 +21,6 @@
|
||||
"thumbnails": true,
|
||||
"publishing": true,
|
||||
"importing": true,
|
||||
"preferredPackages": [
|
||||
"Microsoft/pxt-neopixel"
|
||||
],
|
||||
"githubPackages": true,
|
||||
"cloudProviders": {
|
||||
"github": {}
|
||||
@ -113,14 +110,14 @@
|
||||
"pid": "0x1025"
|
||||
}
|
||||
],
|
||||
"webUSB": true,
|
||||
"webUSB": false,
|
||||
"useNewFunctions": true
|
||||
},
|
||||
"compileService": {
|
||||
"yottaTarget": "calliope-mini-classic-gcc",
|
||||
"yottaCorePackage": "microbit",
|
||||
"githubCorePackage": "Amerlander/microbit",
|
||||
"gittag": "v2.2.0-rc6.03",
|
||||
"githubCorePackage": "calliope-mini/microbit",
|
||||
"gittag": "v2.2.0-rc6-calliope.rc3",
|
||||
"serviceId": "calliope",
|
||||
"dockerImage": "pext/yotta:latest"
|
||||
},
|
||||
@ -159,7 +156,7 @@
|
||||
"autoRun": true,
|
||||
"streams": false,
|
||||
"aspectRatio": 1.13,
|
||||
"parts": true,
|
||||
"parts": false,
|
||||
"partsAspectRatio": 0.69,
|
||||
"boardDefinition": {
|
||||
"visual": "calliope",
|
||||
@ -313,7 +310,6 @@
|
||||
"boardName": "Calliope mini",
|
||||
"driveDisplayName": "MINI",
|
||||
"appStoreID": "1309545545",
|
||||
"mobileSafariDownloadProtocol": "microbithex://?data",
|
||||
"crowdinProject": "kindscript",
|
||||
"extendEditor": true,
|
||||
"extendFieldEditors": true,
|
||||
@ -335,19 +331,23 @@
|
||||
"docMenu": [
|
||||
{
|
||||
"name": "Support",
|
||||
"path": "https://calliope.cc/faq"
|
||||
"path": "https://calliope.cc/en/impressum"
|
||||
},
|
||||
{
|
||||
"name": "Reference",
|
||||
"path": "/reference"
|
||||
"path": "/about"
|
||||
},
|
||||
{
|
||||
"name": "Hardware",
|
||||
"path": "/device"
|
||||
"path": "https://calliope.cc/en/calliope-mini/tech-facts/"
|
||||
},
|
||||
{
|
||||
"name": "Buy",
|
||||
"path": "https://shop.calliope.cc/"
|
||||
},
|
||||
{
|
||||
"name": "Forum",
|
||||
"path": "https://forum.calliope.cc/"
|
||||
}
|
||||
],
|
||||
"hasReferenceDocs": false,
|
||||
@ -357,10 +357,10 @@
|
||||
"monacoToolbox": true,
|
||||
"hasAudio": true,
|
||||
"socialOptions": {
|
||||
"orgTwitterHandle": "MSMakeCode",
|
||||
"hashtags": "MakeCode",
|
||||
"discourse": "https://forum.makecode.com/",
|
||||
"discourseCategory": "micro:bit"
|
||||
"orgTwitterHandle": "calliopemini",
|
||||
"hashtags": "calliopemini",
|
||||
"discourse": "https://forum.calliope.cc/",
|
||||
"discourseCategory": "Probleme-Software"
|
||||
},
|
||||
"blocklyOptions": {
|
||||
"grid": {
|
||||
|
@ -46,13 +46,10 @@
|
||||
"KitronikLtd/pxt-kitronik-stopbit",
|
||||
"KitronikLtd/pxt-kitronik-lampbit",
|
||||
"KitronikLtd/pxt-kitronik-klimate",
|
||||
"KitronikLtd/pxt-kitronik-zip-64",
|
||||
"KitronikLtd/pxt-kitronik-rtc",
|
||||
"KitronikLtd/pxt-kitronik-game-controller",
|
||||
"KitronikLtd/pxt-kitronik-robotics-board",
|
||||
"KitronikLtd/pxt-kitronik-klef-piano",
|
||||
"Seeed-Studio/pxt-grove",
|
||||
"Seeed-Studio/pxt-grove-zero-for-microbit",
|
||||
"Tinkertanker/pxt-ir-receiver",
|
||||
"Tinkertanker/pxt-iot-environment-kit",
|
||||
"Tinkertanker/pxt-motorbit",
|
||||
@ -73,46 +70,16 @@
|
||||
"CoderDojoOlney/pxt-olney",
|
||||
"PaulDFoster/pxt-microbit-GY521",
|
||||
"chevyng/pxt-ucl-junkrobot",
|
||||
"srs/pxt-bitbot",
|
||||
"sparkfun/pxt-gamer-bit",
|
||||
"sparkfun/pxt-moto-bit",
|
||||
"sparkfun/pxt-weather-bit",
|
||||
"sparkfun/pxt-gator-environment",
|
||||
"minodekit/pxt-minode",
|
||||
"LaboratoryForPlayfulComputation/pxt-BlockyTalkyBLE",
|
||||
"mbitfun/pxt-katakana",
|
||||
"jdarling/pxt-pca9685",
|
||||
"MUSELAB/pxt-wifi-shield",
|
||||
"kittenbot/pxt-robotbit",
|
||||
"pizayanz/pxt-linebeacon",
|
||||
"sunfounder/pxt-sloth",
|
||||
"4tronix/BitBot",
|
||||
"pimoroni/pxt-scrollbit",
|
||||
"emwta/pxt-iBit",
|
||||
"vengit/pxt-sbrick",
|
||||
"pimoroni/pxt-envirobit",
|
||||
"Annikken/pxt-Andee",
|
||||
"1010Technologies/pxt-makerbit",
|
||||
"1010Technologies/pxt-makerbit-motor",
|
||||
"1010Technologies/pxt-makerbit-mp3",
|
||||
"1010Technologies/pxt-makerbit-ultrasonic",
|
||||
"1010Technologies/pxt-makerbit-lcd1602",
|
||||
"1010Technologies/pxt-makerbit-ir-receiver",
|
||||
"1010Technologies/pxt-makerbit-touch",
|
||||
"1010Technologies/pxt-makerbit-pins",
|
||||
"pimoroni/pxt-automationbit",
|
||||
"k8robotics/pxt-k8",
|
||||
"dexterind/pxt-giggle",
|
||||
"dexterind/pxt-gigglebot",
|
||||
"Imagimaker/pxt-imagimaker",
|
||||
"sparkfun/pxt-gator-light",
|
||||
"sparkfun/pxt-gator-temp",
|
||||
"4tronix/Robobit",
|
||||
"alsrobot-microbit-makecode-packages/ALSRobotJoyBit",
|
||||
"alsrobot-microbit-makecode-packages/ALSRobotKeyboard",
|
||||
"alsrobot-microbit-makecode-packages/ALSRobotElectromagnet",
|
||||
"alsrobot-microbit-makecode-packages/CooCoo",
|
||||
"alsrobot-microbit-makecode-packages/CruiseBit",
|
||||
"makecode-extensions/i2cLCD1602",
|
||||
"makecode-extensions/OLED12864_I2C",
|
||||
"makecode-extensions/DS1307",
|
||||
@ -128,47 +95,21 @@
|
||||
"makecode-extensions/TM1650",
|
||||
"makecode-extensions/NTC",
|
||||
"makecode-extensions/DS1302",
|
||||
"BirdBrainTechnologies/pxt-hummingbird-bit",
|
||||
"PiSupply/pxt-iot-lora-node",
|
||||
"PiSupply/pxt-tinker-kit",
|
||||
"PiSupply/pxt-bitbuggy",
|
||||
"PiSupply/pxt-oled-ssd1306",
|
||||
"pimoroni/pxt-touchbit",
|
||||
"4tronix/cubebit",
|
||||
"4tronix/BitCommander",
|
||||
"alankrantas/pxt-MAX7219_8x8",
|
||||
"ReRoKit/pxt-reromicro",
|
||||
"51bit/ColorBit",
|
||||
"51bit/SFC",
|
||||
"51bit/SmartTools",
|
||||
"alankrantas/pxt-MAX7219_8x8",
|
||||
"KitronikLtd/pxt-kitronik-zip-tile",
|
||||
"lwchkg/pxt-proportional-font",
|
||||
"jcubuntu/pxt-iKB1",
|
||||
"KitronikLtd/pxt-kitronik-accessbit",
|
||||
"kaku111/pxt-tobbieII",
|
||||
"alankrantas/pxt-DHT11_DHT22",
|
||||
"cgs-matthew-pham/pxt-hitechnic-irseeker-v2",
|
||||
"Freenove/Makecode-Extension-Rover",
|
||||
"letstalkscience/pxt-cozir",
|
||||
"e-radionicacom/pxt-wifi",
|
||||
"monkmakes/pxt-sensor",
|
||||
"beyond-coding-tw/pxt-nexusbot",
|
||||
"elecfreaks/pxt-cutebot",
|
||||
"KitronikLtd/pxt-kitronik-fischertechnik",
|
||||
"keigan-motor/pxt-KeiganMotor",
|
||||
"KitronikLtd/pxt-kitronik-klip-motor",
|
||||
"alankrantas/pxt-ESP8266_ThingSpeak",
|
||||
"KitronikLtd/pxt-kitronik-viewtext32",
|
||||
"plenprojectcompany/pxt-PLENbit",
|
||||
"4tronix/MiniBit",
|
||||
"elecfreaks/pxt-wukong",
|
||||
"sparkfun/pxt-gator-particle",
|
||||
"sparkfun/pxt-gator-soil",
|
||||
"sparkfun/pxt-gator-microphone",
|
||||
"rebeccaclavier/pxt-bmp280",
|
||||
"xinabox/pxt-SW01",
|
||||
"xinabox/pxt-OD01",
|
||||
"51bit/dfplayermini",
|
||||
"makecode-extensions/STTS751",
|
||||
"makecode-extensions/LSM6DSO",
|
||||
@ -177,37 +118,39 @@
|
||||
"makecode-extensions/LIS2MDL",
|
||||
"makecode-extensions/HTS221",
|
||||
"assirati/pxt-inventura",
|
||||
"Veilkrand/pxt-RobotCar",
|
||||
"4tronix/DriveBit",
|
||||
"Freenove/Makecode-Extension-Starter-Kit",
|
||||
"sphero-inc/sphero-sdk-microbit-makecode",
|
||||
"BrightWearables/pxt-microbit-brightboard",
|
||||
"EBOTICS/pxt-eboticsMIBO",
|
||||
"KitronikLtd/pxt-kitronik-halohd",
|
||||
"dugbraden/pxt-climate-action-kit",
|
||||
"alsrobot-microbit-makecode-packages/MiniCruise",
|
||||
"4tronix/ServoBit",
|
||||
"DFRobot/pxt-maqueen",
|
||||
"DFRobot/pxt-DFRobot-microIoT",
|
||||
"mu-opensource/pxt-muvision",
|
||||
"KitronikLtd/pxt-kitronik-clip-detector",
|
||||
"DFRobot/pxt-DFRobot-NaturalScience",
|
||||
"strawbees/pxt-robotic-inventions",
|
||||
"daferdur/pxt-myHX711",
|
||||
"CytronTechnologies/pxt-edubit",
|
||||
"MakeAndLearn/pxt-microshield",
|
||||
"elecfreaks/pxt-TPBot"
|
||||
],
|
||||
"preferredRepos": [
|
||||
"Microsoft/pxt-neopixel",
|
||||
"calliope-edu/pxt-grove",
|
||||
"tinysuperlab/motionkit",
|
||||
"tinysuperlab/touchkit",
|
||||
"MKleinSB/pxt-seeed-temperature",
|
||||
"MKleinSB/pxt-dht11",
|
||||
"MKleinSB/pxt-esp-thingspeak",
|
||||
"MKleinSB/pxt-OLED-SSD1306",
|
||||
"MKleinSB/pxt-pca9685",
|
||||
"MKleinSB/pxt-mpr121",
|
||||
"MKleinSB/pxt-gatorlog-calliope",
|
||||
"MKleinSB/pxt-callibot",
|
||||
"dl1ekm/pxt-calliope-ADS1x15",
|
||||
"dl1ekm/pxt-calliope-PCF85063-RTC"
|
||||
],
|
||||
"preferredRepos": [
|
||||
"tinysuperlab/motionkit",
|
||||
"tinysuperlab/touchkit",
|
||||
"calliope-edu/pxt-grove",
|
||||
"Microsoft/pxt-microturtle",
|
||||
"MKleinSB/pxt-OLED-SSD1306",
|
||||
"MKleinSB/pxt-iot-lora-node",
|
||||
"kittenbot/pxt-robotbit",
|
||||
"MKleinSB/pxt-foldio"
|
||||
"MKleinSB/pxt-foldio",
|
||||
"MKleinSB/pxt-seeed-temperature",
|
||||
"MKleinSB/pxt-dht11",
|
||||
"MKleinSB/pxt-esp-thingspeak",
|
||||
"Microsoft/pxt-neopixel",
|
||||
"MKleinSB/pxt-pca9685",
|
||||
"MKleinSB/pxt-mpr121",
|
||||
"MKleinSB/pxt-gatorlog-calliope",
|
||||
"MKleinSB/pxt-callibot",
|
||||
"dl1ekm/pxt-calliope-ADS1x15",
|
||||
"dl1ekm/pxt-calliope-PCF85063-RTC"
|
||||
]
|
||||
},
|
||||
"galleries": {
|
||||
|
@ -69,6 +69,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
.ui.searchdialog .ui.card .ui.cardimage.upload {
|
||||
margin: auto;
|
||||
padding: 25% 0;
|
||||
}
|
||||
|
||||
/* Mobile */
|
||||
@media only screen and (max-width: @largestMobileScreen) {
|
||||
#filelist {
|
||||
|