Compare commits
235 Commits
Author | SHA1 | Date | |
---|---|---|---|
57c8698b58 | |||
4e3ed27f93 | |||
41977f087e | |||
c1a4a55e2b | |||
abc9e90cb9 | |||
3119bcc625 | |||
905da373c0 | |||
05dce8efce | |||
cbfc960594 | |||
c2c765098d | |||
9daf6ad9fc | |||
0c05ae9b64 | |||
27ea7cae56 | |||
80f9c52bac | |||
afef607ccf | |||
45fe7e6bb4 | |||
8e66b041e2 | |||
e99a2df578 | |||
7e5f3fdbf3 | |||
b538526948 | |||
889142d0f7 | |||
3791689fc4 | |||
d05f66650f | |||
a4f08e99a9 | |||
3999c215ce | |||
c6b8acb0b8 | |||
1e054f96ec | |||
190e5e2e03 | |||
63ae951249 | |||
e5aeacae2f | |||
9ecb7f11cd | |||
d1660f1361 | |||
edf5345492 | |||
5eadb3483f | |||
c4d3fd5d67 | |||
5166c5141f | |||
c21b45a084 | |||
fa0d365aae | |||
43cab7a156 | |||
79b000b1bb | |||
0af25f4230 | |||
0fcca0792a | |||
cb1260419b | |||
17150e0d71 | |||
693d019525 | |||
fa6b48e421 | |||
8286561125 | |||
78083e18a7 | |||
cba7ccbacb | |||
391e0ed897 | |||
fce6206d28 | |||
faf1385933 | |||
7a74def276 | |||
81b93c13ad | |||
2852684f89 | |||
2798b579a6 | |||
9d23f82238 | |||
ce53d5c386 | |||
5d3471b3b2 | |||
08b9b10ac8 | |||
404d7cc4a2 | |||
7c43739e4b | |||
92d8adfdbd | |||
0f273131f6 | |||
9ae0c48477 | |||
5f538f418e | |||
859b68b6e3 | |||
6576f7bd66 | |||
5a670f3291 | |||
7129487618 | |||
e1797b457a | |||
c82efa452d | |||
493014af01 | |||
fb4a96d81b | |||
bbf115f33c | |||
5d9c2cf590 | |||
b99231f6e2 | |||
2676907129 | |||
6f4c533ebb | |||
85dcaea979 | |||
8560b31657 | |||
b896588f45 | |||
0b4d4facfe | |||
52ad897ee3 | |||
72582f2a60 | |||
2b2048da7d | |||
e85fa990bd | |||
81a61538c3 | |||
cc8751bd09 | |||
03f933a1c8 | |||
10a77d9fef | |||
773f8a8688 | |||
f67743d935 | |||
237a57ee86 | |||
b80edb43fc | |||
6c9b609fe0 | |||
26d78768c0 | |||
6812767555 | |||
2aa7c91ca7 | |||
baf2c3247f | |||
c9536b0cf2 | |||
7fd7e15bd4 | |||
948b0ef304 | |||
715771b991 | |||
65d48f4b02 | |||
283c331a5e | |||
ba96e94fa7 | |||
7e1248b8dc | |||
cbe280187a | |||
761e4f38cd | |||
a9137f7761 | |||
3274e237cf | |||
5261b2b270 | |||
1adede163a | |||
bb80874ef9 | |||
9e9d11cb94 | |||
c004aa4b1b | |||
cdd4798945 | |||
0f56142317 | |||
6927085d64 | |||
c1b654f092 | |||
2f551c97b5 | |||
01e6aab376 | |||
df17ba09ae | |||
9c09a427c9 | |||
4b35f0f751 | |||
bb03cc4357 | |||
6f8b17e4ba | |||
60c5dfc539 | |||
bca5839b49 | |||
47e3737245 | |||
b8d5ec853e | |||
46d42e5300 | |||
ffabb9b16d | |||
d62c10d278 | |||
e2b2aa7ff1 | |||
664c8dcd35 | |||
bd7430b642 | |||
61fd28d840 | |||
c33df897d5 | |||
3bb0bd2a9f | |||
7751061b51 | |||
88a7fa5038 | |||
3c8a62df54 | |||
c661fd0eca | |||
8a124812b6 | |||
02c41b59bd | |||
b003af6eae | |||
5e5709e48d | |||
dafb056730 | |||
721ae893bb | |||
45dd3fc1bf | |||
9626207a61 | |||
87b6e0aba1 | |||
0d9890cfac | |||
5d40750542 | |||
bd09754466 | |||
5740133921 | |||
4e23553824 | |||
9b68519aff | |||
e6dc3b8974 | |||
53634f4d6a | |||
3ee0c6ea42 | |||
ef098cbd28 | |||
356b17cb13 | |||
47d382135b | |||
241da7fbed | |||
feb17c5e45 | |||
6559f386d2 | |||
6bf46577f9 | |||
0130ecb0c2 | |||
9820a035ce | |||
88acd9254d | |||
650fe61dcd | |||
c4e57e0165 | |||
a55ddcbab3 | |||
f58508afa2 | |||
4b92de7516 | |||
6176963504 | |||
37ec692dc4 | |||
1c2dc68479 | |||
a33472dbd4 | |||
746dc5d5ab | |||
70bd81d9c2 | |||
8ee34ec4c4 | |||
9f4a121829 | |||
64eec2875b | |||
400b9269ee | |||
58d854f6f5 | |||
13dcbd3a62 | |||
a2310f150f | |||
b4d7cbc1f0 | |||
d54baaca51 | |||
7c564ebaab | |||
4b3efd434e | |||
68143500da | |||
a7a9685963 | |||
a3b2682cc1 | |||
9e7d3b86ba | |||
68d22947bb | |||
a92236b3d8 | |||
832bb77987 | |||
46713ef6c3 | |||
f9b17a844a | |||
c5e3f2c673 | |||
3a12314332 | |||
3c9c30e489 | |||
dd28c6318e | |||
d43c0f6e23 | |||
e0da743cb4 | |||
3774b705a2 | |||
c1f6e45e36 | |||
7c6d3a0509 | |||
25e83b52f3 | |||
3640ddbd0e | |||
7f3b07e43f | |||
dd6e937472 | |||
1b9dfd1622 | |||
58ac6429df | |||
75461512f7 | |||
a7a91459ff | |||
4bd5b556a6 | |||
cf32012d4e | |||
19e49652f8 | |||
691da3605f | |||
34c5a5e216 | |||
5b1ccd3978 | |||
5552b42c6e | |||
2ab7175283 | |||
a23042a787 | |||
130768301c | |||
5ead39cf51 | |||
e6a1728f6e | |||
b210e505a2 | |||
b6d81f73bc |
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -12,6 +12,7 @@
|
||||
*.html text eol=lf
|
||||
*.py text eol=lf
|
||||
*.exp text eol=lf
|
||||
*.manifest text eol=lf
|
||||
|
||||
# do not enforce text for everything - it causes issues with random binary files
|
||||
|
||||
|
15
.gitignore
vendored
15
.gitignore
vendored
@ -1,10 +1,15 @@
|
||||
node_modules
|
||||
*.sw?
|
||||
built
|
||||
typings/
|
||||
tmp/
|
||||
typings
|
||||
tmp
|
||||
temp
|
||||
projects
|
||||
win10/app/bin
|
||||
win10/app/bld
|
||||
|
||||
*.user
|
||||
*.sw?
|
||||
*.ts.new
|
||||
*.tgz
|
||||
temp/
|
||||
*.db
|
||||
projects/
|
||||
*.suo
|
||||
|
@ -2,8 +2,9 @@ language: node_js
|
||||
node_js:
|
||||
- "5.7.0"
|
||||
script:
|
||||
- "node node_modules/kindscript/built/kind.js travis"
|
||||
- "node node_modules/kindscript/built/kind.js uploaddoc"
|
||||
- "node node_modules/pxt-core/built/pxt.js travis"
|
||||
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js run)"
|
||||
- "node node_modules/pxt-core/built/pxt.js uploaddoc"
|
||||
sudo: false
|
||||
notifications:
|
||||
email:
|
||||
|
2
.vscode/tasks.json
vendored
2
.vscode/tasks.json
vendored
@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": "0.1.0",
|
||||
// Task runner is jake
|
||||
"command": "kind",
|
||||
"command": "pxt",
|
||||
// Need to be executed in shell / cmd
|
||||
"isShellCommand": true,
|
||||
"showOutput": "always",
|
||||
|
52
README.md
52
README.md
@ -1,48 +1,26 @@
|
||||
# micro:bit target for KindScript
|
||||
# micro:bit target for PXT
|
||||
|
||||
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using [KindScript](https://github.com/Microsoft/kindscript).
|
||||
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
|
||||
[Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt).
|
||||
|
||||
[](https://travis-ci.org/Microsoft/kindscript-microbit)
|
||||
[](https://travis-ci.org/Microsoft/pxt-microbit)
|
||||
|
||||
# Getting started
|
||||
|
||||
> If you're making changes to kindscript repository itself, proceed to **Local installation** below.
|
||||
Please follow instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
|
||||
|
||||
* Clone this repo and run
|
||||
## Universal Windows App
|
||||
|
||||
```
|
||||
npm install
|
||||
```
|
||||
The Windows 10 app is a [Universal Windows Hosted Web App](https://microsoftedge.github.io/WebAppsDocs/en-US/win10/CreateHWA.htm)
|
||||
that wraps codemicrobit.com and provides additional features.
|
||||
|
||||
* Install the `KindScript` tool and launch the local server:
|
||||
### Sideloading
|
||||
|
||||
```
|
||||
npm install -g kindscript-cli
|
||||
kind serve
|
||||
```
|
||||
To re-build the `built/target.json` file, re-run `kind serve`.
|
||||
* Open Windows **settings** and search for **Developer options**
|
||||
* Enable the developer mode.
|
||||
* Find the latest build under ``win10/app/AppPackages/latest`` and run the ``Add-AppDevPackage.ps1`` PowerShell script (mouse right-click, then `run with PowerShell`)
|
||||
|
||||
### Building
|
||||
|
||||
## Local installation
|
||||
|
||||
* Clone and build [KindScript](https://github.com/Microsoft/kindscript) in a `kindscript` folder.
|
||||
* Clone this repo in a `kindscript-microbit` folder next to `kindscript`
|
||||
|
||||
```
|
||||
npm install
|
||||
```
|
||||
* To build and deploy new changes
|
||||
|
||||
```
|
||||
npm install -g kindscript-cli
|
||||
cd ../kindscript
|
||||
jake
|
||||
cd ../kindscript-microbit
|
||||
npm link ../kindscript
|
||||
```
|
||||
* run this command to build and launch a local editor
|
||||
|
||||
```
|
||||
kind serve
|
||||
```
|
||||
* open `localhost:3232` to try your editor!
|
||||
* Install Visual Studio 2015 Update 2 or higher. Make sure the Windows 10 templates are installed.
|
||||
* open the ``win10/app.sln`` solution and launch the ``codemicrobit`` project.
|
||||
|
@ -1,4 +1,4 @@
|
||||
/// <reference path="../node_modules/kindscript/built/kind.d.ts"/>
|
||||
/// <reference path="../node_modules/pxt-core/built/pxt.d.ts"/>
|
||||
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
@ -7,7 +7,7 @@ import * as child_process from 'child_process';
|
||||
let writeFileAsync: any = Promise.promisify(fs.writeFile)
|
||||
let execAsync: (cmd: string, options?: { cwd?: string }) => Promise<Buffer> = Promise.promisify(child_process.exec)
|
||||
|
||||
export function deployCoreAsync(res: ts.ks.CompileResult) {
|
||||
export function deployCoreAsync(res: ts.pxt.CompileResult) {
|
||||
return getBitDrivesAsync()
|
||||
.then(drives => {
|
||||
if (drives.length == 0) {
|
||||
@ -40,4 +40,4 @@ function getBitDrivesAsync(): Promise<string[]> {
|
||||
} else {
|
||||
return Promise.resolve([])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
```sim
|
||||
basic.forever(() => {
|
||||
basic.showString("Hi!");
|
||||
})
|
||||
```
|
||||
# About
|
||||
|
||||
The [BBC micro:bit](https://www.microbit.co.uk) is a [pocket-size computer](/device) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone.
|
||||
@ -57,7 +62,7 @@ basic.showString("BBC micro:bit");
|
||||
|
||||
## C++ Runtime
|
||||
|
||||
The C++ BBC micro:bit library, created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
|
||||
The [C++ BBC micro:bit runtime](http://lancaster-university.github.io/microbit-docs/), created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
|
||||
as well as a set of helper functions (such as displaying a number/image/string on the LED screen).
|
||||
The JavaScript micro:bit library mirrors the functions of the C++ library.
|
||||
When code is compiled to ARM machine code, the calls to JavaScript micro:bit functions are replaced with calls to the corresponding C++ functions.
|
||||
|
133
docs/device.md
133
docs/device.md
@ -4,121 +4,80 @@ All the bits and pieces that make up your BBC micro:bit
|
||||
|
||||

|
||||
|
||||
### Lights
|
||||
### LED Screen and Status LED
|
||||
|
||||
### What are the red lights on the front?
|
||||
The red lights are [LEDs](/microbit/device/screen) (light emitting diodes) and form a 5 x 5 LED Screen.
|
||||
They can be set to on/off and the brightness can be controlled.
|
||||
|
||||
The red lights are [LEDs](/microbit/device/screen) (light emitting diodes) and form a 5 x 5 grid. They can be set to on/off and the brightness can be controlled.
|
||||
|
||||
### What is the yellow light on the back of the micro:bit?
|
||||
|
||||
It is the status LED. It flashes yellow when the system wants to tell the user that something has happened.
|
||||
The yellow light on the back of the micro:bit is the status LED.
|
||||
It flashes yellow when the system wants to tell the user that something has happened.
|
||||
|
||||
### Buttons
|
||||
|
||||
### What are the buttons for?
|
||||
Buttons A and B are a form of input. When you press a button, it completes an electrical circuit.
|
||||
The micro:bit can detect either of its two buttons being pressed and un-pressed and be programmed
|
||||
to act on that or send the information to another device.
|
||||
|
||||
Buttons A and B are a form of input. They detect when the button is being pressed. When you press one of the buttons, it completes an electrical circuit. The micro:bit can detect either of its two buttons being pressed and un-pressed and be programmed to act on that or send the information to another device.
|
||||
Button R on the back of the micro:bit is a system button. It has different uses.
|
||||
When you have downloaded and run your code onto your micro:bit, press Button R to restart and run your program from the beginning.
|
||||
|
||||
Button R on the back of the micro:bit is a system button. It has different uses. When you have downloaded and run your code onto your micro:bit, press Button R to restart and run your program from the beginning.
|
||||
|
||||
When you plug in your micro:bit, it should appear as MICROBIT. If you accidentally hold down the reset button as you’re plugging in your micro:bit, the micro:bit will appear as a MAINTENANCE drive instead of MICROBIT. This is known as maintenance mode.**
|
||||
When you plug in your micro:bit, it should appear as MICROBIT.
|
||||
If you accidentally hold down the reset button as you’re plugging in your micro:bit,
|
||||
the micro:bit will appear as a MAINTENANCE drive instead of MICROBIT. This is known as maintenance mode.**
|
||||
|
||||
To continue programming your micro:bit YOU MUST unplug your USB and reconnect it. Check that the drive now shows as MICROBIT.
|
||||
|
||||
**Use with caution. If you click on the drive while it shows as MAINTENANCE, you can see which version of firmware you have running on your micro:bit. Firmware on your micro:bit should be up-to-date already. You can find the version of firmware in the 'version.txt' file on the micro:bit. Further information on the firmware can be found here:
|
||||
**Use with caution. If you click on the drive while it shows as MAINTENANCE,
|
||||
you can see which version of firmware you have running on your micro:bit.
|
||||
Firmware on your micro:bit should be up-to-date already.
|
||||
You can find the version of firmware in the 'version.txt' file on the micro:bit. Further information on the firmware can be found here:
|
||||
|
||||
https://developer.mbed.org/platforms/Microbit/#firmware
|
||||
|
||||
### Compass
|
||||
|
||||
### Why is there a compass on the micro:bit?
|
||||
|
||||
The compass can detect magnetic fields such as the Earth’s magnetic field. As the micro:bit has this compass, it is possible to detect the direction it is moving in. The micro:bit can detect where it is facing and movement in degrees. This data can be used by the micro:bit in a program or be sent to another device.
|
||||
The compass can detect magnetic fields such as the Earth’s magnetic field.
|
||||
As the micro:bit has this compass, it is possible to detect the direction it is moving in.
|
||||
The micro:bit can detect where it is facing and movement in degrees.
|
||||
This data can be used by the micro:bit in a program or be sent to another device.
|
||||
|
||||
### Accelerometer
|
||||
|
||||
### Why is there an accelerometer on the micro:bit?
|
||||
There is a an accelerometer on your micro:bit which detects changes in the micro:bit’s speed.
|
||||
It converts analogue information into digital form that can be used in micro:bit programs.
|
||||
Output is in milli-g. The device will also detect a small number of standard actions e.g. shake, tilt and free-fall.
|
||||
|
||||
There is a an accelerometer on your micro:bit which detects changes in the micro:bit’s speed. It converts analogue information into digital form that can be used in micro:bit programs. Output is in milli-g. The device will also detect a small number of standard actions e.g. shake, tilt and free-fall.
|
||||
### Pins
|
||||
|
||||
### PINS
|
||||
|
||||
### What are the rings labelled 0, 1, 2 on the bottom edge of the micro:bit?
|
||||
|
||||
These are labels for the input/output pins P0, P1, P2, which you can attach external sensors to such as thermometers or moisture detectors. The pins can be a form of input or output. You can read more about large and small pins [here](/microbit/device/pins).
|
||||
The pins can be a form of input or output.
|
||||
There are labels for the input/output pins P0, P1, P2, which you can attach external sensors to such as thermometers or moisture detectors.
|
||||
You can read more about large and small pins [here](/microbit/device/pins).
|
||||
|
||||
### How do I connect the micro:bit to my computer?
|
||||
|
||||
It can be connected to your computer or device with a micro USB. Data can be sent and received between the micro:bit and the computer so programs can be downloaded from Windows and Macs onto the micro:bit via this USB data connection. You can read more information on how to run scripts on your micro:bit [here](/microbit/device/usb), and about the error messages you might get [here](/microbit/device/error-codes).
|
||||
Your micro:bit can be connected to your computer via a micro USB cable.
|
||||
Data can be sent and received between the micro:bit and the computer so programs
|
||||
can be downloaded from Windows, Macs and Chromebooks onto the micro:bit via this USB data connection.
|
||||
You can read more information on how to run scripts on your micro:bit [here](/microbit/device/usb),
|
||||
and about the error messages you might get [here](/microbit/device/error-codes).
|
||||
|
||||
### Batteries
|
||||
### Powering your micro:bit
|
||||
|
||||
### How do I power my micro:bit?
|
||||
When your micro:bit is connected to your computer with the micro USB, it doesn’t need another power source.
|
||||
When your micro:bit isn’t connected to your computer, tablet or mobile, you will need 2 x AAA 1.5 V batteries to power it.
|
||||
|
||||
When your micro:bit is connected to your computer with the micro USB, it doesn’t need another power source. When your micro:bit isn’t connected to your computer, tablet or mobile, you will need 2 x AAA 1.5 V batteries to power it.
|
||||
The pins labelled 3V and GND are the power supply pins.
|
||||
You can attach an external device such as a motor to these and power it using the battery or USB.
|
||||
|
||||
### 3V GND
|
||||
### Bluetooth Low Energy Antenna
|
||||
|
||||
### What are the rings labelled 3V and GND?
|
||||
|
||||
The pins labelled 3V and GND are the power supply pins. You can attach an external device such as a motor to these and power it using the battery or USB.
|
||||
|
||||
### What is a Bluetooth Low Energy Antenna?
|
||||
|
||||
You will see this labelled BLE ANNTENA on the back of your micro:bit. It is for a messaging service, built for the Internet of Things so that devices can talk to each other. The micro:bit is a peripheral device which can talk to a central device like a smart phone or tablet that has Bluetooth Low Energy (BLE). The micro:bit can send signals and receive signals from a central device so another BLE device can control the micro:bit or the micro:bit can control another BLE device.
|
||||
|
||||
### What is Bluetooth Low Energy?
|
||||
|
||||
Bluetooth wireless technology was developed as an alternative to data cables and allowed wireless communication between devices such as PCs, smartphones and tablets. Bluetooth® Smart or Bluetooth Low Energy is a power-friendly version of Bluetooth wireless technology.
|
||||
|
||||
### What is the Internet of Things?
|
||||
|
||||
The Internet of Things (IoT) was first talked about more than 15 years ago, when it was speculated that objects and people would be able to connect wirelessly over the internet. Objects can be detected and controlled remotely, allowing greater integration between the physical and computer based world. It will let you to remotely control your alarm system, thermostat or lights in your home. It has many applications in different fields including manufacturing, health and fitness, consumer electronics and the home.
|
||||
You will see the label BLE ANNTENA on the back of your micro:bit. It is for a messaging service,
|
||||
so that devices can talk to each other. The micro:bit is a peripheral
|
||||
device which can talk to a central device like a smart phone or tablet that has Bluetooth Low Energy (BLE).
|
||||
The micro:bit can send signals and receive signals from a central device so another BLE device can
|
||||
control the micro:bit or the micro:bit can control another BLE device.
|
||||
|
||||
### Technical Information
|
||||
|
||||
The micro:bit has been designed to be a bare-board micro controller for use by children aged 11-12. The device has been through extensive safety and compliance testing to the following standards:
|
||||
|
||||
### Safety
|
||||
|
||||
IEC 60950-1:2005 (Second Edition) + Am 1:2009 + Am 2:2013
|
||||
|
||||
### EMC
|
||||
|
||||
EN 55032: 2012
|
||||
|
||||
EN 55024: 2010
|
||||
|
||||
EN 55022:2010
|
||||
|
||||
EN 301 489-1 V1.9.2 (2011-09)
|
||||
|
||||
EN 301 489-17 V2.2.1 (2012-09)
|
||||
|
||||
### Radio Spectrum
|
||||
|
||||
ETSI EN 300 328 V1.9.1 (2015-02)
|
||||
|
||||
EN 62479:2010
|
||||
|
||||
### Chemical
|
||||
|
||||
Restriction of Hazardous Substances (RoHS) 2011/65/EU Annex II article 4(1)
|
||||
|
||||
EN71-3:2013 + A1:2014 - Migration of certain elements.
|
||||
|
||||
Analysis of the 163 substances of very high concern (SVHC) on the Candidate List for authorization, concerning Regulation (EC) No. 1907/2006 as published on the European Chemicals Agency (ECHA) website.
|
||||
|
||||

|
||||
|
||||
The micro:bit device features Bluetooth Low Energy radio. The radio on the device operates in the following frequencies:
|
||||
|
||||
Frequency Range: 2402MHz to 2480MHz
|
||||
|
||||
Bluetooth Version: V4.0 Bluetooth Low Energy
|
||||
|
||||
### Declaration of Conformity
|
||||
|
||||
The document can be downloaded by clicking here for the [Declaration of Conformity](https://microbit0.blob.core.windows.net/pub/hkeghjes/declaration-of-conformity.pdf)
|
||||
|
||||
The micro:bit has been designed to be a bare-board micro controller for use by children aged 11-12.
|
||||
More information is available at the [BBC web site](http://www.microbit.co.uk/device).
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Run Scripts on your micro:bit
|
||||
|
||||
How to compile, transfer, and run a script on your micro:bit. #docs #USB #compile #transfer
|
||||
How to compile, transfer, and run a script on your micro:bit.
|
||||
|
||||
While you're writing and testing your Block Editor or Touch Develop scripts, you'll mostly be running scripts in your browser by clicking the `Run` button (see [run code in your browser](/microbit/js/simulator) for info about this).
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Lessons
|
||||
|
||||
|
||||
### @short Lessons
|
||||
|
||||
### ~column
|
||||
|
@ -22,12 +22,9 @@ Learn how to creating a message with a **string**, `show string` to write your m
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
basic.showString('Hi!')
|
||||
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# answering machine blocks quiz answers
|
||||
|
||||
Create an answering machine on the micro:bit. #LED #screen #show #math #docs #input
|
||||
Create an answering machine on the micro:bit.
|
||||
|
||||
This is the answer key for the [answering machine quiz](/microbit/lessons/answering-machine/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# answering machine blocks quiz
|
||||
|
||||
Create an answering machine on the micro:bit. #LED #screen #show #math #docs #input
|
||||
Create an answering machine on the micro:bit.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# banana keyboard blocks lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -81,3 +81,9 @@ Your banana keyboard is ready!
|
||||
|
||||
Connect your micro:bit to your computer using your USB cable and run the [banana keyboard](/microbit/lhpkbr) script on it. Tap your banana instrument to play sound against... the fruit!
|
||||
|
||||
|
||||
### ~avatar boothing
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/banana-keyboard/challenges)!
|
||||
|
||||
### ~
|
||||
|
@ -1,6 +1,6 @@
|
||||
# beatbox blocks lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# beautiful image lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
### @video td/videos/beautiful-image-0
|
||||
|
||||
@ -20,7 +20,7 @@ Learn how to **show LEDs**, to show an image on the BBC micro:bit's LED screen.
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -28,10 +28,7 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
|
||||
basic.pause(100)
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# beautiful image blocks activity
|
||||
|
||||
Generate and show a beautiful image. #docs #microbit
|
||||
Generate and show a beautiful image.
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# blink blocks lesson
|
||||
|
||||
Learn how to create a blinking LED. #LED #screen #plot #docs #lesson
|
||||
Learn how to create a blinking LED.
|
||||
|
||||
### @video td/videos/blink-0
|
||||
|
||||
@ -23,18 +23,11 @@ Learn how to control a blinking LED. We will be learning how to create a blinkin
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
led.plot(0, 0)
|
||||
|
||||
led.unplot(0, 0)
|
||||
|
||||
basic.pause(100)
|
||||
|
||||
basic.forever(() => {
|
||||
|
||||
})
|
||||
|
||||
|
||||
basic.forever(() => {})
|
||||
```
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# blink blocks quiz answers
|
||||
|
||||
Learn how to create a blinking LED script. #LED #screen #plot #docs
|
||||
Learn how to create a blinking LED script.
|
||||
|
||||
This is the answer key for the [blink quiz](/microbit/lessons/blink/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# blink blocks quiz
|
||||
|
||||
Learn how to create a blinking LED script. #LED #screen #plot #docs
|
||||
Learn how to create a blinking LED script.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# bop it quiz answers
|
||||
|
||||
a game where you have to keep up with the commands #math #random #docs
|
||||
a game where you have to keep up with the commands.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# bop it quiz
|
||||
|
||||
a game where you have to keep up with the commands #math #random #docs
|
||||
a game where you have to keep up with the commands.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# catch the egg game lesson
|
||||
|
||||
a game to catch eggs in a basket #var #data #if #random #min #max #mod #plot #unplot #pause #accceleration #docs
|
||||
A game to catch eggs in a basket.
|
||||
|
||||
### @video td/videos/catch-the-egg-game-0
|
||||
|
||||
|
@ -56,9 +56,9 @@ basic.forever(() => {
|
||||
}
|
||||
if (eggY1 == 4) {
|
||||
if (basketX1 == eggX1) {
|
||||
game.addScore(1) // ***
|
||||
game.addScore(1)
|
||||
} else {
|
||||
game.removeLife(1) // ***
|
||||
game.removeLife(1)
|
||||
}
|
||||
}
|
||||
basic.pause(300)
|
||||
@ -142,7 +142,7 @@ basic.forever(() => {
|
||||
game.removeLife(1)
|
||||
}
|
||||
}
|
||||
basic.pause(fallingPause1) // ***
|
||||
basic.pause(fallingPause1)
|
||||
})
|
||||
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
# charting lesson
|
||||
|
||||
measure the acceleration on the micro:bit in the "z" direction #acceleration #var #docs #if #show
|
||||
Measure the acceleration on the micro:bit in the "z" direction.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -17,23 +17,13 @@ Learn the functions of **on data received**, **send number** and **receive numbe
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
|
||||
```cards
|
||||
basic.showNumber(0)
|
||||
|
||||
input.acceleration(Dimension.X)
|
||||
|
||||
led.plotBarGraph(0, 1023)
|
||||
|
||||
radio.onDataReceived(() => {
|
||||
|
||||
|
||||
})
|
||||
|
||||
radio.onDataReceived(() => {})
|
||||
radio.sendNumber(0)
|
||||
|
||||
radio.receiveNumber()
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -13,15 +13,17 @@ Welcome! This activity will teach how to use the 1st micro:bit to chart the seco
|
||||
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))
|
||||
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))
|
||||
})
|
||||
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`.
|
||||
|
@ -1,6 +1,6 @@
|
||||
# classic beatbox
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# compass lesson
|
||||
|
||||
create a die on the BBC micro:bit #button #pressed #math #random #var #string #if #docs
|
||||
create a die on the BBC micro:bit.
|
||||
|
||||
### @video td/videos/compass-0
|
||||
|
||||
@ -21,17 +21,12 @@ Learn how to use an if statements to run code run code depending on whether a co
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
input.compassHeading()
|
||||
|
||||
basic.forever(() => {})
|
||||
|
||||
let x = 0
|
||||
|
||||
if (true) {}
|
||||
|
||||
basic.showString("Hello!")
|
||||
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
|
@ -1,6 +1,6 @@
|
||||
# counter lesson
|
||||
|
||||
Learn how to create a counter with with on button pressed. #show #number #screen #number #math #docs
|
||||
Learn how to create a counter with with on button pressed.
|
||||
|
||||
### @video td/videos/counter-0
|
||||
|
||||
@ -21,22 +21,12 @@ Learn how to creating a **variable** to keep track of the current count. We will
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
input.compassHeading()
|
||||
|
||||
basic.forever(() => {
|
||||
|
||||
|
||||
})
|
||||
|
||||
basic.forever(() => {})
|
||||
let x = 0
|
||||
|
||||
if (true) {
|
||||
|
||||
}
|
||||
|
||||
if (true) {}
|
||||
basic.showString("Hello!")
|
||||
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -44,7 +34,6 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
```
|
||||
|
||||
* **variable**: [read more...](/microbit/reference/variables/var)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# die roll lesson
|
||||
|
||||
create a die on the BBC micro:bit #button #pressed #math #random #var #string #if #docs
|
||||
create a die on the BBC micro:bit.
|
||||
|
||||
### @video td/videos/die-roll-0
|
||||
|
||||
@ -21,21 +21,11 @@ Learn how to use an if statements to run code run code depending on whether a co
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
```cards
|
||||
input.onGesture(Gesture.Shake, () => {})
|
||||
let x = 0
|
||||
x = Math.random(3)
|
||||
|
||||
if (true) {
|
||||
|
||||
}
|
||||
|
||||
Math.random(3)
|
||||
if (true) {}
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -43,10 +33,6 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# digi yoyo lesson
|
||||
|
||||
create a counter with a while loop #while #loop #counter #docs
|
||||
create a counter with a while loop.
|
||||
|
||||
### @video td/videos/digi-yoyo-0
|
||||
|
||||
@ -21,13 +21,11 @@ Learn how to creating a **while loop**, `while condition do` to repeat code whil
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
let x = 0
|
||||
basic.showNumber(0)
|
||||
while (true) {
|
||||
|
||||
basic.pause(20)
|
||||
}
|
||||
while (true) {}
|
||||
basic.pause(20)
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# flashing heart blocks lesson
|
||||
|
||||
Learn how to create LED images with a global variable. #LED #screen #plot #docs
|
||||
Learn how to create LED images with a global variable.
|
||||
|
||||
### @video td/videos/flashing-heart-0
|
||||
|
||||
@ -20,13 +20,8 @@ Learn how to `show LEDs` by showing an image on the LED screen. We will be learn
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
basic.forever(() => {
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
```cards
|
||||
basic.forever(() => {})
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -34,11 +29,8 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
basic.pause(100)
|
||||
|
||||
basic.clearScreen()
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# game counter lesson
|
||||
|
||||
Learn how to create a counter with with on button pressed. #show #number #screen #number #math #docs
|
||||
Learn how to create a counter with with on button pressed.
|
||||
|
||||
### @video td/videos/counter-0
|
||||
|
||||
@ -19,15 +19,10 @@ Learn how to create game blocks to keep track of the current score. We will be l
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
game.addScore(1)
|
||||
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
basic.showNumber(0)
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -18,15 +18,10 @@ Learn how to creating a message with a **game over** to write your message. We w
|
||||
## Documentation
|
||||
|
||||
|
||||
```docs
|
||||
```cards
|
||||
game.gameOver()
|
||||
|
||||
basic.showString("Hello!")
|
||||
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# glowing pendulum blocks lesson
|
||||
|
||||
construct a pendulum that glows using acceleration #var #acceleration #abs #brightness #plot #docs
|
||||
construct a pendulum that glows using acceleration.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -19,21 +19,12 @@ Learn how to get the acceleration **acceleration**, `acceleration` value (g-forc
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
|
||||
basic.forever(() => {
|
||||
|
||||
|
||||
})
|
||||
|
||||
```cards
|
||||
basic.forever(() => {})
|
||||
let x = 0
|
||||
|
||||
input.acceleration(Dimension.X)
|
||||
|
||||
Math.abs(0)
|
||||
|
||||
led.setBrightness(255)
|
||||
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -41,7 +32,6 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# glowing pendulum quiz answers
|
||||
|
||||
construct a pendulum that glows using acceleration #LED #number #math #acceleration #docs
|
||||
construct a pendulum that glows using acceleration.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# glowing pendulum quiz
|
||||
|
||||
construct a pendulum that glows using acceleration #LED #number #math #acceleration #docs
|
||||
construct a pendulum that glows using acceleration.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# glowing sword blocks lesson
|
||||
|
||||
make a glowing sword #image #docs
|
||||
make a glowing sword.
|
||||
|
||||
### @video td/videos/glowing-sword-0
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# guess the number lesson
|
||||
|
||||
Learn to create a random number with input from button A. #input #screen #math #docs
|
||||
Learn to create a random number with input from button A.
|
||||
|
||||
### @video td/videos/guess-the-number-0
|
||||
|
||||
@ -21,22 +21,12 @@ Learn how to create numbers randomly by using the input of the BBC micro:bit. We
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
|
||||
})
|
||||
|
||||
```cards
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
let x = 0
|
||||
|
||||
basic.showNumber(0)
|
||||
|
||||
Math.random(3)
|
||||
|
||||
basic.clearScreen()
|
||||
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# guess the number quiz answers
|
||||
|
||||
Learn how to generate a random number on the micro:bit. #math #random #docs
|
||||
Learn how to generate a random number on the micro:bit.
|
||||
|
||||
This is the answer key for the [guess the number quiz](/microbit/lessons/guess-the-number/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# guess the number quiz
|
||||
|
||||
Learn how to generate a random number on the micro:bit. #math #random #docs
|
||||
Learn how to generate a random number on the micro:bit.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# hack your headphones lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -54,3 +54,8 @@ You hacked your headphones!
|
||||
|
||||
Connect your micro:bit to your computer using your USB cable and program [light beatbox](/microbit/lessons/light-beatbox/activity) music on it. Press the reset button to restart your music player!
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/light-beatbox/activity)!
|
||||
|
||||
### ~
|
||||
|
@ -1,6 +1,6 @@
|
||||
# happy birthday blocks lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# headbands lesson
|
||||
|
||||
create a charades game that can be played with your friends #data #string #collection #at #Boolean #on-logo-down #on-logo-up #running-time #string #number #docs
|
||||
create a charades game that can be played with your friends.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -8,10 +8,10 @@ Collection
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [tutorial](/microbit/lessons/headbands/tutorial)
|
||||
* [activity](/microbit/lessons/headbands/activity)
|
||||
* [quiz](/microbit/lessons/headbands/quiz)
|
||||
* [quiz answers](/microbit/lessons/headbands/quiz-answers)
|
||||
* [challenges](/microbit/lessons/headbands/challenges)
|
||||
|
||||
|
||||
## Class
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
# headbands challenges
|
||||
|
||||
These challenges will teach you how to create a fun charades game to play with your friends. #docs
|
||||
# headbands activity
|
||||
|
||||
## Before we get started
|
||||
|
@ -1,12 +1,12 @@
|
||||
# headbands quiz answers
|
||||
|
||||
create a charades game with a collection of strings #offset #screen #variables #docs
|
||||
create a charades game with a collection of strings.
|
||||
|
||||
## Name
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
@ -1,12 +1,12 @@
|
||||
# headbands quiz
|
||||
|
||||
create a charades game with a collection of strings #offset #screen #variables #docs
|
||||
create a charades game with a collection of strings.
|
||||
|
||||
## Name
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/tutorial).
|
||||
Use this activity document to guide your work in the [headbands tutorial](/microbit/lessons/headbands/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
@ -1,6 +1,6 @@
|
||||
# hero
|
||||
|
||||
make a game to test hand-eye coordination #docs #functions #var
|
||||
make a game to test hand-eye coordination.
|
||||
|
||||
Make a game to test hand-eye coordination
|
||||
|
||||
|
@ -39,8 +39,14 @@ ghost.change(LedSpriteProperty.Blink, 100);
|
||||
|
||||
We want to identify the food so the player moves towards the food. We need to set the `brightness` of the `variable` food to 8. The brightness of the LED screen is expressed as a number between 0 and 255.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
|
||||
```
|
||||
|
||||
We want to include a block from the Loops drawer called `While`. Then set the `While` loop to `true`. This code will be important for repeating code of the game logic of the game. The game will continue to run using `While` loop while the Boolean condition is true. Finally, include a `pause` of 400 milliseconds before the logic of the game begins.
|
||||
|
||||
@ -50,52 +56,223 @@ let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400)
|
||||
basic.pause(400);
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
Let's create a function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The first condition will check if the horizontal coordinates of the ghost is less than the horizontal coordinates of the hero. We create a function from the Game drawer that will check the coordinates of the hero and the ghost. Finally, change the x-direction of the ghost by 1.
|
||||
|
||||
Then create another function that will take care of keep the ghost pursuing the hero. We will need to a conditional statement that checks the position of the ghost and hero. The second condition will check if the horizontal coordinates of the ghost is greater than the x-direction of hero. We create a function from the Game drawer that will check the x-direction of hero and ghost. Finally, change the x-direction of the ghost by -1.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) > hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (false) {
|
||||
}
|
||||
else if (false) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
Let's create the third function and forth function that continues the same logic in the y-direction of pacman and ghost. We create a function from the Game drawer that will check the y-direction of pacman and ghost. Finally, change the y-direction of the ghost to continue following pacman.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
Let's enable pacman to move in the x-direction and move in the y-direction with acceleration using the micor:bit sensor
|
||||
|
||||

|
||||
|
||||
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.X) > 200) {
|
||||
hero.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.X) < -200 ) {
|
||||
hero.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.Y) > 200) {
|
||||
hero.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.Y) > -200 ) {
|
||||
hero.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Let's setup the logic for the food. If hero is `touching` "food", increase the score of the game by 1 and `set` ``x`` -direction of food randomly randomly from 0 to 4 and `set` ``y``-direction of food randomly from 0 to 4.
|
||||
|
||||

|
||||
```blocks
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.X) > 200) {
|
||||
hero.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.X) < -200 ) {
|
||||
hero.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.Y) > 200) {
|
||||
hero.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.Y) > -200 ) {
|
||||
hero.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (hero.isTouching(food)) {
|
||||
game.addScore(1);
|
||||
food.set(LedSpriteProperty.X, Math.random(5));
|
||||
food.set(LedSpriteProperty.Y, Math.random(5));
|
||||
}
|
||||
|
||||
**Do not disconnect the blocks from the conditional statements. We are focusing on this section of the code and are not showing the entire code**
|
||||
}
|
||||
|
||||
Let's setup the logic for the food and the ghost to be in different quadrants.
|
||||
|
||||

|
||||
```
|
||||
|
||||
**Do not disconnect the blocks for the conditional statements. We are focusing on this section of the code and are not showing the entire code**
|
||||
|
||||
The game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
|
||||
|
||||

|
||||
Let's setup the logic for the food and the ghost to be in different quadrants. Finally, the game over component is now upon the game. If the hero is `touching` the ghost, let's display `game over`
|
||||
|
||||
**Do not disconnect the conditional statements blocks from the remaining blocks. We are focusing on this section of the code and are not showing the entire code**
|
||||
```blocks
|
||||
|
||||
The game can also use the buttons. Let's create a `while` loop for button A is pressed. If button A is pressed, the micro:bit will display the word Hero. Let's use a `while` loop for button B is pressed. If button B is pressed, the micro:bit will display image of the hero.
|
||||
let hero = game.createSprite(2, 2);
|
||||
let food = game.createSprite(4, 4);
|
||||
let ghost = game.createSprite(0, 0);
|
||||
let ghost.change(LedSpriteProperty.Blink, 100);
|
||||
food = led.brightness() == 8;
|
||||
while (true) {
|
||||
basic.pause(400);
|
||||
if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.X) < hero.get(LedSpriteProperty.X)) {
|
||||
ghost.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) < hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (ghost.get(LedSpriteProperty.Y) > hero.get(LedSpriteProperty.Y)) {
|
||||
ghost.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.X) > 200) {
|
||||
hero.change(LedSpriteProperty.X, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.X) < -200 ) {
|
||||
hero.change(LedSpriteProperty.X, -1 );
|
||||
}
|
||||
if (input.acceleration(Dimension.Y) > 200) {
|
||||
hero.change(LedSpriteProperty.Y, 1);
|
||||
}
|
||||
else if (input.acceleration(Dimension.Y) > -200 ) {
|
||||
hero.change(LedSpriteProperty.Y, -1 );
|
||||
}
|
||||
if (hero.isTouching(food)) {
|
||||
game.addScore(1);
|
||||
food.set(LedSpriteProperty.X, Math.random(5));
|
||||
food.set(LedSpriteProperty.Y, Math.random(5));
|
||||
if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) < 2) {
|
||||
ghost.set(LedSpriteProperty.X, 4);
|
||||
ghost.set(LedSpriteProperty.Y, 4);
|
||||
}
|
||||
else if (food.get(LedSpriteProperty.X) > 2 && food.get(LedSpriteProperty.Y) < 2) {
|
||||
ghost.set(LedSpriteProperty.X, 0);
|
||||
ghost.set(LedSpriteProperty.Y, 4);
|
||||
}
|
||||
else if (food.get(LedSpriteProperty.X) < 2 && food.get(LedSpriteProperty.Y) > 2) {
|
||||
ghost.set(LedSpriteProperty.X, 4);
|
||||
ghost.set(LedSpriteProperty.Y, 0);
|
||||
}
|
||||
else {
|
||||
ghost.set(LedSpriteProperty.X, 0);
|
||||
ghost.set(LedSpriteProperty.Y, 0);
|
||||
}
|
||||
}
|
||||
if (hero.isTouching(ghost)) {
|
||||
game.gameOver();
|
||||
}
|
||||
|
||||

|
||||
}
|
||||
0.set(LedSpriteProperty.X, 4);
|
||||
|
||||
|
||||
```
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
You can review the final code for [hero](/microbit/numraj)
|
||||
Congratulations! You have a homemade hero game based on the classic version of PacMan
|
||||
|
||||
### ~
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# light beatbox
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# looper blocks lesson
|
||||
|
||||
Learn to control blinking LEDs. #LED #screen #for #docs
|
||||
Learn to control blinking LEDs.
|
||||
|
||||
### @video td/videos/looper-0
|
||||
|
||||
@ -26,10 +26,8 @@ Learn how to control a blinking LED. We will be learning how to create a blinkin
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
for (let i = 0; i < 5; i++) {
|
||||
|
||||
}
|
||||
```cards
|
||||
for (let i = 0; i < 5; i++) {}
|
||||
basic.showNumber(0)
|
||||
basic.pause(100)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# looper quiz answers
|
||||
|
||||
Learn how to create a series of numbers with a for loop. #LED #screen #plot #docs
|
||||
Learn how to create a series of numbers with a for loop.
|
||||
|
||||
This is the answer key for the [looper quiz](/microbit/lessons/looper/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# looper quiz
|
||||
|
||||
Learn how to create a series of numbers with a for loop. #LED #screen #plot #docs
|
||||
Learn how to create a series of numbers with a for loop.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# love meter blocks lesson
|
||||
|
||||
create a love meter with the BBC micro:bit #pin #pressed #string #if #var #pause #show #docs
|
||||
create a love meter with the BBC micro:bit.
|
||||
|
||||
### @video td/videos/love-meter-0
|
||||
|
||||
@ -22,19 +22,11 @@ Learn how to use the **pin pressed**, `on pin pressed` to run code when the user
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
if (true) {
|
||||
|
||||
}
|
||||
|
||||
input.onPinPressed(TouchPin.P0, () => {
|
||||
|
||||
})
|
||||
```cards
|
||||
if (true) {}
|
||||
input.onPinPressed(TouchPin.P0, () => {})
|
||||
let x = 0
|
||||
Math.random(3)
|
||||
basic.showNumber(0)
|
||||
basic.pause(100)
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
# lucky 7 blocks lesson
|
||||
|
||||
show a number on the LED screen #show #number #docs
|
||||
show a number on the LED screen.
|
||||
|
||||
### @video td/videos/lucky-7-0
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# magic 8 lesson
|
||||
|
||||
a fortune teller game with the BBC micro:bit #string #shake #clear-screen #if #string #number #var #docs
|
||||
a fortune teller game with the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -19,14 +19,10 @@ Learn how to creating **conditionals**, `if condition do` to conditionally run c
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
if (true) {
|
||||
|
||||
}
|
||||
```cards
|
||||
if (true) {}
|
||||
Math.random(3)
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
|
||||
})
|
||||
input.onGesture(Gesture.Shake, () => {})
|
||||
basic.showNumber(7)
|
||||
basic.clearScreen()
|
||||
basic.showString("Hello!")
|
||||
|
@ -1,6 +1,6 @@
|
||||
# magic 8 quiz answers
|
||||
|
||||
create a magic 8 ball on the BBC micro:bit #math #random #docs
|
||||
create a magic 8 ball on the BBC micro:bit.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# magic 8 quiz
|
||||
|
||||
create a magic 8 ball on the BBC micro:bit #math #random #docs
|
||||
create a magic 8 ball on the BBC micro:bit.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# magic logo lesson
|
||||
|
||||
show an image that points up when the logo is up #logo #point #docs
|
||||
show an image that points up when the logo is up.
|
||||
|
||||
### @video td/videos/magic-logo-0
|
||||
|
||||
@ -20,13 +20,9 @@ On Logo Up
|
||||
Learn how to plot image **on logo up**, `on logo up` to run code when the micro:bit screen is facing up and vertically orientated. We will be learning how to plot an image with the logo up, basic show LEDs, and logo down.
|
||||
|
||||
## Documentation
|
||||
```docs
|
||||
input.onLogoUp(() => {
|
||||
|
||||
})
|
||||
input.onLogoDown(() => {
|
||||
|
||||
})
|
||||
```cards
|
||||
input.onLogoUp(() => {})
|
||||
input.onLogoDown(() => {})
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -34,8 +30,6 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# magic logo quiz answers
|
||||
|
||||
show an image that points up when the logo is up #logo #show #create #docs
|
||||
show an image that points up when the logo is up.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# magic logo quiz
|
||||
|
||||
show an image that points up when the logo is up #logo #show #create #docs
|
||||
show an image that points up when the logo is up.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# night light lesson
|
||||
|
||||
change the brightness of the BBC micro:bit #brightness #plot #docs
|
||||
change the brightness of the BBC micro:bit.
|
||||
|
||||
### @video td/videos/night-light-0
|
||||
|
||||
@ -21,11 +21,9 @@ Learn how to **set brightness** of an image `set brightness` to set the brightne
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
led.setBrightness(255)
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -33,7 +31,6 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# night light quiz answers
|
||||
|
||||
Answers to the night light quiz. #LED #image #brightness #fade #docs
|
||||
Answers to the night light quiz.
|
||||
|
||||
This is the answer key for the [night light quiz](/microbit/lessons/night-light/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# night light quiz
|
||||
|
||||
change the brightness of the BBC micro:bit #LED #image #brightness #fade #docs
|
||||
change the brightness of the BBC micro:bit.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# offset image quiz answers
|
||||
|
||||
shift an image horizontally across the display with offset #offset #screen #variables #docs
|
||||
shift an image horizontally across the display with offset.
|
||||
|
||||
This is the answer key for the [offset image quiz](/microbit/lessons/offset-image/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# offset image quiz
|
||||
|
||||
shift an image horizontally across the display with offset #offset #screen #variables #docs
|
||||
shift an image horizontally across the display with offset.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# pogo lesson
|
||||
|
||||
create a game that relies on precise instincts and timing reflexes #if # #function #data #forever #var #button #if #assignment #pause #string #number #docs
|
||||
create a game that relies on precise instincts and timing reflexes #if #.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -15,14 +15,13 @@ Running Time
|
||||
Learn how to use running time. We will be learning how to create a pogo game using variables, forever loop, conditionals, on button pressed, as well as simple commands, such as show LEDs and clear screen.
|
||||
|
||||
## Documentation
|
||||
```docs
|
||||
```cards
|
||||
let jumps = 0
|
||||
let acc = input.acceleration(Dimension.Y)
|
||||
basic.showNumber(jumps)
|
||||
basic.showNumber(radio.receiveNumber())
|
||||
basic.showNumber(0)
|
||||
radio.receiveNumber()
|
||||
led.stopAnimation()
|
||||
jumps = jumps + 1;
|
||||
radio.sendNumber(jumps)
|
||||
radio.sendNumber(0)
|
||||
basic.forever(() => { })
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
@ -32,11 +31,8 @@ basic.showLeds(`
|
||||
. # # # .
|
||||
`)
|
||||
basic.clearScreen()
|
||||
if (acc > 2000) {
|
||||
|
||||
}
|
||||
if (true) {}
|
||||
radio.onDataReceived(() => { })
|
||||
|
||||
```
|
||||
## Objectives
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
# prank wifi lesson
|
||||
|
||||
create a fake wifi app to trick your friends #abs #acceleration #if #math #plot #image #functions #var #docs
|
||||
create a fake wifi app to trick your friends.
|
||||
|
||||
create a fake wifi app to trick your friends
|
||||
|
||||
* [activity](/microbit/lessons/prank-wifi/activity)
|
||||
* [quiz](/microbit/lessons/prank-wifi/quiz)
|
||||
|
||||
* [quiz answers](/microbit/lessons/prank-wifi/quiz-answers)
|
||||
|
@ -9,37 +9,37 @@ Complete the following exercise. Your code should look like this:
|
||||
```blocks
|
||||
basic.showString("Check Wifi", 150)
|
||||
basic.forever(() => {
|
||||
let xAccel = math.abs(input.acceleration("x"))
|
||||
let yAccel = math.abs(input.acceleration("y"))
|
||||
let zAccel = math.abs(input.acceleration("z"))
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum < 1400) {
|
||||
basic.showleds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
. # # . .
|
||||
# # # . .
|
||||
`)
|
||||
} else if (sum >= 1400 && sum < 1680) {
|
||||
basic.showleds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
. # # # .
|
||||
# # # # .
|
||||
`)
|
||||
}
|
||||
else if (sum >= 1680) {
|
||||
basic.showleds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
# . . . .
|
||||
`)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
. # # # .
|
||||
# # # # .
|
||||
`)
|
||||
} else if (sum >= 1680) {
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
# . . . .
|
||||
`)
|
||||
}
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
**Challenge 1**
|
||||
@ -53,12 +53,12 @@ Edit this line: if sum is greater than 1400 then just click on the `1400` and ba
|
||||
```blocks
|
||||
basic.showString("Check Wifi", 150)
|
||||
basic.forever(() => {
|
||||
let xAccel1 = math.abs(input.acceleration("x"))
|
||||
let yAccel1 = math.abs(input.acceleration("y"))
|
||||
let zAccel1 = math.abs(input.acceleration("z"))
|
||||
let xAccel1 = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel1 = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel1 = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum1 = xAccel1 + yAccel1 + zAccel1
|
||||
if (sum1 < 1200) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
@ -66,7 +66,7 @@ basic.forever(() => {
|
||||
# # # . .
|
||||
`)
|
||||
} else if (sum1 >= 1400 && sum1 < 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
@ -75,7 +75,7 @@ basic.forever(() => {
|
||||
`)
|
||||
}
|
||||
else if (sum1 >= 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -93,12 +93,12 @@ Let's add an **IF** at the bottom of your code that checks to see if `sum >= to
|
||||
```blocks
|
||||
basic.showString("Check Wifi", 150)
|
||||
basic.forever(() => {
|
||||
let xAccel2 = math.abs(input.acceleration("x"))
|
||||
let yAccel2 = math.abs(input.acceleration("y"))
|
||||
let zAccel2 = math.abs(input.acceleration("z"))
|
||||
let xAccel2 = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel2 = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel2 = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum2 = xAccel2 + yAccel2 + zAccel2
|
||||
if (sum2 < 1200) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
@ -106,7 +106,7 @@ basic.forever(() => {
|
||||
# # # . .
|
||||
`)
|
||||
} else if (sum2 >= 1400 && sum2 < 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
@ -115,7 +115,7 @@ basic.forever(() => {
|
||||
`)
|
||||
}
|
||||
else if (sum2 >= 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -124,18 +124,18 @@ basic.forever(() => {
|
||||
`)
|
||||
}
|
||||
if (sum2 >= 1200 && sum2 < 1400) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . #
|
||||
. . . # #
|
||||
. . # # #
|
||||
. # # # #
|
||||
# # # # #
|
||||
`) // ***
|
||||
`)
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
**Challenge 3**
|
||||
|
||||
Now it's your turn! Be creative and change the Wifi meter images to your own wifi image you're sure will prank your friends by editing the lines that call `plot image()`.
|
||||
Now it's your turn! Be creative and change the Wifi meter images to your own wifi image you're sure will prank your friends by editing the lines that call `showLeds()`.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# prank wifi quiz answers
|
||||
|
||||
create a fake wifi app to trick your friends #string #forever #abs #var #plot #image #if #math #abs #acceleration #docs
|
||||
create a fake wifi app to trick your friends.
|
||||
|
||||
## Name
|
||||
|
||||
@ -15,9 +15,9 @@ Answer the questions while completing the tutorial. Pay attention to the dialogu
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = math.abs(input.acceleration("x"))
|
||||
let yAccel = math.abs(input.acceleration("y"))
|
||||
let zAccel = math.abs(input.acceleration("z"))
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
```
|
||||
|
||||
<br/>
|
||||
@ -29,6 +29,9 @@ let zAccel = math.abs(input.acceleration("z"))
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
```
|
||||
|
||||
@ -39,8 +42,12 @@ let sum = xAccel + yAccel + zAccel
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum < 1400) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . # . .
|
||||
@ -59,8 +66,12 @@ if (sum < 1400) {
|
||||
<br/>
|
||||
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum >= 1400 && sum < 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . # .
|
||||
. . # # .
|
||||
@ -70,7 +81,7 @@ if (sum >= 1400 && sum < 1680) {
|
||||
}
|
||||
```
|
||||
|
||||
## 5. Write the 'if statement' needed to display this specific plot image on the device
|
||||
## 5. Write the code to display this specific image on the device
|
||||
|
||||

|
||||
|
||||
@ -78,9 +89,13 @@ if (sum >= 1400 && sum < 1680) {
|
||||
|
||||
<br/>
|
||||
|
||||
```
|
||||
```blocks
|
||||
let xAccel = Math.abs(input.acceleration(Dimension.X))
|
||||
let yAccel = Math.abs(input.acceleration(Dimension.Y))
|
||||
let zAccel = Math.abs(input.acceleration(Dimension.Z))
|
||||
let sum = xAccel + yAccel + zAccel
|
||||
if (sum >= 1680) {
|
||||
basic.showleds(`
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
. . . . .
|
||||
|
@ -1,12 +1,12 @@
|
||||
# prank wifi quiz
|
||||
|
||||
create a fake wifi app to trick your friends #string #forever #abs #var #plot #image #if #math #abs #acceleration #docs
|
||||
create a fake wifi app to trick your friends.
|
||||
|
||||
## Name
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/tutorial)
|
||||
Use this activity document to guide your work in the [prank WiFi tutorial](/microbit/lessons/prank-wifi/activity)
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# rock paper scissors lesson
|
||||
|
||||
a game against the BBC micro:bit #var #image #button #string #number #docs
|
||||
a game against the BBC micro:bit.
|
||||
|
||||
### @video td/videos/rock-paper-scissors-0
|
||||
|
||||
@ -23,10 +23,8 @@ Learn how to create a **local variable**, `var t :=time` where you can store dat
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
|
||||
})
|
||||
```cards
|
||||
input.onGesture(Gesture.Shake, () => {})
|
||||
Math.random(3)
|
||||
let x = 0
|
||||
basic.showLeds(`
|
||||
|
@ -1,6 +1,6 @@
|
||||
# rock paper scissors quiz
|
||||
|
||||
shift an image horizontally across the display with offset #offset #screen #variables #docs
|
||||
shift an image horizontally across the display with offset.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# rotation animation block lesson
|
||||
|
||||
Learn how to create images with a global variable and while loop. #LED #screen #plot #docs
|
||||
Learn how to create images with a global variable and while loop.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -19,11 +19,9 @@ Learn how to create images that look like a rotating animation by using a while
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
let x = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -32,10 +30,8 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
`)
|
||||
basic.pause(100)
|
||||
while (true) {
|
||||
|
||||
basic.pause(20)
|
||||
}
|
||||
while (true) {}
|
||||
basic.pause(20)
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# rotation animation quiz answers
|
||||
|
||||
Learn how to create a rotating image with a while loop. #image #loop #while #docs
|
||||
Learn how to create a rotating image with a while loop.
|
||||
|
||||
This is the answer key for the [rotation animation quiz](/microbit/lessons/rotation-animation/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# rotation animation quiz
|
||||
|
||||
Learn how to create a rotating image with a while loop. #image #loop #while #docs
|
||||
Learn how to create a rotating image with a while loop.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# screen wipe blocks lesson
|
||||
|
||||
clear the screen by pressing button "A" #button #clear #docs
|
||||
clear the screen by pressing button "A".
|
||||
|
||||
### @video td/videos/screen-wipe-0
|
||||
|
||||
@ -23,7 +23,7 @@ Learn how to **clear screen**, `clear screen` to turn off all the LED lights on
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
basic.clearScreen()
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
@ -32,10 +32,7 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -24,10 +24,8 @@ Learn how to **show LEDs** to turn on a LED light pattern on the LED screen. We
|
||||
* **show LEDs** : [read more...](/microbit/reference/basic/show-leds)
|
||||
* **on button pressed** : [read more...](/microbit/reference/input/on-button-pressed)
|
||||
|
||||
```docs
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
```cards
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -35,7 +33,6 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# snowflake fall blocks lesson
|
||||
|
||||
design a blinking rectangle animation #animation #loop #forever #docs
|
||||
design a blinking rectangle animation.
|
||||
|
||||
### @video td/videos/snowflake-fall-0
|
||||
|
||||
@ -25,7 +25,7 @@ Learn how to show LEDs with a, `pause` to pause program execution for a specifie
|
||||
* **pause** : [read more...](/microbit/reference/basic/pause)
|
||||
* **forever** : [read more...](/microbit/reference/basic/forever)
|
||||
|
||||
```docs
|
||||
```cards
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -34,8 +34,5 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
`)
|
||||
basic.pause(100)
|
||||
basic.forever(() => {
|
||||
|
||||
})
|
||||
|
||||
basic.forever(() => {})
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
# snowflake fall blocks activity
|
||||
|
||||
design a blinking rectangle animation. #docs #tutorials #stepByStep
|
||||
design a blinking rectangle animation.
|
||||
|
||||
### ~avatar avatar
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# speed button lesson
|
||||
|
||||
code a speed game by declaring Booleans on the BBC micro:bit #if #string #var #data #docs
|
||||
code a speed game by declaring Booleans on the BBC micro:bit.
|
||||
|
||||
### @video td/videos/speed-button-3
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# speed button quiz answers
|
||||
|
||||
counter that keeps track of how many times button "A" has been pressed #LED #screen #variables #docs #input
|
||||
counter that keeps track of how many times button "A" has been pressed.
|
||||
|
||||
This is the answer key for the [speed button quiz](/microbit/lessons/speed-button/quiz).
|
||||
|
||||
@ -37,7 +37,7 @@ After two button presses, **count** will be equal to 2.
|
||||
## 5. If the rectangle below represents the BBC micro:bit, shade the areas that will be displayed after five button presses on Button A. Explain why that particular area is shaded.
|
||||
|
||||
```blocks
|
||||
count_ = 0
|
||||
let count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count_, 100)
|
||||
|
@ -1,12 +1,12 @@
|
||||
# speed button quiz
|
||||
|
||||
counter that keeps track of how many times button "A" has been pressed #LED #screen #variables #docs #input
|
||||
counter that keeps track of how many times button "A" has been pressed.
|
||||
|
||||
## Name
|
||||
|
||||
## Directions
|
||||
|
||||
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/tutorial).
|
||||
Use this activity document to guide your work in the [speed button tutorial](/microbit/lessons/speed-button/activity).
|
||||
|
||||
Answer the questions while completing the tutorial. Pay attention to the dialogues!
|
||||
|
||||
@ -37,7 +37,7 @@ input.onButtonPressed(Button.A, () => {
|
||||
## 4. Draw which LED is ON after running this code and pressing Button A five times. Explain why you chose to draw that number.
|
||||
|
||||
```blocks
|
||||
count_ = 0
|
||||
let count_ = 0
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
count_ = count_ + 1
|
||||
basic.showNumber(count_, 100)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# spinner lesson
|
||||
|
||||
a spin the BBC micro:bit game with the input on shake #button #pressed #math #random #var #string #if #docs
|
||||
a spin the BBC micro:bit game with the input on shake.
|
||||
|
||||
### @video td/videos/spinner-0
|
||||
|
||||
@ -22,14 +22,10 @@ Learn how to use an if statement to run code run code depending on whether a con
|
||||
## Documentation
|
||||
|
||||
|
||||
```docs
|
||||
if (true) {
|
||||
|
||||
}
|
||||
```cards
|
||||
if (true) {}
|
||||
let x = 0
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
|
||||
})
|
||||
input.onGesture(Gesture.Shake, () => {})
|
||||
Math.random(3)
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
|
@ -1,6 +1,6 @@
|
||||
# spinner quiz answers
|
||||
|
||||
a spin the BBC micro:bit game with the input on shake #math #random #docs #shake
|
||||
a spin the BBC micro:bit game with the input on shake.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# spinner quiz
|
||||
|
||||
a spin the BBC micro:bit game with the input on shake #math #random #docs #shake
|
||||
a spin the BBC micro:bit game with the input on shake.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Block Editor STEM Lessons
|
||||
|
||||
Overview of Blocks lessons for the BBC micro:bit. #docs #contents
|
||||
Overview of Blocks lessons for the BBC micro:bit.
|
||||
|
||||
### @short Lessons
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# strobe light lesson
|
||||
|
||||
Learn how to create a blinking LED script. #LED #screen #plot #docs
|
||||
Learn how to create a blinking LED script.
|
||||
|
||||
### @video td/videos/strobe-light-0
|
||||
|
||||
@ -17,14 +17,11 @@ For Loop
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
led.plot(0, 0)
|
||||
led.unplot(0, 0)
|
||||
for (let i = 0; i < 5; i++) {
|
||||
|
||||
}
|
||||
for (let i = 0; i < 5; i++) {}
|
||||
basic.pause(100)
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# strobe light quiz answers
|
||||
|
||||
Learn how to create a blinking images with a for loop. #LED #screen #plot #docs
|
||||
Learn how to create a blinking images with a for loop.
|
||||
|
||||
This is the answer key for the [strobe light quiz](/microbit/lessons/strobe-light/quiz).
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# strobe light quiz
|
||||
|
||||
Learn how to create a blinking LED script with a for loop. #LED #screen #plot #docs
|
||||
Learn how to create a blinking LED script with a for loop.
|
||||
|
||||
## Name
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Teach Blocks
|
||||
|
||||
Overview of lesson instructions for the BBC micro:bit. #docs #contents
|
||||
Overview of lesson instructions for the BBC micro:bit.
|
||||
|
||||
### @short Teach
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# telegraph lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -9,6 +9,8 @@ Telegraph
|
||||
## Quick Links
|
||||
|
||||
* [activity](/microbit/lessons/telegraph/activity)
|
||||
* [challenges](/microbit/lessons/telegraph/challenges)
|
||||
|
||||
|
||||
## Prior learning/place of lesson in scheme of work
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# telegraph activity
|
||||
|
||||
Build a telgraph #microbit #docs
|
||||
Build a telgraph.
|
||||
|
||||
# micro:bit telegraph
|
||||
|
||||
@ -67,10 +67,9 @@ Using the 4th crocodile clip, connect the unattached end of the crocodile clip o
|
||||
|
||||

