Compare commits
59 Commits
Author | SHA1 | Date | |
---|---|---|---|
9607183587 | |||
4cca961e52 | |||
c2a1668d55 | |||
7102eddc0b | |||
b34884fe00 | |||
e768a4dc97 | |||
8b1b1bb869 | |||
57deb1749f | |||
fb82b94f69 | |||
d321170da9 | |||
dff4f3adb3 | |||
5d8a1b69f6 | |||
0b0c2c9466 | |||
9319f10430 | |||
c4787e1028 | |||
cb280af783 | |||
4201cb3070 | |||
ec7bade8f4 | |||
d738d8bbf5 | |||
a8b1e0bc04 | |||
114b7958bc | |||
f45ae5950c | |||
4cdfaf06c0 | |||
d48404eb37 | |||
f4ac599ec2 | |||
a783cdda92 | |||
5900c8c9f5 | |||
3911c6522d | |||
00cdb6f9f5 | |||
df14445320 | |||
553b692a9a | |||
7f2fd0dd09 | |||
ae6917c7b3 | |||
5c1d9a342b | |||
d41724d239 | |||
d6a006d18f | |||
cace68acf4 | |||
68ef7c2fc2 | |||
4c502f0825 | |||
a2f1cef9ae | |||
e857a94e04 | |||
42a93a1682 | |||
e983c76e2f | |||
ced4565d5c | |||
2475058b94 | |||
c6ee0db81c | |||
1b96e6332a | |||
1ceec1d3b4 | |||
2e9ddb48df | |||
2296220ad7 | |||
22864bd26a | |||
574a9e01d5 | |||
00278036a4 | |||
4b583e221b | |||
c88645d0cd | |||
14e8eabd25 | |||
5fab789763 | |||
33eca3c507 | |||
9ccfcf19d9 |
@ -3,17 +3,12 @@ node_js:
|
||||
- "5.7.0"
|
||||
script:
|
||||
- "node node_modules/pxt-core/built/pxt.js travis"
|
||||
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js run)"
|
||||
- "(cd libs/lang-test1; node ../../node_modules/pxt-core/built/pxt.js run)"
|
||||
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js test)"
|
||||
- "(cd libs/lang-test1; node ../../node_modules/pxt-core/built/pxt.js test)"
|
||||
- "node node_modules/pxt-core/built/pxt.js testdir tests"
|
||||
- "node node_modules/pxt-core/built/pxt.js uploaddoc"
|
||||
- "(cd libs/hello; node ../../node_modules/pxt-core/built/pxt.js testconv https://az851932.vo.msecnd.net/files/td-converter-tests-v1.json)"
|
||||
sudo: false
|
||||
notifications:
|
||||
email:
|
||||
- touchdevelop-build@microsoft.com
|
||||
- kindscript@microsoft.com
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
|
23
README.md
@ -1,11 +1,11 @@
|
||||
# micro:bit target for PXT
|
||||
# Calliope target for PXT
|
||||
|
||||
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
|
||||
This target allow to program a [Calliope](http://calliope.cc/) using
|
||||
PXT ([Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt)).
|
||||
|
||||
* [Try it live](https://codethemicrobit.com)
|
||||
[](https://travis-ci.org/Microsoft/pxt-calliope)
|
||||
|
||||
[](https://travis-ci.org/Microsoft/pxt-microbit)
|
||||

|
||||
|
||||
## Local server
|
||||
|
||||
@ -18,8 +18,8 @@ The following commands are a 1-time setup after synching the repo on your machin
|
||||
* if not yet installed, install [Node.js 4.4.5 or higher](https://nodejs.org/en/download/)
|
||||
* [clone this repo](https://help.github.com/articles/cloning-a-repository/) to your computer and go in the project folder
|
||||
```
|
||||
git clone https://github.com/microsoft/pxt-microbit
|
||||
cd pxt-microbit
|
||||
git clone https://github.com/microsoft/pxt-calliope
|
||||
cd pxt-calliope
|
||||
```
|
||||
* install the PXT command line (add ``sudo`` for Mac/Linux shells).
|
||||
```
|
||||
@ -32,14 +32,15 @@ npm install
|
||||
|
||||
### Running
|
||||
|
||||
Run this command to open a local web server (add ``sudo`` for Mac/Linux shells)
|
||||
Run this command to open a local web server (add ``sudo`` for Mac/Linux shells).
|
||||
```
|
||||
pxt serve
|
||||
```
|
||||
If the local server opens in the wrong browser, make sure to copy the URL containing the local token.
|
||||
Otherwise, the editor will not be able to load the projects.
|
||||
|
||||
If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt`` flag (add ``sudo`` for Mac/Linux shells):
|
||||
If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt`` flag (add ``sudo`` for Mac/Linux shells). On Windows, you must be running
|
||||
from the ``Run Yotta`` command prompt.
|
||||
```
|
||||
pxt serve -yt
|
||||
```
|
||||
@ -53,11 +54,6 @@ pxt update
|
||||
|
||||
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
|
||||
|
||||
### Building
|
||||
|
||||
* Install Visual Studio 2015 Update 2 or higher. Make sure the Windows 10 templates are installed.
|
||||
* open the ``win10/app.sln`` solution and launch the ``codethemicrobit`` project.
|
||||
|
||||
## Testing
|
||||
|
||||
The build automatically runs the following:
|
||||
@ -66,7 +62,6 @@ The build automatically runs the following:
|
||||
* `pxt run` in `libs/lang-test*` - this will run the test in command line runner;
|
||||
there is a number of asserts in both of these
|
||||
* `pxt testdir` in `tests` - this makes sure all the files compile and generates .hex files
|
||||
* run the TD->TS converter on a number of test scripts from `microbit.co.uk` and make sure the results compile
|
||||
|
||||
To test something on the device:
|
||||
|
||||
|
145
docs/static/Logo_Calliope_Woman.svg
vendored
Normal file
@ -0,0 +1,145 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Ebene_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 175.49999 172.4"
|
||||
enable-background="new 0 0 841.9 595.3"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="Logo_Calliope_Woman.svg"
|
||||
width="175.5"
|
||||
height="172.39999"><metadata
|
||||
id="metadata5011"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs5009" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
id="namedview5007"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.34208337"
|
||||
inkscape:cx="420.95001"
|
||||
inkscape:cy="297.64999"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="156"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Ebene_1" /><g
|
||||
id="g4955"
|
||||
transform="translate(-260.90025,-204.1)"><g
|
||||
id="g4957"><defs
|
||||
id="defs4959"><rect
|
||||
id="SVGID_7_"
|
||||
x="193.10001"
|
||||
y="204.10001"
|
||||
width="318.29999"
|
||||
height="256.29999" /></defs><clipPath
|
||||
id="SVGID_1_"><use
|
||||
xlink:href="#SVGID_7_"
|
||||
overflow="visible"
|
||||
id="use4963"
|
||||
style="overflow:visible"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" /></clipPath></g><g
|
||||
id="g4965"><defs
|
||||
id="defs4967"><rect
|
||||
id="SVGID_9_"
|
||||
x="193.10001"
|
||||
y="204.10001"
|
||||
width="318.29999"
|
||||
height="256.29999" /></defs><clipPath
|
||||
id="SVGID_2_"><use
|
||||
xlink:href="#SVGID_9_"
|
||||
overflow="visible"
|
||||
id="use4971"
|
||||
style="overflow:visible"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" /></clipPath></g><g
|
||||
id="g4973"><defs
|
||||
id="defs4975"><rect
|
||||
id="SVGID_11_"
|
||||
x="193.10001"
|
||||
y="204.10001"
|
||||
width="318.29999"
|
||||
height="256.29999" /></defs><clipPath
|
||||
id="SVGID_3_"><use
|
||||
xlink:href="#SVGID_11_"
|
||||
overflow="visible"
|
||||
id="use4979"
|
||||
style="overflow:visible"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" /></clipPath><path
|
||||
clip-path="url(#SVGID_3_)"
|
||||
d="m 436.4,262 -47.9,0 0,-46 c 0,-4.7 3.8,-8.4 8.4,-8.4 l 31,0 c 4.7,0 8.4,3.8 8.4,8.4 l 0,46 z"
|
||||
id="path4981"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#4a5261" /></g><rect
|
||||
x="394.79999"
|
||||
y="218.7"
|
||||
width="35.099998"
|
||||
height="43.200001"
|
||||
id="rect4983"
|
||||
style="fill:#8096a1" /><path
|
||||
d="m 317.6,239.5 0,61 71,0.2 c 0,0 0,-57.3 0,-61 0,-19.5 -16.1,-35.6 -35.6,-35.6 -19.6,0 -35.4,15.8 -35.4,35.4"
|
||||
id="path4985"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#855c33" /><path
|
||||
d="m 412.4,376.5 -114.2,0 c -35.6,0 -50.9,-45.2 -22.6,-66.8 l 63.8,-47.8 96.9,0 0,90.7 c 0.1,13.2 -10.6,23.9 -23.9,23.9"
|
||||
id="path4987"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#26a6ab" /><polygon
|
||||
points="345.7,257.3 334.8,298.8 285.1,302.5 "
|
||||
id="polygon4989"
|
||||
style="fill:#42c9c9" /><polygon
|
||||
points="354,283.8 332.5,283.8 345.7,257.3 "
|
||||
id="polygon4991"
|
||||
style="fill:#f7f5e8" /><polygon
|
||||
points="375.4,283.8 354,283.8 362.2,257.3 "
|
||||
id="polygon4993"
|
||||
style="fill:#f7f5e8" /><polygon
|
||||
points="373.1,298.8 334.8,298.8 332.5,283.8 375.4,283.8 "
|
||||
id="polygon4995"
|
||||
style="fill:#bdd1cf" /><path
|
||||
d="m 400.6,376.5 c -3.5,-26.2 -10.6,-58 -27.3,-77.7 l -0.2,0 -19,0 -19,0 -0.2,0 c -16.7,19.8 -23.8,51.5 -27.3,77.7 l 93,0 z"
|
||||
id="path4997"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#f7f5e8" /><path
|
||||
d="m 357,258 -6.1,0 c -6.4,0 -11.5,-5.2 -11.5,-11.5 l 0,-19.7 29.2,0 0,19.7 c -0.1,6.3 -5.3,11.5 -11.6,11.5"
|
||||
id="path4999"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffcc99" /><path
|
||||
d="m 335.8,376.5 0,-77.7 c 12.4,29.1 27.7,64.3 46.5,77.7 l -46.5,0 z"
|
||||
id="path5001"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#bdd1cf" /><polygon
|
||||
points="362.2,257.3 345.7,257.3 354,283.8 "
|
||||
id="polygon5003"
|
||||
style="fill:#ffcc99" /><polygon
|
||||
points="436.4,315.3 394.8,262 436.4,262 "
|
||||
id="polygon5005"
|
||||
style="fill:#42c9c9" /></g></svg>
|
After Width: | Height: | Size: 5.2 KiB |
70
docs/static/Logo_Calliope_lang.svg
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 841.9 595.3" enable-background="new 0 0 841.9 595.3" xml:space="preserve">
|
||||
<path fill="#4A5261" d="M406.9,292.9l0.2,0l5.6,17l-11.1,0.1L406.9,292.9z M402,281.8l-14.3,42.2l-3.5,0.5l0.1,5.8l16.5-0.1
|
||||
l-0.1-5.8l-3.4-0.6l2.1-6.7l15.7-0.1l2.2,6.6l-3.3,0.6l0,5.8l16.5-0.2l0-5.8l-3.5-0.5l-15-41.9L402,281.8z"/>
|
||||
<polygon fill="#4A5261" points="454.9,281.9 445.2,282 440,282 440.1,287.9 445.2,288.8 445.6,323.5 440.4,324.6 440.5,330.4
|
||||
476.9,330.1 476.7,316.5 469.3,316.6 468.9,322.7 455.3,322.8 454.9,288.7 460.1,287.7 460.1,281.8 "/>
|
||||
<polygon fill="#4A5261" points="501.6,281.9 491.9,282 486.7,282 486.8,287.9 491.9,288.8 492.2,323.5 487.1,324.6 487.2,330.4
|
||||
523.6,330.1 523.4,316.5 516,316.6 515.6,322.7 501.9,322.8 501.6,288.7 506.8,287.7 506.8,281.8 "/>
|
||||
<polygon fill="#4A5261" points="533.4,282 533.4,287.9 538.6,288.8 538.9,323.5 533.8,324.6 533.8,330.4 553.9,330.2 553.8,324.4
|
||||
548.6,323.5 548.3,288.7 553.5,287.7 553.4,281.8 "/>
|
||||
<polygon fill="#4A5261" points="674.9,282 669.7,282 669.8,287.9 674.9,288.8 675.2,323.5 670.1,324.6 670.2,330.4 708.4,330.1
|
||||
708.3,316.8 700.9,316.9 700.6,322.7 684.9,322.8 684.8,309 701.2,308.8 701.1,301.4 684.7,301.5 684.6,289.4 700.1,289.2
|
||||
700.6,295 708.1,294.9 707.9,281.7 "/>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<rect id="SVGID_7_" x="133.2" y="204.1" width="234.3" height="188.7"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_1_">
|
||||
<use xlink:href="#SVGID_7_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<g>
|
||||
<defs>
|
||||
<rect id="SVGID_9_" x="133.2" y="204.1" width="234.3" height="188.7"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_2_">
|
||||
<use xlink:href="#SVGID_9_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<g>
|
||||
<defs>
|
||||
<rect id="SVGID_11_" x="133.2" y="204.1" width="234.3" height="188.7"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_3_">
|
||||
<use xlink:href="#SVGID_11_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<path clip-path="url(#SVGID_3_)" fill="#4A5261" d="M312.3,246.7H277v-33.8c0-3.4,2.8-6.2,6.2-6.2h22.9c3.4,0,6.2,2.8,6.2,6.2
|
||||
V246.7z"/>
|
||||
</g>
|
||||
<rect x="281.8" y="214.8" fill="#8096A1" width="25.8" height="31.8"/>
|
||||
<path fill="#855C33" d="M224.9,230.1V275l52.3,0.2c0,0,0-42.2,0-44.9c0-14.4-11.8-26.2-26.2-26.2
|
||||
C236.6,204.1,224.9,215.7,224.9,230.1"/>
|
||||
<path fill="#26A6AB" d="M294.7,331h-84.1c-26.2,0-37.4-33.3-16.6-49.2l47-35.2h71.3v66.8C312.3,323.2,304.4,331,294.7,331"/>
|
||||
<polygon fill="#42C9C9" points="237.6,273.8 201,276.6 245.6,243.3 "/>
|
||||
<polygon fill="#F7F5E8" points="235.9,262.7 245.6,243.3 251.7,262.7 "/>
|
||||
<polygon fill="#F7F5E8" points="251.7,262.7 257.7,243.3 267.4,262.7 "/>
|
||||
<polygon fill="#BDD1CF" points="265.7,273.8 237.6,273.8 235.9,262.7 267.4,262.7 "/>
|
||||
<path fill="#F7F5E8" d="M286,331c-2.6-19.3-7.8-42.7-20.1-57.2h-0.1h-14h-14h-0.1c-12.3,14.5-17.6,37.9-20.1,57.2H286z"/>
|
||||
<path fill="#FFCC99" d="M253.9,243.8h-4.5c-4.7,0-8.5-3.8-8.5-8.5v-14.5h21.5v14.5C262.4,240,258.6,243.8,253.9,243.8"/>
|
||||
<path fill="#BDD1CF" d="M238.3,331v-57.2c9.1,21.4,20.4,47.3,34.2,57.2H238.3z"/>
|
||||
<polygon fill="#FFCC99" points="245.6,243.3 251.7,262.7 257.7,243.3 "/>
|
||||
<polygon fill="#42C9C9" points="281.8,246.7 312.3,246.7 312.3,285.9 "/>
|
||||
</g>
|
||||
<path fill="#4A5261" d="M373.2,297.5l-7.2,0.1l-1.1-6.4c-1-0.9-2.2-1.7-3.6-2.2c-1.5-0.5-3.2-0.8-5.1-0.8c-4.2,0-7.4,1.6-9.7,4.7
|
||||
c-2.2,3.1-3.3,7.1-3.3,12l0,1.7c0,4.9,1.2,8.9,3.5,12c2.3,3.1,5.5,4.6,9.6,4.5c1.9,0,3.7-0.3,5.2-0.9c1.6-0.6,2.8-1.3,3.7-2.3
|
||||
l0.9-6.5l7.2-0.1l0.1,9.6c-1.9,2.3-4.4,4.1-7.4,5.5c-3,1.4-6.4,2.1-10.1,2.1c-6.5,0.1-11.8-2.1-16-6.6c-4.2-4.5-6.3-10.2-6.4-17.3
|
||||
l0-1.6c-0.1-7,1.9-12.8,6-17.4c4.1-4.6,9.4-6.9,15.9-6.9c3.7,0,7.1,0.6,10.2,2c3,1.3,5.5,3.1,7.5,5.3L373.2,297.5z"/>
|
||||
<path fill="#4A5261" d="M598.7,305c0-5-1.1-9.1-3.2-12.2c-2.1-3.1-5.2-4.6-9.3-4.6c-4.1,0-7.1,1.6-9.1,4.7c-2,3.1-2.9,7.2-2.9,12.3
|
||||
l0,0.8c0,5.1,1.1,9.2,3.2,12.3c2.1,3.1,5.1,4.6,9.2,4.6c4.1,0,7.2-1.6,9.2-4.8c2-3.1,3-7.2,3-12.3L598.7,305z M608.4,305.7
|
||||
c0.1,7.1-1.9,13-5.9,17.6c-4,4.7-9.3,7-15.9,7.1c-6.5,0.1-11.8-2.2-15.9-6.8c-4.1-4.6-6.1-10.4-6.2-17.5l0-0.7
|
||||
c-0.1-7,1.9-12.9,5.9-17.6c4-4.7,9.2-7.1,15.8-7.1c6.6-0.1,11.9,2.2,16,6.8c4.1,4.6,6.2,10.4,6.3,17.5L608.4,305.7z"/>
|
||||
<path fill="#4A5261" d="M633.9,305.2l8.2-0.1c2.7,0,4.7-0.8,6.1-2.3c1.4-1.5,2-3.4,2-5.7c0-2.3-0.7-4.2-2.1-5.7
|
||||
c-1.4-1.5-3.5-2.2-6.2-2.2l-8.2,0.1L633.9,305.2z M641.9,281.8c5.5,0,9.9,1.3,13.2,4.1c3.2,2.8,4.9,6.5,4.9,11.1
|
||||
c0,4.6-1.5,8.4-4.7,11.2s-7.5,4.3-13.1,4.3l-8.2,0.1l0.1,10.7l5.2,0.9l0,5.8l-20,0.2l-0.1-5.8l5.1-1l-0.3-34.7l-5.2-1l-0.1-5.9
|
||||
l5.2,0L641.9,281.8z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
228
docs/static/Logo_Calliope_norm.svg
vendored
Normal file
@ -0,0 +1,228 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Ebene_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 234.4 188.6"
|
||||
enable-background="new 0 0 595.3 841.9"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="Logo_Calliope_norm.svg"
|
||||
width="234.39999"
|
||||
height="188.60001"><metadata
|
||||
id="metadata89"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs87" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
id="namedview85"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.1714397"
|
||||
inkscape:cx="73.725892"
|
||||
inkscape:cy="132.25623"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="156"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Ebene_1" /><g
|
||||
id="g4307"
|
||||
transform="translate(0.15971695,653.11241)"><g
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="g3"><defs
|
||||
id="defs5"><rect
|
||||
height="188.7"
|
||||
width="234.3"
|
||||
y="152.7"
|
||||
x="180.2"
|
||||
id="SVGID_1_" /></defs><clipPath
|
||||
id="SVGID_2_"><use
|
||||
height="100%"
|
||||
width="100%"
|
||||
y="0"
|
||||
x="0"
|
||||
style="overflow:visible"
|
||||
id="use9"
|
||||
overflow="visible"
|
||||
xlink:href="#SVGID_1_" /></clipPath><path
|
||||
style="fill:#4a5261"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path11"
|
||||
d="m 205,320.8 -4.5,0 -0.7,-4 c -0.6,-0.6 -1.4,-1.1 -2.3,-1.4 -0.9,-0.3 -2,-0.5 -3.2,-0.5 -2.6,0 -4.6,1 -6.1,2.9 -1.4,1.9 -2.1,4.4 -2.1,7.5 l 0,1.1 c 0,3.1 0.8,5.6 2.2,7.5 1.4,1.9 3.4,2.9 6,2.8 1.2,0 2.3,-0.2 3.3,-0.5 1,-0.4 1.7,-0.8 2.3,-1.4 l 0.6,-4 4.5,0 0.1,6 c -1.2,1.4 -2.7,2.6 -4.6,3.4 -1.9,0.8 -4,1.3 -6.3,1.3 -4.1,0 -7.4,-1.3 -10,-4.1 -2.6,-2.8 -3.9,-6.4 -4,-10.8 l 0,-1 c 0,-4.4 1.2,-8 3.8,-10.9 2.6,-2.8 5.9,-4.3 10,-4.3 2.3,0 4.5,0.4 6.3,1.2 1.9,0.8 3.5,1.9 4.7,3.3 l 0,5.9 z"
|
||||
clip-path="url(#SVGID_2_)" /></g><path
|
||||
style="fill:#4a5261"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path13"
|
||||
d="m 45.740275,-488.51209 0.1,0 3.5,10.6 -6.9,0.1 3.3,-10.7 z m -3.1,-6.9 -9,26.4 -2.2,0.3 0,3.6 10.3,-0.1 0,-3.6 -2.1,-0.4 1.3,-4.2 9.8,-0.1 1.4,4.1 -2.1,0.4 0,3.6 10.3,-0.1 0,-3.6 -2.2,-0.3 -9.4,-26.2 -6.1,0.2 z" /><polygon
|
||||
style="fill:#4a5261"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon15"
|
||||
points="256.3,335.8 256.1,314.4 259.4,313.8 259.3,310.1 256.1,310.2 250,310.2 246.8,310.3 246.8,313.9 250.1,314.5 250.3,336.2 247,336.9 247.1,340.5 269.8,340.3 269.7,331.8 265.1,331.9 264.9,335.7 " /><polygon
|
||||
style="fill:#4a5261"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon17"
|
||||
points="285.5,335.5 285.3,314.2 288.5,313.5 288.5,309.9 285.3,309.9 279.2,310 276,310 276,313.6 279.2,314.2 279.4,335.9 276.2,336.6 276.3,340.2 299,340 298.9,331.6 294.3,331.6 294,335.4 " /><polygon
|
||||
style="fill:#4a5261"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon19"
|
||||
points="305.1,309.7 305.2,313.4 308.4,314 308.6,335.7 305.4,336.3 305.4,340 317.9,339.9 317.9,336.2 314.7,335.6 314.5,313.9 317.7,313.3 317.7,309.6 " /><g
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="g21"><defs
|
||||
id="defs23"><rect
|
||||
height="188.7"
|
||||
width="234.3"
|
||||
y="152.7"
|
||||
x="180.2"
|
||||
id="SVGID_3_" /></defs><clipPath
|
||||
id="SVGID_4_"><use
|
||||
height="100%"
|
||||
width="100%"
|
||||
y="0"
|
||||
x="0"
|
||||
style="overflow:visible"
|
||||
id="use27"
|
||||
overflow="visible"
|
||||
xlink:href="#SVGID_3_" /></clipPath><path
|
||||
style="fill:#4a5261"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path29"
|
||||
d="m 346,324.2 c 0,-3.1 -0.7,-5.7 -2,-7.6 -1.3,-1.9 -3.3,-2.9 -5.8,-2.9 -2.6,0 -4.4,1 -5.7,3 -1.2,2 -1.8,4.5 -1.8,7.7 l 0,0.5 c 0,3.2 0.7,5.7 2,7.7 1.3,1.9 3.2,2.9 5.7,2.9 2.6,0 4.5,-1 5.7,-3 1.3,-2 1.9,-4.5 1.9,-7.7 l 0,-0.6 z m 6,0.4 c 0,4.4 -1.2,8.1 -3.7,11 -2.5,2.9 -5.8,4.4 -9.9,4.4 -4.1,0 -7.4,-1.4 -9.9,-4.3 -2.5,-2.9 -3.8,-6.5 -3.9,-11 l 0,-0.5 c 0,-4.4 1.2,-8.1 3.7,-11 2.5,-2.9 5.8,-4.4 9.8,-4.5 4.1,0 7.4,1.4 10,4.3 2.6,2.9 3.9,6.5 3.9,10.9 l 0,0.7 z"
|
||||
clip-path="url(#SVGID_4_)" /><path
|
||||
style="fill:#4a5261"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path31"
|
||||
d="m 368,323.8 5.1,0 c 1.7,0 3,-0.5 3.8,-1.4 0.9,-0.9 1.3,-2.1 1.3,-3.5 0,-1.5 -0.5,-2.7 -1.3,-3.6 -0.9,-0.9 -2.2,-1.4 -3.8,-1.4 l -5.1,0 0,9.9 z m 5,-14.7 c 3.5,0 6.2,0.8 8.2,2.6 2,1.8 3,4.1 3.1,7 0,2.9 -1,5.2 -2.9,7 -2,1.8 -4.7,2.7 -8.2,2.7 l -5.1,0 0.1,6.7 3.2,0.6 0,3.6 -12.5,0.1 0,-3.6 3.2,-0.7 -0.2,-21.7 -3.2,-0.6 0,-3.7 3.2,0 11.1,0 z"
|
||||
clip-path="url(#SVGID_4_)" /></g><polygon
|
||||
style="fill:#4a5261"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon33"
|
||||
points="399.8,325.8 410,325.7 410,321 399.8,321.1 399.7,313.5 409.4,313.4 409.7,317 414.3,317 414.2,308.7 393.6,308.9 390.3,308.9 390.4,312.6 393.6,313.2 393.8,334.9 390.6,335.6 390.6,339.2 414.6,339 414.5,330.7 409.9,330.7 409.6,334.4 399.9,334.4 " /><g
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="g35"><defs
|
||||
id="defs37"><rect
|
||||
height="188.7"
|
||||
width="234.3"
|
||||
y="152.7"
|
||||
x="180.2"
|
||||
id="SVGID_5_" /></defs><clipPath
|
||||
id="SVGID_6_"><use
|
||||
height="100%"
|
||||
width="100%"
|
||||
y="0"
|
||||
x="0"
|
||||
style="overflow:visible"
|
||||
id="use41"
|
||||
overflow="visible"
|
||||
xlink:href="#SVGID_5_" /></clipPath><path
|
||||
style="fill:#4a5261"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path43"
|
||||
d="m 359.3,195.4 -35.3,0 0,-33.8 c 0,-3.4 2.8,-6.2 6.2,-6.2 l 22.9,0 c 3.4,0 6.2,2.8 6.2,6.2 l 0,33.8 z"
|
||||
clip-path="url(#SVGID_6_)" /></g><rect
|
||||
style="fill:#8096a1"
|
||||
id="rect45"
|
||||
height="31.799999"
|
||||
width="25.799999"
|
||||
y="-642.41211"
|
||||
x="148.44026" /><g
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="g47"><defs
|
||||
id="defs49"><rect
|
||||
height="188.7"
|
||||
width="234.3"
|
||||
y="152.7"
|
||||
x="180.2"
|
||||
id="SVGID_7_" /></defs><clipPath
|
||||
id="SVGID_8_"><use
|
||||
height="100%"
|
||||
width="100%"
|
||||
y="0"
|
||||
x="0"
|
||||
style="overflow:visible"
|
||||
id="use53"
|
||||
overflow="visible"
|
||||
xlink:href="#SVGID_7_" /></clipPath><path
|
||||
style="fill:#855c33"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path55"
|
||||
d="m 271.9,178.8 0,44.9 52.3,0.2 c 0,0 0,-42.2 0,-44.9 0,-14.4 -11.8,-26.2 -26.2,-26.2 -14.4,-0.1 -26.1,11.6 -26.1,26"
|
||||
clip-path="url(#SVGID_8_)" /><path
|
||||
style="fill:#26a6ab"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path57"
|
||||
d="m 341.7,279.7 -84.1,0 c -26.2,0 -37.4,-33.3 -16.6,-49.2 l 47,-35.2 71.3,0 0,66.8 c 0,9.7 -7.9,17.6 -17.6,17.6"
|
||||
clip-path="url(#SVGID_8_)" /></g><polygon
|
||||
style="fill:#42c9c9"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon59"
|
||||
points="284.6,222.5 248,225.2 292.6,191.9 " /><polygon
|
||||
style="fill:#f7f5e8"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon61"
|
||||
points="282.9,211.4 292.6,191.9 298.7,211.4 " /><polygon
|
||||
style="fill:#f7f5e8"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon63"
|
||||
points="298.7,211.4 304.7,191.9 314.4,211.4 " /><polygon
|
||||
style="fill:#bdd1cf"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon65"
|
||||
points="312.7,222.5 284.6,222.5 282.9,211.4 314.4,211.4 " /><g
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="g67"><defs
|
||||
id="defs69"><rect
|
||||
height="188.7"
|
||||
width="234.3"
|
||||
y="152.7"
|
||||
x="180.2"
|
||||
id="SVGID_9_" /></defs><clipPath
|
||||
id="SVGID_10_"><use
|
||||
height="100%"
|
||||
width="100%"
|
||||
y="0"
|
||||
x="0"
|
||||
style="overflow:visible"
|
||||
id="use73"
|
||||
overflow="visible"
|
||||
xlink:href="#SVGID_9_" /></clipPath><path
|
||||
style="fill:#f7f5e8"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path75"
|
||||
d="m 333,279.7 c -2.6,-19.3 -7.8,-42.7 -20.1,-57.2 l -0.1,0 -14,0 -14,0 -0.1,0 c -12.3,14.5 -17.6,37.9 -20.1,57.2 l 68.4,0 z"
|
||||
clip-path="url(#SVGID_10_)" /><path
|
||||
style="fill:#ffcc99"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path77"
|
||||
d="m 300.9,192.4 -4.5,0 c -4.7,0 -8.5,-3.8 -8.5,-8.5 l 0,-14.5 21.5,0 0,14.5 c 0,4.7 -3.8,8.5 -8.5,8.5"
|
||||
clip-path="url(#SVGID_10_)" /><path
|
||||
style="fill:#bdd1cf"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path79"
|
||||
d="m 285.3,279.7 0,-57.2 c 9.1,21.4 20.4,47.3 34.2,57.2 l -34.2,0 z"
|
||||
clip-path="url(#SVGID_10_)" /></g><polygon
|
||||
style="fill:#ffcc99"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon81"
|
||||
points="292.6,191.9 298.7,211.4 304.7,191.9 " /><polygon
|
||||
style="fill:#42c9c9"
|
||||
transform="translate(-180.35972,-805.91209)"
|
||||
id="polygon83"
|
||||
points="328.8,195.4 359.3,195.4 359.3,234.6 " /></g></svg>
|
After Width: | Height: | Size: 9.9 KiB |
921
docs/static/calliope.simplified.svg
vendored
Normal file
@ -0,0 +1,921 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 340.2 311.8"
|
||||
enable-background="new 0 0 340.2 311.8"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="calliope.simplified.svg"><metadata
|
||||
id="metadata945"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs943" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
id="namedview941"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.0275819"
|
||||
inkscape:cx="131.29885"
|
||||
inkscape:cy="162.10198"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="156"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" /><symbol
|
||||
id="Mini_front"
|
||||
viewBox="-122.3 -112.9 244.6 225.8"><g
|
||||
id="g5"><use
|
||||
xlink:href="#calliope_mini_backside"
|
||||
width="298.9"
|
||||
height="263.3"
|
||||
id="XMLID_3_"
|
||||
x="-150.5"
|
||||
y="-131.7"
|
||||
transform="matrix(0.8169 0 0 0.8169 0.6672 -5.3582)"
|
||||
overflow="visible" /><g
|
||||
id="holes_3_"><g
|
||||
id="g9"><g
|
||||
id="g11"><path
|
||||
d="M-42.4-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1s2.1,1,2.1,2.1S-41.3-78.2-42.4-78.2z M-42.4-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-41.4-80.9-41.9-81.4-42.4-81.4z"
|
||||
id="path13"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-42.4-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-41.4-80.9-41.9-81.4-42.4-81.4z"
|
||||
id="path15" /></g><g
|
||||
id="g17"><path
|
||||
d="M-35.2-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1S-34.1-78.2-35.2-78.2z M-35.2-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-34.2-80.9-34.7-81.4-35.2-81.4z"
|
||||
id="path19"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-35.2-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-34.2-80.9-34.7-81.4-35.2-81.4z"
|
||||
id="path21" /></g><g
|
||||
id="g23"><path
|
||||
d="M-28-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1S-26.9-78.2-28-78.2z M-28-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-27-80.9-27.5-81.4-28-81.4z"
|
||||
id="path25"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-28-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-27-80.9-27.5-81.4-28-81.4z"
|
||||
id="path27" /></g><g
|
||||
id="g29"><path
|
||||
d="M-20.9-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1S-19.7-78.2-20.9-78.2z M-20.9-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-19.8-80.9-20.3-81.4-20.9-81.4z"
|
||||
id="path31"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-20.9-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-19.8-80.9-20.3-81.4-20.9-81.4z"
|
||||
id="path33" /></g><g
|
||||
id="g35"><path
|
||||
d="M-13.7-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1s2.1,1,2.1,2.1S-12.5-78.2-13.7-78.2z M-13.7-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-12.6-80.9-13.1-81.4-13.7-81.4z"
|
||||
id="path37"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-13.7-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-12.6-80.9-13.1-81.4-13.7-81.4z"
|
||||
id="path39" /></g><g
|
||||
id="g41"><path
|
||||
d="M-6.5-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1s2.1,1,2.1,2.1S-5.3-78.2-6.5-78.2z M-6.5-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-5.4-80.9-5.9-81.4-6.5-81.4z"
|
||||
id="path43"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-6.5-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-5.4-80.9-5.9-81.4-6.5-81.4z"
|
||||
id="path45" /></g><g
|
||||
id="g47"><path
|
||||
d="M0.7-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1s2.1,1,2.1,2.1S1.9-78.2,0.7-78.2z M0.7-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C1.8-80.9,1.3-81.4,0.7-81.4z"
|
||||
id="path49"
|
||||
fill="#EFDA48" /><path
|
||||
d="M0.7-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C1.8-80.9,1.3-81.4,0.7-81.4z"
|
||||
id="path51" /></g><g
|
||||
id="g53"><path
|
||||
d="M7.9-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1s2.1,1,2.1,2.1S9.1-78.2,7.9-78.2z M7.9-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C8.9-80.9,8.5-81.4,7.9-81.4z"
|
||||
id="path55"
|
||||
fill="#EFDA48" /><path
|
||||
d="M7.9-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C8.9-80.9,8.5-81.4,7.9-81.4z"
|
||||
id="path57" /></g><g
|
||||
id="g59"><path
|
||||
d="M15.1-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1s2.1,1,2.1,2.1S16.3-78.2,15.1-78.2z M15.1-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C16.1-80.9,15.7-81.4,15.1-81.4z"
|
||||
id="path61"
|
||||
fill="#EFDA48" /><path
|
||||
d="M15.1-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C16.1-80.9,15.7-81.4,15.1-81.4z"
|
||||
id="path63" /></g><g
|
||||
id="g65"><path
|
||||
d="M22.3-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1S23.5-78.2,22.3-78.2z M22.3-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C23.3-80.9,22.9-81.4,22.3-81.4z"
|
||||
id="path67"
|
||||
fill="#EFDA48" /><path
|
||||
d="M22.3-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C23.3-80.9,22.9-81.4,22.3-81.4z"
|
||||
id="path69" /></g><g
|
||||
id="g71"><path
|
||||
d="M29.5-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1S30.7-78.2,29.5-78.2z M29.5-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C30.5-80.9,30.1-81.4,29.5-81.4z"
|
||||
id="path73"
|
||||
fill="#EFDA48" /><path
|
||||
d="M29.5-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C30.5-80.9,30.1-81.4,29.5-81.4z"
|
||||
id="path75" /></g><g
|
||||
id="g77"><path
|
||||
d="M36.7-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1S37.9-78.2,36.7-78.2z M36.7-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C37.7-80.9,37.3-81.4,36.7-81.4z"
|
||||
id="path79"
|
||||
fill="#EFDA48" /><path
|
||||
d="M36.7-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C37.7-80.9,37.3-81.4,36.7-81.4z"
|
||||
id="path81" /></g><g
|
||||
id="g83"><path
|
||||
d="M43.9-78.2c-1.2,0-2.1-1-2.1-2.1s1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1S45.1-78.2,43.9-78.2z M43.9-81.4 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C44.9-80.9,44.5-81.4,43.9-81.4z"
|
||||
id="path85"
|
||||
fill="#EFDA48" /><path
|
||||
d="M43.9-81.4c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C44.9-80.9,44.5-81.4,43.9-81.4z"
|
||||
id="path87" /></g></g><g
|
||||
id="g89"><g
|
||||
id="g91"><path
|
||||
d="M-42.4-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C-40.3-71.9-41.3-71-42.4-71z M-42.4-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-41.4-73.7-41.9-74.1-42.4-74.1z"
|
||||
id="path93"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-42.4-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-41.4-73.7-41.9-74.1-42.4-74.1z"
|
||||
id="path95" /></g><g
|
||||
id="g97"><path
|
||||
d="M-35.2-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C-33.1-71.9-34.1-71-35.2-71z M-35.2-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-34.2-73.7-34.7-74.1-35.2-74.1z"
|
||||
id="path99"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-35.2-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C-34.2-73.7-34.7-74.1-35.2-74.1z"
|
||||
id="path101" /></g><g
|
||||
id="g103"><path
|
||||
d="M-28-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C-25.9-71.9-26.9-71-28-71z M-28-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-27-73.7-27.5-74.1-28-74.1z"
|
||||
id="path105"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-28-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-27-73.7-27.5-74.1-28-74.1z"
|
||||
id="path107" /></g><g
|
||||
id="g109"><path
|
||||
d="M-20.9-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C-18.7-71.9-19.7-71-20.9-71z M-20.9-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-19.8-73.7-20.3-74.1-20.9-74.1z"
|
||||
id="path111"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-20.9-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-19.8-73.7-20.3-74.1-20.9-74.1z"
|
||||
id="path113" /></g><g
|
||||
id="g115"><path
|
||||
d="M-13.7-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C-11.5-71.9-12.5-71-13.7-71z M-13.7-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-12.6-73.7-13.1-74.1-13.7-74.1z"
|
||||
id="path117"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-13.7-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-12.6-73.7-13.1-74.1-13.7-74.1z"
|
||||
id="path119" /></g><g
|
||||
id="g121"><path
|
||||
d="M-6.5-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C-4.3-71.9-5.3-71-6.5-71z M-6.5-74.1 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-5.4-73.7-5.9-74.1-6.5-74.1z"
|
||||
id="path123"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-6.5-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-5.4-73.7-5.9-74.1-6.5-74.1z"
|
||||
id="path125" /></g><g
|
||||
id="g127"><path
|
||||
d="M0.7-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C2.9-71.9,1.9-71,0.7-71z M0.7-74.1 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C1.8-73.7,1.3-74.1,0.7-74.1z"
|
||||
id="path129"
|
||||
fill="#EFDA48" /><path
|
||||
d="M0.7-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C1.8-73.7,1.3-74.1,0.7-74.1z"
|
||||
id="path131" /></g><g
|
||||
id="g133"><path
|
||||
d="M7.9-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C10.1-71.9,9.1-71,7.9-71z M7.9-74.1 c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C8.9-73.7,8.5-74.1,7.9-74.1z"
|
||||
id="path135"
|
||||
fill="#EFDA48" /><path
|
||||
d="M7.9-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C8.9-73.7,8.5-74.1,7.9-74.1z"
|
||||
id="path137" /></g><g
|
||||
id="g139"><path
|
||||
d="M15.1-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C17.3-71.9,16.3-71,15.1-71z M15.1-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C16.1-73.7,15.7-74.1,15.1-74.1z"
|
||||
id="path141"
|
||||
fill="#EFDA48" /><path
|
||||
d="M15.1-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C16.1-73.7,15.7-74.1,15.1-74.1z"
|
||||
id="path143" /></g><g
|
||||
id="g145"><path
|
||||
d="M22.3-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C24.5-71.9,23.5-71,22.3-71z M22.3-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C23.3-73.7,22.9-74.1,22.3-74.1z"
|
||||
id="path147"
|
||||
fill="#EFDA48" /><path
|
||||
d="M22.3-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C23.3-73.7,22.9-74.1,22.3-74.1z"
|
||||
id="path149" /></g><g
|
||||
id="g151"><path
|
||||
d="M29.5-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C31.7-71.9,30.7-71,29.5-71z M29.5-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C30.5-73.7,30.1-74.1,29.5-74.1z"
|
||||
id="path153"
|
||||
fill="#EFDA48" /><path
|
||||
d="M29.5-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C30.5-73.7,30.1-74.1,29.5-74.1z"
|
||||
id="path155" /></g><g
|
||||
id="g157"><path
|
||||
d="M36.7-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C38.9-71.9,37.9-71,36.7-71z M36.7-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C37.7-73.7,37.3-74.1,36.7-74.1z"
|
||||
id="path159"
|
||||
fill="#EFDA48" /><path
|
||||
d="M36.7-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C37.7-73.7,37.3-74.1,36.7-74.1z"
|
||||
id="path161" /></g><g
|
||||
id="g163"><path
|
||||
d="M43.9-71c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1c1.2,0,2.1,1,2.1,2.1C46-71.9,45.1-71,43.9-71z M43.9-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C44.9-73.7,44.5-74.1,43.9-74.1z"
|
||||
id="path165"
|
||||
fill="#EFDA48" /><path
|
||||
d="M43.9-74.1c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C44.9-73.7,44.5-74.1,43.9-74.1z"
|
||||
id="path167" /></g></g><g
|
||||
id="g169"><g
|
||||
id="g171"><path
|
||||
d="M-13.7-57.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C-11.5-58.1-12.5-57.2-13.7-57.2z M-13.7-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-12.6-59.9-13.1-60.3-13.7-60.3z"
|
||||
id="path173"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-13.7-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-12.6-59.9-13.1-60.3-13.7-60.3z"
|
||||
id="path175" /></g><g
|
||||
id="g177"><path
|
||||
d="M-6.5-57.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C-4.3-58.1-5.3-57.2-6.5-57.2z M-6.5-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-5.4-59.9-5.9-60.3-6.5-60.3z"
|
||||
id="path179"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-6.5-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C-5.4-59.9-5.9-60.3-6.5-60.3z"
|
||||
id="path181" /></g><g
|
||||
id="g183"><path
|
||||
d="M0.7-57.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C2.9-58.1,1.9-57.2,0.7-57.2z M0.7-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C1.8-59.9,1.3-60.3,0.7-60.3z"
|
||||
id="path185"
|
||||
fill="#EFDA48" /><path
|
||||
d="M0.7-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C1.8-59.9,1.3-60.3,0.7-60.3z"
|
||||
id="path187" /></g><g
|
||||
id="g189"><path
|
||||
d="M7.9-57.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C10.1-58.1,9.1-57.2,7.9-57.2z M7.9-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C8.9-59.9,8.5-60.3,7.9-60.3z"
|
||||
id="path191"
|
||||
fill="#EFDA48" /><path
|
||||
d="M7.9-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1s1-0.5,1-1C8.9-59.9,8.5-60.3,7.9-60.3z"
|
||||
id="path193" /></g><g
|
||||
id="g195"><path
|
||||
d="M15.1-57.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C17.3-58.1,16.3-57.2,15.1-57.2z M15.1-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C16.1-59.9,15.7-60.3,15.1-60.3z"
|
||||
id="path197"
|
||||
fill="#EFDA48" /><path
|
||||
d="M15.1-60.3c-0.6,0-1,0.5-1,1c0,0.6,0.5,1,1,1c0.6,0,1-0.5,1-1C16.1-59.9,15.7-60.3,15.1-60.3z"
|
||||
id="path199" /></g></g><g
|
||||
id="g201"><g
|
||||
id="g203"><polygon
|
||||
points="80.6,17.6 77.6,20.5 80.6,23.5 83.5,20.5 "
|
||||
id="polygon205"
|
||||
fill="#EFDA48" /><path
|
||||
d="M79.9,19.8c-0.4,0.4-0.4,1,0,1.4c0.4,0.4,1,0.4,1.4,0s0.4-1,0-1.4C80.9,19.4,80.3,19.4,79.9,19.8z"
|
||||
id="path207" /></g><g
|
||||
id="g209"><path
|
||||
d="M86.3,18.1c-0.8,0.8-2.2,0.8-3,0c-0.8-0.8-0.8-2.2,0-3c0.8-0.8,2.2-0.8,3,0 C87.1,15.9,87.1,17.2,86.3,18.1z M84.1,15.8c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0s0.4-1,0-1.4S84.5,15.4,84.1,15.8z"
|
||||
id="path211"
|
||||
fill="#EFDA48" /><path
|
||||
d="M84.1,15.8c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0s0.4-1,0-1.4S84.5,15.4,84.1,15.8z"
|
||||
id="path213" /></g><g
|
||||
id="g215"><path
|
||||
d="M90.1,14.3c-0.8,0.8-2.2,0.8-3,0c-0.8-0.8-0.8-2.2,0-3s2.2-0.8,3,0C90.9,12.1,90.9,13.5,90.1,14.3z M87.9,12.1c-0.4,0.4-0.4,1,0,1.4c0.4,0.4,1,0.4,1.4,0s0.4-1,0-1.4C88.9,11.7,88.3,11.7,87.9,12.1z"
|
||||
id="path217"
|
||||
fill="#EFDA48" /><path
|
||||
d="M87.9,12.1c-0.4,0.4-0.4,1,0,1.4c0.4,0.4,1,0.4,1.4,0s0.4-1,0-1.4C88.9,11.7,88.3,11.7,87.9,12.1z"
|
||||
id="path219" /></g><g
|
||||
id="g221"><path
|
||||
d="M94.4,10c-0.8,0.8-2.2,0.8-3,0c-0.8-0.8-0.8-2.2,0-3s2.2-0.8,3,0C95.3,7.8,95.3,9.2,94.4,10z M92.2,7.8 c-0.4,0.4-0.4,1,0,1.4c0.4,0.4,1,0.4,1.4,0s0.4-1,0-1.4C93.2,7.4,92.6,7.4,92.2,7.8z"
|
||||
id="path223"
|
||||
fill="#EFDA48" /><path
|
||||
d="M92.2,7.8c-0.4,0.4-0.4,1,0,1.4c0.4,0.4,1,0.4,1.4,0s0.4-1,0-1.4C93.2,7.4,92.6,7.4,92.2,7.8z"
|
||||
id="path225" /></g></g><g
|
||||
id="g227"><g
|
||||
id="g229"><polygon
|
||||
points="-88,8.6 -91,5.7 -94,8.6 -91,11.6 "
|
||||
id="polygon231"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-90.3,8c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0C-89.9,9-89.9,8.3-90.3,8z"
|
||||
id="path233" /></g><g
|
||||
id="g235"><path
|
||||
d="M-88.5,14.4c-0.8-0.8-0.8-2.2,0-3c0.8-0.8,2.2-0.8,3,0c0.8,0.8,0.8,2.2,0,3 C-86.3,15.2-87.7,15.2-88.5,14.4z M-86.3,12.2c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0 C-85.9,13.2-85.9,12.5-86.3,12.2z"
|
||||
id="path237"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-86.3,12.2c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0C-85.9,13.2-85.9,12.5-86.3,12.2z"
|
||||
id="path239" /></g><g
|
||||
id="g241"><path
|
||||
d="M-84.8,18.2c-0.8-0.8-0.8-2.2,0-3c0.8-0.8,2.2-0.8,3,0c0.8,0.8,0.8,2.2,0,3C-82.6,19-84,19-84.8,18.2z M-82.6,16c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0C-82.2,17-82.2,16.4-82.6,16z"
|
||||
id="path243"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-82.6,16c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0C-82.2,17-82.2,16.4-82.6,16z"
|
||||
id="path245" /></g><g
|
||||
id="g247"><path
|
||||
d="M-80.5,22.5c-0.8-0.8-0.8-2.2,0-3c0.8-0.8,2.2-0.8,3,0c0.8,0.8,0.8,2.2,0,3 C-78.3,23.3-79.7,23.3-80.5,22.5z M-78.3,20.3c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0 C-77.9,21.3-77.9,20.7-78.3,20.3z"
|
||||
id="path249"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-78.3,20.3c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0C-77.9,21.3-77.9,20.7-78.3,20.3z"
|
||||
id="path251" /></g></g><g
|
||||
id="g253"><path
|
||||
d="M-107.8,8.6c-7.7,0-13.9-6.2-13.9-13.9s6.2-13.9,13.9-13.9s13.9,6.2,13.9,13.9S-100.1,8.6-107.8,8.6z M-107.8-12c-3.7,0-6.6,3-6.6,6.6s3,6.6,6.6,6.6c3.7,0,6.6-3,6.6-6.6S-104.1-12-107.8-12z"
|
||||
id="path255"
|
||||
fill="#EFDA48" /><path
|
||||
d="M54.8,102.3c-7.7,0-13.9-6.2-13.9-13.9s6.2-13.9,13.9-13.9s13.9,6.2,13.9,13.9S62.4,102.3,54.8,102.3z M54.8,81.7c-3.7,0-6.6,3-6.6,6.6s3,6.6,6.6,6.6s6.6-3,6.6-6.6S58.4,81.7,54.8,81.7z"
|
||||
id="path257"
|
||||
fill="#EFDA48" /><path
|
||||
d="M108.4,8.6c-7.7,0-13.9-6.2-13.9-13.9s6.2-13.9,13.9-13.9s13.9,6.2,13.9,13.9S116.1,8.6,108.4,8.6z M108.4-12c-3.7,0-6.6,3-6.6,6.6s3,6.6,6.6,6.6s6.6-3,6.6-6.6S112-12,108.4-12z"
|
||||
id="path259"
|
||||
fill="#EFDA48" /><path
|
||||
d="M54.8-84.2c-7.7,0-13.9-6.2-13.9-13.9S47.1-112,54.8-112s13.9,6.2,13.9,13.9S62.4-84.2,54.8-84.2z M54.8-104.7c-3.7,0-6.6,3-6.6,6.6s3,6.6,6.6,6.6c3.7,0,6.6-3,6.6-6.6S58.4-104.7,54.8-104.7z"
|
||||
id="path261"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-53.1-85C-60.8-85-67-91.2-67-98.9s6.2-13.9,13.9-13.9s13.9,6.2,13.9,13.9S-45.4-85-53.1-85z M-53.1-105.5c-3.7,0-6.6,3-6.6,6.6c0,3.7,3,6.6,6.6,6.6s6.6-3,6.6-6.6C-46.5-102.6-49.4-105.5-53.1-105.5z"
|
||||
id="path263"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-53.1,102.3c-7.7,0-13.9-6.2-13.9-13.9s6.2-13.9,13.9-13.9s13.9,6.2,13.9,13.9S-45.4,102.3-53.1,102.3z M-53.1,81.7c-3.7,0-6.6,3-6.6,6.6s3,6.6,6.6,6.6c3.7,0,6.6-3,6.6-6.6S-49.4,81.7-53.1,81.7z"
|
||||
id="path265"
|
||||
fill="#EFDA48" /></g></g></g><g
|
||||
id="g273"><g
|
||||
id="g275"><polygon
|
||||
points="-20.9,36.6 -23,36.6 -23,42 -20.9,42 "
|
||||
id="polygon277"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-9.9,36.6 -12.1,36.6 -12.1,42 -9.9,42 "
|
||||
id="polygon279"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="1,36.6 -1.1,36.6 -1.1,42 1,42 "
|
||||
id="polygon281"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="12,36.6 9.8,36.6 9.8,42 12,42 "
|
||||
id="polygon283"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="22.9,36.6 20.8,36.6 20.8,42 22.9,42 "
|
||||
id="polygon285"
|
||||
fill="#FFFFFF" /></g><g
|
||||
id="g287"><polygon
|
||||
points="-20.9,25.9 -23,25.9 -23,31.3 -20.9,31.3 "
|
||||
id="polygon289"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-9.9,25.9 -12.1,25.9 -12.1,31.3 -9.9,31.3 "
|
||||
id="polygon291"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="1,25.9 -1.1,25.9 -1.1,31.3 1,31.3 "
|
||||
id="polygon293"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="12,25.9 9.8,25.9 9.8,31.3 12,31.3 "
|
||||
id="polygon295"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="22.9,25.9 20.8,25.9 20.8,31.3 22.9,31.3 "
|
||||
id="polygon297"
|
||||
fill="#FFFFFF" /></g><g
|
||||
id="g299"><polygon
|
||||
points="-20.9,15.1 -23,15.1 -23,20.6 -20.9,20.6 "
|
||||
id="polygon301"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-9.9,15.1 -12.1,15.1 -12.1,20.6 -9.9,20.6 "
|
||||
id="polygon303"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="1,15.1 -1.1,15.1 -1.1,20.6 1,20.6 "
|
||||
id="polygon305"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="12,15.1 9.8,15.1 9.8,20.6 12,20.6 "
|
||||
id="polygon307"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="22.9,15.1 20.8,15.1 20.8,20.6 22.9,20.6 "
|
||||
id="polygon309"
|
||||
fill="#FFFFFF" /></g><g
|
||||
id="g311"><polygon
|
||||
points="-20.9,4.4 -23,4.4 -23,9.9 -20.9,9.9 "
|
||||
id="polygon313"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-9.9,4.4 -12.1,4.4 -12.1,9.9 -9.9,9.9 "
|
||||
id="polygon315"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="1,4.4 -1.1,4.4 -1.1,9.9 1,9.9 "
|
||||
id="polygon317"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="12,4.4 9.8,4.4 9.8,9.9 12,9.9 "
|
||||
id="polygon319"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="22.9,4.4 20.8,4.4 20.8,9.9 22.9,9.9 "
|
||||
id="polygon321"
|
||||
fill="#FFFFFF" /></g><g
|
||||
id="g323"><polygon
|
||||
points="-20.9,-6.3 -23,-6.3 -23,-0.9 -20.9,-0.9 "
|
||||
id="polygon325"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-9.9,-6.3 -12.1,-6.3 -12.1,-0.9 -9.9,-0.9 "
|
||||
id="polygon327"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="1,-6.3 -1.1,-6.3 -1.1,-0.9 1,-0.9 "
|
||||
id="polygon329"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="12,-6.3 9.8,-6.3 9.8,-0.9 12,-0.9 "
|
||||
id="polygon331"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="22.9,-6.3 20.8,-6.3 20.8,-0.9 22.9,-0.9 "
|
||||
id="polygon333"
|
||||
fill="#FFFFFF" /></g></g><g
|
||||
id="g335"><path
|
||||
d="M-61.4,47.4c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6S-61.4,48.3-61.4,47.4z"
|
||||
id="path337"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-55.9,47.4c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6S-55.9,48.3-55.9,47.4z"
|
||||
id="path339"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-50.4,47.4c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6S-50.4,48.3-50.4,47.4z"
|
||||
id="path341"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-45,47.4c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6C-45.7,49.1-45,48.3-45,47.4z"
|
||||
id="path343"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-39.5,47.4c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6S-39.5,48.3-39.5,47.4z"
|
||||
id="path345"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-34.1,47.4c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6S-34.1,48.3-34.1,47.4z"
|
||||
id="path347"
|
||||
fill="#EFDA48" /></g><g
|
||||
id="g349"><path
|
||||
d="M-39.5,76.6c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6S-39.5,77.5-39.5,76.6z"
|
||||
id="path351"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-34.1,76.6c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6S-34.1,77.5-34.1,76.6z"
|
||||
id="path353"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-28.6,76.6c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6S-28.6,77.5-28.6,76.6z"
|
||||
id="path355"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-23.1,76.6c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6S-23.1,77.5-23.1,76.6z"
|
||||
id="path357"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-17.7,76.6c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6S-17.7,77.5-17.7,76.6z"
|
||||
id="path359"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-17.7,68.3c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6S-17.7,69.1-17.7,68.3z"
|
||||
id="path361"
|
||||
fill="#EFDA48" /></g><g
|
||||
id="g363"><path
|
||||
d="M-0.1,47.4c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6S-0.1,48.3-0.1,47.4z"
|
||||
id="path365"
|
||||
fill="#EFDA48" /><path
|
||||
d="M5.4,47.4c0-0.9-0.7-1.6-1.6-1.6s-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6S5.4,48.3,5.4,47.4z"
|
||||
id="path367"
|
||||
fill="#EFDA48" /></g><path
|
||||
d="M8.8,66.6H-8.8c-0.7,0-1.2,0.5-1.2,1.2v13.5c0,0.7,0.5,1.2,1.2,1.2H8.8c0.7,0,1.2-0.5,1.2-1.2V67.8 C10,67.2,9.4,66.6,8.8,66.6z"
|
||||
id="path369"
|
||||
fill="#BDD1CF" /><g
|
||||
id="g371"><g
|
||||
id="g373"><polygon
|
||||
points="-59.9,36.6 -62,36.6 -62,42 -59.9,42 "
|
||||
id="polygon375"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-48.2,36.6 -50.3,36.6 -50.3,42 -48.2,42 "
|
||||
id="polygon377"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-59.9,16 -62,16 -62,21.5 -59.9,21.5 "
|
||||
id="polygon379"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="-48.2,16 -50.3,16 -50.3,21.5 -48.2,21.5 "
|
||||
id="polygon381"
|
||||
fill="#FFFFFF" /></g><path
|
||||
d="M-48.3,21.4h-13.6c-0.6,0-1.1,0.5-1.1,1.1v13.7c0,0.6,0.5,1.1,1.1,1.1h13.6c0.6,0,1.1-0.5,1.1-1.1V22.4 C-47.2,21.8-47.7,21.4-48.3,21.4z"
|
||||
id="path383"
|
||||
fill="#BDD1CF" /><path
|
||||
d="M-50.2,29.3c0-2.7-2.2-4.9-4.9-4.9c-2.7,0-4.9,2.2-4.9,4.9s2.2,4.9,4.9,4.9C-52.4,34.2-50.2,32-50.2,29.3z "
|
||||
id="path385"
|
||||
fill="#476975" /><path
|
||||
d="M-59.3,35.2c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6C-60,36.8-59.3,36.1-59.3,35.2z"
|
||||
id="path387" /><path
|
||||
d="M-47.6,35.2c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6C-48.4,36.8-47.6,36.1-47.6,35.2z"
|
||||
id="path389" /><path
|
||||
d="M-59.3,23.6c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6C-60,25.2-59.3,24.5-59.3,23.6z"
|
||||
id="path391" /><path
|
||||
d="M-47.6,23.6c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6C-48.4,25.2-47.6,24.5-47.6,23.6z"
|
||||
id="path393" /></g><g
|
||||
id="g395"><path
|
||||
d="M68.7-61.4h-17c-0.8,0-1.5,0.7-1.5,1.5V-39c0,0.8,0.7,1.5,1.5,1.5h17c0.8,0,1.5-0.7,1.5-1.5v-20.9 C70.2-60.7,69.5-61.4,68.7-61.4z"
|
||||
id="path397"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="54.4,-40.8 44,-40.8 44,-37.5 54.4,-37.5 "
|
||||
id="polygon399"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="54.4,-61.4 44,-61.4 44,-58 54.4,-58 "
|
||||
id="polygon401"
|
||||
fill="#FFFFFF" /></g><path
|
||||
d="M76.6-2.2c-9.9,0-17.9-8-17.9-17.9S66.7-38,76.6-38s17.9,8,17.9,17.9S86.5-2.2,76.6-2.2z"
|
||||
id="path403" /><g
|
||||
id="g405"><path
|
||||
d="M39.1-57.2c-1.2,0-2.1-1-2.1-2.1c0-1.2,1-2.1,2.1-2.1s2.1,1,2.1,2.1C41.3-58.1,40.3-57.2,39.1-57.2z"
|
||||
id="path407"
|
||||
fill="#EFDA48" /></g><g
|
||||
id="g409"><g
|
||||
id="g411"><polygon
|
||||
points="51.6,36.6 49.5,36.6 49.5,42 51.6,42 "
|
||||
id="polygon413"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="63.3,36.6 61.1,36.6 61.1,42 63.3,42 "
|
||||
id="polygon415"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="51.6,16 49.5,16 49.5,21.5 51.6,21.5 "
|
||||
id="polygon417"
|
||||
fill="#FFFFFF" /><polygon
|
||||
points="63.3,16 61.1,16 61.1,21.5 63.3,21.5 "
|
||||
id="polygon419"
|
||||
fill="#FFFFFF" /></g><path
|
||||
d="M63.2,21.4H49.6c-0.6,0-1.1,0.5-1.1,1.1v13.7c0,0.6,0.5,1.1,1.1,1.1h13.6c0.6,0,1.1-0.5,1.1-1.1V22.4 C64.3,21.8,63.8,21.4,63.2,21.4z"
|
||||
id="path421"
|
||||
fill="#BDD1CF" /><path
|
||||
d="M61.3,29.3c0-2.7-2.2-4.9-4.9-4.9c-2.7,0-4.9,2.2-4.9,4.9s2.2,4.9,4.9,4.9C59.1,34.2,61.3,32,61.3,29.3z"
|
||||
id="path423"
|
||||
fill="#476975" /><path
|
||||
d="M52.2,35.2c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6C51.5,36.8,52.2,36.1,52.2,35.2z"
|
||||
id="path425" /><path
|
||||
d="M63.8,35.2c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6c0,0.9,0.7,1.6,1.6,1.6C63.1,36.8,63.8,36.1,63.8,35.2z"
|
||||
id="path427" /><path
|
||||
d="M52.2,23.6c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6C51.5,25.2,52.2,24.5,52.2,23.6z"
|
||||
id="path429" /><path
|
||||
d="M63.8,23.6c0-0.9-0.7-1.6-1.6-1.6c-0.9,0-1.6,0.7-1.6,1.6s0.7,1.6,1.6,1.6C63.1,25.2,63.8,24.5,63.8,23.6z"
|
||||
id="path431" /></g><g
|
||||
id="g433"><path
|
||||
d="M37.3,60H23.7c-0.6,0-1.1,0.5-1.1,1.1v13.7c0,0.6,0.5,1.1,1.1,1.1h13.6c0.6,0,1.1-0.5,1.1-1.1V61.1 C38.4,60.5,37.9,60,37.3,60z"
|
||||
id="path435"
|
||||
fill="#BDD1CF" /><path
|
||||
d="M35.5,68c0-2.7-2.2-4.9-4.9-4.9s-4.9,2.2-4.9,4.9s2.2,4.9,4.9,4.9S35.5,70.7,35.5,68z"
|
||||
id="path437"
|
||||
fill="#476975" /></g><polygon
|
||||
points="37.1,-46 25.4,-46 25.4,-25 37.1,-25 "
|
||||
id="polygon439"
|
||||
fill="#F9B233" /><polygon
|
||||
points="-31.8,-47.4 -43.7,-35.5 -31.8,-23.6 -19.9,-35.5 "
|
||||
id="polygon441" /><polygon
|
||||
points="-3.6,-52.5 -3.6,-46.4 2.5,-46.4 2.5,-52.5 "
|
||||
id="polygon443" /><g
|
||||
id="g445"><polygon
|
||||
points="5.3,-35.5 -5.5,-35.5 -5.5,-25 5.3,-25 "
|
||||
id="polygon447"
|
||||
fill="#FFFFFF" /><path
|
||||
d="M4-30.2c0-2.3-1.8-4.1-4.1-4.1s-4.1,1.8-4.1,4.1s1.8,4.1,4.1,4.1S4-28,4-30.2z"
|
||||
id="path449"
|
||||
fill="#BDD1CF" /></g><polygon
|
||||
points="-36.8,-54.6 -43.6,-59 -47.5,-52.9 -40.7,-48.5 "
|
||||
id="polygon451"
|
||||
fill="#FFFFFF" /></symbol><symbol
|
||||
id="calliope_mini_backside"
|
||||
viewBox="-150.5 -131.7 298.9 263.3"><path
|
||||
d="M-77.1,127.5L-77.1,127.5c6.2,4.6,14.6,4.8,20.9,0.5c12.5-8.4,34.7-21,56-21c23.2,0,45.7,13.5,56.4,21 c4.3,3,9.8,3.8,14.7,2l0.6-0.2c7.3-2.6,11.8-9.8,11-17.4c-1.7-15.4-3-41.9,13-62.9c16.8-21.9,31.7-31.2,42.3-34.8 c5.9-2,9.9-7.4,10.4-13.6v0c0.5-8-5.1-13.6-12.3-17c-12-5.7-30.8-15.7-42.8-36.2C78.7-77,80.1-103.4,81.7-114.8 c0.7-5.1-1.6-10.1-5.9-12.8c-4.8-3-11.9-4.6-21.4,1.5c-5.5,3.6-12,8.6-20.8,12c-10.8,4.1-16.9,5.5-20.3,5.8c-2.4,0.2-4.4,1.8-5.2,4 c-1.1,2.9-3.4,6.2-8.2,6.2c-5,0-7.2-3.6-8.2-6.6c-0.8-2.5-3.3-3.4-5.9-3.7c-4.9-0.4-12.5-2.4-20.5-6.1c-7.1-3.3-14-7.9-20.4-12.7 c-5.5-4.1-15-5.5-20.4-1.3l0,0c-5.7,4.4-7.4,11.7-6.5,18.8c1.9,15.3,1.1,43.3-16.7,64.2c-17.6,20.8-28.2,26.2-37.2,29.2 c-3.9,1.3-11.4,5.4-12.3,14.1s3,14.5,10.9,18.4c12.3,6.1,30.5,17.2,42.1,34.1c15.1,22,15.1,48.1,13.1,61.7 C-82.8,117.7-81.7,124.1-77.1,127.5z"
|
||||
id="path454"
|
||||
fill="#034854" /><g
|
||||
id="holes_9_"><g
|
||||
display="none"
|
||||
id="g457"><g
|
||||
display="inline"
|
||||
id="g459"><path
|
||||
d="M-53.5-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-52-89.3-53.5-89.3z M-53.5-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-52.2-92.6-52.8-93.1-53.5-93.1z"
|
||||
id="path461"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-53.5-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-52.2-92.6-52.8-93.1-53.5-93.1z"
|
||||
id="path463" /></g><g
|
||||
display="inline"
|
||||
id="g465"><path
|
||||
d="M-44.7-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-43.2-89.3-44.7-89.3z M-44.7-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-43.4-92.6-44-93.1-44.7-93.1z"
|
||||
id="path467"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-44.7-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-43.4-92.6-44-93.1-44.7-93.1z"
|
||||
id="path469" /></g><g
|
||||
display="inline"
|
||||
id="g471"><path
|
||||
d="M-35.9-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-34.4-89.3-35.9-89.3z M-35.9-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-34.6-92.6-35.2-93.1-35.9-93.1z"
|
||||
id="path473"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-35.9-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-34.6-92.6-35.2-93.1-35.9-93.1z"
|
||||
id="path475" /></g><g
|
||||
display="inline"
|
||||
id="g477"><path
|
||||
d="M-27-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-25.6-89.3-27-89.3z M-27-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-25.8-92.6-26.4-93.1-27-93.1z"
|
||||
id="path479"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-27-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-25.8-92.6-26.4-93.1-27-93.1z"
|
||||
id="path481" /></g><g
|
||||
display="inline"
|
||||
id="g483"><path
|
||||
d="M-18.2-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-16.8-89.3-18.2-89.3z M-18.2-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-17-92.6-17.6-93.1-18.2-93.1z"
|
||||
id="path485"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-18.2-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C-17-92.6-17.6-93.1-18.2-93.1z"
|
||||
id="path487" /></g><g
|
||||
display="inline"
|
||||
id="g489"><path
|
||||
d="M-9.4-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-8-89.3-9.4-89.3z M-9.4-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-8.2-92.6-8.7-93.1-9.4-93.1z"
|
||||
id="path491"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-9.4-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C-8.2-92.6-8.7-93.1-9.4-93.1z"
|
||||
id="path493" /></g><g
|
||||
display="inline"
|
||||
id="g495"><path
|
||||
d="M-0.6-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6S2-93.3,2-91.9S0.8-89.3-0.6-89.3z M-0.6-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C0.6-92.6,0.1-93.1-0.6-93.1z"
|
||||
id="path497"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-0.6-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C0.6-92.6,0.1-93.1-0.6-93.1z"
|
||||
id="path499" /></g><g
|
||||
display="inline"
|
||||
id="g501"><path
|
||||
d="M8.2-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S9.6-89.3,8.2-89.3z M8.2-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C9.4-92.6,8.9-93.1,8.2-93.1z"
|
||||
id="path503"
|
||||
fill="#EFDA48" /><path
|
||||
d="M8.2-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C9.4-92.6,8.9-93.1,8.2-93.1z"
|
||||
id="path505" /></g><g
|
||||
display="inline"
|
||||
id="g507"><path
|
||||
d="M17-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S18.4-89.3,17-89.3z M17-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C18.2-92.6,17.7-93.1,17-93.1z"
|
||||
id="path509"
|
||||
fill="#EFDA48" /><path
|
||||
d="M17-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C18.2-92.6,17.7-93.1,17-93.1z"
|
||||
id="path511" /></g><g
|
||||
display="inline"
|
||||
id="g513"><path
|
||||
d="M25.8-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S27.2-89.3,25.8-89.3z M25.8-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C27-92.6,26.5-93.1,25.8-93.1z"
|
||||
id="path515"
|
||||
fill="#EFDA48" /><path
|
||||
d="M25.8-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C27-92.6,26.5-93.1,25.8-93.1z"
|
||||
id="path517" /></g><g
|
||||
display="inline"
|
||||
id="g519"><path
|
||||
d="M34.6-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S36.1-89.3,34.6-89.3z M34.6-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C35.9-92.6,35.3-93.1,34.6-93.1z"
|
||||
id="path521"
|
||||
fill="#EFDA48" /><path
|
||||
d="M34.6-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C35.9-92.6,35.3-93.1,34.6-93.1z"
|
||||
id="path523" /></g><g
|
||||
display="inline"
|
||||
id="g525"><path
|
||||
d="M43.4-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S44.9-89.3,43.4-89.3z M43.4-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C44.7-92.6,44.1-93.1,43.4-93.1z"
|
||||
id="path527"
|
||||
fill="#EFDA48" /><path
|
||||
d="M43.4-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2C44.7-92.6,44.1-93.1,43.4-93.1z"
|
||||
id="path529" /></g><g
|
||||
display="inline"
|
||||
id="g531"><path
|
||||
d="M52.2-89.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S53.7-89.3,52.2-89.3z M52.2-93.1 c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C53.5-92.6,52.9-93.1,52.2-93.1z"
|
||||
id="path533"
|
||||
fill="#EFDA48" /><path
|
||||
d="M52.2-93.1c-0.7,0-1.2,0.6-1.2,1.2c0,0.7,0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2C53.5-92.6,52.9-93.1,52.2-93.1z"
|
||||
id="path535" /></g></g><g
|
||||
display="none"
|
||||
id="g537"><g
|
||||
display="inline"
|
||||
id="g539"><path
|
||||
d="M-53.5-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-52-80.4-53.5-80.4z M-53.5-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-52.8-84.3-53.5-84.3z"
|
||||
id="path541"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-53.5-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-52.8-84.3-53.5-84.3z"
|
||||
id="path543" /></g><g
|
||||
display="inline"
|
||||
id="g545"><path
|
||||
d="M-44.7-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-43.2-80.4-44.7-80.4z M-44.7-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-44-84.3-44.7-84.3z"
|
||||
id="path547"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-44.7-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-44-84.3-44.7-84.3z"
|
||||
id="path549" /></g><g
|
||||
display="inline"
|
||||
id="g551"><path
|
||||
d="M-35.9-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-34.4-80.4-35.9-80.4z M-35.9-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-35.2-84.3-35.9-84.3z"
|
||||
id="path553"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-35.9-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-35.2-84.3-35.9-84.3z"
|
||||
id="path555" /></g><g
|
||||
display="inline"
|
||||
id="g557"><path
|
||||
d="M-27-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-25.6-80.4-27-80.4z M-27-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-26.4-84.3-27-84.3z"
|
||||
id="path559"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-27-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-26.4-84.3-27-84.3z"
|
||||
id="path561" /></g><g
|
||||
display="inline"
|
||||
id="g563"><path
|
||||
d="M-18.2-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-16.8-80.4-18.2-80.4z M-18.2-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-17.6-84.3-18.2-84.3z"
|
||||
id="path565"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-18.2-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-17.6-84.3-18.2-84.3z"
|
||||
id="path567" /></g><g
|
||||
display="inline"
|
||||
id="g569"><path
|
||||
d="M-9.4-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-8-80.4-9.4-80.4z M-9.4-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-8.7-84.3-9.4-84.3z"
|
||||
id="path571"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-9.4-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-8.7-84.3-9.4-84.3z"
|
||||
id="path573" /></g><g
|
||||
display="inline"
|
||||
id="g575"><path
|
||||
d="M-0.6-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6S2-84.5,2-83.1S0.8-80.4-0.6-80.4z M-0.6-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S0.1-84.3-0.6-84.3z"
|
||||
id="path577"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-0.6-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S0.1-84.3-0.6-84.3z"
|
||||
id="path579" /></g><g
|
||||
display="inline"
|
||||
id="g581"><path
|
||||
d="M8.2-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S9.6-80.4,8.2-80.4z M8.2-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S8.9-84.3,8.2-84.3z"
|
||||
id="path583"
|
||||
fill="#EFDA48" /><path
|
||||
d="M8.2-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S8.9-84.3,8.2-84.3z"
|
||||
id="path585" /></g><g
|
||||
display="inline"
|
||||
id="g587"><path
|
||||
d="M17-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S18.4-80.4,17-80.4z M17-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S17.7-84.3,17-84.3z"
|
||||
id="path589"
|
||||
fill="#EFDA48" /><path
|
||||
d="M17-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S17.7-84.3,17-84.3z"
|
||||
id="path591" /></g><g
|
||||
display="inline"
|
||||
id="g593"><path
|
||||
d="M25.8-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S27.2-80.4,25.8-80.4z M25.8-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S26.5-84.3,25.8-84.3z"
|
||||
id="path595"
|
||||
fill="#EFDA48" /><path
|
||||
d="M25.8-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S26.5-84.3,25.8-84.3z"
|
||||
id="path597" /></g><g
|
||||
display="inline"
|
||||
id="g599"><path
|
||||
d="M34.6-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S36.1-80.4,34.6-80.4z M34.6-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S35.3-84.3,34.6-84.3z"
|
||||
id="path601"
|
||||
fill="#EFDA48" /><path
|
||||
d="M34.6-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S35.3-84.3,34.6-84.3z"
|
||||
id="path603" /></g><g
|
||||
display="inline"
|
||||
id="g605"><path
|
||||
d="M43.4-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S44.9-80.4,43.4-80.4z M43.4-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S44.1-84.3,43.4-84.3z"
|
||||
id="path607"
|
||||
fill="#EFDA48" /><path
|
||||
d="M43.4-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S44.1-84.3,43.4-84.3z"
|
||||
id="path609" /></g><g
|
||||
display="inline"
|
||||
id="g611"><path
|
||||
d="M52.2-80.4c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S53.7-80.4,52.2-80.4z M52.2-84.3 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S52.9-84.3,52.2-84.3z"
|
||||
id="path613"
|
||||
fill="#EFDA48" /><path
|
||||
d="M52.2-84.3c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S52.9-84.3,52.2-84.3z"
|
||||
id="path615" /></g></g><g
|
||||
display="none"
|
||||
id="g617"><g
|
||||
display="inline"
|
||||
id="g619"><path
|
||||
d="M-18.2-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6c1.4,0,2.6,1.2,2.6,2.6S-16.8-63.5-18.2-63.5z M-18.2-67.4c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-17.6-67.4-18.2-67.4z"
|
||||
id="path621"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-18.2-67.4c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S-17.6-67.4-18.2-67.4z"
|
||||
id="path623" /></g><g
|
||||
display="inline"
|
||||
id="g625"><path
|
||||
d="M-9.4-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S-8-63.5-9.4-63.5z M-9.4-67.4 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-8.7-67.4-9.4-67.4z"
|
||||
id="path627"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-9.4-67.4c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S-8.7-67.4-9.4-67.4z"
|
||||
id="path629" /></g><g
|
||||
display="inline"
|
||||
id="g631"><path
|
||||
d="M-0.6-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6S2-67.6,2-66.1S0.8-63.5-0.6-63.5z M-0.6-67.4 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S0.1-67.4-0.6-67.4z"
|
||||
id="path633"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-0.6-67.4c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S0.1-67.4-0.6-67.4z"
|
||||
id="path635" /></g><g
|
||||
display="inline"
|
||||
id="g637"><path
|
||||
d="M8.2-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S9.6-63.5,8.2-63.5z M8.2-67.4 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S8.9-67.4,8.2-67.4z"
|
||||
id="path639"
|
||||
fill="#EFDA48" /><path
|
||||
d="M8.2-67.4c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2s1.2-0.6,1.2-1.2S8.9-67.4,8.2-67.4z"
|
||||
id="path641" /></g><g
|
||||
display="inline"
|
||||
id="g643"><path
|
||||
d="M17-63.5c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S18.4-63.5,17-63.5z M17-67.4 c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S17.7-67.4,17-67.4z"
|
||||
id="path645"
|
||||
fill="#EFDA48" /><path
|
||||
d="M17-67.4c-0.7,0-1.2,0.6-1.2,1.2s0.6,1.2,1.2,1.2c0.7,0,1.2-0.6,1.2-1.2S17.7-67.4,17-67.4z"
|
||||
id="path647" /></g></g><g
|
||||
display="none"
|
||||
id="g649"><g
|
||||
display="inline"
|
||||
id="g651"><polygon
|
||||
points="97.1,28 93.5,31.6 97.1,35.2 100.7,31.6 "
|
||||
id="polygon653"
|
||||
fill="#EFDA48" /><path
|
||||
d="M96.2,30.8c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C97.5,30.3,96.7,30.3,96.2,30.8z"
|
||||
id="path655" /></g><g
|
||||
display="inline"
|
||||
id="g657"><path
|
||||
d="M104.1,28.6c-1,1-2.7,1-3.7,0s-1-2.7,0-3.7c1-1,2.7-1,3.7,0S105.1,27.5,104.1,28.6z M101.4,25.8 c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C102.7,25.3,101.9,25.3,101.4,25.8z"
|
||||
id="path659"
|
||||
fill="#EFDA48" /><path
|
||||
d="M101.4,25.8c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C102.7,25.3,101.9,25.3,101.4,25.8z"
|
||||
id="path661" /></g><g
|
||||
display="inline"
|
||||
id="g663"><path
|
||||
d="M108.8,24c-1,1-2.7,1-3.7,0s-1-2.7,0-3.7c1-1,2.7-1,3.7,0S109.8,23,108.8,24z M106,21.3 c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C107.3,20.8,106.5,20.8,106,21.3z"
|
||||
id="path665"
|
||||
fill="#EFDA48" /><path
|
||||
d="M106,21.3c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C107.3,20.8,106.5,20.8,106,21.3z"
|
||||
id="path667" /></g><g
|
||||
display="inline"
|
||||
id="g669"><path
|
||||
d="M114.1,18.7c-1,1-2.7,1-3.7,0s-1-2.7,0-3.7s2.7-1,3.7,0S115.1,17.7,114.1,18.7z M111.3,16 c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C112.6,15.5,111.8,15.5,111.3,16z"
|
||||
id="path671"
|
||||
fill="#EFDA48" /><path
|
||||
d="M111.3,16c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0c0.5-0.5,0.5-1.3,0-1.8C112.6,15.5,111.8,15.5,111.3,16z"
|
||||
id="path673" /></g></g><g
|
||||
display="none"
|
||||
id="g675"><g
|
||||
display="inline"
|
||||
id="g677"><polygon
|
||||
points="-109.3,17 -112.9,13.4 -116.6,17 -112.9,20.7 "
|
||||
id="polygon679"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-112.1,16.2c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0C-111.6,17.5-111.6,16.7-112.1,16.2z "
|
||||
id="path681" /></g><g
|
||||
display="inline"
|
||||
id="g683"><path
|
||||
d="M-109.9,24.1c-1-1-1-2.7,0-3.7c1-1,2.7-1,3.7,0s1,2.7,0,3.7S-108.9,25.1-109.9,24.1z M-107.2,21.3 c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0C-106.7,22.6-106.7,21.8-107.2,21.3z"
|
||||
id="path685"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-107.2,21.3c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0C-106.7,22.6-106.7,21.8-107.2,21.3z "
|
||||
id="path687" /></g><g
|
||||
display="inline"
|
||||
id="g689"><path
|
||||
d="M-105.3,28.7c-1-1-1-2.7,0-3.7s2.7-1,3.7,0s1,2.7,0,3.7S-104.3,29.8-105.3,28.7z M-102.6,26 c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0C-102.1,27.3-102.1,26.5-102.6,26z"
|
||||
id="path691"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-102.6,26c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8c0.5,0.5,1.3,0.5,1.8,0C-102.1,27.3-102.1,26.5-102.6,26z"
|
||||
id="path693" /></g><g
|
||||
display="inline"
|
||||
id="g695"><path
|
||||
d="M-100.1,34c-1-1-1-2.7,0-3.7c1-1,2.7-1,3.7,0c1,1,1,2.7,0,3.7S-99,35-100.1,34z M-97.3,31.3 c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8s1.3,0.5,1.8,0C-96.8,32.6-96.8,31.8-97.3,31.3z"
|
||||
id="path697"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-97.3,31.3c-0.5-0.5-1.3-0.5-1.8,0c-0.5,0.5-0.5,1.3,0,1.8s1.3,0.5,1.8,0C-96.8,32.6-96.8,31.8-97.3,31.3z"
|
||||
id="path699" /></g></g><g
|
||||
id="g701"><path
|
||||
d="M-133.5,17c-9.4,0-17.1-7.6-17.1-17.1s7.6-17.1,17.1-17.1s17.1,7.6,17.1,17.1S-124.1,17-133.5,17z M-133.5-8.2c-4.5,0-8.1,3.6-8.1,8.1S-138,8-133.5,8s8.1-3.6,8.1-8.1S-129-8.2-133.5-8.2z"
|
||||
id="path703"
|
||||
fill="#EFDA48" /><path
|
||||
d="M65.5,131.7c-9.4,0-17.1-7.6-17.1-17.1s7.6-17.1,17.1-17.1s17.1,7.6,17.1,17.1S74.9,131.7,65.5,131.7z M65.5,106.5c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1C73.6,110.1,70,106.5,65.5,106.5z"
|
||||
id="path705"
|
||||
fill="#EFDA48" /><path
|
||||
d="M131.2,17c-9.4,0-17.1-7.6-17.1-17.1s7.6-17.1,17.1-17.1s17.1,7.6,17.1,17.1S140.6,17,131.2,17z M131.2-8.2c-4.5,0-8.1,3.6-8.1,8.1s3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1S135.6-8.2,131.2-8.2z"
|
||||
id="path707"
|
||||
fill="#EFDA48" /><path
|
||||
d="M65.5-96.6c-9.4,0-17.1-7.6-17.1-17.1s7.6-17.1,17.1-17.1s17.1,7.6,17.1,17.1S74.9-96.6,65.5-96.6z M65.5-121.7c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1C73.6-118.1,70-121.7,65.5-121.7z"
|
||||
id="path709"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-66.5-97.6c-9.4,0-17.1-7.6-17.1-17.1s7.6-17.1,17.1-17.1s17.1,7.6,17.1,17.1S-57.1-97.6-66.5-97.6z M-66.5-122.7c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1c4.5,0,8.1-3.6,8.1-8.1C-58.4-119.1-62-122.7-66.5-122.7z"
|
||||
id="path711"
|
||||
fill="#EFDA48" /><path
|
||||
d="M-66.5,131.7c-9.4,0-17.1-7.6-17.1-17.1s7.6-17.1,17.1-17.1s17.1,7.6,17.1,17.1S-57.1,131.7-66.5,131.7z M-66.5,106.5c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1C-58.4,110.1-62,106.5-66.5,106.5z"
|
||||
id="path713"
|
||||
fill="#EFDA48" /></g></g><path
|
||||
d="M131.2-8.2c-4.5,0-8.1,3.6-8.1,8.1s3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1S135.6-8.2,131.2-8.2z"
|
||||
id="path715"
|
||||
fill="#FFFFFF" /><path
|
||||
d="M65.5,106.5c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1C73.6,110.1,70,106.5,65.5,106.5 z"
|
||||
id="path717"
|
||||
fill="#FFFFFF" /><path
|
||||
d="M-66.5,106.5c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1c4.5,0,8.1-3.6,8.1-8.1 C-58.4,110.1-62,106.5-66.5,106.5z"
|
||||
id="path719"
|
||||
fill="#FFFFFF" /><path
|
||||
d="M-133.5-8.1c-4.5,0-8.1,3.6-8.1,8.1s3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1S-129-8.1-133.5-8.1z"
|
||||
id="path721"
|
||||
fill="#FFFFFF" /><path
|
||||
d="M-66.5-122.7c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1c4.5,0,8.1-3.6,8.1-8.1 C-58.4-119.1-62-122.7-66.5-122.7z"
|
||||
id="path723"
|
||||
fill="#FFFFFF" /><path
|
||||
d="M65.5-121.7c-4.5,0-8.1,3.6-8.1,8.1c0,4.5,3.6,8.1,8.1,8.1s8.1-3.6,8.1-8.1C73.6-118.1,70-121.7,65.5-121.7 z"
|
||||
id="path725"
|
||||
fill="#FFFFFF" /></symbol><g
|
||||
id="Ebene_2"
|
||||
display="none"><image
|
||||
display="inline"
|
||||
overflow="visible"
|
||||
width="1024"
|
||||
height="898"
|
||||
xlink:href="file:///C:/Users/jhalleux/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/POK9Z6FJ/../../1607_Juli/Calliope/mini_mit_logo_1024.png"
|
||||
transform="matrix(0.3025 0 0 0.3025 17.8521 265.1405)"
|
||||
id="image728"
|
||||
sodipodi:absref="C:\Users\jhalleux\AppData\Local\Microsoft\Windows\INetCache\Content.Outlook\POK9Z6FJ\..\..\1607_Juli\Calliope\mini_mit_logo_1024.png" /></g><g
|
||||
id="Ebene_1" /><g
|
||||
id="Ebene_3" /><g
|
||||
id="Ebene_4" /><use
|
||||
style="overflow:visible"
|
||||
overflow="visible"
|
||||
transform="matrix(1.3709867,0,0,-1.3709867,170.13972,147.46239)"
|
||||
y="-112.9"
|
||||
x="-122.3"
|
||||
id="XMLID_11_"
|
||||
height="225.8"
|
||||
width="244.60001"
|
||||
xlink:href="#Mini_front" /><g
|
||||
id="Ebene_7"
|
||||
display="none"><polygon
|
||||
display="inline"
|
||||
points="717.6,154.6 604.5,154.6 604.5,54.2 589.7,54.2 589.7,154.6 476.6,154.6 476.6,169.4 589.7,169.4 589.7,221.4 604.5,221.4 604.5,169.4 717.6,169.4 "
|
||||
id="polygon928"
|
||||
fill="#E6007E" /><polygon
|
||||
display="inline"
|
||||
points="1145.9,152.4 1032.8,152.4 1032.8,52 1018,52 1018,152.4 904.9,152.4 904.9,167.2 1018,167.2 1018,219.2 1032.8,219.2 1032.8,167.2 1145.9,167.2 "
|
||||
id="polygon930"
|
||||
fill="#E6007E" /><polygon
|
||||
display="inline"
|
||||
points="1986.9,163.6 1873.8,163.6 1873.8,63.2 1859.1,63.2 1859.1,163.6 1746,163.6 1746,178.4 1859.1,178.4 1859.1,230.5 1873.8,230.5 1873.8,178.4 1986.9,178.4 "
|
||||
id="polygon932"
|
||||
fill="#E6007E" /><polygon
|
||||
display="inline"
|
||||
points="2403,163.6 2289.9,163.6 2289.9,63.2 2275.1,63.2 2275.1,163.6 2162,163.6 2162,178.4 2275.1,178.4 2275.1,230.5 2289.9,230.5 2289.9,178.4 2403,178.4 "
|
||||
id="polygon934"
|
||||
fill="#E6007E" /></g><g
|
||||
id="Ebene_6"
|
||||
display="none"><rect
|
||||
x="1859.1"
|
||||
y="432.2"
|
||||
display="inline"
|
||||
width="14.8"
|
||||
height="167.2"
|
||||
id="rect937"
|
||||
fill="#E6007E" /><rect
|
||||
x="1746"
|
||||
y="532.6"
|
||||
display="inline"
|
||||
width="240.9"
|
||||
height="14.8"
|
||||
id="rect939"
|
||||
fill="#E6007E" /></g></svg>
|
After Width: | Height: | Size: 55 KiB |
134
docs/static/calliope.svg
vendored
Normal file
After Width: | Height: | Size: 36 KiB |
1
docs/static/microbit.docs.svg
vendored
Before Width: | Height: | Size: 18 KiB |
BIN
docs/static/microbit.red.png
vendored
Before Width: | Height: | Size: 21 KiB |
BIN
docs/static/microbit.red.square.png
vendored
Before Width: | Height: | Size: 21 KiB |
1
docs/static/microbit.red.svg
vendored
Before Width: | Height: | Size: 18 KiB |
1
docs/static/microbit.simplified.svg
vendored
Before Width: | Height: | Size: 20 KiB |
@ -6,6 +6,24 @@
|
||||
*/
|
||||
//% color=#0078D7 weight=100
|
||||
namespace basic {
|
||||
/**
|
||||
* Sets the color on the build-in LED. Set to 0 to turn off.
|
||||
*/
|
||||
//% blockId=device_set_led_color block="set led to %color=color_id" icon="\uf00a"
|
||||
//% weight=50
|
||||
void setLedColor(int color) {
|
||||
if (!color) {
|
||||
uBit.rgb.off();
|
||||
return;
|
||||
}
|
||||
|
||||
int w = (color >> 24) & 0xFF;
|
||||
int r = (color >> 16) & 0xFF;
|
||||
int g = (color >> 8) & 0xFF;
|
||||
int b = (color) & 0xFF;
|
||||
|
||||
uBit.rgb.setColour(r,g,b,w);
|
||||
}
|
||||
|
||||
/**
|
||||
* Scroll a number on the screen. If the number fits on the screen (i.e. is a single digit), do not scroll.
|
||||
|
59
libs/core/basic.ts
Normal file
@ -0,0 +1,59 @@
|
||||
/**
|
||||
Well known colors
|
||||
*/
|
||||
enum Colors {
|
||||
//% blockIdentity=basic.color
|
||||
//% block=red
|
||||
Red = 0x00FF0000,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=orange
|
||||
Orange = 0x00FFA500,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=yellow
|
||||
Yellow = 0x00FFFF00,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=green
|
||||
Green = 0x0000FF00,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=blue
|
||||
Blue = 0x000000FF,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=indigo
|
||||
Indigo = 0x004b0082,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=violet
|
||||
Violet = 0x008a2be2,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=purple
|
||||
Purple = 0x00FF00FF,
|
||||
//% blockIdentity=basic.color
|
||||
//% block=white
|
||||
White = 0xFF00000
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides access to basic micro:bit functionality.
|
||||
*/
|
||||
//% color=#0078D7 weight=100
|
||||
namespace basic {
|
||||
/**
|
||||
* Converts the color name to a number
|
||||
*/
|
||||
//% blockId=color_id block="%c" shim=TD_ID
|
||||
export function color(c: Colors): number {
|
||||
return c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts red, green, blue channels into a RGB color
|
||||
* @param red value of the red channel between 0 and 255. eg: 255
|
||||
* @param green value of the green channel between 0 and 255. eg: 255
|
||||
* @param blue value of the blue channel between 0 and 255. eg: 255
|
||||
* @param white value of the white channel between 0 and 255. eg: 0
|
||||
*/
|
||||
//% weight=1
|
||||
//% blockId="core_rgb" block="red %red|green %green|blue %blue|white %white"
|
||||
export function rgbw(red: number, green: number, blue: number, white:number): number {
|
||||
return ((white & 0xFF) << 24) | ((red & 0xFF) << 16) | ((green & 0xFF) << 8) | (blue & 0xFF);
|
||||
}
|
||||
}
|
@ -34,15 +34,15 @@ enum EventBusSource {
|
||||
MICROBIT_ID_IO_P5_ = MICROBIT_ID_IO_P5,
|
||||
MICROBIT_ID_IO_P6_ = MICROBIT_ID_IO_P6,
|
||||
MICROBIT_ID_IO_P7_ = MICROBIT_ID_IO_P7,
|
||||
MICROBIT_ID_IO_P8_ = MICROBIT_ID_IO_P8,
|
||||
//MICROBIT_ID_IO_P8_ = MICROBIT_ID_IO_P8,
|
||||
MICROBIT_ID_IO_P9_ = MICROBIT_ID_IO_P9,
|
||||
MICROBIT_ID_IO_P10_ = MICROBIT_ID_IO_P10,
|
||||
MICROBIT_ID_IO_P11_ = MICROBIT_ID_IO_P11,
|
||||
MICROBIT_ID_IO_P12_ = MICROBIT_ID_IO_P12,
|
||||
MICROBIT_ID_IO_P13_ = MICROBIT_ID_IO_P13,
|
||||
MICROBIT_ID_IO_P14_ = MICROBIT_ID_IO_P14,
|
||||
MICROBIT_ID_IO_P15_ = MICROBIT_ID_IO_P15,
|
||||
MICROBIT_ID_IO_P16_ = MICROBIT_ID_IO_P16,
|
||||
//MICROBIT_ID_IO_P12_ = MICROBIT_ID_IO_P12,
|
||||
//MICROBIT_ID_IO_P13_ = MICROBIT_ID_IO_P13,
|
||||
//MICROBIT_ID_IO_P14_ = MICROBIT_ID_IO_P14,
|
||||
//MICROBIT_ID_IO_P15_ = MICROBIT_ID_IO_P15,
|
||||
//MICROBIT_ID_IO_P16_ = MICROBIT_ID_IO_P16,
|
||||
MICROBIT_ID_IO_P19_ = MICROBIT_ID_IO_P19,
|
||||
MICROBIT_ID_IO_P20_ = MICROBIT_ID_IO_P20,
|
||||
MES_DEVICE_INFO_ID_ = MES_DEVICE_INFO_ID,
|
||||
|
221
libs/core/dal.d.ts
vendored
@ -79,6 +79,7 @@ declare const enum DAL {
|
||||
MICROBIT_BLE_PAIRING_TIMEOUT = 90,
|
||||
MICROBIT_BLE_POWER_LEVELS = 8,
|
||||
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/MicroBitDFUService.h
|
||||
MICROBIT_DFU_OPCODE_START_DFU = 1,
|
||||
@ -88,6 +89,7 @@ declare const enum DAL {
|
||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitIOPinService.h
|
||||
MICROBIT_IO_PIN_SERVICE_PINCOUNT = 19,
|
||||
MICROBIT_IO_PIN_SERVICE_DATA_SIZE = 10,
|
||||
MICROBIT_PWM_PIN_SERVICE_DATA_SIZE = 2,
|
||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitLEDService.h
|
||||
MICROBIT_BLE_MAXIMUM_SCROLLTEXT = 20,
|
||||
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MicroBitMagnetometerService.h
|
||||
@ -131,15 +133,9 @@ declare const enum DAL {
|
||||
MICROBIT_ID_IO_P5 = 12,
|
||||
MICROBIT_ID_IO_P6 = 13,
|
||||
MICROBIT_ID_IO_P7 = 14,
|
||||
MICROBIT_ID_IO_P8 = 15,
|
||||
MICROBIT_ID_IO_P9 = 16,
|
||||
MICROBIT_ID_IO_P10 = 17,
|
||||
MICROBIT_ID_IO_P11 = 18,
|
||||
MICROBIT_ID_IO_P12 = 19,
|
||||
MICROBIT_ID_IO_P13 = 20,
|
||||
MICROBIT_ID_IO_P14 = 21,
|
||||
MICROBIT_ID_IO_P15 = 22,
|
||||
MICROBIT_ID_IO_P16 = 23,
|
||||
MICROBIT_ID_IO_P19 = 24,
|
||||
MICROBIT_ID_IO_P20 = 25,
|
||||
MICROBIT_ID_BUTTON_AB = 26,
|
||||
@ -149,6 +145,13 @@ declare const enum DAL {
|
||||
MICROBIT_ID_RADIO_DATA_READY = 30,
|
||||
MICROBIT_ID_MULTIBUTTON_ATTACH = 31,
|
||||
MICROBIT_ID_SERIAL = 32,
|
||||
CALLIOPE_ID_IO_P0 = 33,
|
||||
CALLIOPE_ID_IO_P7 = 34,
|
||||
CALLIOPE_ID_IO_P8 = 35,
|
||||
CALLIOPE_ID_IO_P9 = 36,
|
||||
CALLIOPE_ID_IO_P13 = 37,
|
||||
CALLIOPE_ID_IO_P14 = 38,
|
||||
CALLIOPE_ID_IO_P15 = 39,
|
||||
MICROBIT_ID_MESSAGE_BUS_LISTENER = 1021,
|
||||
MICROBIT_ID_NOTIFY_ONE = 1022,
|
||||
MICROBIT_ID_NOTIFY = 1023,
|
||||
@ -186,15 +189,214 @@ declare const enum DAL {
|
||||
MICROBIT_DISPLAY_EVT_FREE = 1,
|
||||
MICROBIT_SERIAL_EVT_TX_EMPTY = 2,
|
||||
MICROBIT_UART_S_EVT_TX_EMPTY = 3,
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/CalliopeRGB.h
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/CalliopeSoundMotor.h
|
||||
CALLIOPE_SM_DEFAULT_DUTY_M = 50,
|
||||
CALLIOPE_SM_DEFAULT_DUTY_S = 100,
|
||||
CALLIOPE_SM_DEFAULT_FREQUENCY_S = 4000,
|
||||
CALLIOPE_SM_DEFAULT_SILENT_MODE = 1,
|
||||
CALLIOPE_SM_PRESCALER_M = 2,
|
||||
CALLIOPE_SM_PRESCALER_S = 0,
|
||||
CALLIOPE_SM_PRESCALER_S_LF = 4,
|
||||
CALLIOPE_SM_PERIOD_M = 100,
|
||||
CALLIOPE_MIN_FREQUENCY_HZ_S_NP = 245,
|
||||
CALLIOPE_MIN_FREQUENCY_HZ_S = 20,
|
||||
CALLIOPE_MAX_FREQUENCY_HZ_S = 20000,
|
||||
CALLIOPE_BOARD_FREQUENCY = 16000000,
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/DynamicPwm.h
|
||||
NO_PWMS = 3,
|
||||
MICROBIT_DEFAULT_PWM_PERIOD = 20000,
|
||||
PWM_PERSISTENCE_TRANSIENT = 1,
|
||||
PWM_PERSISTENCE_PERSISTENT = 2,
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitAccelerometer.h
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitAccelerometer-bmx.h
|
||||
BMX055_ACC_WHOAMI = 0x00,
|
||||
BMX055_ACC_D_X_LSB = 0x02,
|
||||
BMX055_ACC_D_X_MSB = 0x03,
|
||||
BMX055_ACC_D_Y_LSB = 0x04,
|
||||
BMX055_ACC_D_Y_MSB = 0x05,
|
||||
BMX055_ACC_D_Z_LSB = 0x06,
|
||||
BMX055_ACC_D_Z_MSB = 0x07,
|
||||
BMX055_ACC_D_TEMP = 0x08,
|
||||
BMX055_ACC_INT_STATUS_0 = 0x09,
|
||||
BMX055_ACC_INT_STATUS_1 = 0x0A,
|
||||
BMX055_ACC_INT_STATUS_2 = 0x0B,
|
||||
BMX055_ACC_INT_STATUS_3 = 0x0C,
|
||||
BMX055_ACC_FIFO_STATUS = 0x0E,
|
||||
BMX055_ACC_PMU_RANGE = 0x0F,
|
||||
BMX055_ACC_PMU_BW = 0x10,
|
||||
BMX055_ACC_PMU_LPW = 0x11,
|
||||
BMX055_ACC_PMU_LOW_POWER = 0x12,
|
||||
BMX055_ACC_D_HBW = 0x13,
|
||||
BMX055_ACC_BGW_SOFTRESET = 0x14,
|
||||
BMX055_ACC_INT_EN_0 = 0x16,
|
||||
BMX055_ACC_INT_EN_1 = 0x17,
|
||||
BMX055_ACC_INT_EN_2 = 0x18,
|
||||
BMX055_ACC_INT_MAP_0 = 0x19,
|
||||
BMX055_ACC_INT_MAP_1 = 0x1A,
|
||||
BMX055_ACC_INT_MAP_2 = 0x1B,
|
||||
BMX055_ACC_INT_SRC = 0x1E,
|
||||
BMX055_ACC_INT_OUT_CTRL = 0x20,
|
||||
BMX055_ACC_INT_RST_LATCH = 0x21,
|
||||
BMX055_ACC_INT_0 = 0x22,
|
||||
BMX055_ACC_INT_1 = 0x23,
|
||||
BMX055_ACC_INT_2 = 0x24,
|
||||
BMX055_ACC_INT_3 = 0x25,
|
||||
BMX055_ACC_INT_4 = 0x26,
|
||||
BMX055_ACC_INT_5 = 0x27,
|
||||
BMX055_ACC_INT_6 = 0x28,
|
||||
BMX055_ACC_INT_7 = 0x29,
|
||||
BMX055_ACC_INT_8 = 0x2A,
|
||||
BMX055_ACC_INT_9 = 0x2B,
|
||||
BMX055_ACC_INT_A = 0x2C,
|
||||
BMX055_ACC_INT_B = 0x2D,
|
||||
BMX055_ACC_INT_C = 0x2E,
|
||||
BMX055_ACC_INT_D = 0x2F,
|
||||
BMX055_ACC_FIFO_CONFIG_0 = 0x30,
|
||||
BMX055_ACC_PMU_SELF_TEST = 0x32,
|
||||
BMX055_ACC_TRIM_NVM_CTRL = 0x33,
|
||||
BMX055_ACC_BGW_SPI3_WDT = 0x34,
|
||||
BMX055_ACC_OFC_CTRL = 0x36,
|
||||
BMX055_ACC_OFC_SETTING = 0x37,
|
||||
BMX055_ACC_OFC_OFFSET_X = 0x38,
|
||||
BMX055_ACC_OFC_OFFSET_Y = 0x39,
|
||||
BMX055_ACC_OFC_OFFSET_Z = 0x3A,
|
||||
BMX055_ACC_TRIM_GPO = 0x3B,
|
||||
BMX055_ACC_TRIM_GP1 = 0x3C,
|
||||
BMX055_ACC_FIFO_CONFIG_1 = 0x3E,
|
||||
BMX055_ACC_FIFO_DATA = 0x3F,
|
||||
BMX055_GYRO_WHOAMI = 0x00,
|
||||
BMX055_GYRO_RATE_X_LSB = 0x02,
|
||||
BMX055_GYRO_RATE_X_MSB = 0x03,
|
||||
BMX055_GYRO_RATE_Y_LSB = 0x04,
|
||||
BMX055_GYRO_RATE_Y_MSB = 0x05,
|
||||
BMX055_GYRO_RATE_Z_LSB = 0x06,
|
||||
BMX055_GYRO_RATE_Z_MSB = 0x07,
|
||||
BMX055_GYRO_INT_STATUS_0 = 0x09,
|
||||
BMX055_GYRO_INT_STATUS_1 = 0x0A,
|
||||
BMX055_GYRO_INT_STATUS_2 = 0x0B,
|
||||
BMX055_GYRO_INT_STATUS_3 = 0x0C,
|
||||
BMX055_GYRO_FIFO_STATUS = 0x0E,
|
||||
BMX055_GYRO_RANGE = 0x0F,
|
||||
BMX055_GYRO_BW = 0x10,
|
||||
BMX055_GYRO_LPM1 = 0x11,
|
||||
BMX055_GYRO_LPM2 = 0x12,
|
||||
BMX055_GYRO_RATE_HBW = 0x13,
|
||||
BMX055_GYRO_BGW_SOFTRESET = 0x14,
|
||||
BMX055_GYRO_INT_EN_0 = 0x15,
|
||||
BMX055_GYRO_INT_EN_1 = 0x16,
|
||||
BMX055_GYRO_INT_MAP_0 = 0x17,
|
||||
BMX055_GYRO_INT_MAP_1 = 0x18,
|
||||
BMX055_GYRO_INT_MAP_2 = 0x19,
|
||||
BMX055_GYRO_INT_SRC_1 = 0x1A,
|
||||
BMX055_GYRO_INT_SRC_2 = 0x1B,
|
||||
BMX055_GYRO_INT_SRC_3 = 0x1C,
|
||||
BMX055_GYRO_FIFO_EN = 0x1E,
|
||||
BMX055_GYRO_INT_RST_LATCH = 0x21,
|
||||
BMX055_GYRO_HIGH_TH_X = 0x22,
|
||||
BMX055_GYRO_HIGH_DUR_X = 0x23,
|
||||
BMX055_GYRO_HIGH_TH_Y = 0x24,
|
||||
BMX055_GYRO_HIGH_DUR_Y = 0x25,
|
||||
BMX055_GYRO_HIGH_TH_Z = 0x26,
|
||||
BMX055_GYRO_HIGH_DUR_Z = 0x27,
|
||||
BMX055_GYRO_SOC = 0x31,
|
||||
BMX055_GYRO_A_FOC = 0x32,
|
||||
BMX055_GYRO_TRIM_NVM_CTRL = 0x33,
|
||||
BMX055_GYRO_BGW_SPI3_WDT = 0x34,
|
||||
BMX055_GYRO_OFC1 = 0x36,
|
||||
BMX055_GYRO_OFC2 = 0x37,
|
||||
BMX055_GYRO_OFC3 = 0x38,
|
||||
BMX055_GYRO_OFC4 = 0x39,
|
||||
BMX055_GYRO_TRIM_GP0 = 0x3A,
|
||||
BMX055_GYRO_TRIM_GP1 = 0x3B,
|
||||
BMX055_GYRO_BIST = 0x3C,
|
||||
BMX055_GYRO_FIFO_CONFIG_0 = 0x3D,
|
||||
BMX055_GYRO_FIFO_CONFIG_1 = 0x3E,
|
||||
BMX055_MAG_WHOAMI = 0x40,
|
||||
BMX055_MAG_Reserved = 0x41,
|
||||
BMX055_MAG_XOUT_LSB = 0x42,
|
||||
BMX055_MAG_XOUT_MSB = 0x43,
|
||||
BMX055_MAG_YOUT_LSB = 0x44,
|
||||
BMX055_MAG_YOUT_MSB = 0x45,
|
||||
BMX055_MAG_ZOUT_LSB = 0x46,
|
||||
BMX055_MAG_ZOUT_MSB = 0x47,
|
||||
BMX055_MAG_ROUT_LSB = 0x48,
|
||||
BMX055_MAG_ROUT_MSB = 0x49,
|
||||
BMX055_MAG_INT_STATUS = 0x4A,
|
||||
BMX055_MAG_PWR_CNTL1 = 0x4B,
|
||||
BMX055_MAG_PWR_CNTL2 = 0x4C,
|
||||
BMX055_MAG_INT_EN_1 = 0x4D,
|
||||
BMX055_MAG_INT_EN_2 = 0x4E,
|
||||
BMX055_MAG_LOW_THS = 0x4F,
|
||||
BMX055_MAG_HIGH_THS = 0x50,
|
||||
BMX055_MAG_REP_XY = 0x51,
|
||||
BMX055_MAG_REP_Z = 0x52,
|
||||
BMM050_DIG_X1 = 0x5D,
|
||||
BMM050_DIG_Y1 = 0x5E,
|
||||
BMM050_DIG_Z4_LSB = 0x62,
|
||||
BMM050_DIG_Z4_MSB = 0x63,
|
||||
BMM050_DIG_X2 = 0x64,
|
||||
BMM050_DIG_Y2 = 0x65,
|
||||
BMM050_DIG_Z2_LSB = 0x68,
|
||||
BMM050_DIG_Z2_MSB = 0x69,
|
||||
BMM050_DIG_Z1_LSB = 0x6A,
|
||||
BMM050_DIG_Z1_MSB = 0x6B,
|
||||
BMM050_DIG_XYZ1_LSB = 0x6C,
|
||||
BMM050_DIG_XYZ1_MSB = 0x6D,
|
||||
BMM050_DIG_Z3_LSB = 0x6E,
|
||||
BMM050_DIG_Z3_MSB = 0x6F,
|
||||
BMM050_DIG_XY2 = 0x70,
|
||||
BMM050_DIG_XY1 = 0x71,
|
||||
BMX055_ACC_ADDRESS = 0x18,
|
||||
BMX055_GYRO_ADDRESS = 0x68,
|
||||
BMX055_MAG_ADDRESS = 0x10,
|
||||
MS5637_ADDRESS = 0x76,
|
||||
AFS_2G = 0x03,
|
||||
AFS_4G = 0x05,
|
||||
AFS_8G = 0x08,
|
||||
AFS_16G = 0x0C,
|
||||
ABW_8Hz = 0,
|
||||
ABW_16Hz = 1,
|
||||
ABW_31Hz = 2,
|
||||
ABW_63Hz = 3,
|
||||
ABW_125Hz = 4,
|
||||
ABW_250Hz = 5,
|
||||
ABW_500Hz = 6,
|
||||
ABW_100Hz = 7,
|
||||
GFS_2000DPS = 0,
|
||||
GFS_1000DPS = 1,
|
||||
GFS_500DPS = 2,
|
||||
GFS_250DPS = 3,
|
||||
GFS_125DPS = 4,
|
||||
G_2000Hz523Hz = 0,
|
||||
G_2000Hz230Hz = 1,
|
||||
G_1000Hz116Hz = 2,
|
||||
G_400Hz47Hz = 3,
|
||||
G_200Hz23Hz = 4,
|
||||
G_100Hz12Hz = 5,
|
||||
G_200Hz64Hz = 6,
|
||||
G_100Hz32Hz = 7,
|
||||
MODR_10Hz = 0,
|
||||
MODR_2Hz = 1,
|
||||
MODR_6Hz = 2,
|
||||
MODR_8Hz = 3,
|
||||
MODR_15Hz = 4,
|
||||
MODR_20Hz = 5,
|
||||
MODR_25Hz = 6,
|
||||
MODR_30Hz = 7,
|
||||
lowPower = 0,
|
||||
Regular = 1,
|
||||
enhancedRegular = 2,
|
||||
highAccuracy = 3,
|
||||
ADC_256 = 0x00,
|
||||
ADC_512 = 0x02,
|
||||
ADC_1024 = 0x04,
|
||||
ADC_2048 = 0x06,
|
||||
ADC_4096 = 0x08,
|
||||
ADC_8192 = 0x0A,
|
||||
ADC_D1 = 0x40,
|
||||
ADC_D2 = 0x50,
|
||||
MICROBIT_ACCEL_PITCH_ROLL_VALID = 0x02,
|
||||
MICROBIT_ACCEL_ADDED_TO_IDLE = 0x04,
|
||||
MMA8653_DEFAULT_ADDR = 0x3A,
|
||||
MMA8653_STATUS = 0x00,
|
||||
MMA8653_OUT_X_MSB = 0x01,
|
||||
MMA8653_WHOAMI = 0x0D,
|
||||
@ -231,6 +433,7 @@ declare const enum DAL {
|
||||
MICROBIT_ACCELEROMETER_SHAKE_DAMPING = 10,
|
||||
MICROBIT_ACCELEROMETER_SHAKE_RTX = 30,
|
||||
MICROBIT_ACCELEROMETER_SHAKE_COUNT_THRESHOLD = 4,
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitAccelerometer.h
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitButton.h
|
||||
MICROBIT_BUTTON_EVT_DOWN = 1,
|
||||
MICROBIT_BUTTON_EVT_UP = 2,
|
||||
@ -335,6 +538,7 @@ declare const enum DAL {
|
||||
IO_STATUS_TOUCH_IN = 0x10,
|
||||
IO_STATUS_EVENT_ON_EDGE = 0x20,
|
||||
IO_STATUS_EVENT_PULSE_ON_EDGE = 0x40,
|
||||
IO_STATUS_EVENTBUS_ENABLED = 0x80,
|
||||
MICROBIT_PIN_MAX_OUTPUT = 1023,
|
||||
MICROBIT_PIN_MAX_SERVO_RANGE = 180,
|
||||
MICROBIT_PIN_DEFAULT_SERVO_RANGE = 2000,
|
||||
@ -349,6 +553,7 @@ declare const enum DAL {
|
||||
MICROBIT_PIN_EVT_PULSE_LO = 5,
|
||||
PIN_CAPABILITY_DIGITAL = 0x01,
|
||||
PIN_CAPABILITY_ANALOG = 0x02,
|
||||
PIN_CAPABILITY_TOUCH = 0x04,
|
||||
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitRadio.h
|
||||
MICROBIT_RADIO_STATUS_INITIALISED = 0x0001,
|
||||
MICROBIT_RADIO_BASE_ADDRESS = 0x75626974,
|
||||
|
38
libs/core/enums.d.ts
vendored
@ -151,15 +151,15 @@ declare namespace input {
|
||||
MICROBIT_ID_IO_P5 = 12, // MICROBIT_ID_IO_P5
|
||||
MICROBIT_ID_IO_P6 = 13, // MICROBIT_ID_IO_P6
|
||||
MICROBIT_ID_IO_P7 = 14, // MICROBIT_ID_IO_P7
|
||||
MICROBIT_ID_IO_P8 = 15, // MICROBIT_ID_IO_P8
|
||||
//MICROBIT_ID_IO_P8_ = MICROBIT_ID_IO_P8,
|
||||
MICROBIT_ID_IO_P9 = 16, // MICROBIT_ID_IO_P9
|
||||
MICROBIT_ID_IO_P10 = 17, // MICROBIT_ID_IO_P10
|
||||
MICROBIT_ID_IO_P11 = 18, // MICROBIT_ID_IO_P11
|
||||
MICROBIT_ID_IO_P12 = 19, // MICROBIT_ID_IO_P12
|
||||
MICROBIT_ID_IO_P13 = 20, // MICROBIT_ID_IO_P13
|
||||
MICROBIT_ID_IO_P14 = 21, // MICROBIT_ID_IO_P14
|
||||
MICROBIT_ID_IO_P15 = 22, // MICROBIT_ID_IO_P15
|
||||
MICROBIT_ID_IO_P16 = 23, // MICROBIT_ID_IO_P16
|
||||
//MICROBIT_ID_IO_P12_ = MICROBIT_ID_IO_P12,
|
||||
//MICROBIT_ID_IO_P13_ = MICROBIT_ID_IO_P13,
|
||||
//MICROBIT_ID_IO_P14_ = MICROBIT_ID_IO_P14,
|
||||
//MICROBIT_ID_IO_P15_ = MICROBIT_ID_IO_P15,
|
||||
//MICROBIT_ID_IO_P16_ = MICROBIT_ID_IO_P16,
|
||||
MICROBIT_ID_IO_P19 = 24, // MICROBIT_ID_IO_P19
|
||||
MICROBIT_ID_IO_P20 = 25, // MICROBIT_ID_IO_P20
|
||||
MES_DEVICE_INFO_ID = 1103, // MES_DEVICE_INFO_ID
|
||||
@ -238,6 +238,8 @@ declare namespace control {
|
||||
// TODO DISPLAY_MODE_BLACK_AND_WHITE_LIGHT_SENSE
|
||||
}
|
||||
declare namespace led {
|
||||
}
|
||||
declare namespace motors {
|
||||
}
|
||||
|
||||
|
||||
@ -250,15 +252,15 @@ declare namespace led {
|
||||
P5 = 12, // MICROBIT_ID_IO_P5
|
||||
P6 = 13, // MICROBIT_ID_IO_P6
|
||||
P7 = 14, // MICROBIT_ID_IO_P7
|
||||
P8 = 15, // MICROBIT_ID_IO_P8
|
||||
//P8 = MICROBIT_ID_IO_P8,
|
||||
P9 = 16, // MICROBIT_ID_IO_P9
|
||||
P10 = 17, // MICROBIT_ID_IO_P10
|
||||
P11 = 18, // MICROBIT_ID_IO_P11
|
||||
P12 = 19, // MICROBIT_ID_IO_P12
|
||||
P13 = 20, // MICROBIT_ID_IO_P13
|
||||
P14 = 21, // MICROBIT_ID_IO_P14
|
||||
P15 = 22, // MICROBIT_ID_IO_P15
|
||||
P16 = 23, // MICROBIT_ID_IO_P16
|
||||
//P12 = MICROBIT_ID_IO_P12,
|
||||
//P13 = MICROBIT_ID_IO_P13,
|
||||
//P14 = MICROBIT_ID_IO_P14,
|
||||
//P15 = MICROBIT_ID_IO_P15,
|
||||
//P16 = MICROBIT_ID_IO_P16,
|
||||
P19 = 24, // MICROBIT_ID_IO_P19
|
||||
P20 = 25, // MICROBIT_ID_IO_P20
|
||||
}
|
||||
@ -294,12 +296,12 @@ declare namespace led {
|
||||
P0 = 7, // MICROBIT_ID_IO_P0
|
||||
P1 = 8, // MICROBIT_ID_IO_P1
|
||||
P2 = 9, // MICROBIT_ID_IO_P2
|
||||
P8 = 15, // MICROBIT_ID_IO_P8
|
||||
P12 = 19, // MICROBIT_ID_IO_P12
|
||||
P13 = 20, // MICROBIT_ID_IO_P13
|
||||
P14 = 21, // MICROBIT_ID_IO_P14
|
||||
P15 = 22, // MICROBIT_ID_IO_P15
|
||||
P16 = 23, // MICROBIT_ID_IO_P16
|
||||
//P8 = MICROBIT_ID_IO_P8,
|
||||
//P12 = MICROBIT_ID_IO_P12,
|
||||
//P13 = MICROBIT_ID_IO_P13,
|
||||
//P14 = MICROBIT_ID_IO_P14,
|
||||
//P15 = MICROBIT_ID_IO_P15,
|
||||
//P16 = MICROBIT_ID_IO_P16
|
||||
}
|
||||
|
||||
|
||||
|
17
libs/core/motors.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
#include "ksbit.h"
|
||||
|
||||
/**
|
||||
* Blocks to control the onboard motors
|
||||
*/
|
||||
//% weight=30
|
||||
namespace motors {
|
||||
/**
|
||||
* Controls the power sent to a single motor
|
||||
* @param power %percent of power sent to the motor. Negative power goes backward. eg: 50
|
||||
*/
|
||||
//% blockId=motor_on block="motor on at %percent|%"
|
||||
//% parts=dcmotor
|
||||
void motorOn(int power) {
|
||||
uBit.soundmotor.Motor_On(power);
|
||||
}
|
||||
}
|
12
libs/core/parts/dcmotor.svg
Normal file
@ -0,0 +1,12 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="488" height="836" viewBox="0 0 488 836">
|
||||
<g transform="translate(0 -216.362)">
|
||||
<rect width="34.286" height="122.532" x="226.365" y="929.711" fill="#ccc" ry="16.162"/>
|
||||
<path fill="gray" d="M23.23 359.456A23.233 23.233 0 0 0 0 382.686v511.428a23.233 23.233 0 0 0 23.23 23.23h38.2v24.117a23.233 23.233 0 0 0 23.23 23.234h317.143a23.233 23.233 0 0 0 23.23-23.23v-24.118h38.197a23.233 23.233 0 0 0 23.23-23.23v-511.43a23.233 23.233 0 0 0-23.23-23.23h-440z"/>
|
||||
<path fill="#333" d="M23.23 357.82C10.4 357.82.002 368.22 0 381.05v511.427c.002 12.83 10.4 23.23 23.23 23.23h38.2v24.118c2.08 25.815 20.27 23.748 33.1 23.75 0 0-11.976-16.96-12.05-40.988-.057-17.923-9.03-12.008-8.176-39.76 2.743-237.84-2.423-390.158.37-522.93z"/>
|
||||
<path fill="#fd5" d="M23.508 286.934A23.51 18.415 0 0 0 0 305.347v69.375a23.51 18.415 0 0 0 23.508 18.413h440a23.51 18.415 0 0 0 23.508-18.413v-69.375a23.51 18.415 0 0 0-23.508-18.413h-440z"/>
|
||||
<path fill="#c87137" d="M77.156 216.362c-5.698 0-10.283 4.588-10.283 10.286v94.03c0 5.7 4.585 10.286 10.283 10.286h24.98c5.697 0 10.284-4.587 10.284-10.285v-94.034c0-5.698-4.587-10.286-10.285-10.286h-24.98zm10.18 10.37h4.018c5.095 0 9.197 4.103 9.197 9.2v28.032c0 5.096-4.1 9.197-9.194 9.197h-4.018c-5.096 0-9.2-4.1-9.2-9.194V235.93c0-5.095 4.104-9.197 9.2-9.197zm288.814-10.37c-5.697 0-10.283 4.588-10.283 10.286v94.03c0 5.7 4.586 10.286 10.283 10.286h24.98c5.697 0 10.284-4.587 10.284-10.285v-94.034c0-5.698-4.587-10.286-10.285-10.286h-24.98zm11.045 11.885h4.02c5.095 0 9.197 4.102 9.197 9.197v28.032c0 5.095-4.102 9.2-9.197 9.2h-4.02c-5.095 0-9.197-4.105-9.197-9.2v-28.032c0-5.095 4.102-9.197 9.197-9.197z"/>
|
||||
<path fill="#fc0" d="M170.587 306.637a17.633 17.633 0 0 0-17.63 17.63v67.587a17.633 17.633 0 0 0 17.63 17.63h34.852v20.57c0 15.162 12.756 27.915 27.913 27.915h24.976c15.157 0 27.916-12.756 27.916-27.917v-20.57h38.612a17.633 17.633 0 0 0 17.63-17.63v-67.587a17.633 17.633 0 0 0-17.63-17.63H170.585z"/>
|
||||
<rect width="126.356" height="29.385" x="272.569" y="914.707" fill="#b3b3b3" ry="14.693"/>
|
||||
<rect width="169.991" height="457.913" x="300.928" y="430.348" fill="#b3b3b3" ry="27.415"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
@ -9,15 +9,15 @@ enum class DigitalPin {
|
||||
P5 = MICROBIT_ID_IO_P5,
|
||||
P6 = MICROBIT_ID_IO_P6,
|
||||
P7 = MICROBIT_ID_IO_P7,
|
||||
P8 = MICROBIT_ID_IO_P8,
|
||||
//P8 = MICROBIT_ID_IO_P8,
|
||||
P9 = MICROBIT_ID_IO_P9,
|
||||
P10 = MICROBIT_ID_IO_P10,
|
||||
P11 = MICROBIT_ID_IO_P11,
|
||||
P12 = MICROBIT_ID_IO_P12,
|
||||
P13 = MICROBIT_ID_IO_P13,
|
||||
P14 = MICROBIT_ID_IO_P14,
|
||||
P15 = MICROBIT_ID_IO_P15,
|
||||
P16 = MICROBIT_ID_IO_P16,
|
||||
//P12 = MICROBIT_ID_IO_P12,
|
||||
//P13 = MICROBIT_ID_IO_P13,
|
||||
//P14 = MICROBIT_ID_IO_P14,
|
||||
//P15 = MICROBIT_ID_IO_P15,
|
||||
//P16 = MICROBIT_ID_IO_P16,
|
||||
P19 = MICROBIT_ID_IO_P19,
|
||||
P20 = MICROBIT_ID_IO_P20,
|
||||
};
|
||||
@ -55,15 +55,15 @@ MicroBitPin *getPin(int id) {
|
||||
case MICROBIT_ID_IO_P5: return &uBit.io.P5;
|
||||
case MICROBIT_ID_IO_P6: return &uBit.io.P6;
|
||||
case MICROBIT_ID_IO_P7: return &uBit.io.P7;
|
||||
case MICROBIT_ID_IO_P8: return &uBit.io.P8;
|
||||
//case MICROBIT_ID_IO_P8: return &uBit.io.P8;
|
||||
case MICROBIT_ID_IO_P9: return &uBit.io.P9;
|
||||
case MICROBIT_ID_IO_P10: return &uBit.io.P10;
|
||||
case MICROBIT_ID_IO_P11: return &uBit.io.P11;
|
||||
case MICROBIT_ID_IO_P12: return &uBit.io.P12;
|
||||
case MICROBIT_ID_IO_P13: return &uBit.io.P13;
|
||||
case MICROBIT_ID_IO_P14: return &uBit.io.P14;
|
||||
case MICROBIT_ID_IO_P15: return &uBit.io.P15;
|
||||
case MICROBIT_ID_IO_P16: return &uBit.io.P16;
|
||||
//case MICROBIT_ID_IO_P12: return &uBit.io.P12;
|
||||
//case MICROBIT_ID_IO_P13: return &uBit.io.P13;
|
||||
//case MICROBIT_ID_IO_P14: return &uBit.io.P14;
|
||||
//case MICROBIT_ID_IO_P15: return &uBit.io.P15;
|
||||
//case MICROBIT_ID_IO_P16: return &uBit.io.P16;
|
||||
case MICROBIT_ID_IO_P19: return &uBit.io.P19;
|
||||
case MICROBIT_ID_IO_P20: return &uBit.io.P20;
|
||||
default: return NULL;
|
||||
|
@ -14,6 +14,7 @@
|
||||
"helpers.ts",
|
||||
"images.cpp",
|
||||
"basic.cpp",
|
||||
"basic.ts",
|
||||
"input.cpp",
|
||||
"input.ts",
|
||||
"control.ts",
|
||||
@ -21,6 +22,7 @@
|
||||
"game.ts",
|
||||
"led.cpp",
|
||||
"led.ts",
|
||||
"motors.cpp",
|
||||
"music.ts",
|
||||
"pins.cpp",
|
||||
"pins.ts",
|
||||
@ -30,6 +32,7 @@
|
||||
"pxtparts.json",
|
||||
"parts/speaker.svg",
|
||||
"parts/headphone.svg",
|
||||
"parts/dcmotor.svg",
|
||||
"_locales/fr/microbit-jsdoc-strings.json"
|
||||
],
|
||||
"public": true,
|
||||
|
@ -144,5 +144,26 @@
|
||||
{"part": true, "pinIndices": [0]},
|
||||
{"pinIndices": [1]}
|
||||
]
|
||||
}
|
||||
},
|
||||
"dcmotor": {
|
||||
"numberOfPins": 2,
|
||||
"visual": {
|
||||
"image": "parts/dcmotor.svg",
|
||||
"width": 488,
|
||||
"height": 836,
|
||||
"pinDistance": 65,
|
||||
"pinLocations": [
|
||||
{"x": 89, "y": 48},
|
||||
{"x": 395, "y": 48} ]
|
||||
},
|
||||
"pinDefinitions": [
|
||||
{ "target": "P1", "style": "croc", "orientation": "-Z"},
|
||||
{ "target": "ground", "style": "croc", "orientation": "-Z"}
|
||||
],
|
||||
"instantiation": {"kind": "singleton"},
|
||||
"assembly": [
|
||||
{"part": true, "pinIndices": [0]},
|
||||
{"pinIndices": [1]}
|
||||
]
|
||||
}
|
||||
}
|
@ -4,12 +4,12 @@ enum class SerialPin {
|
||||
P0 = MICROBIT_ID_IO_P0,
|
||||
P1 = MICROBIT_ID_IO_P1,
|
||||
P2 = MICROBIT_ID_IO_P2,
|
||||
P8 = MICROBIT_ID_IO_P8,
|
||||
P12 = MICROBIT_ID_IO_P12,
|
||||
P13 = MICROBIT_ID_IO_P13,
|
||||
P14 = MICROBIT_ID_IO_P14,
|
||||
P15 = MICROBIT_ID_IO_P15,
|
||||
P16 = MICROBIT_ID_IO_P16
|
||||
//P8 = MICROBIT_ID_IO_P8,
|
||||
//P12 = MICROBIT_ID_IO_P12,
|
||||
//P13 = MICROBIT_ID_IO_P13,
|
||||
//P14 = MICROBIT_ID_IO_P14,
|
||||
//P15 = MICROBIT_ID_IO_P15,
|
||||
//P16 = MICROBIT_ID_IO_P16
|
||||
};
|
||||
|
||||
enum class BaudRate {
|
||||
|
23
libs/core/shims.d.ts
vendored
@ -129,6 +129,13 @@ declare interface Image {
|
||||
//% color=#0078D7 weight=100
|
||||
declare namespace basic {
|
||||
|
||||
/**
|
||||
* Sets the color on the build-in LED. Set to 0 to turn off.
|
||||
*/
|
||||
//% blockId=device_set_led_color block="set led to %color=color_id" icon="\uf00a"
|
||||
//% weight=50 shim=basic::setLedColor
|
||||
function setLedColor(color: number): void;
|
||||
|
||||
/**
|
||||
* Scroll a number on the screen. If the number fits on the screen (i.e. is a single digit), do not scroll.
|
||||
* @param interval speed of scroll; eg: 150, 100, 200, -100
|
||||
@ -501,6 +508,22 @@ declare namespace led {
|
||||
//% parts="ledmatrix" shim=led::screenshot
|
||||
function screenshot(): Image;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Blocks to control the onboard motors
|
||||
*/
|
||||
//% weight=30
|
||||
declare namespace motors {
|
||||
|
||||
/**
|
||||
* Controls the power sent to a single motor
|
||||
* @param power %percent of power sent to the motor. Negative power goes backward. eg: 50
|
||||
*/
|
||||
//% blockId=motor_on block="motor on at %percent|%"
|
||||
//% parts=dcmotor shim=motors::motorOn
|
||||
function motorOn(power: number): void;
|
||||
}
|
||||
declare namespace pins {
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,15 @@
|
||||
basic.plotLeds(`
|
||||
# # . # #
|
||||
. . # . .
|
||||
. . # . .
|
||||
# . . . #
|
||||
. # # # .
|
||||
`);
|
||||
basic.setLedColor(Colors.Blue)
|
||||
basic.pause(500)
|
||||
basic.setLedColor(Colors.Red)
|
||||
basic.pause(500)
|
||||
basic.setLedColor(Colors.Green)
|
||||
basic.pause(500)
|
||||
basic.setLedColor(0);
|
||||
basic.setLedColor(Colors.Violet)
|
||||
basic.pause(100)
|
||||
led.plot(0, 0)
|
||||
basic.pause(1000);
|
||||
basic.forever(() => {
|
||||
const a = input.acceleration(Dimension.X);
|
||||
led.plotBarGraph(a, 1023)
|
||||
})
|
||||
|
@ -6,7 +6,6 @@
|
||||
],
|
||||
"public": true,
|
||||
"dependencies": {
|
||||
"core": "file:../core",
|
||||
"radio": "file:../radio"
|
||||
"core": "file:../core"
|
||||
}
|
||||
}
|
||||
|
12
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "pxt-microbit",
|
||||
"version": "0.4.44",
|
||||
"description": "micro:bit target for PXT",
|
||||
"name": "pxt-calliope",
|
||||
"version": "0.5.7",
|
||||
"description": "calliope target for PXT",
|
||||
"keywords": [
|
||||
"JavaScript",
|
||||
"education",
|
||||
@ -9,11 +9,11 @@
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/Microsoft/pxt-microbit.git"
|
||||
"url": "git+https://github.com/Microsoft/pxt-calliope.git"
|
||||
},
|
||||
"author": "",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/Microsoft/pxt-microbit#readme",
|
||||
"homepage": "https://github.com/Microsoft/pxt-calliope#readme",
|
||||
"files": [
|
||||
"README.md",
|
||||
"pxtarget.json",
|
||||
@ -29,6 +29,6 @@
|
||||
"typescript": "^1.8.7"
|
||||
},
|
||||
"dependencies": {
|
||||
"pxt-core": "0.4.52"
|
||||
"pxt-core": "0.4.54"
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "microbit",
|
||||
"nickname": "microbit",
|
||||
"name": "code the micro:bit",
|
||||
"title": "code the micro:bit - Blocks / Javascript editor",
|
||||
"description": "A Blocks / JavaScript code editor for the micro:bit.",
|
||||
"id": "calliope",
|
||||
"name": " calliope",
|
||||
"nickname": "mini",
|
||||
"title": "calliope - Blocks / Javascript editor",
|
||||
"description": "A Blocks / JavaScript code editor for the calliope.",
|
||||
"corepkg": "core",
|
||||
"bundleddirs": [
|
||||
"libs/core",
|
||||
@ -14,13 +14,9 @@
|
||||
"cloud": {
|
||||
"workspace": false,
|
||||
"packages": true,
|
||||
"sharing": false,
|
||||
"publish": false,
|
||||
"sharing": true,
|
||||
"publish": true,
|
||||
"preferredPackages": [
|
||||
"Microsoft/pxt-neopixel",
|
||||
"Microsoft/pxt-sonar",
|
||||
"Microsoft/pxt-max6675",
|
||||
"Microsoft/pxt-i2c-fram"
|
||||
],
|
||||
"githubPackages": true
|
||||
},
|
||||
@ -67,9 +63,9 @@
|
||||
"compile": {
|
||||
"isNative": false,
|
||||
"hasHex": true,
|
||||
"deployDrives": "(MICROBIT|MBED)",
|
||||
"driveName": "MICROBIT",
|
||||
"hexMimeType": "application/x-microbit-hex",
|
||||
"deployDrives": "MINI",
|
||||
"driveName": "MINI",
|
||||
"hexMimeType": "application/x-calliope-hex",
|
||||
"upgrades": [
|
||||
{
|
||||
"type": "package",
|
||||
@ -96,11 +92,11 @@
|
||||
"simulator": {
|
||||
"autoRun": true,
|
||||
"streams": true,
|
||||
"aspectRatio": 1.22,
|
||||
"aspectRatio": 1.08,
|
||||
"parts": true,
|
||||
"partsAspectRatio": 0.69,
|
||||
"boardDefinition": {
|
||||
"visual": "microbit",
|
||||
"visual": "calliope",
|
||||
"gpioPinBlocks": [
|
||||
[
|
||||
"P0"
|
||||
@ -182,7 +178,10 @@
|
||||
"speaker",
|
||||
"bluetooth",
|
||||
"thermometer",
|
||||
"compass"
|
||||
"compass",
|
||||
"speaker",
|
||||
"microphone",
|
||||
"rgbled"
|
||||
],
|
||||
"useCrocClips": true,
|
||||
"marginWhenBreadboarding": [
|
||||
@ -195,10 +194,10 @@
|
||||
},
|
||||
"compileService": {
|
||||
"yottaTarget": "bbc-microbit-classic-gcc",
|
||||
"yottaCorePackage": "pxt-microbit-core",
|
||||
"githubCorePackage": "microsoft/pxt-microbit-core",
|
||||
"gittag": "v0.5.0",
|
||||
"serviceId": "ws"
|
||||
"yottaCorePackage": "pxt-calliope-core",
|
||||
"githubCorePackage": "microsoft/pxt-calliope-core",
|
||||
"gittag": "v0.5.7",
|
||||
"serviceId": "calliope"
|
||||
},
|
||||
"serial": {
|
||||
"manufacturerFilter": "^mbed$",
|
||||
@ -206,22 +205,21 @@
|
||||
"log": true
|
||||
},
|
||||
"appTheme": {
|
||||
"accentColor": "#5C005C",
|
||||
"logoUrl": "https://codethemicrobit.com/about",
|
||||
"logo": "./static/microbit.simplified.svg",
|
||||
"docsLogo": "./static/microbit.simplified.svg",
|
||||
"portraitLogo": "./static/microbit.simplified.svg",
|
||||
"footerLogo": "./static/microbit.simplified.svg",
|
||||
"accentColor": "#249899",
|
||||
"logoUrl": "https://calliope.cc/about",
|
||||
"logo": "./static/Logo_Calliope_Woman.svg",
|
||||
"docsLogo": "./static/Logo_Calliope_Woman.svg",
|
||||
"portraitLogo": "./static/Logo_Calliope_Woman.svg",
|
||||
"footerLogo": "./static/Logo_Calliope_Woman.svg",
|
||||
"cardLogo": "https://az851932.vo.msecnd.net/pub/drbwxcth",
|
||||
"appLogo": "https://az851932.vo.msecnd.net/pub/tbhemtig",
|
||||
"organization": "Microsoft",
|
||||
"organizationUrl": "https://codethemicrobit.com/",
|
||||
"organizationUrl": "https://calliope.cc/",
|
||||
"organizationLogo": "./static/Microsoft-logo_rgb_c-gray.png",
|
||||
"homeUrl": "https://codethemicrobit.com/",
|
||||
"embedUrl": "https://codethemicrobit.com/",
|
||||
"homeUrl": "https://calliope.cc/",
|
||||
"privacyUrl": "https://go.microsoft.com/fwlink/?LinkId=521839",
|
||||
"termsOfUseUrl": "https://go.microsoft.com/fwlink/?LinkID=206977",
|
||||
"githubUrl": "https://github.com/Microsoft/pxt-microbit",
|
||||
"githubUrl": "https://github.com/Microsoft/pxt-calliope",
|
||||
"browserSupport": [
|
||||
{
|
||||
"name": "unsupported",
|
||||
@ -341,4 +339,4 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ namespace pxsim {
|
||||
buttonPairState: ButtonPairState;
|
||||
radioState: RadioState;
|
||||
neopixelState: NeoPixelState;
|
||||
rgbLedState: number;
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
@ -36,19 +37,19 @@ namespace pxsim {
|
||||
DAL.MICROBIT_ID_IO_P5,
|
||||
DAL.MICROBIT_ID_IO_P6,
|
||||
DAL.MICROBIT_ID_IO_P7,
|
||||
DAL.MICROBIT_ID_IO_P8,
|
||||
0, //DAL.MICROBIT_ID_IO_P8,
|
||||
DAL.MICROBIT_ID_IO_P9,
|
||||
DAL.MICROBIT_ID_IO_P10,
|
||||
DAL.MICROBIT_ID_IO_P11,
|
||||
DAL.MICROBIT_ID_IO_P12,
|
||||
DAL.MICROBIT_ID_IO_P13,
|
||||
DAL.MICROBIT_ID_IO_P14,
|
||||
DAL.MICROBIT_ID_IO_P15,
|
||||
DAL.MICROBIT_ID_IO_P16,
|
||||
0, //DAL.MICROBIT_ID_IO_P12,
|
||||
0, //DAL.MICROBIT_ID_IO_P13,
|
||||
0, //DAL.MICROBIT_ID_IO_P14,
|
||||
0, //DAL.MICROBIT_ID_IO_P15,
|
||||
0, //DAL.MICROBIT_ID_IO_P16,
|
||||
0,
|
||||
0,
|
||||
DAL.MICROBIT_ID_IO_P19,
|
||||
DAL.MICROBIT_ID_IO_P20
|
||||
DAL.MICROBIT_ID_IO_P20
|
||||
]
|
||||
});
|
||||
this.builtinParts["radio"] = this.radioState = new RadioState(runtime);
|
||||
@ -61,11 +62,11 @@ namespace pxsim {
|
||||
|
||||
this.builtinVisuals["buttonpair"] = () => new visuals.ButtonPairView();
|
||||
this.builtinVisuals["ledmatrix"] = () => new visuals.LedMatrixView();
|
||||
this.builtinVisuals["neopixel"] = () => new visuals.NeoPixelView();
|
||||
this.builtinVisuals["neopixel"] = () => new visuals.NeoPixelView();
|
||||
|
||||
this.builtinPartVisuals["buttonpair"] = (xy: visuals.Coord) => visuals.mkBtnSvg(xy);
|
||||
this.builtinPartVisuals["ledmatrix"] = (xy: visuals.Coord) => visuals.mkLedMatrixSvg(xy, 8, 8);
|
||||
this.builtinPartVisuals["neopixel"] = (xy: visuals.Coord) => visuals.mkNeoPixelPart(xy);
|
||||
this.builtinPartVisuals["neopixel"] = (xy: visuals.Coord) => visuals.mkNeoPixelPart(xy);
|
||||
}
|
||||
|
||||
receiveMessage(msg: SimulatorMessage) {
|
||||
@ -97,7 +98,7 @@ namespace pxsim {
|
||||
const cmpDefs = msg.partDefinitions || {};
|
||||
const fnArgs = msg.fnArgs;
|
||||
|
||||
const opts : visuals.BoardHostOpts = {
|
||||
const opts: visuals.BoardHostOpts = {
|
||||
state: this,
|
||||
boardDef: boardDef,
|
||||
partsList: cmpsList,
|
||||
|
6
sim/state/rgbled.ts
Normal file
@ -0,0 +1,6 @@
|
||||
namespace pxsim.basic {
|
||||
export function setLedColor(c: number) {
|
||||
board().rgbLedState = c;
|
||||
runtime.queueDisplayUpdate()
|
||||
}
|
||||
}
|
5
sim/state/soundmotor.ts
Normal file
@ -0,0 +1,5 @@
|
||||
namespace pxsim.motors {
|
||||
export function motorOn(power: number) {
|
||||
// TODO
|
||||
}
|
||||
}
|
@ -1,232 +0,0 @@
|
||||
let correctBall: number
|
||||
let ballRevealing: boolean
|
||||
let cupSelect: string
|
||||
let index: number
|
||||
let score: number
|
||||
let level: number
|
||||
let swapSpeed: number
|
||||
|
||||
initializeGame()
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
if (ballRevealing) {
|
||||
index = index + 1
|
||||
if (index > 2) {
|
||||
index = 0
|
||||
}
|
||||
basic.showString(cupSelect[index], 150)
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.B, () => {
|
||||
if (ballRevealing) {
|
||||
ballRevealing = false
|
||||
if (correctBall == index) {
|
||||
score = score + level
|
||||
images.createImage(`
|
||||
. . . . .
|
||||
. . . . #
|
||||
. . . # .
|
||||
# . # . .
|
||||
. # . . .
|
||||
`).showImage(0)
|
||||
basic.pause(1000)
|
||||
basic.showString("+".concat(level.toString()), 150)
|
||||
basic.pause(1000)
|
||||
} else {
|
||||
images.createImage(`
|
||||
# . . . #
|
||||
. # . # .
|
||||
. . # . .
|
||||
. # . # .
|
||||
# . . . #
|
||||
`).showImage(0)
|
||||
basic.pause(1000)
|
||||
basic.clearScreen()
|
||||
revealBall(correctBall)
|
||||
basic.pause(1000)
|
||||
}
|
||||
}
|
||||
level = level + 1
|
||||
if (level == 4) {
|
||||
basic.showString("FINAL SCORE:", 75)
|
||||
basic.showNumber(score, 150)
|
||||
} else {
|
||||
playLevel(level)
|
||||
}
|
||||
})
|
||||
playLevel(1)
|
||||
|
||||
function revealBall(p: number) {
|
||||
let xCoordinate = 2 * p
|
||||
for (let j = 0; j < 3; j++) {
|
||||
led.plot(j * 2, 2)
|
||||
}
|
||||
for (let i = 0; i < 3; i++) {
|
||||
led.unplot(xCoordinate, 2)
|
||||
led.plot(xCoordinate, 1)
|
||||
basic.pause(100)
|
||||
led.unplot(xCoordinate, 1)
|
||||
led.plot(xCoordinate, 0)
|
||||
basic.pause(200)
|
||||
led.unplot(xCoordinate, 0)
|
||||
led.plot(xCoordinate, 1)
|
||||
basic.pause(100)
|
||||
led.unplot(xCoordinate, 1)
|
||||
led.plot(xCoordinate, 2)
|
||||
basic.pause(75)
|
||||
}
|
||||
basic.pause(1000)
|
||||
}
|
||||
|
||||
function initializeGame() {
|
||||
ballRevealing = false
|
||||
level = 1
|
||||
score = 0
|
||||
cupSelect = "LMR"
|
||||
}
|
||||
|
||||
function swapCups(cup_1: number, cup_2: number, pauseDifficulty: number) {
|
||||
let cup_1X = 2 * cup_1
|
||||
let cup_2X = 2 * cup_2
|
||||
let cupXAverage = (cup_1X + cup_2X) / 2
|
||||
led.unplot(cup_1X, 2)
|
||||
led.unplot(cup_2X, 2)
|
||||
led.plot(cup_1X, 3)
|
||||
led.plot(cup_2X, 1)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_1X, 3)
|
||||
led.unplot(cup_2X, 1)
|
||||
led.plot(cup_1X, 4)
|
||||
led.plot(cup_2X, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_1X, 4)
|
||||
led.unplot(cup_2X, 0)
|
||||
if (cupXAverage == 2) {
|
||||
led.plot((cupXAverage + cup_1X) / 2, 4)
|
||||
led.plot((cupXAverage + cup_2X) / 2, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot((cupXAverage + cup_1X) / 2, 4)
|
||||
led.unplot((cupXAverage + cup_2X) / 2, 0)
|
||||
}
|
||||
led.plot(cupXAverage, 4)
|
||||
led.plot(cupXAverage, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cupXAverage, 4)
|
||||
led.unplot(cupXAverage, 0)
|
||||
if (cupXAverage == 2) {
|
||||
led.plot((cupXAverage + cup_2X) / 2, 4)
|
||||
led.plot((cupXAverage + cup_1X) / 2, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot((cupXAverage + cup_2X) / 2, 4)
|
||||
led.unplot((cupXAverage + cup_1X) / 2, 0)
|
||||
}
|
||||
led.plot(cup_2X, 4)
|
||||
led.plot(cup_1X, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_2X, 4)
|
||||
led.unplot(cup_1X, 0)
|
||||
led.plot(cup_2X, 3)
|
||||
led.plot(cup_1X, 1)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_2X, 3)
|
||||
led.unplot(cup_1X, 1)
|
||||
led.plot(cup_2X, 2)
|
||||
led.plot(cup_1X, 2)
|
||||
basic.pause(pauseDifficulty)
|
||||
if (correctBall == cup_1) {
|
||||
correctBall = cup_2
|
||||
} else if (correctBall == cup_2) {
|
||||
correctBall = cup_1
|
||||
}
|
||||
}
|
||||
|
||||
function swapFake(cup_1: number, cup_2: number, pauseDifficulty: number) {
|
||||
let cup_1X = 2 * cup_1
|
||||
let cup_2X = 2 * cup_2
|
||||
let cupXAverage = (cup_1X + cup_2X) / 2
|
||||
led.unplot(cup_1X, 2)
|
||||
led.unplot(cup_2X, 2)
|
||||
led.plot(cup_1X, 3)
|
||||
led.plot(cup_2X, 1)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_1X, 3)
|
||||
led.unplot(cup_2X, 1)
|
||||
led.plot(cup_1X, 4)
|
||||
led.plot(cup_2X, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_1X, 4)
|
||||
led.unplot(cup_2X, 0)
|
||||
if (cupXAverage == 2) {
|
||||
led.plot((cupXAverage + cup_1X) / 2, 4)
|
||||
led.plot((cupXAverage + cup_2X) / 2, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot((cupXAverage + cup_1X) / 2, 4)
|
||||
led.unplot((cupXAverage + cup_2X) / 2, 0)
|
||||
}
|
||||
led.plot(cupXAverage, 4)
|
||||
led.plot(cupXAverage, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cupXAverage, 4)
|
||||
led.unplot(cupXAverage, 0)
|
||||
if (cupXAverage == 2) {
|
||||
led.plot((cupXAverage + cup_1X) / 2, 4)
|
||||
led.plot((cupXAverage + cup_2X) / 2, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot((cupXAverage + cup_1X) / 2, 4)
|
||||
led.unplot((cupXAverage + cup_2X) / 2, 0)
|
||||
}
|
||||
led.plot(cup_1X, 4)
|
||||
led.plot(cup_2X, 0)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_1X, 4)
|
||||
led.unplot(cup_2X, 0)
|
||||
led.plot(cup_1X, 3)
|
||||
led.plot(cup_2X, 1)
|
||||
basic.pause(pauseDifficulty)
|
||||
led.unplot(cup_1X, 3)
|
||||
led.unplot(cup_2X, 1)
|
||||
led.plot(cup_1X, 2)
|
||||
led.plot(cup_2X, 2)
|
||||
basic.pause(pauseDifficulty)
|
||||
}
|
||||
|
||||
function playLevel(level1: number) {
|
||||
basic.showNumber(level, 150)
|
||||
basic.pause(3000)
|
||||
basic.clearScreen()
|
||||
for (let i = 0; i < 3; i++) {
|
||||
led.plot(2 * i, 2)
|
||||
}
|
||||
basic.pause(1000)
|
||||
correctBall = Math.random(3)
|
||||
revealBall(correctBall)
|
||||
basic.pause(1000)
|
||||
let swaps = 5 + 10 * level1
|
||||
if (level1 == 1) {
|
||||
swapSpeed = 80
|
||||
} else if (level1 == 2) {
|
||||
swapSpeed = 40
|
||||
} else {
|
||||
swapSpeed = 20
|
||||
}
|
||||
for (let i1 = 0; i1 < swaps; i1++) {
|
||||
let swapType = Math.random(3)
|
||||
let not = Math.random(3)
|
||||
if (swapType < 2) {
|
||||
let swapOrientation = Math.random(2)
|
||||
if (swapOrientation == 0) {
|
||||
swapCups((not + 1) % 3, (not + 2) % 3, swapSpeed)
|
||||
} else {
|
||||
swapCups((not + 2) % 3, (not + 1) % 3, swapSpeed)
|
||||
}
|
||||
} else {
|
||||
let swapOrientation1 = Math.random(2)
|
||||
if (swapOrientation1 == 0) {
|
||||
swapFake((not + 1) % 3, (not + 2) % 3, swapSpeed)
|
||||
} else {
|
||||
swapFake((not + 2) % 3, (not + 1) % 3, swapSpeed)
|
||||
}
|
||||
}
|
||||
}
|
||||
index = -1
|
||||
ballRevealing = true
|
||||
}
|
@ -1,155 +0,0 @@
|
||||
let oneX: number
|
||||
let oneY: number
|
||||
let twoX: number
|
||||
let twoY: number
|
||||
let pause: number
|
||||
let meteoriteOneX: number
|
||||
let meteoriteOneY: number
|
||||
let meteoriteTwoX: number
|
||||
let meteoriteTwoY: number
|
||||
let counter: number
|
||||
|
||||
basic.pause(2000)
|
||||
oneX = 0
|
||||
oneY = 4
|
||||
twoX = 1
|
||||
twoY = 4
|
||||
counter = 0
|
||||
pause = 700
|
||||
led.plot(oneX, oneY)
|
||||
led.plot(twoX, twoY)
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
if (oneX > 0) {
|
||||
led.unplot(oneX, oneY)
|
||||
led.unplot(twoX, twoY)
|
||||
oneX = oneX - 1
|
||||
twoX = twoX - 1
|
||||
led.plot(oneX, oneY)
|
||||
led.plot(twoX, twoY)
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.B, () => {
|
||||
if (twoX < 4) {
|
||||
led.unplot(oneX, oneY)
|
||||
led.unplot(twoX, twoY)
|
||||
oneX = oneX + 1
|
||||
twoX = twoX + 1
|
||||
led.plot(oneX, oneY)
|
||||
led.plot(twoX, twoY)
|
||||
}
|
||||
})
|
||||
meteoriteOneX = Math.random(5)
|
||||
meteoriteOneY = 0
|
||||
meteoriteTwoX = Math.random(5)
|
||||
meteoriteTwoY = -3
|
||||
basic.pause(1000)
|
||||
for (let i = 0; i < 3; i++) {
|
||||
led.plot(meteoriteTwoX, meteoriteTwoY)
|
||||
led.plot(meteoriteOneX, meteoriteOneY)
|
||||
basic.pause(pause)
|
||||
led.unplot(meteoriteTwoX, meteoriteTwoY)
|
||||
led.unplot(meteoriteOneX, meteoriteOneY)
|
||||
meteoriteOneY = meteoriteOneY + 1
|
||||
meteoriteTwoY = meteoriteTwoY + 1
|
||||
}
|
||||
basic.forever(() => {
|
||||
for (let i1 = 0; i1 < 3; i1++) {
|
||||
led.plot(meteoriteTwoX, meteoriteTwoY)
|
||||
led.plot(meteoriteOneX, meteoriteOneY)
|
||||
basic.pause(pause)
|
||||
led.unplot(meteoriteOneX, meteoriteOneY)
|
||||
led.unplot(meteoriteTwoX, meteoriteTwoY)
|
||||
meteoriteOneY = meteoriteOneY + 1
|
||||
meteoriteTwoY = meteoriteTwoY + 1
|
||||
if (meteoriteOneY == 4) {
|
||||
if (meteoriteOneX == oneX) {
|
||||
for (let j = 0; j < 10; j++) {
|
||||
led.plotAll()
|
||||
basic.pause(200)
|
||||
basic.clearScreen()
|
||||
basic.pause(200)
|
||||
}
|
||||
basic.showNumber(counter, 150)
|
||||
basic.pause(10000)
|
||||
} else if (meteoriteOneX == twoX) {
|
||||
for (let j1 = 0; j1 < 10; j1++) {
|
||||
led.plotAll()
|
||||
basic.pause(200)
|
||||
basic.clearScreen()
|
||||
basic.pause(200)
|
||||
}
|
||||
basic.showNumber(counter, 150)
|
||||
basic.pause(10000)
|
||||
}
|
||||
}
|
||||
}
|
||||
while (Math.abs(meteoriteTwoX - meteoriteOneX) < 1) {
|
||||
meteoriteOneX = Math.random(5)
|
||||
}
|
||||
meteoriteOneY = 0
|
||||
counter = counter + 1
|
||||
if (counter == 3) {
|
||||
pause = pause - 250
|
||||
} else if (counter == 8) {
|
||||
pause = pause - 100
|
||||
} else if (counter == 12) {
|
||||
pause = pause - 100
|
||||
} else if (counter == 20) {
|
||||
pause = pause - 100
|
||||
} else if (counter == 30) {
|
||||
pause = pause - 70
|
||||
}
|
||||
if (counter == 40) {
|
||||
pause = pause - 70
|
||||
}
|
||||
for (let i2 = 0; i2 < 3; i2++) {
|
||||
led.plot(meteoriteOneX, meteoriteOneY)
|
||||
led.plot(meteoriteTwoX, meteoriteTwoY)
|
||||
basic.pause(pause)
|
||||
led.unplot(meteoriteOneX, meteoriteOneY)
|
||||
led.unplot(meteoriteTwoX, meteoriteTwoY)
|
||||
meteoriteOneY = meteoriteOneY + 1
|
||||
meteoriteTwoY = meteoriteTwoY + 1
|
||||
if (meteoriteTwoY == 4) {
|
||||
if (meteoriteTwoX == oneX) {
|
||||
for (let j2 = 0; j2 < 10; j2++) {
|
||||
led.plotAll()
|
||||
basic.pause(200)
|
||||
basic.clearScreen()
|
||||
basic.pause(200)
|
||||
}
|
||||
basic.showNumber(counter, 150)
|
||||
basic.pause(10000)
|
||||
} else if (meteoriteTwoX == twoX) {
|
||||
for (let j3 = 0; j3 < 10; j3++) {
|
||||
led.plotAll()
|
||||
basic.pause(200)
|
||||
basic.clearScreen()
|
||||
basic.pause(200)
|
||||
}
|
||||
basic.showNumber(counter, 150)
|
||||
basic.pause(10000)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
meteoriteTwoX = Math.random(5)
|
||||
while (Math.abs(meteoriteTwoX - meteoriteOneX) < 1) {
|
||||
meteoriteTwoX = Math.random(5)
|
||||
}
|
||||
meteoriteTwoY = 0
|
||||
counter = counter + 1
|
||||
if (counter == 3) {
|
||||
pause = pause - 250
|
||||
} else if (counter == 8) {
|
||||
pause = pause - 100
|
||||
} else if (counter == 12) {
|
||||
pause = pause - 100
|
||||
} else if (counter == 20) {
|
||||
pause = pause - 100
|
||||
} else if (counter == 30) {
|
||||
pause = pause - 70
|
||||
} else if (counter == 40) {
|
||||
pause = pause - 70
|
||||
}
|
||||
})
|
@ -1,230 +0,0 @@
|
||||
let levelTime: number
|
||||
let person: Entity
|
||||
let monsters: Entity[]
|
||||
let totalMonsters: number
|
||||
let playing: boolean
|
||||
let gameSuspended: boolean
|
||||
let busyPos: Point[]
|
||||
|
||||
class Entity {
|
||||
public x: number
|
||||
public y: number
|
||||
public dirX: number
|
||||
public dirY: number
|
||||
public hitHorizontalWall(): boolean {
|
||||
return this.y == 0 && this.dirY == -1 || this.y == 4 && this.dirY == 1
|
||||
}
|
||||
|
||||
public hitVerticalWall(): boolean {
|
||||
return this.x == 0 && this.dirX == -1 || this.x == 4 && this.dirX == 1
|
||||
}
|
||||
|
||||
public possHorizontalDir(): number {
|
||||
if (this.x == 0) {
|
||||
return 1
|
||||
} else if (this.x == 4) {
|
||||
return - 1
|
||||
} else {
|
||||
return Math.random(2) * 2 - 1
|
||||
}
|
||||
}
|
||||
|
||||
public possVerticalDir(): number {
|
||||
if (this.y == 0) {
|
||||
return 1
|
||||
} else if (this.y == 4) {
|
||||
return - 1
|
||||
} else {
|
||||
return Math.random(2) * 2 - 1
|
||||
}
|
||||
}
|
||||
|
||||
public collidesX(p2: Entity): boolean {
|
||||
return this.y == p2.y && this.y + this.dirY == p2.y + p2.dirY && (this.x + this.dirX == p2.x || this.x + this.dirX == p2.x + p2.dirX || p2.x + p2.dirX == this.x)
|
||||
}
|
||||
|
||||
public collidesY(p2: Entity): boolean {
|
||||
return this.x == p2.x && this.x + this.dirX == p2.x + p2.dirX && (this.y + this.dirY == p2.y || this.y + this.dirY == p2.y + p2.dirY || p2.y + p2.dirY == this.y)
|
||||
}
|
||||
|
||||
public move1() {
|
||||
this.x = this.x + this.dirX
|
||||
this.y = this.y + this.dirY
|
||||
}
|
||||
|
||||
public towardsX(p2: Entity): number {
|
||||
return Math.sign(p2.x - this.x)
|
||||
}
|
||||
|
||||
public towardsY(p2: Entity): number {
|
||||
return Math.sign(p2.y - this.y)
|
||||
}
|
||||
|
||||
public plot() {
|
||||
led.plot(this.x, this.y)
|
||||
}
|
||||
|
||||
public blink() {
|
||||
led.plot(this.x, this.y)
|
||||
basic.pause(125)
|
||||
led.unplot(this.x, this.y)
|
||||
basic.pause(125)
|
||||
led.plot(this.x, this.y)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Point {
|
||||
public x: number
|
||||
public y: number
|
||||
}
|
||||
|
||||
initializeState()
|
||||
redraw()
|
||||
basic.pause(1000)
|
||||
basic.forever(() => {
|
||||
levelTime = levelTime + 12
|
||||
basic.pause(12)
|
||||
if (!playing) {
|
||||
levelTime = 0
|
||||
playing = true
|
||||
}
|
||||
if (levelTime >= 5000) {
|
||||
gameSuspended = true
|
||||
game.levelUp()
|
||||
levelUp()
|
||||
levelTime = 0
|
||||
resetState()
|
||||
redraw()
|
||||
basic.pause(1000)
|
||||
gameSuspended = false
|
||||
}
|
||||
})
|
||||
basic.forever(() => {
|
||||
if (!gameSuspended) {
|
||||
logic()
|
||||
redraw()
|
||||
basic.pause(500)
|
||||
}
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
let temp = Math.abs(person.dirX) * (-1)
|
||||
person.dirX = Math.abs(person.dirY) * (-1)
|
||||
person.dirY = temp
|
||||
})
|
||||
input.onButtonPressed(Button.B, () => {
|
||||
let temp1 = Math.abs(person.dirX)
|
||||
person.dirX = Math.abs(person.dirY)
|
||||
person.dirY = temp1
|
||||
})
|
||||
|
||||
function redraw() {
|
||||
basic.clearScreen()
|
||||
person.plot()
|
||||
for (let i = 0; i < totalMonsters; i++) {
|
||||
monsters[i].blink()
|
||||
}
|
||||
}
|
||||
|
||||
function initializeState() {
|
||||
person = new Entity()
|
||||
playing = false
|
||||
busyPos = ([] as Point[])
|
||||
let busyPos1 = new Point()
|
||||
busyPos1.x = 1
|
||||
busyPos1.y = 1
|
||||
let busyPos2 = new Point()
|
||||
busyPos2.x = 1
|
||||
busyPos2.y = 3
|
||||
let busyPos3 = new Point()
|
||||
busyPos3.x = 3
|
||||
busyPos3.y = 1
|
||||
busyPos.push(busyPos1)
|
||||
busyPos.push(busyPos2)
|
||||
busyPos.push(busyPos3)
|
||||
monsters = ([] as Entity[])
|
||||
addMonster()
|
||||
resetState()
|
||||
}
|
||||
|
||||
function logic() {
|
||||
if (person.hitHorizontalWall()) {
|
||||
person.dirY = 0
|
||||
person.dirX = person.possHorizontalDir()
|
||||
}
|
||||
if (person.hitVerticalWall()) {
|
||||
person.dirX = 0
|
||||
person.dirY = person.possVerticalDir()
|
||||
}
|
||||
let lost = false
|
||||
for (let i = 0; i < totalMonsters; i++) {
|
||||
let m = monsters[i]
|
||||
m.dirX = m.towardsX(person)
|
||||
m.dirY = m.towardsY(person)
|
||||
if (m.dirX != 0 && m.dirY != 0) {
|
||||
let x = Math.random(2)
|
||||
if (x == 1) {
|
||||
m.dirX = 0
|
||||
} else {
|
||||
m.dirY = 0
|
||||
}
|
||||
}
|
||||
if (person.collidesX(m) || person.collidesY(m)) {
|
||||
lost = true
|
||||
}
|
||||
}
|
||||
if (!lost) {
|
||||
moveAll()
|
||||
} else {
|
||||
loseLife()
|
||||
}
|
||||
}
|
||||
|
||||
function loseLife() {
|
||||
moveAll()
|
||||
basic.pause(500)
|
||||
basic.showLeds(`
|
||||
. # . # .
|
||||
. . # . .
|
||||
. . . . .
|
||||
. # # # .
|
||||
# . . . #
|
||||
`, 400)
|
||||
basic.pause(1000)
|
||||
basic.clearScreen()
|
||||
game.removeLife(1)
|
||||
playing = false
|
||||
resetState()
|
||||
}
|
||||
|
||||
function moveAll() {
|
||||
person.move1()
|
||||
for (let i = 0; i < totalMonsters; i++) {
|
||||
monsters[i].move1()
|
||||
}
|
||||
}
|
||||
|
||||
function addMonster() {
|
||||
let m = new Entity()
|
||||
monsters.push(m)
|
||||
totalMonsters = totalMonsters + 1
|
||||
}
|
||||
|
||||
function levelUp() {
|
||||
addMonster()
|
||||
}
|
||||
|
||||
function resetState() {
|
||||
levelTime = 0
|
||||
game.setLife(5)
|
||||
person.x = 4
|
||||
person.y = 4
|
||||
person.dirX = -1
|
||||
person.dirY = 0
|
||||
for (let i = 0; i < totalMonsters; i++) {
|
||||
let busy = busyPos[i]
|
||||
let m = monsters[i]
|
||||
m.x = (busy.x + Math.random(3)) - 1
|
||||
m.y = (busy.y + Math.random(3)) - 1
|
||||
}
|
||||
}
|