First published on MSDN on Oct 18, 2015
Authored by Ed Price
UPDATED 4/1/19: Fixed the embedded videos and reformatted for the new blog platform.
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:
Why is this a perfect combination... a match made in heaven?
1. 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!
2. 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 ( http://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!
3. 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: http://www.lego.com/en-us/mindstorms/support (see 3.3)
4. 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.
5. 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: (1) You can scroll through your options in a fun and engaging way. (2) You see some basic Help content in the IntelliSense window, as you type. (3) 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!
6. 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.
7. Small Basic Graphics Window
- Leveraging Small Basic's Graphics Window, you can build full GUI software programs that also interact with your EV3 robots!
8. 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.
9. 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.
10. 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 .
11. Built-In Support for I2C Communications and UART
12. "Easy-In, Ease-Out" Motions for Motors
- See the Motors reference section in the EV3 Basic site.
13. 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!
14. Assert Function
- This special EV3 Basic function makes debugging a lot easier!
- See the Assert reference section in the EV3 Basic site.
15. Advanced Thread Management
- Create a Mutex for Mutual Exclusion. This is for thread synchronization.
- See the Thread reference section in the EV3 Basic site.
16. Read RGB Values from the Color Sensor
- See the Sensor reference section in the EV3 Basic site.
17. 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?
18. Advanced Matrix Functions
- See the Vector reference section in the EV3 Basic site.
19. 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!
20. EV3 Makes No Changes to the EV3 Brick
21. Bluetooth & WiFi Support!
22. 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!
23. 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.
24. EV3Basic.com
- Find a wealth of support at http://www.ev3basic.com.
- Includes a helpful series of YouTube videos.
Get Started: