GithubHelp home page GithubHelp logo

microsoft / pxt-ev3 Goto Github PK

View Code? Open in Web Editor NEW
52.0 17.0 39.0 56.31 MB

Microsoft MakeCode editor for the LEGO MINDSTORMS EV3 Brick

Home Page: https://makecode.mindstorms.com/

License: Other

TypeScript 82.92% Shell 0.06% Makefile 0.19% C++ 3.31% JavaScript 1.35% HTML 0.29% C 0.36% Swift 10.06% Less 1.48%
makecode ev3 nxt lego

pxt-ev3's Introduction

LEGO® MINDSTORMS® Education EV3 for Microsoft MakeCode Build Status

This repo contains the editor target hosted at https://makecode.mindstorms.com

Local setup

These instructions assume familiarity with dev tools and languages.

npm install
  • to run the local server,
pxt serve --cloud

Local Dev setup

In the common folder,

npm install
npm link ../pxt
  • go to pxt-ev3 and run
npm install
npm link ../pxt
npm link ../pxt-common-packages

to run the local server

From root github folder,

cd pxt-ev3
pxt serve --cloud

to build and deploy a single package via command line

cd libs/core
pxt deploy

License

MIT

Trademarks

MICROSOFT, the Microsoft Logo, and MAKECODE are registered trademarks of Microsoft Corporation. They can only be used for the purposes described in and in accordance with Microsoft’s Trademark and Brand guidelines published at https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general.aspx. If the use is not covered in Microsoft’s published guidelines or you are not sure, please consult your legal counsel or the MakeCode team ([email protected]).

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

pxt-ev3's People

Contributors

abchatra avatar dsbibby avatar ganicke avatar guillaumejenkins avatar jwunderl avatar maciejmrozinski avatar max8rr8 avatar microsoft-github-policy-service[bot] avatar microsoftsam avatar mmoskal avatar pelikhan avatar pineapplemango avatar riknoll avatar samelhusseini avatar shakao avatar theb0nny avatar vincentl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pxt-ev3's Issues

Simulator routing

  • Pre-build SVG with placeholders for each component
  • Rendering of the wires always shows

Brick Light support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Remote Infrared Beacon Support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Motor (large / medium) support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Ultrasonic Sensor support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Brick Buttons support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

warn about conflicting modes

If we register for both IR button and distance alarm, only one of them will work (the last one likely)

Similarly, once we have events for color detection and ambient light detection, only one of them will work.

We need some way of warning the user I think, eg from the simulator.

CC @pelikhan @riknoll @MicrosoftSam

Color Sensor support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

image

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Handling modes???
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

PRs

#64

Gyro Sensor support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

loader image

LEGO to provide art/CSS funky animations for loader image.

image

Brick Screen support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Infrared Sensor support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Tank support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Simulator needs some way of discovering what sensors are connected

The simulator will act as a virtual VM of the EV3 and responds to the same messages sent between our code and the VM code.

The issue is there is a circular dependency here, we need to know what devices are connected in order to communicate on that channel, but there's no way for the simulator to know what devices are connected without something like a designer or some form of reachability.

https://github.com/Microsoft/pxt-ev3/blob/master/libs/core/input.ts#L86
is the point in the code that we poll every 500ms to detect devices, in the simulator we get a message asking us what is connected on each port, but there's no way for us to tell? so it assumes no devices are connected, and thus no subsequent code will run.

@mmoskal @pelikhan thoughts?

Scan existing EV3 sample / resources and extract programs

Scan resource, extract programs and copy them into the thread of each corresponding hardware component. This will help understand how people expect to program these devices.

  • LabView block screenshot
  • ROBOTC APIs
  • EV3 coding curriculum (TODO activity 8 and up)
  • EV3 Maker
  • EV3 science
  • EV3 space exploration

... add more here

Brick Sound support

Design

  • Compare LabView / RobotC / Switf / YouTube
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

Touch Sensor Support

Design

  • Compare LabView / RobotC / Switf / YouTube / ev3lessons
  • API design

Implementation

  • Separate project
  • TypeScript / Blocks API
  • Hardware support
  • Simulator support
  • Documentation
  • Examples

PRs

#59

hero banner

LEGO to provide design/art for home screen banner

Images not decompiled properly

Try decompiling and you'll lose the image.

brick.showImage(images.expressionsBigSmile)

and it becomes

brick.showImage(null)

Unclear "Shorthand properties not supported."

I'm facing this weird decompilation bug. This is the API:

        onForTime(power: number, ms: number, brake = false) {

And the code that does not decompile

    output.motorA.onForTime(50, 500, false)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.