Thursday, June 28, 2012

Minibloq translated to French!

Well, I'm happy with the response we had from the community. Now the French translation is here, and we will release in less than a week the first UpdatePack. This translation was the work of two persons: Jean-Daniel Planterose and Samuel Liaigre. I want to say thanks to them. Here is a small screenshot of the upcoming Minibloq.v0.81 with the UpdatePack-1:

Tuesday, June 26, 2012

Minibloq translated to German (thanks Erik)!

More translations are coming, and faster! This time, we want to say thanks to Erik Hermann for his nice work translating Minibloq to German. As this translation is complete (it includes the GUI itself and the tooltips, and even the HTML helpfiles) it will be available in the upcoming UpdatePack-1.  As always, any translation is very welcome, even partial translations. There are other works in progress to translate Minibloq to French, Hebrew, Romanian and Chinese. Here is a small screenshot of the German translation:

Monday, June 25, 2012

Minibloq translated to Dutch (Nederlands, thanks Gijs)!

We want to thanks Gijs Noorlander for his great work translating Minibloq to Dutch. Gijs also manages the mirror from Holland to download Minibloq. This mirror has become the main source to get the software. He runs a blog too (here is a post about Minibloq). Gijs' translation, which includes not only the GUI, but also the tooltips and helpfiles will be available in the upcoming UpdatePack-1 (soon!).
Finally, I want to mention that Gijs sent an email explaining a better way to manage the bunch of .po files when translating the tooltips. I posted it to a forum thread here.
As always, any help regarding translations is very welcome. We would really like to see Minibloq available in as many languages as possible.

Thursday, June 21, 2012

New tutorial: How to translate Minibloq

As promised, here is the tutorial about how to translate the new Minibloq.v0.81.Beta to a new language (of course, we are always looking for translators!). This is a fragment of the new Minibloq's Developers Guide (still under construction), where we describe (briefely by now) how to translate, customize the GUI, add new blocks and in the near future, how to compile Minibloq both under Linux and Windows:


1. How to translate Minibloq
Since the version v0.81.Beta, Minibloq supports internationalization (i18n) / localization (i10n). This brief tutorial explains how to translate Minibloq, using open source tools. Before start translating, you will need to:
  1. Download the last Minibloq version from the downloads page.
  2. Install Minibloq in your computer. For development purposes, it's highly recommended to install it in a directory where you can freely modify files, instead of the default C:\Program Files (or C:\Program Files (x86) folder. For example, in Windows 7, the Program Files folder is protected. So it will be better to install Minibloq elsewhere, in some temporal dir where you can write, copy, delete or edit files without administrative permissions.
  3. Download Poedit from http://poedit.net (we used the version 1.4.6 for all our internal work).
