Compare commits

...

122 Commits

Author SHA1 Message Date
548d215b48 0.2.99 2016-05-04 13:31:59 +01:00
43da58f214 Bump pxt-core to 0.2.111 2016-05-04 13:31:57 +01:00
f90d052538 Add example localized doc 2016-05-04 13:25:56 +01:00
a3b34518b0 0.2.98 2016-05-02 21:24:17 -07:00
5a33dc8a81 updated thank you 2016-05-02 21:24:10 -07:00
7349e28898 0.2.97 2016-05-02 21:15:27 -07:00
26b9fdf40e adding survey completed 2016-05-02 21:15:10 -07:00
3cf82b9be2 0.2.96 2016-05-02 10:49:05 -07:00
546c44bafa Bump pxt-core to 0.2.107 2016-05-02 10:49:03 -07:00
d727d3fcde removing lists 2016-05-02 09:46:03 -07:00
6b0cf961c6 support for lists in blocks 2016-05-02 09:40:29 -07:00
18419d763d 0.2.95 2016-04-29 17:17:57 -07:00
99fdb53fa0 Bump pxt-core to 0.2.106 2016-04-29 17:17:54 -07:00
879fdd687e Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-04-29 16:25:57 -07:00
6c1b879c34 Merge remote-tracking branch 'refs/remotes/origin/master' into docs 2016-04-29 16:18:43 -07:00
019bbc79fc 0.2.94 2016-04-29 11:20:30 -07:00
f857a88541 Bump pxt-core to 0.2.105 2016-04-29 11:20:28 -07:00
6531e7bfbb Merge remote-tracking branch 'origin/docs' 2016-04-29 07:58:13 -07:00
2147225afd update seismograph 2016-04-28 17:02:33 -07:00
841ea6d060 update lesson changes 2016-04-28 16:49:57 -07:00
3dddb2eb30 Merge pull request #55 from Microsoft/docs
Docs
2016-04-28 16:42:05 -07:00
651cf14556 update lesson 2016-04-28 14:12:02 -07:00
7f6fb5559b reworking charting lesson 2016-04-28 11:47:59 -07:00
ea724038dc Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-28 11:44:24 -07:00
19757d4245 updated chart 2016-04-28 11:44:11 -07:00
07a7b4048a fix missing loops 2016-04-28 11:21:58 -07:00
45742aa2ac Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-28 10:46:50 -07:00
db0c5d9f9f exposing serial number block. 2016-04-28 10:46:03 -07:00
8285250a1b updated charting 2016-04-28 10:27:51 -07:00
de0257c7e9 update lessons charting 2016-04-28 10:22:58 -07:00
3580012065 updated lessons
update
2016-04-27 16:36:29 -07:00
cdb23fffb6 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-27 15:30:51 -07:00
6937c51549 0.2.93 2016-04-27 15:02:21 -07:00
69e90523e2 Bump pxt-core to 0.2.101 2016-04-27 15:02:19 -07:00
f76235736a Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-27 14:54:20 -07:00
8431243b63 0.2.92 2016-04-27 13:38:07 -07:00
458b4553d2 Bump pxt-core to 0.2.100 2016-04-27 13:38:05 -07:00
0f6e8854d8 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-27 13:13:13 -07:00
5565bb7d24 updated target definition 2016-04-27 13:13:03 -07:00
6c539fb04f Add some debugger hooks 2016-04-27 19:26:55 +01:00
b30a0ced87 removing references to missing files 2016-04-26 17:13:19 -07:00
ac942e198a missed file in previous checkin 2016-04-26 17:09:27 -07:00
cef1f57e30 expose device serial number in javascript 2016-04-26 17:09:15 -07:00
980ad6ce91 update acc lesson 2016-04-26 16:52:18 -07:00
53bfea5752 updated charts 2016-04-26 16:40:55 -07:00
4917bb7e39 update chart 2 2016-04-26 16:38:27 -07:00
139823203e update charting activity 2016-04-26 16:34:10 -07:00
883f4d1a20 update images 2016-04-26 16:13:52 -07:00
0bce69edd0 updating images 2016-04-26 16:13:38 -07:00
efccc921cb Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-26 13:43:21 -07:00
55859b1237 support for exposing device name 2016-04-26 13:43:02 -07:00
ec09d40366 update charting 2016-04-26 12:34:58 -07:00
512e40fae3 clearer api name in serial 2016-04-26 12:19:42 -07:00
028dac25f6 updated lesson main 2016-04-26 12:04:05 -07:00
e0d4763974 update acc 2016-04-26 11:03:26 -07:00
3b3e402ffa Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-26 10:46:32 -07:00
e37ac1a1d7 0.2.91 2016-04-26 10:43:51 -07:00
17eb36a8dc Bump pxt-core to 0.2.99 2016-04-26 10:43:49 -07:00
10d44b97cc more serial infos 2016-04-26 10:29:05 -07:00
505c750dd0 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-25 16:34:50 -07:00
d0e900606a update chart 2016-04-25 16:19:22 -07:00
dcbb076266 light update 2016-04-25 16:01:57 -07:00
22c852f2d9 udpate lessons 2016-04-25 15:59:28 -07:00
76770bc0e1 acc update 2016-04-25 15:57:02 -07:00
572080bc6d update charting 2016-04-25 15:55:52 -07:00
0b8142ae73 update acc 2016-04-25 15:54:28 -07:00
09a06d9fa9 update acc 2016-04-25 15:44:07 -07:00
80e8c6684d update acc 2016-04-25 15:41:47 -07:00
4cccb36f3d update csv 2016-04-25 15:36:06 -07:00
a427a1e720 update csv 2016-04-25 15:35:26 -07:00
be77c5296b update acc 2016-04-25 15:34:15 -07:00
a0c1b2c580 pic up 2016-04-25 15:32:50 -07:00
fc905c5f8f update acc chart 2016-04-25 15:26:49 -07:00
f1bd84733b acc update 2016-04-25 15:16:01 -07:00
d3080d2e66 acc update 2016-04-25 15:14:01 -07:00
090e530ff0 update lessons 2016-04-25 14:45:09 -07:00
094e9d25cd update lesson 2016-04-25 14:43:30 -07:00
0bcb9c16fa update lessons 2016-04-25 14:42:47 -07:00
269bdb82a6 update acceleration 2016-04-25 14:33:02 -07:00
cba7e02bcd update lesson 2016-04-25 14:29:48 -07:00
8ef834b73b update chrat 2016-04-25 13:58:41 -07:00
ec54622f52 update chart 2016-04-25 13:58:05 -07:00
5d90b70425 update chart 2016-04-25 13:55:03 -07:00
8cef13e517 update chart activity 2016-04-25 13:51:32 -07:00
82986c091b update charting 2016-04-25 12:45:10 -07:00
67f2fdcfec 0.2.90 2016-04-25 12:44:04 -07:00
d11c5a9028 Bump pxt-core to 0.2.98 2016-04-25 12:44:03 -07:00
b7cb7e477e update charting1 2016-04-25 12:42:39 -07:00
0d1059aedf update charting 2016-04-25 12:42:05 -07:00
b92fc783fa updated charting 2016-04-25 12:33:11 -07:00
6d73e5e129 update chartting 2016-04-25 11:51:47 -07:00
6150850729 glowing pend update 2016-04-25 11:32:20 -07:00
76a18fa61b updated glowing pendulum 2016-04-25 11:31:06 -07:00
2bd66ae4ef 0.2.89 2016-04-22 23:14:03 -07:00
f6eefde27c Bump pxt-core to 0.2.96 2016-04-22 23:14:01 -07:00
60c9e4a82f 0.2.88 2016-04-22 14:54:24 -07:00
56713227c5 0.2.87 2016-04-22 14:48:01 -07:00
fd6e110790 Bump pxt-core to 0.2.95 2016-04-22 14:47:59 -07:00
2336521df1 0.2.86 2016-04-22 13:38:45 -07:00
2ce72aeb28 Bump pxt-core to 0.2.93 2016-04-22 13:38:43 -07:00
e746c13212 don't filter or throttle serial, let the user deal with it. 2016-04-22 13:12:43 -07:00
9e073aee36 fixing doc links. fix for #49 2016-04-22 12:37:47 -07:00
3906f06a2f 0.2.85 2016-04-22 00:15:11 -07:00
d89747fa46 typo in default value 2016-04-22 00:14:57 -07:00
c4e6618baa 0.2.84 2016-04-22 00:07:31 -07:00
5232be58ce auto adjusting bar graph + debouncing sending data over serial 2016-04-21 23:44:22 -07:00
5a75483811 updated target definition 2016-04-21 22:46:40 -07:00
4b40585690 0.2.83 2016-04-21 14:26:36 -07:00
dd65efaab6 Bump pxt-core to 0.2.92 2016-04-21 14:26:34 -07:00
890c2566af 0.2.82 2016-04-20 07:13:06 -07:00
cd71fc5d13 Bump pxt-core to 0.2.89 2016-04-20 07:13:04 -07:00
f626dd4bbb 0.2.81 2016-04-19 20:52:09 -07:00
956992e9ab Bump pxt-core to 0.2.88 2016-04-19 20:52:08 -07:00
91ddcef6ce 0.2.80 2016-04-19 16:30:49 -07:00
49fa42473f Bump pxt-core to 0.2.86 2016-04-19 16:30:47 -07:00
564de8863a fix scrollbar 2016-04-19 13:26:00 -07:00
1dd70100d6 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-04-19 13:25:46 -07:00
a38ff18eaf 0.2.79 2016-04-19 12:58:18 -07:00
d46ef1efca Bump pxt-core to 0.2.83 2016-04-19 12:58:16 -07:00
c54cd21efa Don't go through uBit object if not needed 2016-04-19 11:52:44 -07:00
94f18340ec prevent elastic scroll in simulator 2016-04-19 10:06:36 -07:00
13bdcf762d updated dal definition 2016-04-19 09:43:23 -07:00
52 changed files with 779 additions and 113 deletions

