Compare commits

..

16 Commits

13 changed files with 41 additions and 68 deletions

View File

@ -35,6 +35,13 @@ On the home page, scroll down to the **FLL / City Shaper** section for specific
Yes.
### Can I run the program again on the brick?
![EV3 Brick with Try in BrkProg_Save Folder in File Manager](/static/getting-started/try-in-file-manager.png)
Use the Brick Buttons and navigate to the File Manager tab. Open the **BrkProg_SAVE** folder,
select your program and click the center button to run it again.
### Does it work without internet?
No, the editor is cached in your browser cache. However, you can also download the [offline app](/offline-app) in case you need to install it on a computer.
@ -98,6 +105,12 @@ The official answer is currently no. That being said, we have **Experimental sup
https://youtu.be/VIq8-6Egtqs
## Are there YouTube videos on MakeCode for EV3?
The MakeCode has a [FLL / City Shaper YouTube Channel](https://www.youtube.com/watch?v=IqL0Pyeu5Ng&list=PLMMBk9hE-SeqkOObethhlZtBTEK6FYx3n) with useful videos.
https://youtu.be/-AirqwC9DL4
### Why can't I delete my program (*.uf2) files from the Brick?
There's a bug in the firmware which prevents you from deleting the programs (``*.uf2`` files) from your EV3 Brick. There isn't a firmware update to fix this yet.

View File

@ -54,6 +54,12 @@ Verify that the program you just created shows eyes on the Brick Display, and th
**Well done!**
## Run it Again
![EV3 Brick with Try in BrkProg_Save Folder in File Manager](/static/getting-started/try-in-file-manager.png)
Use the Brick Buttons and navigate to the File Manager tab. Open the **BrkProg_SAVE** folder, select **Try** and click the center button to run it again.
## Connect a Large Motor
Now you will learn to control the Large Motor.

View File

@ -1,3 +1,3 @@
{
"appref": "v1.2.18"
"appref": "v1.2.22"
}

View File

@ -388,12 +388,12 @@
}
function downloadWin64() {
// TODO: Keep this link up-to-date with the desired release version
window.open("https://makecode.com/api/release/ev3/v1.1.20/win64");
window.open("https://makecode.com/api/release/ev3/v1.2.22/win64");
tickEvent("offlineapp.download", { "target": "ev3", "platform": "win64" });
}
function downloadMac64() {
// TODO: Keep this link up-to-date with the desired release version
window.open("https://makecode.com/api/release/ev3/v1.1.20/mac64");
window.open("https://makecode.com/api/release/ev3/v1.2.22/mac64");
tickEvent("offlineapp.download", { "target": "ev3", "platform": "mac64" });
}
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View File

@ -36,6 +36,14 @@
"name": "Line following with 1 color sensor",
"description": "Simple line following using the color sensor.",
"youTubeId": "_LeduyKQVjg"
}, {
"name": "Proportional line following with 1 color sensor",
"description": "Proportional line following using the color sensor.",
"youTubeId": "-AirqwC9DL4"
}, {
"name": "Proportional line following with 2 color sensors",
"description": "Proportional line following using two color sensor.",
"youTubeId": "QWOflBuu9Oo"
}]
```

View File

@ -1,5 +1,4 @@
const enum ColorSensorMode {
None = 0,
//% block="reflected light intensity"
ReflectedLightIntensity = 0,
//% block="ambient light intensity"
@ -59,7 +58,6 @@ namespace sensors {
constructor(port: number) {
super(port)
this._setMode(ColorSensorMode.None);
this.thresholdDetector = new sensors.ThresholdDetector(this.id());
this.calibrating = false;
}

View File

@ -275,21 +275,23 @@ void cUiUpdatePower(void)
const conns = analogMM.slice(AnalogOff.InConn, DAL.NUM_INPUTS)
let r = 0;
for (let i = 0; i < conns.length; ++i) {
r = (r << 8 | conns[i]);
r = conns[i] + (r << 6) + (r << 16) - r;
}
return r;
}
let nonActivated = 0;
function detectDevices() {
//control.dmesg(`detect devices (${nonActivated} na)`)
control.dmesg(`detect devices (hash ${hashDevices()})`)
const conns = analogMM.slice(AnalogOff.InConn, DAL.NUM_INPUTS)
let numChanged = 0;
const uartSensors: SensorInfo[] = [];
for (const sensorInfo of sensorInfos) {
const newConn = conns[sensorInfo.port]
if (newConn == sensorInfo.connType) {
if (newConn == sensorInfo.connType
&& sensorInfo.sensor
&& sensorInfo.sensor.isActive()) {
// control.dmesg(`connection unchanged ${newConn} at ${sensorInfo.port}`)
continue;
}
@ -425,11 +427,11 @@ void cUiUpdatePower(void)
constructor(port: number) {
super(port)
this.mode = 0
this.realmode = 0
this.realmode = -1
}
_activated() {
this.realmode = 0
this.realmode = -1
this._setMode(this.mode)
}
@ -456,7 +458,7 @@ void cUiUpdatePower(void)
reset() {
if (this.isActive()) uartReset(this._port);
this.realmode = 0;
this.realmode = -1;
}
}

View File

@ -524,6 +524,7 @@ void stopProgram() {
}
extern "C" void target_reset() {
pthread_mutex_trylock(&execMutex);
stopMotors();
stopProgram();
if (lmsPid)

View File

@ -1,6 +1,6 @@
{
"name": "pxt-ev3",
"version": "1.2.21",
"version": "1.2.24",
"description": "LEGO MINDSTORMS EV3 for Microsoft MakeCode",
"private": false,
"keywords": [

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

View File

@ -1,55 +0,0 @@
namespace pxsim {
export class RobotGameTable {
readonly ctx: CanvasRenderingContext2D;
readonly data: ImageData;
cx: number; // cm
cy: number; // cm
angle: number; // radians
cwidth: number; // cm
constructor(public canvas: HTMLCanvasElement, public scale: number) {
this.ctx = this.canvas.getContext("2d");
this.data = this.ctx.getImageData(0, 0, this.canvas.width, this.canvas.height);
this.cx = this.width / 2;
this.cy = 0;
}
/**
* Gets the width in cm
*/
get width() {
return this.canvas.width * this.scale;
}
/**
* gets the height in cm
*/
get height() {
return this.canvas.height * this.scale;
}
color(): number {
// compute color sensor position from center;
// todo
const px = Math.max(0, Math.min(this.data.width, (this.cx ) / this.scale));
const py = Math.max(0, Math.min(this.data.height, (this.cy ) / this.scale));
// get color
const i = px * this.data.width + py;
let c =
(this.data.data[i] << 16) | (this.data.data[i + 1] << 8) | (this.data.data[i + 2]);
// map color to known color
return c;
}
intensity(): number {
const c = this.color();
return ((c >> 16 & 0xff) + (c >> 8 & 0xff) + (c & 0xff)) / 3;
}
ultrasonicDistance() {
// obstacles?
}
}
}

View File

@ -27,6 +27,6 @@
"Videos": "videos"
},
"electronManifest": {
"latest": "v1.1.20"
"latest": "v1.2.22"
}
}