domingo, 20 de dezembro de 2015

BlocklyDuino

Quando iniciei o projeto de exploração de programação de arduino com linguagens acessíveis a crianças e jovens, lancei-me no Scratch por ser uma linguagem com a qual eu já tinha tido contacto e por ser o software lecionado atualmente nas aulas de TIC e que, por isso, os alunos já conheciam.

No entanto, à medida que os trabalhos evoluiam, tornou-se evidente que, se o Scratch é ótimo para uma primeira abordagem à programação de arduino (permitindo de forma lúdica a apropriação de conceitos como entrada/saída, digital/analógico, atuador/sensor), rapidamente começamos a sentir necessidade de um software menos limitado. São várias as razões:
  • Os projetos realizados em S4A estão sempre dependentes da ligação ao computador. Não é, por isso, possível criar projetos autónomos, ligados apenas a uma pilha, ou que necessitem de mobilidade, como um carrinho, por exemplo;
  • As entradas e saídas estão pré-definidas, limitando o tipo de projetos que podemos fazer;
  • A comunicação com o computador é lenta, o que complica a realização de projetos que envolvam componentes que necessitem de comunicar rapidamente com o computador, como me aconteceu quando quis usar o sensor de ultrassons SR04.
Para além destas limitações, tenho a intenção de começar a trabalhar com alunos do secundário e andava à procura de uma aplicação que fizesse a transição entre o Scratch e o C.

Foi assim que acabei por encontrar o BlocklyDuino, uma plataforma de programação por blocos, muito semelhante ao Scratch, que gera automaticamente o código em C.

O BloclyDuino corre diretamente num browser, pelo que pode correr a partir de um site ou do próprio computador.

Para correr o software a partir do site, basta aceder ao endereço:

Para correr o software a partir do próprio computador, há que fazer o download da pasta zip disponível em https://github.com/BlocklyDuino/BlocklyDuino. Depois, selecionar dessa pasta o ficheiro blockly/apps/blocklyduino/index.html e abri-lo num browser.

Estamos em condições agora de programar em BlocklyDuino. O inconveniente do software tal como está é que não faz o upload diretamente para o arduino. É necessário copiar o código C para o software original do Arduino e fazer o upload a partir daí.

Se quisermos fazer o upload a partir do BlocklyDuino, temos de ter instalado no computador  o interpretador Python (versão 2.7)  - o download do Python é feito a partir de
https://www.python.org/. Depois do Python instalado, há que correr o ficheiro que se encontra na raiz da pasta do BlocklyDuino: arduino_web_server. Ao clicar duas vezes no icon deste ficheiro, é criado um servidor web que pode ser acedido pelo endereço indicado: http://127.0.0.1:8080/ . Ao abrir esse endereço num browser, encontramos o ambiente BlocklyDuino a que já tínhamos acedido mas cujo botão "upload" já funciona.

Para testar o Bloclyduino, fiz um programa simples de um pisca com um LED ligado à saída digital 13. 

O programa em blocos:


O programa em C gerado pelo BloclyDuino:


De seguida, foi só clicar em "upload"...e pisca-pisca a funcionar!

Imagino que este software possa ser muito util para a introdução à linguagem em C, uma vez que os blocos têm já uma linguagem mais próxima do C que o Scratch. O BlocklyDuino não permite alterações diretamente no código C gerado, mas, caso se queira explorar esta possibilidade, basta copiar o código para o software Arduino e trabalhar a partir daí. 

Muito, muito entusiasmada com esta descoberta! Isto sim, é todo um outro mundo!

1 comentário:

  1. Seems there are several developers who have enhanced BlocklyDuino in a variety of different directions. Some have added more Arduino C functionality, while others have added code blocks to support their company's product line of Arduino compatible modules and devices. The folks at EasyCoding in Tunisia have BlocklyDuino-Enhanced, and a new product called TUNIOT. TUNIOT is an implementation of BlocklyDuino for the NodeMCU boards (several vendors). The NodeMCU is a small ESP8266 breadboard compatible MCU board based on the Espressif Systems ESP8266 WiFi SoC. The new code blocks included with TUNIOT include those needed to connect to a WiFi AP, and those needed to create WiFI server and WiFi client applications. They are ideal for IoT (Internet of Things) projects, both as school projects and commercial projects.

    ResponderEliminar