7
docs/_locales/pl/docs.md Normal file
View File

@ -0,0 +1,7 @@
# Dokumentacja
Witamy na stronach dokumentacji!
* Przeglądnij [instrukcje obsługi](/reference)
* Dowiedz się więcej o [urządzeniu](/device)
* Wystartuj z [lekcjami](/lessons)

View File

@ -11,9 +11,7 @@ This example displays a random number every time the crocodile clip holds `GND`
### Connecting Crocodile Clips
![](/static/mb/crocodile-clips-1.jpg)
![](/static/mb/crocodile-clips-2.jpg)
### Lessons

View File

@ -5,6 +5,9 @@
### ~column
## O365 Integration
* [Science Experiments: Chart](/lessons/charting), create an app for simulating and measuring sensor data of acceleration, temperature, light level, and rotation
## Beginner
* [Beautiful Image](/lessons/beautiful-image), show a beautiful image with show LEDs
@ -58,7 +61,6 @@
* [Pogo](/lessons/pogo), create a pogo game to test your jumping abilities
## Advanced
* [Charting](/lessons/charting), create a charting app between 2 BBC micro:bits
* [Prank WiFi](/lessons/prank-wifi), create fake WiFi to trick your friends
* [Speed Button](/lessons/speed-button), code a speed game with running time
* [Headbands](/lessons/headbands), create a charades game with a collection of strings that hold the words

