Tuesday, December 23, 2014

Post #100 and a good cause

Well, this is the post #100. But I will not make a project summary nor announce a new  miniBloq version (sorry!). This time is about my good friend Linz.  As far as I know, Linz was the first employee of Sparkfun's Education Department. He also was the person who accompanied me when I went to Sparkfun for the Hackers In Residence program, where we extended some of miniBloq's capabilities. But Linz is not at Sparkfun anymore. For several months (and for the second time in his life), we was in Africa, just teaching technology to a lot of people. And now, Linz wants to return there, specifically to Uganda. And that's why he needs some help from us. To achieve that goal, he launched a Kickstarter campaign. All the details are on that link.

Here is another interesting link describing Linz's work. Sharing also helps!

Friday, November 21, 2014

miniBloq + AERobot on Wired!

AERobot and miniBloq were featured today on a nice Wired article:
AERobot is the result of a development by Mike Rubenstein and Radhika Nagpal at the Self-Organizing Systems Research Group at Harvard University. It's a super cheap (< $10) robot, and it receive the first prize in the software category (guess which software they have used!) and the second prize in hardware category, at the AFRON Ultra Affordable Educational Robot Design Challenge (2014). Congratulations for the AERobot team!

Wednesday, August 27, 2014

Tech book for kids!

I just wanted to share today in this short post a new Kickstarter campaign from STEM Center USA, the creators of the Pi-Bot, one of the robots that can be programmed with miniBloq (take a look to this guide). This time they have developed the Technical Alphabet, an book aimed to introduce children to technology in a fun, educational way. Here is the video, and this is the link to the Kickstarter page:


Monday, July 14, 2014

New beginners' guide for Pi-Bot and miniBloq!

After a successful Kickstarter campaign, the Pi-Bot robot is here, and the STEM Center USA has released a new nice guide, called Programming Pi-Bot with miniBloq (PDF). It's a document aimed to help beginners to start easily programming the Pi-Bot using miniBloq:

There are a lot of other useful documents about robotics in their Pi-Bot Downloads page. Also, there is a special miniBloq version, optimized for the Pi-Bot, which can be downloaded from here or from here.
I want to say thanks to the STEM Center USA team for this great work!

Thursday, May 15, 2014

Using miniBloq as an IDE

One of the main features of the new v0.82 version is that it allows to make text coded programs. And not just in C/C++ and Arduino-compatible syntax, but also in Python and, if the community adds more targets, in nearly any imperative/OOP language (such as JavaScript, Java, Ruby, etc.). Although in future versions this will be simpler and I'm improving the user experience as much as I can, right now it's fully functional. And it has a feature which I really like: the possibility of switching between a text and a graphical program at anytime during the development. This way, you can make fast test with the blocks, while programming the core of your application with the full power of C/C++ (or whatever language your hardware is using with miniBloq). Let's see how to create an example text coded "echo" program for an Arduino board:

