

This is an archived site.
Please visit the Modular Robotics current site for up to date prices and information.
There are a lot of different ways to build with Cubelets. Little kids, around 4 or 5, mostly like stacking them into tall towers and large constructions with flashing lights. Older kids usually build with more focus, snapping together mobile robots that avoid walls or beep when they’re being chased. Some people like remote-controlling their Cubelets robots with phones and tablets, and some people like integrating LEGO into their constructions. Super enthusiasts with a lot of patience have been able to reprogram Cubelets in C, unlocking unlimited functionality at the price of a steep learning curve.
Now, using brand-new Cubelets Blockly, anyone can learn to program Cubelets and take robot blocks to a completely different level. Blockly is a puzzle-piece programming language. You drag programming pieces around on the screen in an easy interface, but still with all of the power and expandability that text-based typing languages provide. Rad. Purists and alpha geeks may still wish to write C programs using Cubelets Flash, but most of us at modbot are tending to use Blockly since it’s so fast for prototyping and quickly exploring ideas.
I just opened up Blockly on my Mac and wrote a simple program: the Paper Towel Dispenser. An old standby. You know, wave your hand in front of the sensor and the motor turns on for a few seconds? It’s a super-simple version, but it worked on the first try! The program looks like this:
The program is written for a Distance Cubelet, so it monitors its distance sensor and then, when it detects a hand passing over it, sets its block_value to 200 for a couple of seconds. I decided to write my program for the Distance Cubelet so that I could line up as many Drive Cubelets as I want to be a little conveyor belt and not have to program any of them. I’m also dispensing a little aluminum ruler instead of paper towels, but that’s just a technicality.
It’d be easy to rewrite this program for a Drive Cubelet, and then I could stick on any type of Sensor Cubelet (not just Distance) and try to trigger the Drive.
Programming a whole pile of little robots instead of just one is an excellent way to see how there are often multiple ways to solve problems, and how small changes can have huge ripple effects in a complex system.
As I sit here enamored with my unimpressive ruler mover, Sam, our new Robotics Intern, is building a six-legged, catapult-equipped Cubelet/LEGO robot. And he just finished documenting a Cubelets paper football goalpost robot with three levels of gameplay which is pretty amazing.
Programming and interacting with a whole bunch of tiny robots is different from working with just one. Even though Cubelets Blockly is designed for kids, it contains some pretty advanced functionality. With a multi-robot system like Cubelets, blocks need to send messages around to other blocks and things are happening in parallel. We wrote a set of tutorials that highlights the key differences and walks you through building a few robots.
You’ll need a Bluetooth Cubelet and a few other Cubelets to play. Today, Blockly runs on Macs and PCs, and we’re going to be launching iOS, Android and Chromebook versions later this year.
Happy hacking; let us know if you build something cool!
What sort of robot would do well if it lived on a white table? How could it sense the edge and stop itself from tumbling over? If the robot had to keep moving, what sort of abilities would it need to keep from driving off? If the table were to change shape over time… or the robot were to be placed on a different table, what kind of robot rules would help it avoid a variety of edge shapes and angles of approach? How would it look? Could you reprogram the Cubelets to help ensure the survival of a table dwelling robot? These are the questions that guided the creation of the Cliff Scout.
Since the Cliff Scout will need to continuously move around the table, we can use two Drive Cubelets to create a robot that can travel and change directions. We could attempt to solve this problem by creating a robot that drives in a tight circle. Unfortunately, builders will discover that Cubelets robots will drift over time, and this may cause their robot to fall off the theoretical table.
So, we’ll need to reprogram the Drive Cubelets so they can spin in both directions and we’ll need to create some sort of triggering pattern to tell the robot when to turn. To detect the edge of a table, the Distance Sense Cubelets are placed at the front edges of the robot. This placement ensures that the robot can sense the edge as early as possible to avoid falling off. Placing the Distance Senses near the edges of the robot helps it avoid falls if it approaches an edge at an angle. The Distance Senses face down and are oriented in a way that allows them to detect the table edge quicker, giving the robot more time to react.
The C files for each Drive Cubelet are available for download by clicking HERE and HERE. Use Cubelets Flash to reprogram each Drive Cubelet. Ensure that you flash Drive Program 1 to one Drive Cubelet and Drive Program 2 to the other. If you don’t, your robot won’t turn properly.
In order for the Drive Cubelets to respond to table edge detections, you will need to update the Block IDs so that they match your two Distance Sensors.
Happy Building and stay tuned for more intensive robot activities!
Note: When you’re done playing with the Cliff Scout, you can restore your Cubelets to their default programming with Cubelets Flash. Just reconnect your robot, then select the Cubelet you’d like to restore. Then click “Restore Default Firmware.” Select the next Cubelet you’d like to restore and repeat.