View File

@ -1,15 +1,16 @@
# charting lesson
Measure the acceleration on the micro:bit in the "z" direction.
Create a charting app for simulating and measuring the acceleration applied to the micro:bit
## Topic
Acceleration
## Quick Links
* [activity](/lessons/charting/activity)
* [activity](/lessons/charting/acceleration)
* [challenge](/lessons/charting/challenge)
* [quiz](/lessons/charting/quiz)
* [answers](/lessons/charting/quiz-answers)
## Prior learning/place of lesson in scheme of work
@ -18,9 +19,9 @@ Learn the functions of **on data received**, **send number** and **receive numbe
## Documentation
```cards
basic.showNumber(0)
input.acceleration(Dimension.X)
led.plotBarGraph(0, 1023)
basic.showNumber(0)
radio.onDataReceived(() => {})
radio.sendNumber(0)
radio.receiveNumber()

View File

@ -1,53 +1,85 @@
# charting activity
# Activity
Measure the acceleration on the micro:bit in the "z" direction.
Measure the acceleration on the micro:bit in the "x" direction.
### ~avatar avatar
Welcome! This activity will teach how to use the micro:bit to chart the acceleration in the "x" direction. Let's get started!
### ~
Let's measure `acceleration (mg)` in the "x" direction. Get the acceleration value (milli g-force), in one of three specified dimensions.
```blocks
input.acceleration(Dimension.X)
```
### ~
Use the plot bar chart to visualize the acceleration on the LED screen of the micro:bit in the specified range. You implement plot Bar Graph to display a vertical bar graph based on the "value" and "high" value. Then you must insert acceleration in the X dimension to measure the acceleration.
```blocks
basic.forever(() => {
led.plotBarGraph(input.acceleration(Dimension.X), 0)
})
```
### ~
Notice that moving the micro:bit in the simulator from left to right (x direction) changes the values beneath the micro:bit in a range from 1023 to -1023 as measured in milli-gravities. By hovering over the micro:bit from left to right, you can observe changing values beneath the micro:bit simulator. Also, the LEDs shown on the Bar Graph fluctates based on the movement of the micro:bit simulator in the x direction. The line underneath the micro:bit simulator reflect the acceleration in the x direction.
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bit is yellow. So the color of the data line reflects the color of the micro:bit
![](/static/mb/data4.png)
### ~
Vigorously move the micro:bit in the micro:bit simulatator by moving the micro:bit image from side to side. Every time the micro:bit moves in the x direction in the simulator, you are generating data points that can be reviewed in Excel. The more attempts to move the micro:bit from side to side, the more data being saved in Excel. After you have vigarously moved the micro:bit simulator from side to side for a sufficient amount of time, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel that can be graphed in Excel.
### ~
Welcome! This activity will teach how to use the 1st micro:bit to chart the second micro:bit's acceleration in the "x" direction. Let's get started!
We want to chart the data collected by using a tool in Excel.
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X));
```
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
});
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local Downloads Folder.
```
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
})
```
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
led.plotBarGraph(radio.receiveNumber(), 1023)
})
```
### ~
* Connect the first micro:bit to your computer using your USB cable and run the charting script on it.
* Connect the second micro:bit to your computer using your USB cable and run the charting script on it.
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
First, click or tap on the first two columns (A, B) to include the time of the data being collected; b) the results of acceleration data on the micro:bit
![](/static/mb/data7.png)
Use the Recommended Charts command on the Insert tab to quickly create a chart thats just right for your data.
* Select the data that you want to include in your chart.
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
![](/static/mb/chart_title.png)
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
![](/static/mb/elements_styles_filters.png)
* Connect a micro:bit to your computer using your USB cable; compile; and repeat this experiment by moving the micro:bit in the "x" direction. Then collect and chart the data on Excel.
* Review and analyze the actual micro:bit device data on Excel
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/lessons/charting/acceleration-challenge)
### ~

View File

@ -0,0 +1,94 @@
# Challenge
### ~avatar avatar
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
### ~
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X));
```
### ~
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
});
```
### ~
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
})
```
### ~
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
led.plotBarGraph(radio.receiveNumber(), 1023)
})
```
### ~
Notice that moving the micro:bit the farthest direction in the x direction will be -1023 on the charting beneath the simulator. The second observation will be that the LEDs will be full brightness on the 2nd micro:bit. There is a single LED turned on with the 1st micro:bit. Additionally, the graphs will reflect 0 acceleation for the 1st micro:bit. In this scenario, if you are adjusting the acceleration in the simualator, you are also changing your chart that will be produced.
![](/static/mb/acc.png)
### ~
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bits are blue and green. So the colors of the line graphs reflect the colors of the micro:bit
### ~
After running this simulatation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
![](/static/mb/acc2.png)
### ~
Finally, you must open the Excel CSV file by clicking on the data.xls file that was downloaded to Downloads Folder.
![](/static/mb/data3.png)
Use the Recommended Charts command on the Insert tab to quickly create a chart thats just right for your data.
* Select the data that you want to include in your chart.
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
![](/static/mb/chart_title.png)
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
![](/static/mb/elements_styles_filters.png)
### ~
Have fun reviewing your simulation and analyze the acceleration by chart the Excel data using Excel.
* Connect the first micro:bit to your computer using your USB cable and run the charting script on it.
* Connect the second micro:bit to your computer using your USB cable and run the charting script on it.
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
* Review and analyze the actual micro:bit device acceleration data on Excel
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"

View File

@ -0,0 +1,33 @@
# charting quiz answers
Measure the acceleration on the micro:bit in the "x" direction.
## Name
## Directions
Use this activity document to guide your work in the [glowing pendulum activity](/lessons/charting/acceleration)
Answer the questions while completing the tutorial. Pay attention to the dialogues!
## 1. Why are you creating a 'forever' loop?
<br/>
We are creating a forever loop to constantly display the appropriate brightness on the LED display.
## 2. Write the line of code to measure the acceleration with respect to the "x" axis and display this value in a bar graph.
<br/>
```blocks
led.plotBarGraph(input.acceleration(Dimension.X), 0)
```
## 3. After vigarously moving the micro:bit from side to side along the "x" axis for a sufficient amount of time,insert the Excel graph for displaying a line chart used to display trends over time.
<br/>
![](/static/mb/line_chart.png)

View File

@ -0,0 +1,23 @@
# charting quiz
Measure the acceleration on the micro:bit in the "x" direction.
## Name
## Directions
Use this activity document to guide your work in the [glowing pendulum tutorial](/lessons/glowing-pendulum/activity)
Answer the questions while completing the tutorial. Pay attention to the dialogues!
## 1. Why are you creating a 'forever' loop?
<br/>
## 2. Write the line of code to measure the acceleration with respect to the "y" axis and store this value in a local variable called 'acceleration'.
<br/>
## 3. After vigarously moving the micro:bit from side to side along the "x" axis for a sufficient amount of time,insert the Excel graph for displaying a line chart used to display trends over time.

View File

@ -15,8 +15,6 @@ basic.forever(() => {
Now let's measure the acceleration on the `y` axis and store that value in a variable. The `acceleration(y)` function will provide the value.
![](/static/mb/blocks/lessons/glowing-pendulum-1.png)
```blocks
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
@ -25,7 +23,6 @@ basic.forever(() => {
Since the micro:bit will be swinging back and forth, the acceleration will only be positive half of the time. Thus, to always get a positive value, we want to take the absolute value of the acceleration.
![](/static/mb/blocks/lessons/glowing-pendulum-2.png)
```blocks
let acceleration = 0;
@ -37,15 +34,50 @@ basic.forever(() => {
The function `acceleration(y)` returns a number between 0 and 1024. We want to use this value for the brightness of the micro:bit, but the `set brightness()` only accepts a value between 0 and 256. Thus, we need to divide the acceleration by 4 to ensure we will be in the appropriate range.
![](/static/mb/blocks/lessons/glowing-pendulum-3.png)
```blocks
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
});
```
Now let's use our acceleration value to set the brightness on the micro:bit.
![](/static/mb/blocks/lessons/glowing-pendulum-4.png)
```blocks
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
});
```
Let's show what the brightness of the micro:bit is by turning all the LEDs on!
![](/static/mb/blocks/lessons/glowing-pendulum-5.png)
```blocks
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
});
```
### ~avatar avatar

View File

@ -6,7 +6,23 @@ Coding challenges for the glowing pendulum tutorial.
Complete the following [glowing pendulum activity](/lessons/glowing-pendulum/activity) and your code should look like this:
![](/static/mb/blocks/lessons/glowing-pendulum-5.png)
```blocks
basic.forever(() => {
let acceleration = input.acceleration(Dimension.Y);
acceleration = Math.abs(acceleration);
acceleration = acceleration / 4;
led.setBrightness(acceleration)
basic.showLeds(`
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
`)
});
```
**Challenge 1**

View File

@ -44,13 +44,3 @@ let accelerationDivided = accelerationX / 4
led.setBrightness(accelerationX)
```
## 5. Write the code that tuns all the LEDs on (as the image displays below)
![](/static/mb/lessons/glowing-pendulum-1.png)
<br/>
```
led.plotAll()
```

