Bump V3.0.22 (#110)
* change simulator svg * change radio image * Remove google fonts cdn * change color of 'advanced' button * font fix * font fix 2 * display fix * change fullsceen simulator bg * Continuous servo * handle continuous state * adding shims * update rendering for continuous servos * fixing sim * fix sig * typo * fix sim * bump pxt * bump pxt * rerun travis * Input blocks revision - add Button and Pin event types - merge onPinPressed & onPinReleased in new onPinEvent function - create new onButtonEvent function * update input blocks in docs and tests * remove device_pin_release block * Hide DAL.x behind Enum * bring back deprecated blocks, but hide them * shims and locales files * fix input.input. typing * remove buildpr * bump V3 * update simulator aspect ratio * add Loudness Block * revoke loudness block * Adds soundLevel To be replaced by pxt-common-packages when DAL is updated. * Remove P0 & P3 from AnalogPin Co-authored-by: Juri <gitkraken@juriwolf.de>
This commit is contained in:
		
							
								
								
									
										30
									
								
								docs/blocks/logic/boolean.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								docs/blocks/logic/boolean.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #examples
 | 
			
		||||
 | 
			
		||||
## Example: ``AND`` operator
 | 
			
		||||
 | 
			
		||||
This example turns on LED `3 , 3`, if LEDs `1 , 1` and `2 , 2` are both on:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
if (led.point(1,1) && led.point(2,2)) {
 | 
			
		||||
   led.plot(3,3)
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Example: Comparisons of numbers and strings
 | 
			
		||||
 | 
			
		||||
When you compare two Numbers, you get a Boolean value, such as the comparison `x < 5` in the code below:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
input.onButtonPressed(Button.A, () => {
 | 
			
		||||
    let x = randint(0, 5)
 | 
			
		||||
    if(x < 5) {
 | 
			
		||||
    basic.showString("low");
 | 
			
		||||
    } else {
 | 
			
		||||
    basic.showString("high");
 | 
			
		||||
    }
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
See the documentation on [Numbers](/types/number) for more information on comparing two Numbers.
 | 
			
		||||
							
								
								
									
										15
									
								
								docs/blocks/logic/if.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docs/blocks/logic/if.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #examples
 | 
			
		||||
 | 
			
		||||
## Example: adjusting screen brightness
 | 
			
		||||
 | 
			
		||||
If the [light level](/reference/input/light-level) is `< 100`, this code sets the brightness to `255` when the button A is pressed:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
input.onButtonPressed(Button.A, () => {
 | 
			
		||||
    if(input.lightLevel()<100){
 | 
			
		||||
        led.setBrightness(255);
 | 
			
		||||
    }
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										3
									
								
								docs/blocks/loops.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								docs/blocks/loops.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #specific
 | 
			
		||||
							
								
								
									
										20
									
								
								docs/blocks/loops/for-of.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								docs/blocks/loops/for-of.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #examples
 | 
			
		||||
 | 
			
		||||
## Example: Find the highest number
 | 
			
		||||
 | 
			
		||||
Find the highest number in a list of numbers. Display the highest number on the screen.
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
let list: number[] = []
 | 
			
		||||
let highest = 0
 | 
			
		||||
highest = 0
 | 
			
		||||
list = [5, 8, 6, 2, 4, 3, 7, 1]
 | 
			
		||||
for (let value of list) {
 | 
			
		||||
	if (value > highest) {
 | 
			
		||||
        highest =  value
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
basic.showNumber(highest)
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										15
									
								
								docs/blocks/loops/for.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docs/blocks/loops/for.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #examples
 | 
			
		||||
 | 
			
		||||
## Example: Count to 4
 | 
			
		||||
 | 
			
		||||
This program will show the numbers 0, 1, 2, 3, and 4 one after another on the LED screen.
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
input.onButtonPressed(Button.A, () => {
 | 
			
		||||
    for(let i = 0; i < 5; ++i) {
 | 
			
		||||
        basic.showNumber(i)
 | 
			
		||||
    }
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										16
									
								
								docs/blocks/loops/repeat.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								docs/blocks/loops/repeat.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #examples
 | 
			
		||||
 | 
			
		||||
## Example: Blinking heart
 | 
			
		||||
 | 
			
		||||
Flash the ``heart`` icon on the screen `4` times.
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
for (let i = 0; i < 4; i++) {
 | 
			
		||||
    basic.showIcon(IconNames.Heart)
 | 
			
		||||
    basic.pause(300)
 | 
			
		||||
    basic.clearScreen()
 | 
			
		||||
    basic.pause(300)
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										17
									
								
								docs/blocks/loops/while.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								docs/blocks/loops/while.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #examples
 | 
			
		||||
 | 
			
		||||
## Example: diagonal line
 | 
			
		||||
 | 
			
		||||
The following example uses a while loop to make a diagonal line on the LED screen (points `0, 0`, `1, 1`, `2, 2`, `3, 3`, `4, 4`).
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
input.onButtonPressed(Button.A, () => {
 | 
			
		||||
    let index = 4;
 | 
			
		||||
    while(index >= 0) {
 | 
			
		||||
        led.plot(index, index);
 | 
			
		||||
        index--;
 | 
			
		||||
    }
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										29
									
								
								docs/blocks/math/random-boolean.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								docs/blocks/math/random-boolean.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
# random Boolean
 | 
			
		||||
 | 
			
		||||
Returns a pseudo-random boolean value that is either `true` or `false`.
 | 
			
		||||
 | 
			
		||||
```sig
 | 
			
		||||
Math.randomBoolean()
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Returns
 | 
			
		||||
 | 
			
		||||
* a pseudo-random [boolean](types/boolean) that is either `true` or `false`.
 | 
			
		||||
 | 
			
		||||
## Example
 | 
			
		||||
 | 
			
		||||
Make your @boardname@ do a coin toss when it's dropped softly. Have the LEDs show 'heads' or 'tails' as the result of the toss.
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
input.onGesture(Gesture.FreeFall, () => {
 | 
			
		||||
    if (Math.randomBoolean()) {
 | 
			
		||||
        basic.showIcon(IconNames.Happy)
 | 
			
		||||
    } else {
 | 
			
		||||
        basic.showIcon(IconNames.Sword)
 | 
			
		||||
    }
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## See Also
 | 
			
		||||
 | 
			
		||||
[random](/reference/math/random)
 | 
			
		||||
							
								
								
									
										12
									
								
								docs/blocks/on-start.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docs/blocks/on-start.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #exstart
 | 
			
		||||
 | 
			
		||||
In this example, ``on start`` sets a dimmer brightness on the screen and the button handler shows a string.
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
input.onButtonPressed(Button.A, () => {
 | 
			
		||||
    basic.showString("Hello!")
 | 
			
		||||
})
 | 
			
		||||
led.setBrightness(50)
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										36
									
								
								docs/blocks/variables/assign.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								docs/blocks/variables/assign.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
# Assignment Operator
 | 
			
		||||
 | 
			
		||||
Use an equals sign to make a [variable](/blocks/variables/var) store the [number](/types/number) 
 | 
			
		||||
or [string](/types/string) you say.
 | 
			
		||||
 | 
			
		||||
When you use the equals sign to store something in a variable, the equals sign is called
 | 
			
		||||
an *assignment operator*, and what you store is called a *value*.
 | 
			
		||||
 | 
			
		||||
## Storing numbers in variables
 | 
			
		||||
 | 
			
		||||
This program makes the variable `item` equal `5` and then shows it on the [LED screen](/device/screen).
 | 
			
		||||
 | 
			
		||||
````blocks
 | 
			
		||||
let item = 5
 | 
			
		||||
basic.showNumber(item)
 | 
			
		||||
````
 | 
			
		||||
 | 
			
		||||
## Storing strings in variables
 | 
			
		||||
 | 
			
		||||
This program makes the variable `name` equal `Joe` and then shows it on the [LED screen](/device/screen).
 | 
			
		||||
 | 
			
		||||
````blocks
 | 
			
		||||
let name = "Joe"
 | 
			
		||||
basic.showString(name);
 | 
			
		||||
````
 | 
			
		||||
 | 
			
		||||
## Notes
 | 
			
		||||
 | 
			
		||||
You can use the assignment operator with variables of 
 | 
			
		||||
every [type](/types). A *type* is which kind of thing
 | 
			
		||||
a variable can store, like a number or string.
 | 
			
		||||
 | 
			
		||||
## See also
 | 
			
		||||
 | 
			
		||||
[variable](/blocks/variables/var), [types](/types)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								docs/blocks/variables/change.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								docs/blocks/variables/change.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
# @extends
 | 
			
		||||
 | 
			
		||||
## #examples
 | 
			
		||||
 | 
			
		||||
## Example: show the value of a variable
 | 
			
		||||
 | 
			
		||||
Use the assignment operator to set the value of a [variable](/blocks/variables/var). Change the value of a variable from 0 to 1 using the change item block. Then display the new value of the variable on the LED screen. Like this:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
let x = 0;
 | 
			
		||||
x += 1;
 | 
			
		||||
basic.showNumber(x);
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										87
									
								
								docs/blocks/variables/var.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								docs/blocks/variables/var.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
# Local Variables
 | 
			
		||||
 | 
			
		||||
How to define and use local variables.
 | 
			
		||||
 | 
			
		||||
## @parent language
 | 
			
		||||
 | 
			
		||||
A variable is a place where you can store and retrieve data. Variables have a name, a [type](/types), and value:
 | 
			
		||||
 | 
			
		||||
* *name* is how you'll refer to the variable
 | 
			
		||||
* *type* refers to the kind of data a variable can store
 | 
			
		||||
* *value* refers to what's stored in the variable
 | 
			
		||||
 | 
			
		||||
## Var statement
 | 
			
		||||
 | 
			
		||||
Use the Block Editor variable statement to create a variable 
 | 
			
		||||
and the [assignment operator](/blocks/variables/assign) 
 | 
			
		||||
to store something in the variable.
 | 
			
		||||
 | 
			
		||||
For example, this code stores the number `2` in the `x` variable:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
let x = 2;
 | 
			
		||||
```
 | 
			
		||||
Here's how to define a variable in the Block Editor:
 | 
			
		||||
 | 
			
		||||
1. Click `variables`.
 | 
			
		||||
 | 
			
		||||
2. Change the default variable name if you like.
 | 
			
		||||
 | 
			
		||||
3. Drag a block type on the right-side of the [assignment operator](/blocks/variables/assign) and click the down arrow to change the variable name.
 | 
			
		||||
 | 
			
		||||
A variable is created for the number returned by the [brightness](/reference/led/brightness) function.
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
let b = led.brightness();
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Using variables
 | 
			
		||||
 | 
			
		||||
Once you've defined a variable, just use the variable's name whenever you need what's stored in the variable. For example, the following code shows the value stored in `counter` on the LED screen:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
let counter = 1;
 | 
			
		||||
basic.showNumber(counter);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
To change the contents of a variable use the assignment operator. The following code sets `counter` to 1 and then increments `counter` by 10:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
let counter = 1;
 | 
			
		||||
counter = counter + 10;
 | 
			
		||||
basic.showNumber(counter);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Why use variables?
 | 
			
		||||
 | 
			
		||||
If you want to remember and modify data, you'll need a variable. 
 | 
			
		||||
A counter is a great example:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
let counter = 0;
 | 
			
		||||
input.onButtonPressed(Button.A, () => { 
 | 
			
		||||
  counter = counter + 1;
 | 
			
		||||
  basic.showNumber(counter);
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Local variables
 | 
			
		||||
 | 
			
		||||
Local variables exist only within the function or block of code where they're defined. For example:
 | 
			
		||||
 | 
			
		||||
```blocks
 | 
			
		||||
// x does NOT exist here.
 | 
			
		||||
if (led.brightness() > 128) {
 | 
			
		||||
  // x exists here
 | 
			
		||||
  let x = 0;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Notes
 | 
			
		||||
 | 
			
		||||
* You can use the default variable names if you'd like, however, it's best to use descriptive variable names. To change a variable name in the editor, select the down arrow next to the variable and then click "new variable".
 | 
			
		||||
 | 
			
		||||
## See also
 | 
			
		||||
 | 
			
		||||
[types](/types), [assignment operator](/blocks/variables/assign)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user