1.1. Translating the GUI
The first thing to be translated is the GUI itself. This task is relatively easy, by following these steps:
  1. Every language has an international 2 letters code, called ISO 639-1. You will need to find your language code first. You can go to this link for that:  http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
  2. In Minibloq's installation path (for example C:\Program Files (x86)\Minibloq.v0.81.Beta), go to the following folder: Components\Minibloq\v1.0\GUI\Texts, and make a copy of the files en.po and en.Metadata.po.
  3. Now rename both new files (the copies you just made) using your 2 letters language code, instead of the English code "en". For example: Supose we are translating to Spanish. The code for Spanish is "es", so you will end with a file named es.po and another named es.Metadata.po (note: the names are case sensitive, so you must take care of using exactly these names).
  4. Open the Metada "po" file (ie, en.Metadata.po for English, es.Metadata.po for Spanish, etc.) with a raw text editor (in Windows you can even use the Notepad) and change the "en" code in the following line by your new language code:

     msgid "en.Name"
    

    For example, for Spanish, you will end with a line like this:

     msgid "es.Name"
    
  5. Now open the Metadata file with Poedit and change the language name ("English" in this case) by the new language name, but written in the new language itself. For example, for Spanish, it will be "Español":
  6. In Poedit, press the Save button (or go to the menu File->Save). This will not only save the .po file, but will also generate the .mo file, which is the compiled, portable, OS independent file that Minibloq will need to work (but please don't delete the .po file, it will be deployed with Minibloq also!)
  7. Now open the file xx.po with Poedit (where xx is your language code). In our example with Spanish, it will be the es.po file. Here, you can start translating each text string with the Poedit software. Poedit have, among other features, support for nearly any charset out there. Here is a screenshot with the Spanish file:
  8. Every time you advance with the translation, it's good to press the save button. As before, it will generate the .mo file also. Once you finish, you will have for files: xx.Metadata.po, xx.Metadata.mo, xx.po and xx.mo (where "xx" is your language code).

  9. Now you can test the new language files without restarting Minibloq. Just go to the View->Properties menu and press the Reload languages button. If everything is fine, your new language must be listed in the Language combobox:

1.2. Translating blocks' tooltips
Now let's translate the tooltips for the blocks. As Minibloq is modular and every user can add his own blocks, each block has its own tooltip files. These files are located in the subdir Doc of each block directory (the blocks directories are here: Components\Minibloq\Lib\CPP\Blocks). So, inside each Doc subdir you will find standard .po files that can be translated easily with Poedit, and saved to .mo. You just need to open them with Poedit, change the tooltip string and save it. Here is a screenshot of Poedit with a .po file:

 1.3. Translating help files
The help files do not involve any special program or procedure to be translated. They are just plain HTML files, and they can be edited and translated with any decent HMTL editor. There are only three important things regarding help files:
  1. You must keep the names of the files, in English, just as they are now.
  2. You will need to add the directory with the help files for your language, even if you don't translate them. If you don't do this, Minibloq may show an error dialog box when you select your language or  when you start the application. If you will not translate the files, our advice is just to copy the English help files directory (called simply "en"), and renaming it. The name must be the 2 letters code (ISO 639-1) mentioned above.
  3. If you translate the files, try to use a plain text editor, or a good HTML editor which does not add overhead, nor hidden characters.
The help files are in the following Minibloq's subdir: Components\Minibloq\v1.0\Doc

Wednesday, June 20, 2012

Continuous rotation servo with user defined block

Antonio Lomba, from Galicia, has sent this article, which explains how to use continuous rotation servos with Minibloq and user defined blocks (this is the original post from his blog (Galician): http://www.tecnoloxia.com/index.php/control/224-motor-servo-de-rotacion-continua-con-minibloq.html):

Continuous rotation servos work with small electric pulses. According to the duration of the pulses, the servo rotates clockwise, counterclockwise, or remain stoped. To drive this kind of servomotors is necessary to know it's working characteristics.

For example, for a S35/STD de GWS servo, the manufacturer recommends 0.9 ms pulses to rotate clockwise, 1.5 ms pulses to brake the motor, and de 2.1 ms pulses rotate it counterclockwise. It's also important to control the signal period, which is the total sign time taking into account both the high and the low pulse. The recommended period to obtain the optimal rotation speed is between 16 and 23 ms.


To connect the motor to an Arduino Uno board, we will need to take a look to the colours in the conexion cable, connecting as showed in the following image (brown cable = GND, red cable = 5V and yellow cable for the control pin):
 
The basic programs to control the continuous rotation of the servo both clockwise and counterclockwise (using the digital I/O pin D3) are shown below. The delay times are expressed in microseconds. To do this it was necessary to make a new block (called  delayMicroseconds) and add it to Minibloq. This is because the delay block that comes with Minibloq manages only milliseconds, so it was not possible to program 1.5 millisecond pulses with it:
The delayMicroseconds is a user defined block, which was created using the delay block as the base. In the new Minibloq's Developers Guide we explain, among other tips, how to create this kind of blocks.

Servo de rotación continua con bloque definido por el usuario

Antonio Lomba, desde Galicia, nos ha enviado este artículo que explica cómo utilizar servos de rotación continua con Minibloq y bloques definidos por el usuario (ésta es la versión resumida del original http://www.tecnoloxia.com/index.php/control/224-motor-servo-de-rotacion-continua-con-minibloq.html):

Los motores servo de rotación continua funcionan al recibir pulsos eléctricos. Según la duración del pulso el servo girará en uno u otro sentido, o permanecerá parado. Para gobernar este tipo de motores es necesario conocer sus características de funcionamiento.

Para un servo modelo S35/STD de GWS el fabricante recomienda pulsos de 0,9 ms para conseguir el giro en el sentido de las agujas del reloj, pulsos de 1,5 ms para bloquear el motor en una posición y mantenerlo parado, y pulsos de 2,1 ms para que gire en el sentido antihorario. También hay que controlar la duración del período, que es el tiempo total de la zona activa de la señal y la zona inactiva. La duración del período recomendada para conseguir una velocidad óptima está entre 16 y 23 ms.

Para conectar el motor en una controladora Arduino Uno tendremos en cuenta los colores de los cables de conexión del motor y lo haremos tal como se indica en la imagen. El cable marrón para GND, el cable rojo a 5V y el cable amarillo para el pin de control digital:

 
Los programas básicos de control para el giro continuo en ambos sentidos, utilizando el pin de salida digital D3 para el control, son los que se muestran a continuación. Los tiempos programados en Minibloq están en microsegundos. Para ello fue necesario incorporar un nuevo bloque a Minibloq, se trata del bloque delayMicroseconds. El bloque delay que trae por defecto el programa maneja el tiempo en milisegundos y con este bloque no era posible programar la parada del motor con impulsos de 1,5 milisegundos, ya que el bloque no admite números decimales.
El bloque delayMicroseconds es un bloque definido por el usuario, partiendo precisamente del bloque delay. En la nueva Guía de Desarrolladores de Minibloq (en inglés) se explica, entre otras cosas, cómo crear este tipo de bloques.

Control de motor servo de rotación continua (galego)

Antonio Lomba, dende Galicia, enviounos este artigo que explica a utilización de servos de rotación continua con Minibloq e bloques definidos polo usuario:

Os motores servo de rotación continua funcionan ao recibir pulsos eléctricos. Dependendo la duración do sinal activo o servo xirará nun ou noutro sentido, ou permanecerá parado. Para gobernar este tipo de motores é necesario coñecer as súas características de funcionamento.

Para un servo modelo S35/STDde GWS o fabricante recomenda pulsos de 0,9 ms para conseguir o xiro no sentido das agullas do reloxo, pulsos de 1,5 ms para bloquear o motor nunha posición e mantelo parado, e pulsos de 2,1 ms para que xire no sentido contrario das agullas do reloxo. Tamén se debe controlar a duración do período, que é o tempo total entre a zona activa do sinal e a zona inactiva. A duración do período recomendada para conseguir unha velocidade óptima está entre 16 e 23 ms.

Para conectar o motor nunha controladora Arduino Uno teremos en conta as cores dos cables de conexión do motor e farémolo tal como se indica na imaxe. O cable marrón para GND, o cable vermello a 5V e o cable amarelo para o pin de control dixital:
 
Os programas básicos de control para xiro continuo a dereita e xiro continuo a esquerda, utilizando o pin de saída dixital D3 para o control, son os que se mostran a continuación. Hai que facer notar que os tempos que están programados en Minibloq son en microsegundos. Para elo foi necesario incorporar un bloque novo ao Minibloq, trátase do bloque “delayMicroseconds”. O bloque “delay” que trae por defecto manexa o tempo en milisegundos e con este bloque non era posible programar a parada do motor con impulsos de 1,5 milisegundos xa que este bloque non admite números decimais.
O bloque delayMicroseconds é un bloque definido polo usuario, partindo precisamente do bloque delay. Na nova Guía de Desenvolvedores de Minibloq (en inglés) explícase, entre outras cousas, como crear este típo de bloques.



Sunday, June 17, 2012

How to add user defined blocks!

We are working on the new Minibloq's Developers Guide (which is still under construction). Here is a fragment of that guide, which describes the basics of writing new blocks for Minibloq:

Minibloq loads the blocks at runtime. All the blocks are defined in XML files. In the future, we plan to document better how to add custom blocks. Also, the block syntax will still evolve (there is still a lot of work to do). But even now, it's possible for the users to write their own custom blocks. Although we are working hard in Minibloq's documentation, by now, we can give here just an example. There is also a nice tutorial in the forum, written by Andrew Lawrance, with more complex explanations about this topic. So here is the example:

Example: Adding a delayMicroseconds() block
Let's add a new block to use the delayMicroseconds() function from the Arduino API. To do this, we will start from a block that already exists. This block is very similar to the one we want to create: It's the delay block. So we just need to follow these small steps:
  1. Make a copy of the  folder which belongs to the delay block  (you will find it in the Components\Minibloq\Lib\CPP\Blocks subfolder, inside Minibloq's installation path). The delay block folder's name is action.010.0040.delay.Arduino.v1.0
  2. Rename the new folder. For example, this may be a good name:  action.010.0050.delay_us.Arduino.v1.0
  3. Inside that folder, you will find the file main.block. Open it with a raw editor (like Notepad++, for example).
  4. Change the following line:
     delay

    by this:
     delayMicroseconds
  5. Now change this another line (and then save the file):
     delay

    by this:
     delayMicroseconds
  6. Now you have to tell Minibloq which boards will load this block when they are selected (every block can be compatible or incompatible with a board, and is the Developer's task to decide this). For this, you will need to create an empty  txt file (in future versions these files will have some content, but right now they are just empty raw text files) named with the same name as the folder where you created the new block, followed by the .rel extension. In our example, this file will be named action.010.0050.delay_ms.Arduino.v1.0.rel
  7. Copy that file to the Matrix subdirectories of all the boards (or targets) that you want to load that block. For example, to add the block to the Arduino Uno board, you will need to copy that file in the  following subdirectory (inside Minibloq's installation path): Components\Minibloq\Lib\CPP\Targets\ArduinoUNO_Arduino.v1.0\Matrix
  8. Now select your board. If you have already selected it, just press the Reload blocks button in the Hardware window (this window can be made visible with the menu View->Hardware). Your Actions picker must be something like this (please note the two "delay" blocks):
Note that we did not change the block's images (for the block itself, or for the picker), nor the structure of the block (regarding parameters, for example). Even the tooltip was untouched. This is just a very basic example, now you can dig into the XML structure of the blocks, and as Minibloq does not require to reinitialize the application, you can quickly see the changes of your block using the Reload blocks button. We will improve the blocks' XML documentation when the syntax becomes more finished, but by the moment, we encourage you to take a look to the XML definitions of more complex blocks, such as the while block (in the action.010.0010.while.CPP.v1.0 subdir), the buzzer (action.020.0050.Buzzer.Arduino.v1.0) or the Motor block (action.020.0060.Motor.Arduino.v1.0).


Friday, June 15, 2012

¡Minibloq traducido al gallego (galego)!

Desde que se agregó el soporte para internacionalización (i18n), en la versión v0.81.Beta, se han sumado más personas de diferentes partes del mundo a colaborar con el proyecto. Ahora ha sido el Profesor Ramón Quiroga Barro quien nos ha enviado la traducción completa al gallego (incluyendo los tooltips de los bloques y los archivos HTML de la ventana de ayuda). Para mí resulta un lenguaje muy querido, ya que mi padre nació en La Coruña, Galicia. Aprovecho también aquí a agradecer la gestión de Antonio Lomba, quien nos contactó con Ramón, y quien además lleva adelante el blog http://www.tecnoloxia.com (en el que también hay tutoriales de robótica con Minibloq escritos en gallego).
Escribimos hace poco acerca de las actividades de Antonio con Minibloq en este post, donde se lo puede ver junto a alumnos y colegas. Finalmente, queremos mencionar una vez más que estamos trabajando mucho sobre la próxima apertura completa de los fuentes de Minibloq (los cuales siempre los pueden pedir y los enviamos por mail), y en la documentación para desarrolladores. Si bien ésta está aún en construcción, ya hay allí una buena introducción de cómo traducir completamente Minibloq a diferentes idiomas. ¡Estamos buscando traductores!

Tuesday, June 12, 2012

Entornos gráficos para Arduino en Alcabot-Hispabot 2012

Queremos compartir aquí la presentación realizada por José Manuel Ruiz Gutiérrez en la Semana de la Robótica, en la Universidad de Alcalá acerca de entornos gráficos para programar hardware Arduino compatible. El video a continuación dura casi una hora, pero recorre prácticamente todos los entornos gráficos de este tipo disponibles actualmente:


Está también disponible para bajar el archivo PDF de las transparencias con las que acompañó su presentación. José es además el autor del tutorial con actividades en español Minibloq+Arduino.

También aprovechamos a mencionar otra presentación de hace unos días donde se habló de Minibloq  (junto a otros entornos de programación gráfica), esta vez en el Campus Party, en Colombia:

http://blog.campus-party.com.co/aprende-de-robotica-sin-saber-de-electronica

Y finalmente queremos agradecer a la gente de EEWeb, porque el blog de Minibloq fue Sitio del día el 6 de junio: http://www.eeweb.com/websites/minibloq


Sunday, June 10, 2012

Minibloq translated to Catalan (Català)!

Since the release of the v0.81.Beta version, Minibloq features internationalization. Users from different countries are helping to translate it to their languages. There are already various translations in progress, such as French, Dutch and Hebrew (Minibloq is already available with English and Spanish preinstalled language packages):
But the first language (aside than English and Spanish) to which Minibloq was completely translated is  Catalan. This translation not only includes the main GUI, but also all the blocks tooltips:
The translator is Eloi Fores, who is contributing in different ways to the project.  Eloi has created excelent online material with Minibloq and Arduino, which is used in the courses he teaches at the Comunidad Valenciana, as can be seen in this post. We are making an update package which will include Catalan and other the languages, and we hope to have it available for download in the next weeks...
As always, any help regarding translations is very welcome. We would really like to see Minibloq available in as many languages as possible.

¡Minibloq traducido al catalán (català)!

Desde el lanzamiento de la versión v0.81.Beta, Minibloq soporta internacionalización.  Usuarios de diferentes partes están ayudando a traducirlo a varios idiomas, y ya hay grandes porciones del software en francés, holandés y hebreo, además de inglés y español, los lenguajes en los que siempre estuvo disponible Minibloq:
Pero el primer lenguaje (además de inglés y español) al que Minibloq fue completamente, traducido es el catalán. Dicha traducción no solamente incluye la interfaz de usuario, sino también todos los tooltips de ayuda de los bloques:
Nuevamente ha sido Eloi Fores, quien realizó este gran aporte al proyecto.  Eloi además ha creado excelente material online con Minibloq y Arduino, el cual utiliza en los cursos que imparte en la Comunidad Valenciana, como se puede ver en este otro artículo. Estamos armando un paquete de actualización con los idiomas a los que Minibloq va siendo traducido. Esperamos que este paquete que esté disponible para bajar en las próximas semanas...
Como siempre, viene bien cualquier ayuda con respecto a las traducciones. Nos gustaría ver a Minibloq en tantos idiomas como sea posible.

Thursday, June 7, 2012

Minibloq en Galicia, España (Minibloq in Galicia, Spain)

Antonio Lomba, autor de los tutoriales online de http://tecnoloxia.com, nos ha contado acerca de su trabajo dando clases de tecnología en el Instituto de Enseñanza Secundaria IES A SANGRIÑA en A Guarda, provincia de Pontevedra, en Galicia. El IES A SANGRIÑA es un instituto público en el que se imparten enseñanzas de ESO (Educación Secundaria Obligatoria) y bachillerato. Allí utiliza Minibloq y Arduino. Como siempre, invitamos a todos aquellos usuarios que quieran compartir sus actividades con Minibloq, a que nos cuenten de su trabajo, ya sea a través del foro o con una mención @juliandasilvag en Twitter. De esta forma podremos compartirlo aquí. A continuación van algunas de las fotos que nos ha enviado Antonio (¡gracias!). En la primer foto, de izquierda a derecha: Irene, José María, Thais y Antonio:

Tuesday, June 5, 2012

Minibloq in Comunidad Valenciana, Spain

Eloi Fores (who has also translated Minibloq to Catalan) has told us about a workshop using Minibloq+Arduino in Comunidad Valenciana, Spain. They made this presentation in Prezi (which we have mentioned before in another post). Below are some pictures of the event. Congratulations Eloi, and thanks!




Sunday, June 3, 2012

A year after the Kickstarter campaign

A year has passed since Minibloq's Kickstarter campaign. So I think this is a good moment to talk about the project's status and specially, about the roadmap.
May has been a very active month for Minibloq (12 posts on a single month!). We released the v0.81 on May 1st, and updated all the online documentation throughout the month. Also, there were talks, demos and new agreements with manufacturers. Now, we are working mainly on six big things:
  1. Linux native version (which is already running, but still has some issues). Thanks Juan! 
  2. Translations, (together with people who is kindly helping).
  3. More documentation, including a new printable (in both  PDF and ODT -LibreOffice-) English manual, more ready to use activities and the new Developer's guides, anticipating the upcoming release of the full Minibloq's source code (we also are perparing a surprise before releasing the sources).
  4. New agreements with manufacturers specially from USA and China. We want Minibloq to work with as much hardware as possible (if you are a manufacturer, you can post a hardware request in this forum thread. There is a process, but we will really be happy to add your board!).
  5. A new website (to replace this blog which is now small for the kind of project Minibloq has turned in).
  6. The new v0.82 version.
Project's roadmap
As many of you already know, we have been working hard on Minibloq's structural features. And we have still to finish some very important parts (such as the multihardware subsystem, for example). But there are also a lot of things that will improve in the next versions. Minibloq's current GUI is a mixture of what we want and what we had time to implement. We know there are a lot of things to change, improve and correct. But the most important thing is that the project and the community are very active. So, here are some of the features we are working on:
  • An easy way to add new hardware by any third party manufacturer or advanced user. We are designing a very flexible backend for this. It will take some time, but it's possible that we can have a reduced version for the next release.
  • Better datatype management. We will be adding full support for different kinds of basic datatypes. In the future, we want user defined datatypes, just like in any high level language.
  • User defined blocks. This is complex, but we are working on it.
  • GUI improvements: there are a lot of suggestions from the users. We will try to improve the user experience as much as possible with every new release.
  • Translations to as many languages as possible! (we need help with this, and will publish very very soon a complete tutorial on how to translate Minibloq using open source tools).
  • More blocks! We are cooking some very interesting blocks for the new version. Stay tunned!
  • Agreements with Arduino-compatible and other open source hardware manufacturers to add their boards to Minibloq.
  • Optimizations: It's time to make Minibloq run faster, and to reduce its footprint.
  • Sources: We have sent the sources to  nearly everyone who had requested them. Releasing the full sources is a lot of work, and we want to do this as soon as possible. Anyway, if you want the sources, just tell me (you can send a forum private message or an @ mention in Twitter.
  • There are also some surprise features coming!
Project status
That said about the future, let's now talk a bit about the present, and the past. How has Minibloq evolved over the last year?

Hardware
When we launched the Kickstarter campaign, in May 1st 2011, there were a few Arduino-compatible boards supported. Now there are a lot of different boards, from "standard Arduinos" (like the Uno, the Mega or the Duemilanove) until 32 bits ARM-based boards such as the Maple, going through the small 8 pin ATTinys and the new HID DuinoBots, made by RobotGroup (you can see the image above). And there is more: there are also indirectly supported boards, like the Arduino™ Diecimila, the Nano, and others (you can check the "Supported hardware" section in the online documentation page). But even more important is the fact that we were very busy closing agreements with open source companies to add new hardware. So we expect to have a bunch of new boards and sensors for the next version, such as most Seeedstudio's Grove sensors and accesories, or the DFRobots Romeo controller:
Also regarding hardware, we are happy with the addition of direct support for complex sensors, were some developers contributed with libraries for linealization, filters, and others. The current Minibloq version has ready (and easy) to use blocks for RC5 IR remote receivers, ultrasonic sensors, standard IR rangers (both 80 and 150 cm versions) and can manage lots of analog sensors with the AnalogRead block. There is also a new PulseIn block for PWM based sensors. And as a secret, we are working on I2C/TWI sensors for the next version!

Documentation
End user documentation involves a lot of work. And we are trying to do it. Minibloq is perhaps one of the most completely documented graphical programming environments for open source hardware now. Along this year we finished the online documentation (English), the printable PDF/ODT Spanish User Manual (coming soon in English!), and a small page with complete examples featuring Fritzing circuits, and videos. In addition, we put online the forum. But perhaps the most important thing is that there were users and contributors writing manuals and examples. I want to mention some of them here:
Thanks, again!
Finally, I want to thanks again to a lot of people who has been involved with the project in different ways, and to the Kickstarter backers, of course.

Un año después de la campaña de Kickstarter

Ha pasado ya un año desde la campaña de Minibloq en Kickstarter. Así que este es un buen momento para hablar del estado del proyecto y especialmente, de los planes para el futuro.
Mayo ha sido un mes de mucha actividad para el proyecto (¡hicimos 12 posts en un sólo mes!). Liberamos la versión v0.81.Beta el 1ero de Mayo, y a lo largo del mes actualizamos toda la documentación online. Además, dimos charlas, hicimos demostraciones y cerramos nuevos acuerdos con fabricantes. Ahora, estamos trabajando pricipalmente en 6 cosas:
  1. Versión nativa para Linux (la cual ya funciona, pero tiene aún agún algunos problemas). ¡Gracias Juan! 
  2. Traducciones (junto con la ayuda de gente que está ayudando muy amablemente).
  3. Más documentación, incluyendo un nuevo manual en inglés apto para impresión (tanto en formato PDF como en ODT -LibreOffice-), más actividades listas para usar, y nuevas guías para Desarrolladores, anticipándonos a la próxima liberación de todo el código fuente de Minibloq (estamos también preparando una sorpresa antes de liberar los fuentes).
  4. Nuevos acuerdos con fabricantes, especialmente de Estados Unidos y de China. Queremos que  Minibloq funcione con todo el hardware que sea posible (si eres un fabricante, puedes enviarnos una solicitud a través de este hilo del foro. Hay un proceso, ¡pero nos encantaría agregar tu hardware!).
  5. Un nuevo sitio web (para reemplazar este blog, que es ahora pequeño para el tipo de proyecto en el que se ha convertido Minibloq).
  6. La nueva versión v0.82.
Hoja de ruta del proyecto
Como muchos de ustedes probablemente ya saben, hemos estado trabajando mucho en las partes estructurales de Minibloq.Y aún quedan por terminar muchas cosas importantes (como el subsistema multihardware, por ejemplo). Pero hay también un montón de cosas que mejorar para las próximas versiones. La actual interfaz de usuario de Minibloq es una mezcla entre lo que quisiéramos tener y lo que hemos podido implementar con el tiempo disponible. Sabemos que hay muchas cosas que mejorar, cambiar y corregir. Pero lo más importante es que tanto el proyecto en sí como la comunidad están muy activos. Así que a continuación enumeramos algunas de las características en las que estamos trabajando:
  • Una manera sencilla para agregar hardware de terceros. Estamos diseñando un motor muy flexible para esto. Va a tomar tiempo, pero es posible que para la próxima v0.82 ya haya una versión reducida de esto.
  • Mejor manejo de tipos de datos. Estaremos agregando soporte para los tipos de datos básicos. En el futuro queremos además que los usuarios puedan definir sus propios tipos de datos, como en cualquier lenguaje de alto nivel. 
  • Bloques definitidos por los usuarios. Esto es complejo, pero estamos trabajando en ello.
  • Mejoras de la interfaz gráfica de usuario (GUI): Hay también sugerencias de los usuarios. Vamos a intentar mejorar la experiencia del usuario tanto como sea posible.
  • ¡Traducciones a todos los lenguajes que se pueda! (necesitamos ayuda con esto, y muy muy pronto vamos a publicar un compelto tutorial acerca de cómo traducir Minibloq utilizando herramientas de código abierto).
  • ¡Más bloques! Estamos preparando algunos bloques muy interesantes para la próxima versión...
  • Acuerdos con fabricantes de hardware abierto compatible con Arduino.
  • Optimizaciones: Es tiempo de hacer que Minibloq ejecute más rápido y ocupe menos espacio.
  • Código fuente: Hemos enviado el código fuente a prácticamente todos los que lo solicitaron. Liberar los fuentes implica realmente mucho trabajo, y queremos hacer esto muy muy pronto. De todos modos, si quieres el código fuente, puedes enviarme un mensaje privado a través del foro o puedes hacerme una @ mención en Twitter.
  • ¡Se vienen también algunas características sorpresa!
Estado del proyecto
Dicho todo lo anterior acerca del futuro, hablemos un poquito del presente, y del pasado. ¿Cómo ha evolucionado Minibloq durante este primer año?

Hardware
Cuando lanzamos la campaña de Kickstarter, el 1ero de mayo de 2011, había sólo unas pocas placas Arduino-compatibles soportadas. Ahora hay una buena cantidad de placas diferentes, desde "Arduinos estándar" (como el Uno, el Mega o el Duemilanove) hasta placas de 32 bits basadas en procesadores ARM, como el Maple, pasando por los pequeños ATTinys de 8 pines y los nuevos DuinoBots HID fabricadas por RobotGroup (puedes ver la imagen más arriba). Y hay más: hay también placas soportadas indirectamente, como el Arduino™ Diecimila, el Nano, y otros (puedes ver la sección "Supported hardware" en la documentación online). Pero aún más importante es el hecho de que hemos estado ocupados cerrando acuerdos con fabricantes de hardware. Así que esperamos tener una buena cantidad de nuevas placas y sensores soportados en la próxima versión, como la mayoría de los sensores y accesorios de la línea Grove de Seeedstudio, o el controlador Romeo de DFRobots:
También con respecto al hardware, estamos felices con la adición de bloques para nuevos sensores complejos, con la ayuda de desarrolladores que contribuyeron con librerías de linealización, filtros, y otros.  La actual versión de Minibloq tiene bloques listos para usar (y además fáciles de utilizar) para receptores infrarrojos de control remoto RC5, sensores ultrasónicos, sensores de distancia infrarrojos estándar (tanto en versiones de 80 como de 150 cm) y además puede manejar muchísimos sensors analógicos con el bloque AnalogRead. También hay un nuevo bloque PulseIn para leer sensores que devuelven señales del tipo PWM. ¡Y como un secreto podemos contar que estamos trabajando en sensores I2C/TWI para la próxima versión!

Documentación
La documentación para el usuario final requiere mucho trabajo. Y estamos intentando realizarlo. Minibloq es en este momento quizá uno de los entornos de programación gráfica para hardware abierto mejor documentados. A lo largo de este año hemos terminado la documentación online (en inglés), el manual apto para imprimir en PDF/ODT en español (¡pronto lo tendremos también en inglés!), y una pequeña página con ejemplos completos, incluyendo diagramas de circuitos en Fritzing y videos. Además hemos puesto en línea el foro. Pero quizá lo más importante de todo es que hubo usuarios que contribuyeron escribendo sus propios manuales y ejemplos. Quiero mencionar algunos de ellos aquí:
¡Gracias, de nuevo!
Finalmente, quiero decir gracias a muchas personas que se han involucrado en el proyecto de diferentes formas , y a los backers de Kickstarter, por supuesto.