View File

@ -24,11 +24,4 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
## 4. Write the code to include acceleration value question 3 to set the brightness on the BBC micro:bit.
<br/>
## 5. Write the code that tuns all the LEDs on (as the image displays below)
![](/static/mb/lessons/glowing-pendulum-1.png)
<br/>

View File

@ -0,0 +1,34 @@
# Seismograph Lesson
Build a seismograph with household materials
## Topic
Acceleration & Analog Read Pin
## Quick Links
* [activity](/lessons/seismograph/activity)
* [challenge](/lessons/seismograph/challenges)
## Prior learning/place of lesson in scheme of work
Learn how to **show LEDs** to turn on a LED light pattern on the LED screen. We will be learning basic comments such as show LEDs and pause.
## Documentation
```cards
basic.forever(() => {
});
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
led.plotBarGraph(pins.analogReadPin(AnalogPin.P0), 0);
```
## Objectives
* learn how to repeat code forever in the background
* learn how to display a vertical bar graph based on the value.
* learn how to return the sum of the two numbers
* learn how to get acceleration value in milli-gravitys
* learn how to read the connector value as analog as a value comprised between 0 and 1023

View File

@ -0,0 +1,150 @@
# Seismograph Activity
### ~avatar avatar
In this project, you will build your own seismograph.
## What you'll need:
* micro:bit
* USB cable
* Scissors
* Glue gun
* String
* Cup (Plastic or Paper)
* Magnet
Welcome! This activity will teach how to use the micro:bit to chart the strength of the acceleration. Let's get started!
1. Setup Cup: Use scissors to cut a usable window on the cup, which will be a square sized hole at the lid side of the cup. Use scissors to create a small hole in the center of the base of the cup.
2. Fasten Magnet: Fasten end of the string to the magnet with glue
3. Secure String: Fasten string to base of the cup and hang the remaining string outside the base of the cup.
### ~avatar avatar
Seismograph built, let's code!
### ~
4. Go to Codemicrobit.com
Click or tap Create Code
Click or tap Block Editor
### ~
5.
We will measure `acceleration (mg)` in terms of strength. Get the acceleration value (milli g-force), as measured in strength.
```blocks
input.acceleration(Dimension.Strength);
```
### ~
6.
Use the plot bar chart to visualize the acceleration on the LED screen of the micro:bit in the specified range. You implement plot Bar Graph to display a vertical bar graph based on the "value" and "high" value. Then you must insert acceleration in based on strength.
```blocks
basic.forever(() => {
led.plotBarGraph(input.acceleration(Dimension.Strength), 0);
});
```
### ~
7.
Finally, we subtract the gravity from acceleration strength.
```blocks
basic.forever(() => {
led.plotBarGraph(input.acceleration(Dimension.Strength) - 1023, 0);
});
```
### ~
8.
Notice that making vibrating the object below the micro:bit changes the values and the line appears as a wave to display the value of the strength as measured in milli-gravities. By making the object below the micro:bit vibrate, you will observe changing values of the micro:bit. Also, the LEDs shown on the Bar Graph fluctates based on the movement of the micro:bit strength.
NOTE: The black color reflects the micro:bit device.
![](/static/mb/data4.png)
### ~
9.
Vigorously move the micro:bit in the micro:bit simulatator by moving the micro:bit image from side to side. Every time the micro:bit moves in the x direction in the simulator, you are generating data points that can be reviewed in Excel. The more attempts to move the micro:bit from side to side, the more data being saved in Excel. After you have vigarously moved the micro:bit simulator from side to side for a sufficient amount of time, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel that can be graphed in Excel.
### ~
10.
We want to chart the data collected by using a tool in Excel.
The final part of this experiment is opening and reviewing the data in the Excel CSV file. Simply click on the line beneath the simulator. A CSV file will be generated to display the data points collected by moving the micro:bit in the X direction. Then click or tap on the data Excel file that was downloaded to your local Downloads Folder.
### ~
10.
First, click or tap on the first two columns (A, B) to include the time of the data being collected; b) the results of acceleration data on the micro:bit
![](/static/mb/data7.png)
Use the Recommended Charts command on the Insert tab to quickly create a chart thats just right for your data.
* Select the data that you want to include in your chart.
* Click Insert > Recommended Charts.
### ~
11.
![](/static/mb/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
### ~
12.
![](/static/mb/chart_title.png)
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
### ~
13.
![](/static/mb/elements_styles_filters.png)
* Connect a micro:bit to your computer using your USB cable; compile; and repeat this experiment by vibrating the micro:bit. Then chart the data on Excel.
### ~avatar avatar
Excellent, you're ready to continue with the [challenges](/lessons/seismograph/challenge)
### ~

View File

@ -0,0 +1,94 @@
# Challenge
### ~avatar avatar
Welcome! The activity will teach you how to use the acceleration of the 1st micro:bit and to visualize the acceleration on the 2nd micro:bit. Let's get started!
### ~
Let's measure `acceleration (mg)` and then `send number`. `Acceleration` is measured in **milli-gravities**, so a value of -1000 is equivalent to -1g or -9.81m/s^2. We will be able to get the acceleration value (g-force), in the specified "x" dimension. `Send number` will broadcast a number data packet to other micro:bits connected via radio.
```blocks
radio.sendNumber(input.acceleration(Dimension.X));
```
### ~
We want to display the acceleration forever. In order to do so, we need a `forever` loop. A forever loop will repeat code in the background forever.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
});
```
### ~
We want to register code to run when a packet is received over radio. We can implement this code by adding `on data received`.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
})
```
### ~
Finally, we want to chart the acceleration. So we must first implement `plot bar graph`. `Plot Bar Graph` will display a vertical bar graph based on the value and high value. In order to transfer the receive the number from the 1st micro:bit, we must implement `receive number` to constantly display a vertical bar graph based on the value. Remember, the value will equal to the micro:bit's acceleration in the "x" direction.
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X))
})
radio.onDataReceived(() => {
led.plotBarGraph(radio.receiveNumber(), 1023)
})
```
### ~
Notice that moving the micro:bit the farthest direction in the x direction will be -1023 on the charting beneath the simulator. The second observation will be that the LEDs will be full brightness on the 2nd micro:bit. There is a single LED turned on with the 1st micro:bit. Additionally, the graphs will reflect 0 acceleation for the 1st micro:bit. In this scenario, if you are adjusting the acceleration in the simualator, you are also changing your chart that will be produced.
![](/static/mb/acc.png)
### ~
NOTE: The colors of the charts reflect the color of the micro:bit simulator. In this instance, the micro:bits are blue and green. So the colors of the line graphs reflect the colors of the micro:bit
### ~
After running this simulatation several seconds by moving the micro:bit side to side in the x direction, you are ready to graph or chart the accceleration of the micro:bit. We want a printout of our acceleration on Excel. We will graph the fluctuating acceleration of the simulation experiment.
![](/static/mb/acc2.png)
### ~
Finally, you must open the Excel CSV file by clicking on the data.xls file that was downloaded to Downloads Folder.
![](/static/mb/data3.png)
Use the Recommended Charts command on the Insert tab to quickly create a chart thats just right for your data.
* Select the data that you want to include in your chart.
* Click Insert > Recommended Charts.
![](/static/mb/chart1.png)
* On the Recommended Charts tab, scroll through the list of chart types that Excel recommends for your data.
Click any chart type to see how your data will look in that format.
When you find the chart type that you want, click it, and then click OK. We want to select the chart called Line. A line chart is used to display trends over time. We will use the line chart because there are many data points over time.
Tip: If you dont see a chart type that you want, click the All Charts tab to see all of the available chart types.
![](/static/mb/chart_title.png)
* Use the Chart Elements, Chart Styles, and Chart Filters buttons next to the upper-right corner of the chart to add chart elements like axis titles or data labels, to customize the look of your chart
![](/static/mb/elements_styles_filters.png)
### ~
Have fun reviewing your simulation and analyze the acceleration by chart the Excel data using Excel.
* Connect the first micro:bit to your computer using your USB cable and run the charting script on it.
* Connect the second micro:bit to your computer using your USB cable and run the charting script on it.
* The first person and second person take turns tilting the micro:bit in the "x" direction while the other player charts the data on the micro:bit!
* Review and analyze the actual micro:bit device acceleration data on Excel
* Display acceleration with y or z using plot bar graph by changing acceleration from "x" to "y" or "z"

BIN
docs/static/mb/acc.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
docs/static/mb/acc2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 302 KiB

After

Width:  |  Height:  |  Size: 302 KiB

BIN
docs/static/mb/chart1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/static/mb/chart_title.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
docs/static/mb/csv.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

BIN
docs/static/mb/data2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
docs/static/mb/data3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
docs/static/mb/data4.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
docs/static/mb/data7.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
docs/static/mb/lessons/data3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
docs/static/mb/line_chart.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

9
docs/thank-you.md Normal file
View File

@ -0,0 +1,9 @@
# You completed the survey!
```sim
basic.forever(() => { basic.showString("THANK YOU") })
```
Thank you for participating in this survey.
Please [contact us](mailto:microbitpilots@microsoft.com) with any information you think we might find useful.

View File

@ -11,9 +11,13 @@
"dependencies": {
"microbit": "file:../microbit"
},
"microbit": {
"yotta": {
"config": {
"MICROBIT_BLE_ENABLED": "1"
"microbit-dal": {
"bluetooth": {
"enabled": 1
}
}
}
},
"installedVersion": "zakvul"

View File

@ -12,10 +12,14 @@
"dependencies": {
"microbit": "file:../microbit"
},
"microbit": {
"yotta": {
"config": {
"MICROBIT_BLE_ENABLED": "0"
"microbit-dal": {
"bluetooth": {
"enabled": 0
}
}
}
},
"installedVersion": "rlfgis"
}
}

View File

@ -58,7 +58,7 @@ namespace basic {
int l = s.length();
if (l == 0) {
uBit.display.clear();
uBit.sleep(interval * 5);
fiber_sleep(interval * 5);
} else if (l > 1) {
uBit.display.scroll(s, interval);
} else {
@ -98,7 +98,7 @@ namespace basic {
void forever_stub(void *a) {
while (true) {
runAction0((Action)a);
uBit.sleep(20);
fiber_sleep(20);
}
}
@ -123,6 +123,6 @@ namespace basic {
//% async block="pause (ms) %pause"
//% blockId=device_pause icon="\uf110"
void pause(int ms) {
uBit.sleep(ms);
fiber_sleep(ms);
}
}

View File

@ -132,7 +132,7 @@ namespace control {
//% weight=30 async help=control/reset
//% blockId="control_reset" block="reset"
void reset() {
uBit.reset();
microbit_reset();
}
/**
@ -155,4 +155,20 @@ namespace control {
void onEvent(int src, int value, Action handler) {
registerWithDal(src, value, handler);
}
/**
* Gets a friendly name for the device derived from the its serial number
*/
//% blockId="control_device_name" block="device name" weight=10 blockGap=8
StringData* deviceName() {
return ManagedString(microbit_friendly_name()).leakData();
}
/**
* Derive a unique, consistent serial number of this device from internal data.
*/
//% blockId="control_device_serial_number" block="device serial number" weight=9
int deviceSerialNumber() {
return microbit_serial_number();
}
}

View File

@ -1,6 +1,7 @@
#include "ksbit.h"
#include <limits.h>
namespace String_ {
//%
StringData *charAt(StringData *s, int pos) {
@ -127,13 +128,13 @@ namespace Math_ {
//%
int random(int max) {
if (max == INT_MIN)
return -uBit.random(INT_MAX);
return -microbit_random(INT_MAX);
else if (max < 0)
return -uBit.random(-max);
return -microbit_random(-max);
else if (max == 0)
return 0;
else
return uBit.random(max);
return microbit_random(max);
}
//%
@ -298,6 +299,20 @@ namespace pxtrt {
//%
void panic(int code)
{
uBit.panic(code);
microbit_panic(code);
}
//
// Debugger
//
//%
uint32_t getNumGlobals() {
return numGlobals;
}
//%
void* getGlobalsPtr() {
return globals;
}
}

View File

@ -2,7 +2,9 @@
declare const enum DAL {
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/ExternalEvents.h
MICROBIT_ID_BLE = 1000,
MICROBIT_ID_BLE_UART = 1001,
MICROBIT_ID_BLE_UART = 1200,
MICROBIT_BLE_EVT_CONNECTED = 1,
MICROBIT_BLE_EVT_DISCONNECTED = 2,
// built/yt/yotta_modules/microbit-dal/inc//bluetooth/MESEvents.h
MES_REMOTE_CONTROL_ID = 1001,
MES_REMOTE_CONTROL_EVT_PLAY = 1,
@ -294,6 +296,7 @@ declare const enum DAL {
// built/yt/yotta_modules/microbit-dal/inc//drivers/MicroBitDisplay.h
MICROBIT_DISPLAY_EVT_ANIMATION_COMPLETE = 1,
MICROBIT_DISPLAY_EVT_LIGHT_SENSE = 2,
MICROBIT_DISPLAY_DEFAULT_AUTOCLEAR = 1,
MICROBIT_DISPLAY_SPACING = 1,
MICROBIT_DISPLAY_GREYSCALE_BIT_DEPTH = 8,
MICROBIT_DISPLAY_ANIMATE_DEFAULT_POS = -255,
@ -303,7 +306,8 @@ declare const enum DAL {
ANIMATION_MODE_PRINT_TEXT = 3,
ANIMATION_MODE_SCROLL_IMAGE = 4,
ANIMATION_MODE_ANIMATE_IMAGE = 5,
ANIMATION_MODE_PRINT_CHARACTER = 6,
ANIMATION_MODE_ANIMATE_IMAGE_WITH_CLEAR = 6,
ANIMATION_MODE_PRINT_CHARACTER = 7,
DISPLAY_MODE_BLACK_AND_WHITE = 0,
DISPLAY_MODE_GREYSCALE = 1,
DISPLAY_MODE_BLACK_AND_WHITE_LIGHT_SENSE = 2,
@ -384,6 +388,7 @@ declare const enum DAL {
MICROBIT_THERMOMETER_PERIOD = 1000,
MICROBIT_THERMOMETER_EVT_UPDATE = 1,
MICROBIT_THERMOMETER_ADDED_TO_IDLE = 2,
// built/yt/yotta_modules/microbit-dal/inc//platform/yotta_cfg_mappings.h
// built/yt/yotta_modules/microbit-dal/inc//types/ManagedString.h
// built/yt/yotta_modules/microbit-dal/inc//types/ManagedType.h
// built/yt/yotta_modules/microbit-dal/inc//types/Matrix4.h

View File

@ -247,7 +247,7 @@ namespace input {
//% help=input/running-time weight=50
//% blockId=device_get_running_time block="running time (ms)" icon="\uf017"
int runningTime() {
return uBit.systemTime();
return system_timer_current_time();
}
/**

View File

@ -4,18 +4,33 @@
//% color=3 weight=35
namespace led {
// what's the current high value
let barGraphHigh = 0;
// when was the current high value recorded
let barGraphHighLast = 0;
/**
* Displays a vertical bar graph based on the ``value`` and ``high`` value.
* Displays a vertical bar graph based on the `value` and `high` value.
* If `high` is 0, the chart gets adjusted automatically.
* @param value current value to plot
* @param high maximum value, eg: 1023, 255
* @param high maximum value. If 0, maximum value adjusted automatically, eg: 0
*/
//% help=/led/plot-bar-graph weight=20
//% blockId=device_plot_bar_graph block="plot bar graph of %value |up to %high" icon="\uf080" blockExternalInputs=true
export function plotBarGraph(value: number, high: number): void {
export function plotBarGraph(value: number, high: number): void {
let now = input.runningTime();
serial.writeString(value.toString() + "\r\n");
value = Math.abs(value);
let v = Math.abs((value * 15) / high);
if (high != 0) barGraphHigh = high;
else if (value > barGraphHigh || now - barGraphHighLast > 5000) {
barGraphHigh = value;
barGraphHighLast = now;
}
barGraphHigh = Math.max(barGraphHigh, 16);
let v = (value * 15) / barGraphHigh;
let k = 0;
for(let y = 4; y >= 0; --y) {
for (let x = 0; x < 3; ++x) {

51
libs/microbit/messages.ts Normal file
View File

@ -0,0 +1,51 @@
namespace messages {
var streamid: string;
export function setStreamId(id: string) {
streamid = id;
}
/**
* Creates a new message that includes the board serial number and the stream id if any
*/
export function createMessage() : Message {
let m = new Message();
m.addNumber('board', control.deviceSerialNumber());
if (streamid != null && streamid.length > 0)
m.addString('stream', streamid);
return m;
}
/**
* A message containig custom data
*/
export class Message {
private buffer:string = '';
/**
* Adds a string field to the message
*/
//%
public addString(name:string, value:string) {
if (this.buffer.length > 0) this.buffer += ',';
this.buffer += name + ':"' + value + '"';
}
/**
* Adds a number field to the message
*/
//%
public addNumber(name:string, value: number) {
if (this.buffer.length > 0) this.buffer += ',';
this.buffer += name + ':' + value;
}
/**
* Converts the message to a JSON payload
*/
//%
public toJSON() : string {
return '{' + this.buffer + '}';
}
}
}

View File

@ -180,8 +180,9 @@ namespace pins {
}
if (ms > 0) {
uBit.sleep(ms);
fiber_sleep(ms);
pitchPin->setAnalogValue(0);
// TODO why do we use wait_ms() here? it's a busy wait I think
wait_ms(5);
}
}

View File

@ -31,9 +31,13 @@
],
"public": true,
"dependencies": {},
"microbit": {
"yotta": {
"config": {
"MESSAGE_BUS_LISTENER_DEFAULT_FLAGS": "MESSAGE_BUS_LISTENER_QUEUE_IF_BUSY"
"microbit-dal": {
"bluetooth": {
"enabled": 0
}
}
}
}
}

View File

@ -15,7 +15,7 @@ namespace serial {
/**
* Sends a piece of text through Serial connection.
*/
//%
//% blockId=serial_writestring block="serial write %text"
void writeString(StringData *text) {
uBit.serial.send(ManagedString(text));
}

View File

@ -7,8 +7,8 @@ namespace serial {
* Prints a line of text to the serial
* @param value to send over serial
*/
//% help=/serial/write-line
//% blockId=serial_writeline block="serial|write %text"
//% help=serial/write-line
//% blockId=serial_writeline block="serial|write line %text"
export function writeLine(text: string): void {
writeString(text);
writeString("\r\n");
@ -17,6 +17,7 @@ namespace serial {
/**
* Prints a numeric value to the serial
*/
//% blockId=serial_writenumber block="serial|write number %value"
export function writeNumber(value: number): void {
writeString(value.toString());
}
@ -27,8 +28,8 @@ namespace serial {
* @param value to write
*/
//% weight=80
//% help=/serial/write-value
//% blockId=serial_writevalue block="serial|write %name|= %value"
//% help=serial/write-value
//% blockId=serial_writevalue block="serial|write line %name|= %value"
export function writeValue(name: string, value: number): void {
writeString(name);
writeString(": ");

View File

@ -342,6 +342,18 @@ declare namespace control {
//% weight=20 blockGap=8 blockId="control_on_event" block="on event|from %src=control_event_source|with value %value=control_event_value"
//% blockExternalInputs=1 shim=control::onEvent
function onEvent(src: number, value: number, handler: () => void): void;
/**
* 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
function deviceName(): string;
/**
* 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
function deviceSerialNumber(): number;
}
@ -528,7 +540,7 @@ declare namespace serial {
/**
* Sends a piece of text through Serial connection.
*/
//% shim=serial::writeString
//% blockId=serial_writestring block="serial write %text" shim=serial::writeString
function writeString(text: string): void;
}

View File

@ -1,6 +1,6 @@
{
"name": "pxt-microbit",
"version": "0.2.78",
"version": "0.2.99",
"description": "BBC micro:bit target for PXT",
"keywords": [
"JavaScript",
@ -29,6 +29,6 @@
"typescript": "^1.8.7"
},
"dependencies": {
"pxt-core": "0.2.82"
"pxt-core": "0.2.111"
}
}

View File

@ -56,11 +56,17 @@
"hasHex": true,
"deployDrives": "^MICROBIT"
},
"runtime": {
"mathBlocks": true,
"loopsBlocks": true,
"logicBlocks": true,
"variablesBlocks": true
},
"simulator": {
"autoRun": true
},
"compileService": {
"gittag": "v0.1.7",
"gittag": "v0.1.8",
"serviceId": "ws"
},
"serial": {

View File

@ -226,6 +226,20 @@ namespace pxsim.control {
export function reset() {
U.userError("reset not implemented in simulator yet")
}
export function deviceName() : string {
let b = board();
return b && b.id
? b.id.slice(0, 4)
: 'abcd';
}
export function deviceSerialNumber(): number {
let b = board();
return parseInt(b && b.id
? b.id.slice(1)
: '42');
}
export function onEvent(id: number, evid: number, handler: RefAction) {
pxt.registerWithDal(id, evid, handler)

View File

@ -5,10 +5,20 @@
<meta charset="utf-8">
<title>microbit simulator</title>
<style>
body {
background: transparent;
overflow: hidden;
}
html {
height: 100%;
width: 100%;
overflow: hidden;
}
body {
height: 100%;
padding: 0;
overflow: hidden;
margin: 0;
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
}
</style>
<script src="/cdn/bluebird.min.js"></script>
<script src="/cdn/pxtsim.js"></script>

View File

@ -219,7 +219,7 @@ namespace pxsim.micro_bit {
rx:5, ry:5,
fill:`url(#${gid})`
});
this.thermometerText = Svg.child(this.g, "text", { class:'sim-text', x:60, y:130}) as SVGTextElement;
this.thermometerText = Svg.child(this.g, "text", { class:'sim-text', x:58, y:130}) as SVGTextElement;
this.updateTheme();
let pt = this.element.createSVGPoint();

View File

@ -511,7 +511,7 @@ namespace pxsim {
constructor() {
super()
this.id = "b" + Math.random();
this.id = "b" +Math_.random(2147483647);
this.animationQ = new AnimationQueue(runtime);
this.bus = new EventBus(runtime);
this.radio = new RadioBus(runtime);