Lightmonster (#346)
* fixed boardname issues * refactored servo info * coffee cup monster lesson skeleton * display event source id / value in advanced section * normalized project structure * updated project name * Update projects.md
This commit is contained in:
parent
595e4a23e6
commit
1d47b4de0d
@ -1,5 +1,5 @@
|
|||||||
# microbit-chrome
|
# microbit-chrome
|
||||||
Prototype chrome addon that exposes the micro:bit's serial output to webpages.
|
Prototype chrome addon that exposes the @boardname@'s serial output to webpages.
|
||||||
* watch the [demo video](https://vimeo.com/146207766)
|
* watch the [demo video](https://vimeo.com/146207766)
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
@ -1,13 +1,4 @@
|
|||||||
# Preparing the servo
|
# Equipping a microservo with Crocodile clips
|
||||||
### @description Connecting the servo to crocodile clips
|
|
||||||
|
|
||||||
### ~avatar avatar
|
|
||||||
|
|
||||||
Equip the microservo with crocodile clips.
|
|
||||||
|
|
||||||
### ~
|
|
||||||
|
|
||||||
## Duration: ~30 minutes
|
|
||||||
|
|
||||||
## Materials
|
## Materials
|
||||||
* Cutting pliers or wire cutter
|
* Cutting pliers or wire cutter
|
||||||
@ -70,7 +61,7 @@ Place the cables next to each other
|
|||||||
|
|
||||||
It is very **important** to ensure that there is a good connection between the 2 cables.
|
It is very **important** to ensure that there is a good connection between the 2 cables.
|
||||||
If the connection is weak, the microservo will not receive enough current and it will not work.
|
If the connection is weak, the microservo will not receive enough current and it will not work.
|
||||||
If you have access to a soldering iron, we strongly recommend to solver this connection.
|
**If you have access to a soldering iron, we strongly recommend to solder this connection.**
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
@ -105,11 +96,9 @@ When attaching the crocodile clips to the pins, don't hesitate to grab the side
|
|||||||
* Download the following code to your @boardname@
|
* Download the following code to your @boardname@
|
||||||
|
|
||||||
```blocks
|
```blocks
|
||||||
let a = 0
|
|
||||||
basic.forever(() => {
|
basic.forever(() => {
|
||||||
a = input.acceleration(Dimension.X)
|
|
||||||
pins.servoWritePin(AnalogPin.P0, pins.map(
|
pins.servoWritePin(AnalogPin.P0, pins.map(
|
||||||
a,
|
input.acceleration(Dimension.X),
|
||||||
-512,
|
-512,
|
||||||
512,
|
512,
|
||||||
0,
|
0,
|
||||||
@ -121,10 +110,7 @@ basic.forever(() => {
|
|||||||
* When powered by USB, make sure that the servo moves when you tilt the board.
|
* When powered by USB, make sure that the servo moves when you tilt the board.
|
||||||
* When powered by batteries **only**, make sure that the servo moves when you tilt the board.
|
* When powered by batteries **only**, make sure that the servo moves when you tilt the board.
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
If your servo seems to sutter and stay stuck at a particular position, it means that it is not receiving enough power.
|
If your servo seems to sutter and stay stuck at a particular position, it means that it is not receiving enough power.
|
||||||
This is probably due to a weak connection or low battery level. Check each connection and check your batteries.
|
This is probably due to a weak connection or low battery level. Check each connection and check your batteries.
|
||||||
|
|
||||||
|
|
||||||
### ~button /projects/inchworm/chassis
|
|
||||||
NEXT: Chassis
|
|
||||||
### ~
|
|
@ -62,17 +62,13 @@ Fun games to build with your @boardname@.
|
|||||||
}]
|
}]
|
||||||
```
|
```
|
||||||
|
|
||||||
## Science and Engineering
|
## Toys
|
||||||
|
|
||||||
```codecard
|
```codecard
|
||||||
[{
|
[{
|
||||||
"name": "Inchworm",
|
"name": "Inchworm",
|
||||||
"url":"/projects/inchworm",
|
"url":"/projects/inchworm",
|
||||||
"imageUrl":"/static/mb/projects/inchworm.jpg"
|
"imageUrl":"/static/mb/projects/inchworm.jpg"
|
||||||
}, {
|
|
||||||
"name": "Timing gates",
|
|
||||||
"url":"/projects/timing-gates",
|
|
||||||
"imageUrl":"/static/mb/projects/timing-gates.jpg"
|
|
||||||
}]
|
}]
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -80,6 +76,10 @@ Fun games to build with your @boardname@.
|
|||||||
|
|
||||||
```codecard
|
```codecard
|
||||||
[{
|
[{
|
||||||
|
"name": "Timing gates",
|
||||||
|
"url":"/projects/timing-gates",
|
||||||
|
"imageUrl":"/static/mb/projects/timing-gates.jpg"
|
||||||
|
}, {
|
||||||
"name": "Compass",
|
"name": "Compass",
|
||||||
"url":"/projects/compass",
|
"url":"/projects/compass",
|
||||||
"imageUrl":"/static/mb/projects/a5-compass.png"
|
"imageUrl":"/static/mb/projects/a5-compass.png"
|
||||||
|
@ -21,8 +21,8 @@ Build your own @boardname@ piano using bananas!
|
|||||||
|
|
||||||
## Activities
|
## Activities
|
||||||
|
|
||||||
* [Making the keyboard](/projects/banana-keyboard/make)
|
* [Make](/projects/banana-keyboard/make)
|
||||||
* [Beat box](/projects/banana-keyboard/beat-box)
|
* [Code](/projects/banana-keyboard/code)
|
||||||
|
|
||||||
### ~button /projects/banana-keyboard/make
|
### ~button /projects/banana-keyboard/make
|
||||||
Let's get started!
|
Let's get started!
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# banana keyboard - beat box
|
# Code
|
||||||
|
|
||||||
Have you ever tried to making beat box sounds? Let's try making a beatbox with code!
|
Have you ever tried to making beat box sounds? Let's try making a beatbox with code!
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
# banana keyboard - making
|
# Make
|
||||||
|
|
||||||
## Materials
|
## Materials
|
||||||
|
|
||||||
@ -80,6 +80,6 @@ input.onPinPressed(TouchPin.P1, () => {
|
|||||||
|
|
||||||
Tap your banana instrument to play sound against... the fruit!
|
Tap your banana instrument to play sound against... the fruit!
|
||||||
|
|
||||||
### ~button /projects/banana-keyboard/beat-box
|
### ~button /projects/banana-keyboard/code
|
||||||
NEXT: beat box
|
NEXT: beat box
|
||||||
### ~
|
### ~
|
||||||
|
43
docs/projects/coffee-cup-monster.md
Normal file
43
docs/projects/coffee-cup-monster.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
# Coffee Cup Monster
|
||||||
|
|
||||||
|
### @description A monster made of cardboard that responds to light
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Make a coffee cup monster that responds to light!
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
https://youtu.be/BiZLjugXMbM
|
||||||
|
|
||||||
|
## Duration
|
||||||
|
|
||||||
|
3 Activities, approx 30-45 min each based on familiarity with the coding concepts
|
||||||
|
|
||||||
|
## Materials
|
||||||
|
|
||||||
|
* 3 Coffee cup holders
|
||||||
|
* 2 Coffee cup strirer wood sticks
|
||||||
|
* Glue gun
|
||||||
|
* Scissors that can cut cardboard
|
||||||
|
* 1 @boardname@, battery holder and 2 AAA batteries
|
||||||
|
* 3 Crocodile clips
|
||||||
|
* 1 micro servo 9g SG90
|
||||||
|
* 1 paper clip
|
||||||
|
|
||||||
|
## Preparation
|
||||||
|
|
||||||
|
* [Equip the microservo with crocodile clips](/device/servo)
|
||||||
|
|
||||||
|
## Activities
|
||||||
|
|
||||||
|
* [Make](/projects/coffee-cup-monster/make)
|
||||||
|
* [Code](/projects/coffee-cup-monster/code)
|
||||||
|
* [Connect](/projects/coffee-cup-monster/connect)
|
||||||
|
|
||||||
|
### ~button /projects/coffee-cup-monster/make
|
||||||
|
|
||||||
|
Let's get started!
|
||||||
|
|
||||||
|
### ~
|
29
docs/projects/coffee-cup-monster/code.md
Normal file
29
docs/projects/coffee-cup-monster/code.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Code
|
||||||
|
### @description code to make the coffee cup monster alive
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Add code to open the mouth when light is detected.
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Duration: ~30 minutes
|
||||||
|
|
||||||
|
We are going to add code to open the mouth proportionally to the amount of light on the @boardname@.
|
||||||
|
In a loop, we will read the light and map it to an angle using the ``pins.map`` function.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
basic.forever(() => {
|
||||||
|
pins.servoWritePin(AnalogPin.P0, pins.map(
|
||||||
|
input.lightLevel(),
|
||||||
|
0,
|
||||||
|
255,
|
||||||
|
30,
|
||||||
|
150
|
||||||
|
))
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### ~button /projects/coffee-cup-monster/connect
|
||||||
|
NEXT: Connect
|
||||||
|
### ~
|
29
docs/projects/coffee-cup-monster/connect.md
Normal file
29
docs/projects/coffee-cup-monster/connect.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Connect
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Remote control your monster with another @boardname@
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Duration: ~30 minutes
|
||||||
|
|
||||||
|
You will need 2 @boardname@ for this part. By using the radio, we can make the inchworm controlled by another @boardname@.
|
||||||
|
Download the code below to the @boardname@ on the inchworm and another "controller" @boardname@.
|
||||||
|
Whenere A is pressed, the monster will open and close it's mouth will move once.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
radio.onDataPacketReceived(({receivedNumber}) => {
|
||||||
|
pins.servoWritePin(AnalogPin.P0, 30)
|
||||||
|
basic.pause(500)
|
||||||
|
pins.servoWritePin(AnalogPin.P0, 150)
|
||||||
|
basic.pause(500)
|
||||||
|
})
|
||||||
|
input.onButtonPressed(Button.A, () => {
|
||||||
|
radio.sendNumber(0)
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
```package
|
||||||
|
radio
|
||||||
|
```
|
25
docs/projects/coffee-cup-monster/make.md
Normal file
25
docs/projects/coffee-cup-monster/make.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Make
|
||||||
|
### @description Building the coffee cup monster
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Turn a piece of coffee holders into a monster!
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Duration: ~60 minutes
|
||||||
|
|
||||||
|
## Materials
|
||||||
|
* 3 Coffee cup holders
|
||||||
|
* 2 Coffee cup strirer wood sticks
|
||||||
|
* Scissors
|
||||||
|
* glue gun or tape
|
||||||
|
* 1 paper clip
|
||||||
|
|
||||||
|
## Step 1: cardboard
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
### ~button /projects/coffee-cup-monster/code
|
||||||
|
NEXT: Code
|
||||||
|
### ~
|
@ -27,8 +27,8 @@ Build your own music player @boardname@ from headphones.
|
|||||||
|
|
||||||
## Activities
|
## Activities
|
||||||
|
|
||||||
* [Connect your headphone](/projects/hack-your-headphones/make)
|
* [Make](/projects/hack-your-headphones/make)
|
||||||
* [Play sounds!]()
|
* [Code](/projects/hack-your-headphones/code)
|
||||||
|
|
||||||
### ~button /projects/hack-your-headphones/make
|
### ~button /projects/hack-your-headphones/make
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# hack your headphones - music of light
|
# Code
|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
# hack your headphones - making
|
# Make
|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ Using the 2nd crocodile clip, connect the second end of the crocodile clip onto
|
|||||||
|
|
||||||
You hacked your headphones!
|
You hacked your headphones!
|
||||||
|
|
||||||
### ~button /projects/hack-your-headphones/music-of-light
|
### ~button /projects/hack-your-headphones/code
|
||||||
|
|
||||||
NEXT: music of light
|
NEXT: music of light
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
# Inchworm
|
# Inchworm
|
||||||
|
|
||||||
### @description A inchworm like robot built with the micro:bit
|
### @description A inchworm like robot built with the @boardname@
|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
||||||
|
|
||||||
@ -27,13 +27,17 @@ https://youtu.be/BiZLjugXMbM
|
|||||||
|
|
||||||
![Materials](/static/mb/projects/inchworm/materials.jpg)
|
![Materials](/static/mb/projects/inchworm/materials.jpg)
|
||||||
|
|
||||||
|
## Preparation
|
||||||
|
|
||||||
|
* [Equip the microservo with crocodile clips](/device/servo)
|
||||||
|
|
||||||
## Activities
|
## Activities
|
||||||
|
|
||||||
* [Servo](/projects/inchworm/servo)
|
* [Make](/projects/inchworm/make)
|
||||||
* [Chassis](/projects/inchworm/chassis)
|
|
||||||
* [Code](/projects/inchworm/code)
|
* [Code](/projects/inchworm/code)
|
||||||
|
* [Connect](/projects/inchworm/connect)
|
||||||
|
|
||||||
### ~button /projects/inchworm/servo
|
### ~button /projects/inchworm/make
|
||||||
|
|
||||||
Let's get started!
|
Let's get started!
|
||||||
|
|
||||||
|
@ -30,23 +30,6 @@ so that the inchworm goes as fast as possible. Trying it on carpet also great he
|
|||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
|
||||||
## Step 2: radio controlled inchworm
|
### ~button /projects/inchworm/connect
|
||||||
|
NEXT: Connect
|
||||||
You will need 2 @boardname@ for this part. By using the radio, we can make the inchworm controlled by another @boardname@.
|
### ~
|
||||||
Download the code below to the @boardname@ on the inchworm and another "controller" @boardname@. Whenere A is pressed, the inchworm will move once.
|
|
||||||
|
|
||||||
```blocks
|
|
||||||
radio.onDataPacketReceived(({receivedNumber}) => {
|
|
||||||
pins.servoWritePin(AnalogPin.P0, 0)
|
|
||||||
basic.pause(500)
|
|
||||||
pins.servoWritePin(AnalogPin.P0, 180)
|
|
||||||
basic.pause(500)
|
|
||||||
})
|
|
||||||
input.onButtonPressed(Button.A, () => {
|
|
||||||
radio.sendNumber(0)
|
|
||||||
})
|
|
||||||
```
|
|
||||||
|
|
||||||
```package
|
|
||||||
radio
|
|
||||||
```
|
|
28
docs/projects/inchworm/connect.md
Normal file
28
docs/projects/inchworm/connect.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Connect
|
||||||
|
|
||||||
|
### ~avatar avatar
|
||||||
|
|
||||||
|
Remote control your inchworm with another @boardname@
|
||||||
|
|
||||||
|
### ~
|
||||||
|
|
||||||
|
## Duration: ~30 minutes
|
||||||
|
|
||||||
|
You will need 2 @boardname@ for this part. By using the radio, we can make the inchworm controlled by another @boardname@.
|
||||||
|
Download the code below to the @boardname@ on the inchworm and another "controller" @boardname@. Whenere A is pressed, the inchworm will move once.
|
||||||
|
|
||||||
|
```blocks
|
||||||
|
radio.onDataPacketReceived(({receivedNumber}) => {
|
||||||
|
pins.servoWritePin(AnalogPin.P0, 0)
|
||||||
|
basic.pause(500)
|
||||||
|
pins.servoWritePin(AnalogPin.P0, 180)
|
||||||
|
basic.pause(500)
|
||||||
|
})
|
||||||
|
input.onButtonPressed(Button.A, () => {
|
||||||
|
radio.sendNumber(0)
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
```package
|
||||||
|
radio
|
||||||
|
```
|
@ -1,4 +1,4 @@
|
|||||||
# Chassis
|
# Make
|
||||||
### @description Building the cardboard inchworm
|
### @description Building the cardboard inchworm
|
||||||
|
|
||||||
### ~avatar avatar
|
### ~avatar avatar
|
@ -17,8 +17,8 @@ Build a telegraph between two @boardname@s to communicate with your friends!
|
|||||||
|
|
||||||
## Activities
|
## Activities
|
||||||
|
|
||||||
* [Making the circuit](/projects/telegraph/make)
|
* [Make](/projects/telegraph/make)
|
||||||
* [Manual telegraph](/projects/telegraph/manual-telegraph)
|
* [Code](/projects/telegraph/code)
|
||||||
|
|
||||||
### ~button /projects/telegraph/make
|
### ~button /projects/telegraph/make
|
||||||
Let's get started!
|
Let's get started!
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# telegraph - manual telegraph
|
# Code
|
||||||
|
|
||||||
Let's build the code that will send a impulse while the user presses ``A``.
|
Let's build the code that will send a impulse while the user presses ``A``.
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
# telegraph - making
|
# Make
|
||||||
|
|
||||||
### ~avatar
|
### ~avatar
|
||||||
|
|
||||||
@ -68,8 +68,8 @@ Using the 4th crocodile clip, connect the unattached end of the crocodile clip o
|
|||||||
![](/static/mb/lessons/telegraph-0.png)
|
![](/static/mb/lessons/telegraph-0.png)
|
||||||
|
|
||||||
|
|
||||||
### ~button /projects/telegraph/manual-telegraph
|
### ~button /projects/telegraph/code
|
||||||
|
|
||||||
NEXT: manual telegraph
|
NEXT: Code
|
||||||
|
|
||||||
### ~
|
### ~
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Wallet - Code
|
# Code
|
||||||
|
|
||||||
## Simple animation
|
## Simple animation
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Wallet - Make
|
# Make
|
||||||
|
|
||||||
### @description Maker Project for Wallet
|
### @description Maker Project for Wallet
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ bluetooth.advertiseUidBuffer(pins.createBuffer(16), 7, true);
|
|||||||
|
|
||||||
* ``buffer`` - a 16 bytes buffer containing the namespace (first 10 bytes) and instance (last 6 bytes).
|
* ``buffer`` - a 16 bytes buffer containing the namespace (first 10 bytes) and instance (last 6 bytes).
|
||||||
* ``power`` - a [number](/reference/types/number) representing the power level between 0 (short) and 7 (maximum range).
|
* ``power`` - a [number](/reference/types/number) representing the power level between 0 (short) and 7 (maximum range).
|
||||||
* ``connectable`` - a [boolean](/blocks/logic/boolean) indicating whether or not the micro:bit should accept connections.
|
* ``connectable`` - a [boolean](/blocks/logic/boolean) indicating whether or not the @boardname@ should accept connections.
|
||||||
|
|
||||||
|
|
||||||
## See Also
|
## See Also
|
||||||
|
@ -26,7 +26,7 @@ bluetooth.advertiseUid(42, 1, 7, true);
|
|||||||
* ``namespace`` last 4 bytes of the namespace uid (6 to 9)
|
* ``namespace`` last 4 bytes of the namespace uid (6 to 9)
|
||||||
* ``instance`` last 4 bytes of the instance (2 to 5)
|
* ``instance`` last 4 bytes of the instance (2 to 5)
|
||||||
* ``power`` - a [number](/reference/types/number) representing the power level between 0 (short) and 7 (maximum range).
|
* ``power`` - a [number](/reference/types/number) representing the power level between 0 (short) and 7 (maximum range).
|
||||||
* ``connectable`` - a [boolean](/blocks/logic/boolean) indicating whether or not the micro:bit should accept connections.
|
* ``connectable`` - a [boolean](/blocks/logic/boolean) indicating whether or not the @boardname@ should accept connections.
|
||||||
|
|
||||||
## Encoding
|
## Encoding
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ bluetooth.advertiseUrl("https://pxt.microbit.org/", 7, true);
|
|||||||
|
|
||||||
* ``url`` - a [string](/reference/types/string) containing the URL to broadcast, at most 17 characters long, excluding the protocol (eg: ``https://``) which gets encoded as 1 byte.
|
* ``url`` - a [string](/reference/types/string) containing the URL to broadcast, at most 17 characters long, excluding the protocol (eg: ``https://``) which gets encoded as 1 byte.
|
||||||
* ``power`` - a [number](/reference/types/number) representing the power level between 0 (short) and 7 (maximum range).
|
* ``power`` - a [number](/reference/types/number) representing the power level between 0 (short) and 7 (maximum range).
|
||||||
* ``connectable`` - a [boolean](/blocks/logic/boolean) indicating whether or not the micro:bit should accept connections.
|
* ``connectable`` - a [boolean](/blocks/logic/boolean) indicating whether or not the @boardname@ should accept connections.
|
||||||
|
|
||||||
### Example: Broadcast a secret code
|
### Example: Broadcast a secret code
|
||||||
|
|
||||||
|
@ -193,6 +193,7 @@ namespace control {
|
|||||||
* Gets a friendly name for the device derived from the its serial number
|
* Gets a friendly name for the device derived from the its serial number
|
||||||
*/
|
*/
|
||||||
//% blockId="control_device_name" block="device name" weight=10 blockGap=8
|
//% blockId="control_device_name" block="device name" weight=10 blockGap=8
|
||||||
|
//% advanced=true
|
||||||
StringData* deviceName() {
|
StringData* deviceName() {
|
||||||
return ManagedString(microbit_friendly_name()).leakData();
|
return ManagedString(microbit_friendly_name()).leakData();
|
||||||
}
|
}
|
||||||
@ -201,6 +202,7 @@ namespace control {
|
|||||||
* Derive a unique, consistent serial number of this device from internal data.
|
* Derive a unique, consistent serial number of this device from internal data.
|
||||||
*/
|
*/
|
||||||
//% blockId="control_device_serial_number" block="device serial number" weight=9
|
//% blockId="control_device_serial_number" block="device serial number" weight=9
|
||||||
|
//% advanced=true
|
||||||
int deviceSerialNumber() {
|
int deviceSerialNumber() {
|
||||||
return microbit_serial_number();
|
return microbit_serial_number();
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace control {
|
|||||||
* Returns the value of a C++ runtime constant
|
* Returns the value of a C++ runtime constant
|
||||||
*/
|
*/
|
||||||
//% weight=2 weight=19 blockId="control_event_source_id" block="%id" blockGap=8
|
//% weight=2 weight=19 blockId="control_event_source_id" block="%id" blockGap=8
|
||||||
//% shim=TD_ID
|
//% shim=TD_ID advanced=true
|
||||||
export function eventSourceId(id: EventBusSource): number {
|
export function eventSourceId(id: EventBusSource): number {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@ -17,7 +17,7 @@ namespace control {
|
|||||||
* Returns the value of a C++ runtime constant
|
* Returns the value of a C++ runtime constant
|
||||||
*/
|
*/
|
||||||
//% weight=1 weight=19 blockId="control_event_value_id" block="%id"
|
//% weight=1 weight=19 blockId="control_event_value_id" block="%id"
|
||||||
//% shim=TD_ID
|
//% shim=TD_ID advanced=true
|
||||||
export function eventValueId(id: EventBusValue): number {
|
export function eventValueId(id: EventBusValue): number {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@ namespace music {
|
|||||||
*/
|
*/
|
||||||
//% weight=50 help=music/note-frequency
|
//% weight=50 help=music/note-frequency
|
||||||
//% blockId=device_note block="%note"
|
//% blockId=device_note block="%note"
|
||||||
//% shim=TD_ID
|
//% shim=TD_ID blockHidden=true
|
||||||
export function noteFrequency(name: Note): number {
|
export function noteFrequency(name: Note): number {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
6
libs/core/shims.d.ts
vendored
6
libs/core/shims.d.ts
vendored
@ -415,13 +415,15 @@ declare namespace control {
|
|||||||
/**
|
/**
|
||||||
* Gets a friendly name for the device derived from the its serial number
|
* Gets a friendly name for the device derived from the its serial number
|
||||||
*/
|
*/
|
||||||
//% blockId="control_device_name" block="device name" weight=10 blockGap=8 shim=control::deviceName
|
//% blockId="control_device_name" block="device name" weight=10 blockGap=8
|
||||||
|
//% advanced=true shim=control::deviceName
|
||||||
function deviceName(): string;
|
function deviceName(): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Derive a unique, consistent serial number of this device from internal data.
|
* Derive a unique, consistent serial number of this device from internal data.
|
||||||
*/
|
*/
|
||||||
//% blockId="control_device_serial_number" block="device serial number" weight=9 shim=control::deviceSerialNumber
|
//% blockId="control_device_serial_number" block="device serial number" weight=9
|
||||||
|
//% advanced=true shim=control::deviceSerialNumber
|
||||||
function deviceSerialNumber(): number;
|
function deviceSerialNumber(): number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user