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/win10/*.opendb
clients/**/bin/** clients/**/bin/**
clients/**/obj/** clients/**/obj/**
clients/electron/projects electron-out
hexcache hexcache
build
crowdinstats.csv
*.user *.user
*.sw? *.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. // Place your settings in this file to overwrite default and user settings.
{ {
"file.autoSave": "afterDelay", "files.autoSave": "afterDelay",
"files.watcherExclude": { "files.watcherExclude": {
"**/.git/objects/**": true, "**/.git/objects/**": true,
"**/built/**": true, "**/built/**": true,

View File

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

View File

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

View File

@ -9,7 +9,7 @@ basic.showIcon(IconNames.Heart)
## Parameters ## Parameters
* ``icon``, the identifier of the icon to display * ``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 ## Example
@ -21,6 +21,38 @@ basic.pause(1000)
basic.showIcon(IconNames.Sad) 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 ## See also
[showLeds](/reference/basic/show-leds) [showLeds](/reference/basic/show-leds)

View File

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

View File

@ -56,10 +56,11 @@ basic.forever(() => {
## Calibration ## Calibration
Every time you start to use the compass (for example, if you have just Every time you start to use the compass (for example, if you have just turned the @boardname@ on),
turned the @boardname@ on), the @boardname@ will start to [calibrateCompass](/reference/input/calibrate-compass) the @boardname@ will start a [calibrate compass](/reference/input/calibrate-compass)
(adjust itself). It will ask you to draw a circle by tilting the (adjust itself).
@boardname@. 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 If you are calibrating or using the compass near metal, it might
confuse the @boardname@. confuse the @boardname@.
@ -78,4 +79,4 @@ input.onButtonPressed(Button.AB, () => {
## See also ## 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 # 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 ```sig
input.magneticForce(Dimension.X); input.magneticForce(Dimension.X);
@ -10,12 +10,14 @@ input.magneticForce(Dimension.X);
The @boardname@ measures magnetic force with **microteslas**. 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 ## 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), magnetic force in: either `Dimension.X` (the left-right direction),
`Dimension.Y` (the forward/backward direction), or `Dimension.Z` `Dimension.Y` (the forward/backward direction), or `Dimension.Z`
(the up/down direction) (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 * 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 Create a metal detector my measuring the strength of magnetic force in the `X` direction.
the magnetic force is stronger, and dimmer when it is weaker. Display a bar graph to show the current level of magnetic force measured by the magnetometer.
```blocks ```blocks
led.plot(2, 2) basic.forever(function() {
basic.forever(() => { led.plotBarGraph(input.magneticForce(Dimension.X) / 2000, 0)
let f = input.magneticForce(Dimension.X)
led.setBrightness(f / 2000)
}) })
``` ```

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" height="176"
viewBox="0 0 286 176" viewBox="0 0 286 176"
sodipodi:docname="packageicon.svg" 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-xdpi="100.04"
inkscape:export-ydpi="100.04"> inkscape:export-ydpi="100.04">
<metadata <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.", "parseFloat": "Convert a string to a number.",
"parseInt": "Convert a string to an integer.", "parseInt": "Convert a string to an integer.",
"pins": "Control currents in Pins for analog/digital signals, servos, i2c, ...", "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": "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|frequency": "frequency to modulate in Hz.",
"pins.analogPitch|param|ms": "duration of the pitch in milli seconds.", "pins.analogPitch|param|ms": "duration of the pitch in milli seconds.",

View File

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

View File

@ -31,6 +31,7 @@ void platform_init() {
} }
void initMicrobitGC() { void initMicrobitGC() {
uBit.init();
if (device_heap_size(1) > NON_GC_HEAP_RESERVATION + 4) if (device_heap_size(1) > NON_GC_HEAP_RESERVATION + 4)
gcPreAllocateBlock(device_heap_size(1) - NON_GC_HEAP_RESERVATION); gcPreAllocateBlock(device_heap_size(1) - NON_GC_HEAP_RESERVATION);
} }
@ -43,9 +44,6 @@ struct FreeList {
}; };
static void initCodal() { static void initCodal() {
uBit.init();
// repeat error 4 times and restart as needed // repeat error 4 times and restart as needed
microbit_panic_timeout(4); 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", "core.cpp",
"pxt-helpers.ts", "pxt-helpers.ts",
"helpers.ts", "helpers.ts",
"pinscompat.ts",
"configkeys.h", "configkeys.h",
"gc.cpp", "gc.cpp",
"codal.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/", "organizationUrl": "https://makecode.com/",
"organizationLogo": "./static/Microsoft-logo_rgb_c-gray-square.png", "organizationLogo": "./static/Microsoft-logo_rgb_c-gray-square.png",
"organizationWideLogo": "./static/Microsoft-logo_rgb_c-white.png", "organizationWideLogo": "./static/Microsoft-logo_rgb_c-white.png",
"homeScreenHero": "./static/hero.png", "homeScreenHero": "./static/hero.jpg",
"homeUrl": "https://makecode.calliope.cc/", "homeUrl": "https://makecode.calliope.cc/",
"embedUrl": "https://makecode.calliope.cc/", "embedUrl": "https://makecode.calliope.cc/",
"shareUrl": "https://makecode.calliope.cc/", "shareUrl": "https://makecode.calliope.cc/",
@ -427,5 +427,6 @@
"hideMenuBar": true "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", "assirati/pxt-inventura",
"Veilkrand/pxt-RobotCar", "Veilkrand/pxt-RobotCar",
"4tronix/DriveBit", "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": [ "preferredRepos": [
"Microsoft/pxt-neopixel", "Microsoft/pxt-neopixel",
@ -222,7 +228,7 @@
], ],
"galleries": { "galleries": {
"First Steps": "calliope/firststeps", "First Steps": "calliope/firststeps",
"Turorials": "calliope/tutorials", "Tutorials": "calliope/tutorials",
"Calliope Links": "calliope/links" "Calliope Links": "calliope/links"
}, },
"electronManifest": { "electronManifest": {