1. Open miniBloq (we will be using Arduino Mega 2560 for this example, but you can select any other Arduino-compatible board from miniBloq's hardware list):

2. Since we will create the whole code for the project, we don't want to initialize the board automatically. So we will change the first call to initBoard, for a call to the function go():
What does this mean? It means that at the very beginning of your program, it will do nothing but calling the go() function. And what is the go() function? Is a function that you will write by your own, and where your program will start. It's like the main() function in C/C++, but we can not name it main() because that name is already used internally by the Arduino kernel (I will post more about this soon). In  "Arduino terms", the go() function is equivalent to the setup() function.

3. Add a new cpp file (created just as a text file). First, go to the File->Add menu:

save the component (miniBloq's jargon for your program):

And inside the component's folder, create the text file:

We will name it echo.cpp but you can use any (valid) name of your preference:

You will see this message box when you change the file extension from txt to cpp. Of course say Yes:

Now, you will see the echo.cpp open in the file editor in miniBloq:

You can hide the blocks editor to gain space in the screen to work with your text file:

4. Let's add some code there. You will need to include the mbq.h file, which gives you access to the libraries for the motors, the sensors, the Arduino API functions, etc.:

5. If you compile that, it should compile just fine, but it's an empty program. Now, please try the following piece of code, which is our final echo program:

#include <mbq.h>

void go()

if (serial0.available())
int inByte = serial0.read();

6. Run it and you will see how it works by using miniBloq's terminal:

Finally, if you want to use blocks to test, you just need to select initBoard() in the Start block, and start adding your blocks there. The files that you have added will remain there (unless you close them). Once you want to return to the text coding, just select go() again in your start block.

In a future post, I want to show you how to work with multiple file projects. But probably you can just try to experiment a bit by yourself using the Add file feature.


Wednesday, May 7, 2014

miniBloq.v0.82 released!

Here are some of the new features and improvements:

This is a new, simple 2D robot simulator designed to help teaching simple robotics principles for those who don't own a robot:

Complete new XML backend
These are good news for all the developers, manufacturers and advanced users who want to add new hardware and custom blocks. Now you can do it just editing XML files! I will work on the Developer's Guide in the next days to explain how.

A lot of new hardware
Thanks to the new backend, there is a lot of new supported hardware (specially robots!), including: Pi-BotSparki robotSparkFun RedBot and RedBoardArduino Leonardo and the new Multiplo's DuinoBot.v2.3, both in HID and in CDC modes...

Write both graphical or text based programs
Or even combine graphical with text-based programming anytime during the development of your program. The new miniBloq can even work as a (simple) standard IDE!

And many other features...
  • miniBloq is now faster and it remembers its settings (like the selected hardware, the screen dimensions and the serial port). Also, you can associate mbqc files to it in order to open them with double click.
  • Of course, there are more blocks and bug fixes.
  • A LOT of examples! And they has been rearranged. Check them with the File-Examples menu, and remember that most of the examples are under the DuinoBot folder. And don't worry if you don't have a DuinoBot board: most of those examples run on an regular Arduino.

Portable Python + OpenCV!
Advanced users will find this really interesting: miniBloq now includes Portable Pytnhon and OpenCV to do some more advanced activities with interactive programming (not graphical yet) and computer vision. Here is a tutorial from SparkFun, wrote at during my Hackers In Residence early this year (thanks Linz!).

Downoad it it now!
This is the direct link to get the v0.82. Enjoy!

To read more about all the changes (and known issues), take a look to the changelog.  Finally, as many of you already know, miniBloq has moved to GitHub. So the complete source code is available from the online repository: https://github.com/miniBloq/v0.82. You can both replicate the repo, or just use the Donwload ZIP button there to get the complete source code.

In future posts I will be talking about some of the new features in this version...

Sunday, April 20, 2014

miniBloq + RedBot + OpenCV + Free tutorials!

As many of you already know, we started a collaboration between SparkFun and miniBloq at SparkFun's Hacker-in-Residense Program during last February. There, we integrated some of the SparkFun's sensors and boards with miniBloq. Among the new supported hardware are the RedBoard and the RedBot's board. Finally, I wrote a new tutorial (thanks Linz Craig for the edition!), which you can download from SparkFun Education's website. Also, here are the direct links for both the PDF and the ODT (LibreOffice) documents:

PDF: https://cdn.sparkfun.com/assets/4/2/9/b/2/HIR2014.miniBloq.RedBot.RedBoard.en.pdf
ODT: https://cdn.sparkfun.com/assets/1/a/f/1/0/HIR2014.miniBloq.RedBot.RedBoard.en_1.odt

Among other things, there is an activity to take advantage of the Python interpreter now shipped with the v0.82 miniBloq version, to use OpenCV to track a color object, and thus control the robot remotely (using XBee, or Bluetooth) as a virtual joystick:
As always, all the code for the examples is packaged inside the _examples folder in miniBloq's official distribution.
Feedback is welcomed!

Wednesday, April 16, 2014

miniBloq's derivative from Harvard wins design challenge in Africa

AERobot, one of the participants in the The Ultra Affordable Educational Robot Project 2013/2014 Design Challenge won the first prize in the software category, with a miniBloq's derivative software. The challenge is sponsored by the African Robotics Network (AFRON) and IEEE Robotics and Automation Society. AERobot is a team of the Self-Organizing Systems Research Group from the Harvard University. Here are some pics and videos:
And please don't forget to take a look to their awesome curriculum (which won the Second Prize in the Curriculum category)! Of course, there are other really interesting projects in the challenge's page. miniBloq is widely used in some countries with low costs robotics systems. I personally like these ultra low cost robotics platforms. I'm convinced that this kind of stuff can make a real difference. Here is a last video on how to program the AERobot with miniBloq:
Thanks Michael for the links!

Wednesday, April 9, 2014

miniBloq + Pi-Bot!

I'm excited to announce the collaboration between miniBloq and the new Pi-Bot. The goal of this collaboration is to include the Pi-Bot, which is a low cost, yet very capable robot, in the upcoming miniBloq.v0.82 version. The Pi-Bot has been designed at the STEM USA Center, and it can be pre-ordered from its Kickstarter page:

You can read more about miniBloq + Pi-Bot here.

By the way, the upcoming v0.82 version will arrive with a lot of new features. Among them I can mention the capability of adding text based functions to a program, the new XML backend which provides an easy way to add new hardware and blocks, and a small 2D robot simulator called miniSim (more on this soon!). So stay tunned!

Monday, February 10, 2014

miniBloq + SparkFun + upcoming v0.82 version!

I haven't been posting for a few months. But that's for a good reason: a lot of work, specially with the upcoming miniBloq version. Yes, the v0.82 is near. Some of you may remember an old post where I talked about the project's roadmap. Well, I'm happy to say that most of the promised features in that post are now a reality for the next version. But you may also wonder: when will the v0.82 be published? It's already there! But you will not find it in the downloads page, since it's not ready yet. But part of the hard work I've been doing also implied moving everything to a GitHub repository. So, if you are impatient (but tolerant, since this is an ongoing work), just take a look:


You can just download it using the "Download ZIP" button there and, after decompressing it, please find the executable miniBloq.exe file in this relative path (on your miniBloq folder):


I know: no Linux version yet? I'm sorry about that, but as most miniBloq's Linux users know, we port it after the official release of the Windows version. And when will this happen? Most probably after I have finished my work at SparkFun's Hackers In Residence Program, where we are integrating SparkFun's hardware (sensors, robots, etc.) into minBloq! Thanks SparkFun!
 SparkFun HIR 2014
I have some more really exciting news (mmm, like a 2D small robot simulator), but I will be posting about them on the next days. So stay tunned!