|
||||
|
||||
Your telegraph is ready!
|
||||
|
||||
### Step 10
|
||||
### ~avatar avatar
|
||||
|
||||
* Connect the first micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* Connect the second micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* The first person and second person take turns pressing button A to play the telegraph game!
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/telegraph/challenges)!
|
||||
|
||||
### ~
|
||||
|
114
docs/lessons/telegraph/challenges.md
Normal file
114
docs/lessons/telegraph/challenges.md
Normal file
@ -0,0 +1,114 @@
|
||||
# telegraph activity
|
||||
|
||||
Build a telgraph.
|
||||
|
||||
# micro:bit telegraph
|
||||
|
||||
|
||||
|
||||
|
||||
Have you ever tried to communicate through a telegraph? Let's try coding a "Telegraph" on two BBC micro:bits !
|
||||
|
||||
|
||||
Complete the following [guided tutorial](/microbit/lessons/telegraph/activity), your hack should look like this:
|
||||
|
||||

|
||||
|
||||
### Step 1
|
||||
|
||||
We now need to digitally write to the specified pin (P0) as digital. Let's start by adding the code in the pin drawer that includes 'digital write (0,1) to pin P0'.. Then insert 1 for digital write.
|
||||
|
||||
```blocks
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
|
||||
```
|
||||
|
||||
### Step 2
|
||||
|
||||
We want to add a block to turn on an LED in the middle area of the LED display using plot x, y. So insert the appropriate LED plot x, y.
|
||||
|
||||
```blocks
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
|
||||
```
|
||||
|
||||
### Step 3
|
||||
|
||||
We want to insert a condition that tells us when to turn on the LED. So insert the if block under logic drawer. Then add a condition that occurs if we do not turn on a LED with plot x, y. We also should plot an LED on the display if button A is pressed. Your code should appear as follows:
|
||||
|
||||
```blocks
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
} else {
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Step 4
|
||||
|
||||
We want to write code if button A is NOT pressed. It is important to say that digital write is not on. We also want to turn off all LED lights on the LED screen
|
||||
|
||||
```blocks
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
} else {
|
||||
pins.digitalWritePin(DigitalPin.P0, 0)
|
||||
basic.clearScreen()
|
||||
}
|
||||
```
|
||||
|
||||
### Step 5
|
||||
|
||||
Let's add a forever loop so this code runs in the background forever. Modify your code so that your code looks like this. Run the code and press Button A.
|
||||
|
||||
```blocks
|
||||
basic.forever(() => {
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1)
|
||||
led.plot(2, 2)
|
||||
} else {
|
||||
pins.digitalWritePin(DigitalPin.P0, 0)
|
||||
basic.clearScreen()
|
||||
}
|
||||
})
|
||||
|
||||
```
|
||||
|
||||
### Step 6
|
||||
|
||||
|
||||
We now need to digitally read to the specified pin (P1) as digital. Let's start by going to the pin drawer and adding digital read pin (0,1) and changing the pin to P1. Now we need to create a condition for digital read pin (0,1). So we go to the logic drawer and select the comparison operator. Then we want to set the comparison operator to 1 to turn on digital read on pin 1. We want to insert a condition that tells us if button A is pressed and we should turn on digital read on pin 1. So insert the if block under logic drawer. Then add a condition that occurs if digital read on P1 is on. Then we want to plot x, y at the x, y coordinates of 2,2. we also want to say that if digital read pin P1 is not on, we want to turn off all LED lights on the screen. Your code should appear as follows:
|
||||
|
||||
```blocks
|
||||
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
|
||||
led.plot(2, 2);
|
||||
}
|
||||
else {
|
||||
basic.clearScreen();
|
||||
}
|
||||
basic.forever(() => {
|
||||
if (input.buttonIsPressed(Button.A)) {
|
||||
pins.digitalWritePin(DigitalPin.P0, 1);
|
||||
led.plot(2, 2);
|
||||
}
|
||||
else {
|
||||
pins.digitalWritePin(DigitalPin.P0, 0);
|
||||
basic.clearScreen();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
Your telegraph is ready!
|
||||
|
||||
### Step 7
|
||||
|
||||
* Connect the first micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* Connect the second micro:bit to your computer using your USB cable and run the [telegraph](/microbit/nnudbr) script on it.
|
||||
* The first person and second person take turns pressing button A to play the telegraph game!
|
@ -1,6 +1,6 @@
|
||||
# temperature blocks lesson
|
||||
|
||||
measure the temperature on the BBC micro:bit #temp #var #docs
|
||||
measure the temperature on the BBC micro:bit.
|
||||
|
||||
## Topic
|
||||
|
||||
@ -17,15 +17,12 @@ Learn how to get the ambient temperature (degree Celsius °C). The temperature i
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
input.temperature()
|
||||
let x = 0
|
||||
basic.showNumber(7)
|
||||
basic.showString("Hello!")
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
|
||||
})
|
||||
|
||||
input.onGesture(Gesture.Shake, () => {})
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
@ -1,6 +1,6 @@
|
||||
# the watch lesson
|
||||
|
||||
display beautiful images on the BBC micro:bit #var #pause #docs
|
||||
display beautiful images on the BBC micro:bit.
|
||||
|
||||

|
||||
|
||||
|
@ -150,9 +150,11 @@ Trim any leftover fabric, threads or tape.
|
||||
|
||||
Your watch is ready!
|
||||
|
||||
### Step 22
|
||||
### ~avatar avatar
|
||||
|
||||
Connect your micro:bit to your computer using your USB cable and upload the [rock paper scissors](/microbit/rrwupw) script on it. Shake your watch to play against... the micro:bit!
|
||||
Excellent, you're ready to continue with the [challenges](/microbit/lessons/rock-paper-scissors/activity)!
|
||||
|
||||
### ~
|
||||
|
||||
### Acknowledgements
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# truth or dare lesson
|
||||
|
||||
create a love meter with the BBC micro:bit #button #pressed #math #random #var #string #if #docs
|
||||
create a love meter with the BBC micro:bit.
|
||||
|
||||
### @video td/videos/truth-or-dare-0
|
||||
|
||||
@ -21,7 +21,7 @@ Learn how to use an if statement to run code run code depending on whether a con
|
||||
|
||||
## Documentation
|
||||
|
||||
```docs
|
||||
```cards
|
||||
basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
@ -29,16 +29,11 @@ basic.showLeds(`
|
||||
. . . . .
|
||||
. . . . .
|
||||
`)
|
||||
input.onButtonPressed(Button.A, () => {
|
||||
|
||||
})
|
||||
input.onButtonPressed(Button.A, () => {})
|
||||
let x = 0
|
||||
Math.random(3)
|
||||
if (true) {
|
||||
|
||||
}
|
||||
if (true) {}
|
||||
basic.showString("Hello!")
|
||||
|
||||
```
|
||||
|
||||
## Objectives
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user