O documento descreve diversos ambientes de programação icônicos para o Arduino, comparando suas características como fluxo de execução, paralelismo, parametrização, tipos de blocos e comunicação com hardware. São apresentados softwares como S4A, MiniBloq, Modkit, Logo Blocks, ArduBlock e Microsoft Robotics Developer Studio.
1. Ambientes de Programação Icônicos
para o Arduino
Rafael Machado Alves – rafamachadoalves@ufrj.br
Orientador: Fábio Ferrentini Sampaio
Dezembro / 2011
2. S4A http://seaside.citilab.eu/scratch/arduino
• Fluxo de execução: top down, o fluxo segue a ordem de empilhamento dos blocos.
• Paralelismo: grupos de empilhamentos desconexos são executados em paralelo.
• Procedimento: cria-se um bloco que encapsula um empilhamento de blocos.
• O S4A não possui, mas o BYOB que é outra modificação do Scratch possui.
• Parametrização: os blocos possuem entradas de teclado, entradas de outros blocos, combobox
e outros.
• O BYOB possui ainda objetos, listas e até outro comando.
• O shape das entradas de dados é diferente para cada tipo de dados.
• Tipos de blocos: os blocos são diferenciados pela cor que indica a sua categoria; forma que
indica a estrutura de dados; borda que indica o tipo de dados; entalhes e saliências que
possibilitam encaixes corretos sintaticamente.
• No Scratch: os blocos são identificados pelo texto.
3. <extends>
4
1 2
3
• Comunicação com hardware: o Arduino fica dependente de conexão para rodar o código.
4. MiniBloq http://blog.minibloq.org/
• Paralelismo:
• Não possui.
• Parametrização:
• Os blocos possuem um menu suspenso associado.
•Tipos de blocos:
• Os blocos são identificados pelo ícone.
• Blocos personalizados
• Fácil programação: Apenas alguns cliques e o primeiro programa está rodando (porém pouco
intuitiva).
• Interface avançada: zoom; recorta e cola; janelas acopláveis; comenta código (não insere
comentários).
5. 1
Portável: Não requer a
instalação (exceto para os
drivers necessários para placas
específicas, como Arduino).
OU
2 Ele também pode ser
executado a partir de um
pen drive.
• Gerador de código em tempo real
• Verificação de erros em tempo real
• Configuração de hardware
• Terminal integrado: Existe um terminal integrado que permite enviar e receber dados
da placa através de portas serial/USB.
6. Modkit http://www.modk.it/
• Ferramenta online
• Basta baixar e instalar o desktop widget para programar as placas.
• Inspirado no Scratch
• Hardware View
• Configura o hardware graficamente.
• Recursos avançados: Clube Alpha (pago).
• Drag and Drop Hardware
• Code View
Desktop Widget
7. Logo Blocks
http://babuinoproject.blogspot.com/2009/09/download-softwares-to-program-your.html
• Uma das linguagens que podem ser utilizada com o BABUINO.
• Instalação complexa.
•Procedimento: cria-se um novo empilhamento de blocos que é chamado pelo empilhamento
principal por um bloco com o identificador do procedimento criado.
• Operadores numéricos: os blocos ficam na vertical
• Gera código Logo.
• Existe um bloco que não faz ação nenhuma. Ele é usado
para melhorar a visualização do empilhamento evitando
A sobreposição de blocos.
8. ArduBlock http://blog.ardublock.com/
• Roda junto com a IDE padrão do Arduino.
• Parametrização:
• Existem blocos para o tipo numérico.
• É possível modificar a função dos blocos operadores sem precisar apagá-los.
• Adição de comentários: o bloco possui um ícone que indica a presença de comentário.
• Código aberto, Java, suporte multilingue.
• Realiza encaixes estranhos.
9. LEGO Mindstorms
http://mindstorms.lego.com
• Fluxo de execução: o fluxo segue uma rede criada de conexões e blocos.
• Paralelismo: os caminhos bifurcados da rede são executados em paralelo.
• Encapsulamento: cria-se um bloco que encapsula uma rede.
No Lego: o procedimento criado e salvo em uma arquivo separado.
• Parametrização: os blocos possuem um painel de propriedades associado. Permite uma
grande variedade de configurações.
• Tipos de blocos: os blocos possuem um ícone como identificador; símbolo e cor que indicam
sua categoria; pré-visualizações dos atributos; forma que indica a estrutura de dados; entradas e
saídas de diferentes tipos de dados.
• Os arames de ligação (fluxo de dados) têm cores diferentes para cada Tipo de dados
(número, lógico e texto)
• Software Proprietário
10. Microsoft Robotics Developer
Studio http://www.microsoft.com/robotics/
• É possível simular o comportamento do robô em um ambiente virtual.
• Manipula-se também os links entres os blocos
Programação Simulação
12. Physical Etoys
http://tecnodacta.com.ar/gira/projects/physical-etoys/
• Não é programação através de blocos, apesar de ser drag and drop.
• Não precisa instalar.
• Comunicação com hardware: o Arduino fica dependente de conexão para rodar o código.
• Drag and Drop Hardware
• Roda em: Windows e Linux.
14. Artigos sobre VPL
• Are visual programming languages better? - The role of imagery in program comprehension.
RAQUEL NAVARRO-PRIETO AND JOSE J. CAÑAS
• Comparing the Use of Tangible and Graphical Programming Languages for Informal Science
Education. Michael S. Horn, Erin T. Solovey, R. Jordan Crouser, Robert J.K. Jacob
• Visual Programming Pedagogies and Integrating Current Visual Programming Language
Features. Erik Pasternak
• Utilização da Teoria de Vygotsky em Robótica Educativa. Alzira Ferreira da Silva et al
• Transforming Visual Programs into Java and Vice Versa. Lei Dong