Drag blocks from the library to the worksheet and press run. Snap blocks together with their tabs. You can configure a block’s parameters by updating their values or dragging blocks into the yellow region.
Drag blocks with your mouse. Use the block tabs to connect blocks. Delete blocks by dragging them back to the library. Use the scrollbars or mouse scroll wheel to scroll around the worksheet. Undo/Redo actions. Select a single block by clicking on it. Select multiple by lassoing around them and/or selecting blocks while pressing the <shift> or <control> key. Copy/Cut/Paste/Delete blocks. Right drag a block to create a copy. Press the Ctrl key to drag out a single block from a stack.
View and Edit Source
Edit/View Source to edit the text code representation of your program. When you return to 12Blocks the blocks will reflect the changes you’ve made.
Copy/Paste as Code
Select blocks, Edit/Copy then Paste into your text editor as actual code. Or Copy actual code and Edit/Paste into your worksheet.
Built-in Compiler and Loader
Press Run to convert to text code, compile to binary and upload.
Schematics, Photos, Description
Include everything you need in one worksheet- File/Properties to drag/drop a schematic for your hardware, add photos and enter description
Connect to Monitor and Control
By default a serial connection between 12Blocks and your microprocessor is made after a program is loaded to let you monitor and control the program. On the Propeller this uses one of the eight cog to provide a 1Mbps connection-it does not affect the speed of the program running in the other 7 cogs. The connection let’s you change program parameters without recompiling.
View/Values to show the actual values of global variables. Variables can be graphed in real-time at different timescales with optional trigger
IO Pin Graphing
View/Pins to show the actual state of the microprocessors IO pins used to communicate with other devices. Pins can be graphed in real-time at different timescales with optional trigger
View/Terminal to start a terminal connection to the microprocessor. Send/receive strings and numbers with blocks from the terminal section.
Save As EXE
File/Save As/exe builds a single file package that can be run on another computer to load, control and monitor a program with a custom interface
Save as ZIP
File/Save As/zip builds a package of all source code required by a program
Save As PNG/ Print
File/Save As/png to save your program as an image or File/Print it
Device/Load Permanently to burn the program into your microprocessors EEPROM
Open, Save, and create New worksheets using the File menu. Use tabs to switch between open worksheets. Drag blocks onto another tab to move blocks between worksheets.
Manually specify the port of the device you wish to program or let 12Blocks automatically find it. In Auto mode, 12Blocks will display the current port with an asterix: COM10*
Choose which device you wish to program. This affects pin assignment, clock constants and which blocks are supported by the hardware. See the 12Blocks/hardware directory to support custom hardware.
Supports popular microcontrollers
Propeller, bs2, PICAXE, Mindstorm, Arduino.
Windows, Mac and Linux.
Examples:File/Examples for dozens of commented example programs
Reference Help: Help/Reference to get more information about a topic
Exercise Guide: More than 20 exercises from blinking to PID control
Tutorials: File/Tutorials for step-by-step tutorials to get you started- or write
your own by saving a commented file into the Tutorial folder.
File/Import Blocks to import a source file to the current worksheet and
automatically create blocks. Block properties can be edited manual using
File/Properties or provided with inline XML in the source file. Source file can
also be saved into 12Blocks/hardware/device directory to permanently add
blocks to library for use with all worksheets.
Over 100 blocks to solve most problems including:
- Repeat a stack of blocks: forever, a set number of times, or while a condition is true
- State Machines support different behaviours based on the state of your program
- Triggers start blocks when something happens
- Tasks let you delegate behavior- either synchronously or asynchronously
- TV and VGA graphics
- Sound text to speech, play/record wav files, synthesize music
- Motor/Servo control high and low level blocks- including ramping and idle
- Sensors proximity, compass, mouse, keyboard¦
- Arrays, Variables and Strings
- Functions with parameters, local variables and return values. Can be refactored and used in recursion
- Pin Input and Output including frequencies, periods, discharge rate, serial protocols, pulse width modulation
- User Interface blocks to control and monitor your program with a custom interface- including image background, meter, joystick, gamepad
- Skype to monitor/control your device remotely via text chat messages
- Fiducial detection to control devices using computer vision
- Export to File to save variable values to file
- ROS integration to interoperate with other devices and algorithms like computer vision, motion planning, Kinect, structure from motion, and SLAM using the Robot Operation System