Lego Mindstorms EV3 extension for Small Basic - EV3 Basic!!!
Using the EV3 extension for Small Basic 1.2, you can use Small Basic to program your Lego Mindstorm EV3 robots! This is a great next step for teachers and parents looking to lay the groundwork on their kids' futures and careers. Lego Mindstorms is a big step toward engineering and computer development, and programming your robots on Small Basic is an even bigger one!
This awesome extension comes from Reinhard Grafl with a ton of tooling and content support developed by Nigel Ward:
Get Started:
[embed]https://www.youtube.com/watch?v=myFKfOA4XbQ[/embed]
Why is this a perfect combination... a match made in heaven?
- Small Basic & the EV3 Basic extension are free!
- Pretty much all the other software out there for EV3 robots is trying to make a buck as a business.
- But not Small Basic! We're a free tool for educators! And the EV3 Basic extension for Small Basic continues that model!
- Small Basic is the only educational software that teaches actual text-based programming.
- The core Mindstorms EV3 software uses symbol-based programming. Kind of like the amazing Kodu (https://www.kodugamelab.com/).
- That's great if you're a younger kid who's learning, but once you get the programming concepts and get a little older (8+), then it's time to learn actual programming like the professionals use!
- Working with an icon-based programming environment does not prepare you well for a career in programming because almost all professional programming is done with textual programming environments (C, Java, Python, etc.) rather than an icon-based programming environment.
- For example, it's much less useful and relevant to learn about 'data wires' than it is to learn about 'parameters' and 'arguments'.
- When you're ready to learn more programming languages, just click the Graduate button in the UI to export your code into Visual Basic in Visual Studio Community or Visual Studio Code (also free).
- Then you can keep learning more languages (like Visual Basic, Java, C#, Python, HTML, JaveScript, and C++). You will naturally and organically build off the foundation that you established when you learned Small Basic.
- Small Basic is the simplest and most fun way to ease into professional programming! Now that every desktop has a computer... everyone can code!
- Small Basic is in 20 languages!
- How can anything be simple to learn if it's not in your language?
- The UI is in 20 languages! You can also find content (like the Curriculum and Getting Started Guide) in 21 languages.
- To give you an idea of how amazing this is, the Mindstorm EV3 symbol-based software is in 10 languages: https://www.lego.com/en-us/mindstorms/support (see 3.3)
- EV3 Basic is the Easiest Installation!!
- It's an easier installation than any other text-based language for EV3!
- You don't have to prepare a new Linux operating system for the brick onto an SD card.
- You can access the brick's standard menus, as expected! You can also access all the programs stored on the brick.
- Small Basic teaches you as you type!
- With the revolutionary Small Basic IntelliSense (IntelliSense redesigned) and the Help Area, you can literally learn while you type!
- Small Basic boasts a new incarnation of IntelliSense. Not only does it pop up and show you all your options as you type (which helps for learning, exploration, and spelling), but Small Basic's IntelliSense adds three new features to the Visual Studio IntelliSense:
- You can scroll through your options in a fun and engaging way.
- You see some basic Help content in the IntelliSense window, as you type.
- Press the Control key to make IntelliSense transparent, so you can see your code underneath it!
- Small Basic takes learning to the next level with a dedicated Help pane that changes and teaches you as you type and click your code! You don't have to click Help or leave your app! You learn while you program!
- Small Basic Social Features!
- Share programs easily with the "Publish" and "Import" buttons, which share programs to and from the Small Basic program share server (smallbasic.com).
- You can access the code online as well, and easily import it locally into Small Basic (by clicking Import in Small Basic and entering the program ID). Example.
- Small Basic Graphics Window
- Leveraging Small Basic's Graphics Window, you can build full GUI software programs that also interact with your EV3 robots!
- Small Basic's Sound Object & EV3's Speaker Object
- See Small Basic Reference Documentation: Sound Object.
- Leveraging Small Basic's Sound Object, you can program your PC speakers to produce sound with your Graphics Window software and/or your EV3 robot! Awesome!
- In addition, EV3 Basic gives you more options with the new EV3 Speaker functions. See the Speaker reference section on the EV3 Basic site.
- Better Handling of Variables
- Small Basic was designed to handle variables in a professional but simple manner. See Small Basic is Simple.
- You can create string and numeric constants and assign them to variables. Operations performed on these variables will be interpreted according to the content.
- All variables are global and are always initialized. They can often be used before they're assigned.
- Even better, the variables are all of one type, rather than integers, strings, etc.
- Small Basic's Text and TextWindow Objects
- With Small Basic, you can do more with text-handling than you ever could with your EV3 programs!
- See Small Basic Reference Documentation: Text Object.
- See also the Text reference section on the EV3 Basic site.
- And on the topic of text, you can quickly whip up a Text Window with some fast and furious text menus and instructions. See Small Basic Reference Documentation: TextWindow Object.
- Built-In Support for I2C Communications and UART
- "Easy-In, Ease-Out" Motions for Motors
- See the Motors reference section in the EV3 Basic site.
- Synchronized Wheel Motions
- If one wheel experiences resistance and is slowed down, the other wheel also slows down, allowing your robot to continue on its path!
- Assert Function
- This special EV3 Basic function makes debugging a lot easier!
- See the Assert reference section in the EV3 Basic site.
- Advanced Thread Management
- Create a Mutex for Mutual Exclusion. This is for thread synchronization.
- See the Thread reference section in the EV3 Basic site.
- Read RGB Values from the Color Sensor
- See the Sensor reference section in the EV3 Basic site.
- Vector Functions
- Directly manipulate large quantities of numbers!
- See the Vector reference section in the EV3 Basic site.
- Also see Small Basic Reference Documentation: Array Object.
- What is the difference between an array and a vector?
- Advanced Matrix Functions
- See the Vector reference section in the EV3 Basic site.
- EV3 Basic Robots Run Faster!
- EV3 Basic programs tend to run faster than EV3-G equivalents.
- A robot running EV3 Basic has recently set a new (unofficial) record for solving the Rubik Cube by a robot! (Note: It probably won't qualify for a Guinness World Record, because the cube is modified. It's modified for better gripping and use for a robot.)
- Cube Twister can solve randomized cubes in 2.2 seconds, beating the old world record by more than a second!
- Skip ahead to 4:22 in the video embedded above to see it in action! Or scroll to the video below!
- EV3 Makes No Changes to the EV3 Brick
- Bluetooth & WiFi Support!
- No Need to Download Programs to the Brick
- EV3 Basic programs can be run directly within Small Basic.
- You do not need to download them to the EV3 brick!
- EV3 Explorer
- Lets you easily download your program to the EV3 brick in order to launch your program from the EV3 brick's menus.
- Lets you download other files to the brick, such as compatible sound or image files. All the standard Lego sound and image files can be copied to the brick and used by your EV3 Basic programs.
- EV3 Explorer is downloaded in the EV3 Basic extension package.
- EV3Basic.com
- Find a wealth of support at https://www.ev3basic.com.
- Includes a helpful series of YouTube videos.
Here is the Cube Twister robot, running the EV3 Extension on Small Basic. It solves randomized Rubik's Cubes in 2.2 seconds, currently the known unofficial record (see #19 above for why its unofficial):
.
[embed]https://www.youtube.com/watch?v=s2tCAf6yYoo[/embed]
In total, the EV3 Basic extension offers 10 new objects to Small Basic:
This is amazing! EV3 Basic with Small Basic is free and great in every possible way! These are tremendous advantages over all the other EV3 options!
Get Started:
And check out the EV3 documentation over at...
Think of it as a next step for your students as they graduate from the Mindstorms EV3 software and are ready to start learning a text-based programming language that can help change their lives by opening up future career opportunities!
.
Small and Basically yours,
- Ninja Ed
Comments
Anonymous
October 18, 2015
I added the second video, the Cube Twister video. It was built and programmed by the creator of EV3 Basic, Reinhard Grafl.Anonymous
October 18, 2015
Hi I teach a robotics class using Mindstorms NXT. Can we use this extension instead of NXT-G?Anonymous
October 19, 2015
It works only with the EV3. The NXT and EV3 have different processors and firmware.Anonymous
October 19, 2015
congratulations!, but I have had hands-on experience with Lego robotics, and prefer to stay with my arduino, due in-part to the points of versatility and cost, as well as, size and community of the product as-well.Anonymous
October 19, 2015
Thanks Joe! Yes, we'd love to see an extension for Arduino or something similar as well.Anonymous
October 19, 2015
I added more of an explanation in the top paragraph and more clarifications to #1 (free) and #10 (text awesomeness).Anonymous
October 19, 2015
I refined #2 a tad, added more info to #8 (sound options), and more info to #12 (motors).Anonymous
October 21, 2015
So great to see this extension. Teaching kids how to program is such a critical need. Keep up the great work!Anonymous
October 22, 2015
Thanks, Bryan! If you teach this to kids or know anyone who does, we'd love to have them join us in our network for teachers and educators: blogs.msdn.com/.../small-basic-teachers-and-educators-join-our-network.aspx Thanks again!Anonymous
October 23, 2015
I added the list of the 10 new EV3 Basic objects.Anonymous
November 02, 2015
I added this extension to the Extension Gallery: blogs.msdn.com/.../small-basic-extensions-gallery.aspxAnonymous
November 02, 2015
I also added clarifying notes about the cost of Lego Mindstorms EV3 (there is also a free Home version) and the Cube Twister robot.Anonymous
January 21, 2016
UPDATE: I added direct links to the downloads. Sorry, that was a bit of a wild goose chase. Thanks!Anonymous
January 26, 2016
how to covnert small basic to visual studio? i followed the section and know how to add small basic reference but whete to find any info about ev3 basic reference in visual studio?Anonymous
January 31, 2016
I don't think the EV3 Basic code is going to convert into Visual Basic in Visual Studio like Small Basic does. For EV3 Basic, you'll need to stick with using the Small Basic language and IDE.Anonymous
June 16, 2016
UPDATE: I embedded the video again for the new blog platform.Anonymous
September 15, 2016
Thank youAnonymous
March 29, 2017
The comment has been removed- Anonymous
March 29, 2017
Awesome! I love hearing/reading these stories of how well it works!
- Anonymous
Anonymous
January 13, 2019
Dear Ed, Great that small basic+EV3 was put together! I was wondering you could help me. I'm a seasoned computer user and got small basic running, intending to teach coding to my son. However, I installed the EV3 basic library and can see it under windows> small basic > Lib, I follwoed the advice to enable .NET under windows 10 but still can't get small basic to acknowledge the EV3 library.