Add changes from calliope-edu/pxt-calliope (#60)

* add Keigan Motor extennsion (#2067)

* add Keigan Motor extennsion

* missing coma

* Update radio event parm usage descriptions (#2075)

* Bumping pxt to 5.14.3 and common-packages to 5.14.3

* 1.4.11

* Revert "Update radio event parm usage descriptions (#2075)" (#2077)

This reverts commit 7950f1b4d7.

* Fix Turtle Spiral example decompilation (#2094)

* use local variables for indices

* s/an/the/

* bump to core 5.15.1 (#2121)

* 1.4.12

* refresh shims (#2134)

* import extension files (#2127)

* import extension files

* updated shims

* Fix some titles, sigs in ref docs (#2128)

* Fix some title and sigs in ref docs

* better buffer source

* Sets JustWorks to the actual config values (#2137)

* add windows and mac icons for offline app (#2141)

* Don't overwrite electron deploy (#2142)

* remove baud rate as it is not support on HW (#2124)

* add blocks for serial set tx/rx buffer size (#2144)

* support flag argument (#2126)

* support flag argument

* enable drop semantics

* add reentrant

* updated shims

* Bumping pxt-core to 5.15.3

* 1.4.13

* Bumping pxt-core to 5.15.4

* 1.4.14

* bump setgroup on top of radio (#2157)

* bump setgroup on top of radio

* move group up

* Update name-tag.md (#2156)

* add API to disable serial padding. (#2145)

* add API to desiable serial padding.

* renamed api

* Set serial help paths for blocks (#2159)

* Shrink the link in firmware version hint (#2163)

* Shrink the link in firmware version hint

* fix a translation quibble

* Fix Black and White Typo (#2138)

* Fixed typo: Back->Black

* Added Upgrade Rules to fix spelling

* Removed extra isEmpty

* Added previous BackAndWhite to allow for compilation of old scripts

* always shake when button is pressed (#2161)

* add PLENbit (#2140)

* Bumping pxt-core to 5.15.5

* 1.4.15

* stop background before foreground (#2174)

* Bumping pxt-core to 5.15.6

* 1.4.16

* Bumping pxt-core to 5.15.7

* 1.4.17

* Bumping pxt-core to 5.15.8

* 1.4.18

* add backgrounds for use with .dmg (#2200)

* add normal size and 2x size backgrounds for dmg

* update arrow color to dark gray

* Bumping pxt-core  to 5.15.9

* 1.4.19

* Adding v1-ref.json pointing to 1.2.13

* Bumping microbit to 2.0.0

* 2.0.1

* Pointing beta-ref to v2

* Bumping pxt-core to 5.15.10

* 2.0.2

* this repo is empty (#2201)

* Update radio event parm usage descriptions (#2165)

* add browser db prefix for v2 (#2208)

* 2.0.3

* Releasing 2.0.3 to live (#2209)

* dynamically sniff offline app version (#2059)

* Revert "dynamically sniff offline app version (#2059)" (#2211)

This reverts commit b480b34f7e.

* Updating electron to 2.0.3 (#2210)

* Updating offline reference to 2.0.3 (#2212)

* Bumping version to 2.1.0

* 2.1.1

* Spelling (#2214)

* Update write-received-packet-to-serial.md (#2217)

A support ticket pointed out issues that they'd encountered when trying to follow this document:

- `sendValue` only supports an 8 character string. This is documented in the `sendValue` docs but a longer string had been used here
- Only `radio.onReceivedNumber` is used so the sample output is not consistent with the users experience. I've changed it so that all packets are handled

* Use gcPreAllocateBlock() to fix #2177, #2215 (#2216)

* Use gcPreAllocateBlock() to fix #2177, #2215
* bump pcp 6.9.4

* 2.1.2

* Correct dice example (#2262)

Changed random(6) to random(5) so the number reflect real dice.

* add 4tronix minibit (#2249)

* Update targetconfig.json (#2258)

remove mock-iot-extension as it is just an experimental development by The Foundation

* Update calibrate-compass.md (#2265)

Based on user feedback in Slack https://microbit-community.slack.com/archives/C1ZMKRFHD/p1563274019078400?thread_ts=1563268925.077500&cid=C1ZMKRFHD

* add wukong (#2239)

* Decrease size of GC heap to allow more DAL allocs (#2246)

* 2.1.3

* add Kitronik view text (#2125)

* Release 2.0.6 to live (#2308)

* Update nexus:bit entry  (#2315)

* update nexus:bit entry

* update nexus:bit entry

* Logic Lab mini-course (#2307)

* Logic Lab mini-course

* example syntax

* Updating Readme with branch information.

* bump pxt for ios <=9 fix (#2311)

* Update pxt/common-packages and fix build (#2323)

* fix build off of pxt/ and pxt-common-packages master

* check in generated files

* add-pxt-bmp280 (#2325)

* Bumping pxt-core to 5.19.8 & common-packages to 6.14.9

* 2.1.4

* Error codes page update (#2327)

* Start adding new codes

* few tiny edits

* Add more errors and rearrange

* Update docs/device/error-codes.md

Co-Authored-By: Michał Moskal <michal@moskal.me>

* juggle category

* set error range in hint

Co-Authored-By: Michał Moskal <michal@moskal.me>

* Update docs/device/error-codes.md

Co-Authored-By: Mark <mark@microbit.org>

* fix build (#2360)

* fix broken build

* just try the more 'official' fix if possible

* back to the way that actually works..

* bump pxt to include accessibility changes (#2404)

* 2.1.5

* make hc mode sim color have higher contrast (#2409)

* Show project settings (#2401)

* markdown link fix (#2400)

* add HTS221 (#2384)

* Editor controllers fixes (#2412)

* updated strings

* bump pxt

* anotehr attempt

* 2.1.6

* turn on samples when reading accelerometer (#2413)

* 2.1.7

* hide pin p19/p20 (#2268)

* Fix remove life animation causing microbit stuck (#2314)

On the real microbit board, if the program execute other game blocks while
the remove life animation is playing, it would cause strange behavior or
even make the game stuck.

* Port of Programmable Logic lesson for Logic Lab course (#2359)

* port of programmable logic lesson

* trigger rebuild

* express as logical equation in snippet

* go logical for snippet inputs

* emit enum as bitmask (#2414)

* 2.1.8

* add alt attributes to download screens (#2415)

* add alt attributes to download screens, fixes microsoft/pxt-microbit#2291

* better descriptions

* fixing links in translate page

* Modify the LED coordinates to be between 0 and 4. (#2416)

Without this change, there is a 11/36 chance no LED lights as [`Math.random(a,b)`](https://docs.python.org/2/library/random.html#random.uniform) (thus the `pick random` block) chooses a number in the (inclusive, closed) interval `[a, b]`.

* Set LED plot row/column ranges for 'Reaction Time' (#2420)

* add LIS2MDL (#2385)

* add LIS2DW12 (#2386)

* add LPS22 (#2387)

* add LSM6DSO (#2388)

* add gator environment (#2326)

* add STTS751 (#2389)

* add inventura extension (#2421)

* add new sparkfun extensions (#2238)

* add new sparkfun extensions

* remove gator environment pending fixes

* add dfplayer mini extension (#2417)

* Update 'servo calibrator' link (#2424)

* I2C Addressing Note (#2428)

* I2C on-board sensor address note

* note for 7bit to 8bit shift

* Add nested summaries for newer courses (#2425)

* bump pxt (#2432)

* bump pxt

* bump

* bump

* fix version

* 2.1.9

* bump package.json (#2433)

* 2.1.10

* bump pxt (#2434)

* 2.1.11

* bump for diff3 (#2435)

* enable experiment

* bump pxt

* 2.1.12

* Add the Stu Lowe coding cards (#2438)

* Add the Stu Lowe coding cards

* Move 'Coding Cards' below 'Hardware'

* Add isDeleted (#2445)

* add xinabox OD01 and breakout display section (#2397)

* add xinabox OD01 and breakout display section

* Update targetconfig.json

* Update extensions.md

* Link to power supply limitations (#2443)

Fixes: #2442

* Pxt v5.23.17 (#2446)

* bump pxt

* regen docs

* fix version syntax

* restore extension

* removed dup

* 2.1.13

* add-sw01 (#2393)

* Locking old issues

* add Keyestudio robot car (#2452)

* Allow globals in reclaimed bluetooth memory (#2455)

* isTouchingEdge() should not return true for deleted sprite (#2449)

* add query variant to hide toolbar (#2458)

* Adding link to stable refs (#2460)

* Update extensions.md (#2456)

Move the :VIEW Text32 from other to Display now there is a display sections

* 2.1.14

* fixing radio stack (#2461)

* fixing radio stack

* updated shims

* 2.1.15

* Stable points to latest 2.0.9 (#2469)

* Releasing 2.0.9 to live (#2470)

* Fixing signal strength (#2474)

* Pointing to 2.0.10

* Releasing 2.0.10 (#2476)

With radio strength signal fix for hot or cold

* Removing old bitbot as we have a new bitbot package (#2479)

* updated pxt (#2465)

* updated pxt

* bump pxt

* updated react

* updated ptx

* Remove empty variable element from XML

* Bump pxt-core to 5.25.15

* bump pxt

* Bump pxt to 5.25.17

* Add precision to music slider

* 2.1.16

* add drive:bit (#2484)

* micro:bit RSSI fix (#2480)

* read rssi from packet

* updated shims

* fix build

* fix help

* move deprecated function to ts

* some formatting

* restore rssi block

* restory notations

* actually copy bytes

* removing logging code

* simpler wake up code

* comment

* fix build

* bump pxt

* go back to safety

* bump microbit

* restor package.json

* revert jquery v

* use macro

* check length

* bump pxt (#2490)

* 2.1.17

* Use default resize function for microbit gesture dropdown (#2491)

* Name Badge project page (#2477)

* Name Bagde project page

* gotta please the summary check

* link typo, ugh

* Revert "Name Badge project page (#2477)"

This reverts commit 2e2860632b.

* add freenove starter kit (#2493)

* radio.setFrequencyBand support (#2495)

* setfrequencyband support

* revert line change

* add bounds check

* Name Badge project page (#2496)

* Name Bagde project page

* gotta please the summary check

* link typo, ugh

* get rid of the pptx

* Simplify the Fahrenheit from Celsius computation. (#2497)

As the micro:bit introduces floating point arithmetic for both the existing `f = 18 * c / 10 + 32` computation and the new `f = 1.8 * c + 32` computation, there isn't any benefit for the former.

* Enable Polish localization (#2499)

* bump package

* 2.1.18

* shrink maintenance gif

* 2.1.19

* Rotary phone dial (#2502)

* some write up

* adding images

* text

* more text

* adding vids

* adding escape room

* remove newer lesson

* remove .mp4

* Card page edits

* adding image

* adding to toys

* rotary edits

* fix typo

* bump pxt 5.28.7 (#2503)

* bump pxt

* bump to pxt 5.28.8

* 2.1.20

* bump pxt 5.28.9 (#2504)

* 2.1.21

* bump pxt 5.28.10

* 2.1.22

* bump pxt 5.28.11

* 2.1.23

* bump pxt 5.28.12

* 2.1.24

* Update README.md

* robot unicorn (#2512)

* robot unicorn

* Edits to the unicorn

* fix missing radio and boardname

* bump pxt 5.28.18 (#2517)

* bump pxt 5.28.18

* updated summary

* 2.1.25

* bump pxt 5.28.21

* 2.1.26

* bump to pxt5.28.23

* 2.1.27

* Add redirect to pins info to serial heading (#2520)

* Add redirect to pins info to serial heading

* adding links

* vump to pxt 5.28.24

* 2.1.28

* bump to pxt 5.28.26

* 2.1.29

* add build instructions

* updated build notes

* bump pxt 5.28.27

* 2.1.30

* missing svg

* remove crowdin project to disable upload from master branch

* reeanble crowdin, no upload

* 2.1.31

* bump pxt common to 6.16.25

* missing radio package

* Fix GC heap reclamation (#2528)

* bump to pxt 5.28.31

* bump pxt 5.28.32

* 2.1.32

* 2.1.33

* fix typo

* pxt-microbit-next? (#2543)

Since the repo https://github.com/microsoft/pxt-microbit-next doesn't exist, I am assuming that the word `next` is not meant to be here.

* Extensions: Add Inksmith Climate Action Kit (#2535)

* Fixes for typos found in Crowdin - 11252019 (#2538)

* Extension: add Kitronik Halo HD (#2541)

* Extension: Add EBOTICS MIBO (#2542)

* add Bright Wearables Brightboard (#2537)

* Docs: Change default value in Javascript. (#2540)

* Change default value in Javascript.

Per @microbit-mark 's suggestion, add an example of how to change the default interval value by switching to Javascript.

* edits to new example

* bump pxt 5.30.6

* 2.1.34

* update git and vscode settings

* revert changes to 2.1.28

* package-lock

* v2.1.34

* Change Hero Image

* add RVR (#2516)

* Extension: add minicruise (#2545)

* Fix minutes display for 'Digital Watch' project (#2547)

* Fix minutes display for 'Digital Watch' project

* minutes less than 10

* bump pxt

* 2.1.35

* updated pxt

* 2.1.36

* package lock

* Tutorial Typo Fix

* staging Servo library support

* bumppxt

* 2.1.37

* update error guide link (#2554)

* adding radio firefly (#2549)

* Update 'Metal Detector' example (#2559)

* bump pxt

* 2.1.38

* typoFix

* package lock
This commit is contained in:
Amerlander 2019-12-18 16:18:45 +01:00 committed by Peli de Halleux
parent 039537b84c
commit c92bd90bd0
37 changed files with 974 additions and 3250 deletions

35
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
Add screenshots to help explain your problem. You can copy paste the screenshot in the github report. The .gif screen recording is very useful as well.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

View File

@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

75
.github/lock.yml vendored Normal file
View File

@ -0,0 +1,75 @@
# Configuration for Lock Threads - https://github.com/dessant/lock-threads
# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 365
# Skip issues and pull requests created before a given timestamp. Timestamp must
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable
skipCreatedBefore: false
# Issues and pull requests with these labels will be ignored. Set to `[]` to disable
exemptLabels: []
# Label to add before locking, such as `outdated`. Set to `false` to disable
lockLabel: false
# Comment to post before locking. Set to `false` to disable
lockComment: >
This thread has been automatically locked since there has not been
any recent activity after it was closed. Please open a new issue for
related bugs.
# Assign `resolved` as the reason for locking. Set to `false` to disable
setLockReason: true
# Limit to only `issues` or `pulls`
# only: issues
# Optionally, specify configuration settings just for `issues` or `pulls`
# issues:
# exemptLabels:
# - help-wanted
# lockLabel: outdated
# pulls:
# daysUntilLock: 30
# Repository to extend settings from
# _extends: repo

4
.gitignore vendored
View File

@ -15,8 +15,10 @@ clients/win10/app/bld
clients/win10/*.opendb
clients/**/bin/**
clients/**/obj/**
clients/electron/projects
electron-out
hexcache
build
crowdinstats.csv
*.user
*.sw?

46
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,46 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/../pxt/built/pxt.js",
"stopOnEntry": false,
"args": ["serve"],
"cwd": "${workspaceRoot}",
"preLaunchTask": null,
"runtimeExecutable": null,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"console": "internalConsole",
"sourceMaps": false,
"outDir": null
},
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858,
"address": "localhost",
"restart": false,
"sourceMaps": false,
"outDir": null,
"localRoot": "${workspaceRoot}",
"remoteRoot": null
},
{
"name": "Attach to Process",
"type": "node",
"request": "attach",
"processId": "${command.PickProcess}",
"port": 5858,
"sourceMaps": false,
"outDir": null
}
]
}

View File

@ -1,6 +1,6 @@
// Place your settings in this file to overwrite default and user settings.
{
"file.autoSave": "afterDelay",
"files.autoSave": "afterDelay",
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/built/**": true,

View File

@ -9,7 +9,7 @@
"largeImageUrl": "/docs/calliope/firststeps/firstSteps.jpg"
},
{
"name": "Turorials",
"name": "Tutorials",
"url": "/calliope/tutorials",
"imageUrl": "/docs/calliope/tutorials/01_flashing_heart.gif"
},
@ -24,6 +24,6 @@
## See Also
[First Steps](/calliope/firststeps),
[Turorials](/calliope/tutorials),
[Tutorials](/calliope/tutorials),
[Calliope Links](/calliope/links)

View File

@ -11,7 +11,7 @@
* [Output](/calliope/firststeps/Output)
* [Decisions](/calliope/firststeps/Decisions)
* [Variables](/calliope/firststeps/Variables)
* [Turorials](/calliope/tutorials)
* [Tutorials](/calliope/tutorials)
* [Flashing Heart](/projects/flashing-heart)
* [Name Tag](/projects/name-tag)
* [Smiley Buttons](/projects/smiley-buttons)

View File

@ -9,7 +9,7 @@ basic.showIcon(IconNames.Heart)
## Parameters
* ``icon``, the identifier of the icon to display
* ``interval`` (optional), the time to display in milliseconds. default is 400.
* ``interval`` (optional), the time to display in milliseconds. default is 600.
## Example
@ -21,6 +21,38 @@ basic.pause(1000)
basic.showIcon(IconNames.Sad)
```
## Beating Heart
You can create a beating heart by using the forever block as follows:
```blocks
basic.forever(function () {
basic.showIcon(IconNames.Heart)
basic.showIcon(IconNames.SmallHeart)
})
```
## Fast Beating Heart
You could slow down the previous animation by inserting a pause block:
```block
basic.pause(1000)
```
...but how would you speed it up?
You can change the default pause value, which is set in the ``interval`` parameter, to be smaller than `600` by changing it in the JavaScript editor.
This JavaScript code creates a crazy fast heart beat! Did you know that a hamster's heart beats at a rate this fast?
```typescript
basic.forever(function () {
basic.showIcon(IconNames.Heart, 60)
basic.showIcon(IconNames.SmallHeart, 60)
})
```
## See also
[showLeds](/reference/basic/show-leds)

View File

@ -30,4 +30,4 @@ input.onButtonPressed(Button.AB, () => {
## See also
[compassHeading](/reference/input/compass-heading)
[compass heading](/reference/input/compass-heading)

View File

@ -56,10 +56,11 @@ basic.forever(() => {
## Calibration
Every time you start to use the compass (for example, if you have just
turned the @boardname@ on), the @boardname@ will start to [calibrateCompass](/reference/input/calibrate-compass)
(adjust itself). It will ask you to draw a circle by tilting the
@boardname@.
Every time you start to use the compass (for example, if you have just turned the @boardname@ on),
the @boardname@ will start a [calibrate compass](/reference/input/calibrate-compass)
(adjust itself).
The [calibration step](https://support.microbit.org/support/solutions/articles/19000008874-calibrating-the-micro-bit-compass)
will ask you to draw a fill pattern on the screen by tilting the @boardname@.
If you are calibrating or using the compass near metal, it might
confuse the @boardname@.
@ -78,4 +79,4 @@ input.onButtonPressed(Button.AB, () => {
## See also
[acceleration](/reference/input/acceleration), [calibrateCompass](/reference/input/calibrate-compass)
[acceleration](/reference/input/acceleration), [calibrate compass](/reference/input/calibrate-compass)

View File

@ -1,6 +1,6 @@
# Magnetic Force
Find the amount of magnetic force (the strength of a magnet) in the direction you say.
Find the amount of magnetic force (the strength of a magnet) in one of the three directions.
```sig
input.magneticForce(Dimension.X);
@ -10,12 +10,14 @@ input.magneticForce(Dimension.X);
The @boardname@ measures magnetic force with **microteslas**.
## ~
You are asked to [calibrate](https://support.microbit.org/support/solutions/articles/19000008874-calibrating-the-micro-bit-compass) the compass the first time run a program
that uses the compass.
## ~
## Parameters
* ``dimension`` means which direction the @boardname@ should measure
* **dimension**: this is the direction the @boardname@ should measure
magnetic force in: either `Dimension.X` (the left-right direction),
`Dimension.Y` (the forward/backward direction), or `Dimension.Z`
(the up/down direction)
@ -24,16 +26,14 @@ The @boardname@ measures magnetic force with **microteslas**.
* a [number](/types/number) of microteslas that means the strength of the magnet
## Example: metal detector
## Example
This program makes the center LED of the @boardname@ get brighter when
the magnetic force is stronger, and dimmer when it is weaker.
Create a metal detector my measuring the strength of magnetic force in the `X` direction.
Display a bar graph to show the current level of magnetic force measured by the magnetometer.
```blocks
led.plot(2, 2)
basic.forever(() => {
let f = input.magneticForce(Dimension.X)
led.setBrightness(f / 2000)
basic.forever(function() {
led.plotBarGraph(input.magneticForce(Dimension.X) / 2000, 0)
})
```

BIN
docs/static/hero.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

View File

@ -17,7 +17,7 @@
height="176"
viewBox="0 0 286 176"
sodipodi:docname="packageicon.svg"
inkscape:export-filename="/Users/sammysam/Work/pxt-microbit/docs/static/hero.png"
inkscape:export-filename="/Users/sammysam/Work/pxt-microbit/docs/static/hero.jpg"
inkscape:export-xdpi="100.04"
inkscape:export-ydpi="100.04">
<metadata

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

6
docs/static/testfilelogo.svg vendored Normal file
View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" id="svg4487" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.4" clip-rule="evenodd" version="1.1" width="32" height="32" viewBox="0 0 32 32">
<path id="path4485" fill="#696969" d="M16.1 2.7a13.8 13.8 0 00-4.4 27c.7 0 1-.4 1-.7v-2.4c-3.9.9-4.7-1.8-4.7-1.8-.6-1.6-1.5-2-1.5-2-1.3-1 0-.9 0-.9 1.4.1 2.2 1.4 2.2 1.4 1.2 2.1 3.2 1.5 4 1.2a3 3 0 01.9-1.9c-3.1-.3-6.3-1.5-6.3-6.8 0-1.5.5-2.7 1.4-3.7a5 5 0 01.1-3.7s1.2-.3 3.8 1.4a13.2 13.2 0 013.5-.4c1.2 0 2.4.1 3.5.4 2.6-1.7 3.8-1.4 3.8-1.4a5 5 0 01.1 3.7c.9 1 1.4 2.2 1.4 3.7 0 5.3-3.2 6.5-6.3 6.8.5.5 1 1.3 1 2.6V29c0 .4.2.8.9.6a13.8 13.8 0 00-4.4-27"/>
<g id="text4497" fill="#000" fill-opacity="1" stroke="none" stroke-width=".7" aria-label="v" font-family="consolas" font-size="26.6" font-stretch="normal" font-style="normal" font-variant="normal" font-weight="400" letter-spacing="0" style="line-height:1.25;-inkscape-font-specification:consolas" transform="rotate(14.1)" word-spacing="0">
<path id="path4499" stroke-width=".7" d="M21.4-1.7l2.9 8 3-8.3.8-1.5q.4-.4 1-.4.8 0 1.2.5.5.4.5 1v.6l-.3.5-.2.7-3.4 8.4-.4 1-.5 1-.7.5q-.4.2-1 .2-.8 0-1.2-.3-.5-.3-.7-.8l-.7-1.6-3.4-8.3q0-.4-.2-.7l-.2-.6-.1-.6.2-.7.6-.6q.4-.2.9-.2.9 0 1.2.5l.7 1.7z" font-family="Arial Rounded MT Bold" font-stretch="normal" font-style="normal" font-variant="normal" font-weight="400" style="-inkscape-font-specification:'Arial Rounded MT Bold, '"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

0
external/sha/buildflash.sh vendored Normal file → Executable file
View File

View File

@ -472,6 +472,23 @@
"parseFloat": "Convert a string to a number.",
"parseInt": "Convert a string to an integer.",
"pins": "Control currents in Pins for analog/digital signals, servos, i2c, ...",
"pins.C10": "Pin C10",
"pins.C11": "Pin C11",
"pins.C12": "Pin C12",
"pins.C16": "Pin C16",
"pins.C17": "Pin C17",
"pins.C18": "Pin C18",
"pins.C19": "Pin C19",
"pins.C4": "Pin C4",
"pins.C5": "Pin C5",
"pins.C6": "Pin C6",
"pins.C7": "Pin C7",
"pins.C8": "Pin C8",
"pins.C9": "Pin C9",
"pins.P0": "Pin P0",
"pins.P1": "Pin P1",
"pins.P2": "Pin P2",
"pins.P3": "Pin P3",
"pins.analogPitch": "Emit a plse-width modulation (PWM) signal to the current pitch pin. Use `analog set pitch pin` to define the pitch pin.",
"pins.analogPitch|param|frequency": "frequency to modulate in Hz.",
"pins.analogPitch|param|ms": "duration of the pitch in milli seconds.",

View File

@ -215,6 +215,10 @@
"Note.GSharp|block": "G#",
"Number|block": "Number",
"Object|block": "Object",
"PinEvent.Fall|block": "fall",
"PinEvent.PulseHigh|block": "pulse high",
"PinEvent.PulseLow|block": "pulse low",
"PinEvent.Rise|block": "rise",
"PinEventType.Edge|block": "edge",
"PinEventType.None|block": "none",
"PinEventType.Pulse|block": "pulse",
@ -384,6 +388,8 @@
"serial.writeString|block": "serial|write string %text",
"serial.writeValue|block": "serial|write value %name|= %value",
"serial|block": "serial",
"{id:category}AnalogInPin": "AnalogInPin",
"{id:category}AnalogOutPin": "AnalogOutPin",
"{id:category}Array": "Array",
"{id:category}Arrays": "Arrays",
"{id:category}Basic": "Basic",
@ -391,6 +397,7 @@
"{id:category}Buffer": "Buffer",
"{id:category}Console": "Console",
"{id:category}Control": "Control",
"{id:category}DigitalInOutPin": "DigitalInOutPin",
"{id:category}Fx": "Fx",
"{id:category}Fx8": "Fx8",
"{id:category}Game": "Game",
@ -400,12 +407,14 @@
"{id:category}Input": "Input",
"{id:category}Led": "Led",
"{id:category}Math": "Math",
"{id:category}MicrobitPin": "MicrobitPin",
"{id:category}Motors": "Motors",
"{id:category}Msgpack": "Msgpack",
"{id:category}Music": "Music",
"{id:category}Number": "Number",
"{id:category}Object": "Object",
"{id:category}Pins": "Pins",
"{id:category}PwmOnlyPin": "PwmOnlyPin",
"{id:category}Serial": "Serial",
"{id:category}String": "String",
"{id:category}Text": "Text"

View File

@ -31,6 +31,7 @@ void platform_init() {
}
void initMicrobitGC() {
uBit.init();
if (device_heap_size(1) > NON_GC_HEAP_RESERVATION + 4)
gcPreAllocateBlock(device_heap_size(1) - NON_GC_HEAP_RESERVATION);
}
@ -43,9 +44,6 @@ struct FreeList {
};
static void initCodal() {
uBit.init();
// repeat error 4 times and restart as needed
microbit_panic_timeout(4);
}

220
libs/core/pinscompat.ts Normal file
View File

@ -0,0 +1,220 @@
const enum PinEvent {
//% block="pulse high"
PulseHigh = DAL.MICROBIT_PIN_EVT_PULSE_HI, // DEVICE_PIN_EVT_PULSE_HI
//% block="pulse low"
PulseLow = DAL.MICROBIT_PIN_EVT_PULSE_LO, // DEVICE_PIN_EVT_PULSE_LO
//% block="rise"
Rise = DAL.MICROBIT_PIN_EVT_RISE, // DEVICE_PIN_EVT_RISE
//% block="fall"
Fall = DAL.MICROBIT_PIN_EVT_FALL, // DEVICE_PIN_EVT_FALL
}
//% noRefCounting fixedInstances
interface DigitalInOutPin {
digitalRead(): boolean;
digitalWrite(value: boolean): void;
onPulsed(pulse: PulseValue, body: () => void): void;
onEvent(event: PinEvent, body: () => void): void;
pulseIn(value: PulseValue, maxDuration?: number): number;
setPull(pull: PinPullMode): void;
}
//% noRefCounting fixedInstances
interface AnalogInPin extends DigitalInOutPin {
analogRead(): number;
}
//% noRefCounting fixedInstances
interface AnalogOutPin extends DigitalInOutPin {
analogWrite(value: number): void;
}
//% noRefCounting fixedInstances
interface AnalogInOutPin extends AnalogInPin, AnalogOutPin {
}
//% noRefCounting fixedInstances
interface PwmOnlyPin extends DigitalInOutPin, AnalogOutPin {
//% parts=microservo trackArgs=0
analogSetPeriod(period: number): void;
//% parts=microservo trackArgs=0
servoWrite(value: number): void;
//% parts=microservo trackArgs=0
servoSetPulse(duration: number): void;
}
//% noRefCounting fixedInstances
interface PwmPin extends PwmOnlyPin, DigitalInOutPin, AnalogInPin {
}
//% noRefCounting fixedInstances
class MicrobitPin implements AnalogInPin, AnalogOutPin, AnalogInOutPin, PwmOnlyPin {
public id: number;
constructor(id: number) {
this.id = id;
}
protected digitalId(): DigitalPin {
return <DigitalPin>this.id;
}
protected analogId(): AnalogPin {
return <AnalogPin>this.id;
}
digitalRead(): boolean {
return pins.digitalReadPin(this.digitalId()) != 0;
}
digitalWrite(value: boolean): void {
pins.digitalWritePin(this.digitalId(), value ? 1 : 0);
}
onPulsed(pulse: PulseValue, body: () => void): void {
pins.onPulsed(this.digitalId(), pulse, body);
}
onEvent(event: PinEvent, body: () => void): void {
// TODO
}
pulseIn(value: PulseValue, maxDuration?: number): number {
return pins.pulseIn(this.digitalId(), value, maxDuration);
}
setPull(pull: PinPullMode): void {
pins.setPull(this.digitalId(), pull);
}
analogRead(): number {
return pins.analogReadPin(this.analogId());
}
analogWrite(value: number): void {
pins.analogWritePin(this.analogId(), value);
}
analogSetPeriod(period: number): void {
pins.analogSetPeriod(this.analogId(), period);
}
servoWrite(value: number): void {
pins.servoWritePin(this.analogId(), value);
}
servoSetPulse(duration: number): void {
pins.servoSetPulse(this.analogId(), duration);
}
}
namespace pins {
/**
* Pin P0
*/
//% fixedInstance whenUsed
export const P0: PwmPin = new MicrobitPin(DigitalPin.P0);
/**
* Pin P1
*/
//% fixedInstance whenUsed
export const P1: PwmPin = new MicrobitPin(DigitalPin.P1);
/**
* Pin P2
*/
//% fixedInstance whenUsed
export const P2: PwmPin = new MicrobitPin(DigitalPin.P2);
/**
* Pin P3
*/
//% fixedInstance whenUsed
export const P3: AnalogInPin = new MicrobitPin(DigitalPin.P3);
/**
* Pin C4
*/
//% fixedInstance whenUsed
export const C4: AnalogInPin = new MicrobitPin(DigitalPin.C4);
/**
* Pin C5
*/
//% fixedInstance whenUsed
export const C5: DigitalInOutPin = new MicrobitPin(DigitalPin.C5);
/**
* Pin C6
*/
//% fixedInstance whenUsed
export const C6: DigitalInOutPin = new MicrobitPin(DigitalPin.C6);
/**
* Pin C7
*/
//% fixedInstance whenUsed
export const C7: DigitalInOutPin = new MicrobitPin(DigitalPin.C7);
/**
* Pin C8
*/
//% fixedInstance whenUsed
export const C8: DigitalInOutPin = new MicrobitPin(DigitalPin.C8);
/**
* Pin C9
*/
//% fixedInstance whenUsed
export const C9: DigitalInOutPin = new MicrobitPin(DigitalPin.C9);
/**
* Pin C10
*/
//% fixedInstance whenUsed
export const C10: AnalogInPin = new MicrobitPin(DigitalPin.C10);
/**
* Pin C11
*/
//% fixedInstance whenUsed
export const C11: DigitalInOutPin = new MicrobitPin(DigitalPin.C11);
/**
* Pin C12
*/
//% fixedInstance whenUsed
export const C12: DigitalInOutPin = new MicrobitPin(DigitalPin.C12);
/**
* Pin C16
*/
//% fixedInstance whenUsed
export const C16: DigitalInOutPin = new MicrobitPin(DigitalPin.C16);
/**
* Pin C17
*/
//% fixedInstance whenUsed
export const C17: DigitalInOutPin = new MicrobitPin(DigitalPin.C17);
/**
* Pin C18
*/
//% fixedInstance whenUsed
export const C18: DigitalInOutPin = new MicrobitPin(DigitalPin.C18);
/**
* Pin C19
*/
//% fixedInstance whenUsed
export const C19: DigitalInOutPin = new MicrobitPin(DigitalPin.C19);
}

View File

@ -17,6 +17,7 @@
"core.cpp",
"pxt-helpers.ts",
"helpers.ts",
"pinscompat.ts",
"configkeys.h",
"gc.cpp",
"codal.cpp",

3
libs/servo/pxt.json Normal file
View File

@ -0,0 +1,3 @@
{
"additionalFilePath": "../../node_modules/pxt-common-packages/libs/servo"
}

View File

@ -0,0 +1,8 @@
namespace servos {
//% block="servo P0" fixedInstance whenUsed
export const P0 = new servos.PinServo(pins.P0);
//% block="servo P1" fixedInstance whenUsed
export const P1 = new servos.PinServo(pins.P1);
//% block="servo P2" fixedInstance whenUsed
export const P2 = new servos.PinServo(pins.P2);
}

3683
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -284,7 +284,7 @@
"organizationUrl": "https://makecode.com/",
"organizationLogo": "./static/Microsoft-logo_rgb_c-gray-square.png",
"organizationWideLogo": "./static/Microsoft-logo_rgb_c-white.png",
"homeScreenHero": "./static/hero.png",
"homeScreenHero": "./static/hero.jpg",
"homeUrl": "https://makecode.calliope.cc/",
"embedUrl": "https://makecode.calliope.cc/",
"shareUrl": "https://makecode.calliope.cc/",
@ -427,5 +427,6 @@
"hideMenuBar": true
}
}
}
},
"disableDocsUpload": true
}

0
resources/gestures/BackSideUp.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 650 B

After

Width:  |  Height:  |  Size: 650 B

0
resources/gestures/FreeFall.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
resources/gestures/FrontSideUp.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
resources/gestures/Impact3G.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
resources/gestures/Impact6G.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

0
resources/gestures/Impact8G.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

0
resources/gestures/Shake.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
resources/gestures/TiltBackward.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
resources/gestures/TiltForward.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
resources/gestures/TiltLeft.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

0
resources/gestures/TiltRight.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -179,7 +179,13 @@
"assirati/pxt-inventura",
"Veilkrand/pxt-RobotCar",
"4tronix/DriveBit",
"Freenove/Makecode-Extension-Starter-Kit"
"Freenove/Makecode-Extension-Starter-Kit",
"sphero-inc/sphero-sdk-microbit-makecode",
"BrightWearables/pxt-microbit-brightboard",
"EBOTICS/pxt-eboticsMIBO",
"KitronikLtd/pxt-kitronik-halohd",
"dugbraden/pxt-climate-action-kit",
"alsrobot-microbit-makecode-packages/MiniCruise"
],
"preferredRepos": [
"Microsoft/pxt-neopixel",
@ -222,7 +228,7 @@
],
"galleries": {
"First Steps": "calliope/firststeps",
"Turorials": "calliope/tutorials",
"Tutorials": "calliope/tutorials",
"Calliope Links": "calliope/links"
},
"electronManifest": {