Buscar

Programação Visual com Scratch e ArduBlock

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROJETO INTERDISCIPLINAR 3A - 2016 NOTA
AULA 06 - SCRATCH PARA ARDUINO
PROFS. ALESSANDRO PAOLONE E ANGELO BATTISTINI
NOME RA TURMA NOTA
Objetivos do experimento: Conhecer a ferramenta e linguagem de programação gráfica 
Scratch. Entender a lógica de programação por blocos. Utilizar a ferramenta ArduBlock 
para criação de programas mais complexos do Arduino. Utilizar uma ferramenta que foca 
na lógica de programação e não no conhecimento de linguagens de computador. 
Conhecimentos desenvolvidos durante a aula: Capacidade de absorver mais facilmente 
lógicas de controle e programação. Capacidade de programar o Arduino através de um 
ambiente visual, por blocos e em língua portuguesa. Capacidade de desenvolver 
programas de controle mais complexos, com entradas e saídas sem necessidade de foco 
em linguagem de programação e sim na lógica de controle envolvida. Capacidade de 
comparar uma ferramenta de programação visual com uma linguagem textual. Capacidade 
de utilizar variáveis auxiliares na lógica de programação. Capacidade de controlar o 
Arduino via computador. 
Habilidades necessárias: Conhecimentos básicos de eletrônica e grandezas elétricas 
principais (Corrente e tensão). Conhecimentos básicos de lógica. Conhecimentos básicos 
da placa Arduino Uno, pinos de entradas e saídas. 
Atitudes esperadas: Capacidade de desenvolver programas mais complexos focando na 
lógica de controle ao invés da linguagem de programação. Capacidade de entender o 
funcionamento de um ambiente de programação visual. Capacidade de enviar comandos 
do computador para o Arduino através da porta USB. 
INTRODUÇÃO: A linguagem de programação Scratch foi concebida por Mitchel Resnick 
(Wikipedia, 2016) é um projeto do grupo Lifelong Kindergarten do Laboratório de Mídia do 
Massachussets Institute of Technology (MIT, 2016). O Scratch, acima de tudo, é um 
ambiente de programação versátil que foi criado com o objetivo de ensinar programação à 
crianças e adolescentes, ou seja, a um público que não possui um conhecimento prévio de 
computação ou linguagens de programação. 
O Scratch baseia-se numa linguagem gráfica de fácil entendimento, voltado a construir 
blocos que juntos formam uma certa lógica. A grande diferença dele para outros tipos de 
linguagens visuais é que seus blocos são parecidos com quebra-cabeças. Isso foi feito 
para ajudar na montagem correta do programa, evitando que funções ou agrupamento de 
comandos não compatíveis seja feito. A Figura 1 mostra o ambiente de programação 
Scratch montado pela equipe do MIT: 
Figura 1 - Ambiente de Programação Scratch MIT. 
O Scratch é uma ferramenta de programação online, ou seja, o usuário precisa estar 
conectado com o site do Scratch para poder programar. No começo ele foi desenvolvido 
somente para criação de programas de computador. Com o advento do Arduino e seu 
crescimento de popularidade ao redor do mundo, os criadores do Scratch começaram a 
desenvolver funções para poder controlar a placa. 
Assim como eles, muitos outros utilizaram o mesmo principio para criar programas que 
pudessem se comunicar e gravar os Sketchs do Arduino sem a necessidade de se estar 
conectado à internet. Um deles é o S4A, um ambiente muito parecido com o Scratch que 
permite a programação do Arduino através da linguagem gráfica. Sua desvantagem é que 
ele não grava o programa feito no computador dentro do chip do Arduino. Isso significa que 
para o programa funcionar, o Arduino deve estar sempre conectado ao computador. Assim, 
essa ferramenta limita muito o uso da placa em diversas aplicações de robótica e controle 
nas quais não queremos um computado como um sistema de entrada de dados do 
Arduino. 
De acordo com Alves, Sampaio e Elias, 2014, uma alternativa muito boa para substituição 
do S4A é a ferramenta ArduBlock (http://blog.ardublock.com) criado em Java e que o IDE 
do Arduino o reconhece como um “plugin”, não havendo necessidade de se instalar ou 
outro programa. Basta abrir o IDE e nas ferramentas abrir o ArduBlock. Outra vantagem 
desta ferramenta é que ela, ao transferirmos o programa para a placa, gera 
automaticamente o código C do Sketch, assim pode-se salvar o programa nas duas 
formas, como Sketch que terá extensão .ino e o Scratch que conterá os blocos 
equivalentes. Os blocos são representados por figuras e encontram-se no idioma 
português. O ambiente ArduBlock pode ser visto na Figura 2 abaixo: 
Figura 2 - Ambiente de Programação ArduBlock. 
FERRAMENTA ARDUBLOCK: No curso de PI, utilizaremos o ArduBlock para fazermos 
todas as programações da placa Arduino. Para adicionar a ferramenta ArduBlock ao seu 
IDE basta seguir os seguintes passos: 
1. Acessar o link http://blog.ardublock.com/engetting-started-ardublockzhardublock/ ; 
2. Clicar em DOWNLOAD ArduBlock; 
3. Ao baixar o arquivo .jar, vá para Documentos\Arduino (caminho padrão para 
usuários Windows); 
4. Você deverá criar várias pastas novas dentro desse diretório, uma dentro da outra, 
cada uma com um nome diferente. Atenção, o ArduBlock é sensível a 
diferenciação das letras maiúsculas e minúsculas na nomeação das pastas, 
portando, sugere-se que você copie e cole cada nome dos passos abaixo para a 
pasta, assim evitamos qualquer tipo de erro. 
5. Dentro da pasta Arduino, crie outra pasta e nomeie-a tools; 
6. Dentro desta nova pasta tools, crie outra pasta e nomeie-a ArduBlockTool; 
7. Dentro desta nova pasta ArduBlockTool, crie outra pasta e nomeie-a tool; 
(atenção, desta vez o nome não tem ’s’ no final) 
8. Copie o arquivo que você baixou no passo 2 (ardublock-all.jar) dentro da pasta 
criada no item anterior; 
9. Se tudo deu certo, o arquivo ardublock-all.jar deverá estar salvo no seguinte 
endereço (que pode ser visto no windows explorer): C:\Users\Nome_Usuário
\Documentos\Arduino\toots\ArduBlockTool\tool\ardublock-all.jar. 
Para abrir a ferramenta do ArduBlok, basta abrir o IDE, clicar em Ferramentas e depois 
ArduBlock, como mostra a Figura 3 abaixo: 
Figura 3 - Caminho para acessar a ferramenta ArduBlock. 
O arquivo que baixamos da internet, é a primeira versão criada. Como essa extensão é de 
código aberto, os projetistas liberaram para que outros programadores e usuários 
pudessem adicionar novas bibliotecas, organizar melhor os menus e também mudar um 
pouco o visual do ambiente de edição. 
Esta primeira versão é muito útil para programar o Arduino para executar funções nas 
quais a placa lê entradas, processa essas informações e responde ligando as saídas de 
acordo com a lógica desenvolvida. 
Contudo, esta versão possui diversas limitações. Uma delas é a falta de uma biblioteca 
com funções para leitura e escrita em porta serial. A possibilidade de se programar funções 
que utilizam comunicação serial abre uma gama de utilização da placa muito alta e permite 
que a mesma possa ser utilizada como um IoT. 
Na aplicação da aula de hoje, precisaremos utilizar a comunicação serial. A intensão é que 
o computador mande informações para a placa e a mesma responda de acordo com um 
algoritmo que iremos criar. Portanto, a versão do ArduBlock que utilizaremos será a 
ardublock-beta-20140702.jar, também disponível para download no site do ArduBlock. 
BIBLIOTECAS PRINCIPAIS DO ARDUBLOCK: Para aulas de programação utilizaremos 
algumas bibliotecas principais dessa ferramenta. Todas as bibliotecas ficam no lado 
esquerdo da tela do ArduBlock, como pode ser visto na Figura 2. Todos os principais 
comandos do Arduino, como loops, funções de ligar e desligar pino digital, escrever valor 
analógico, ler valor analógico, comandos de teste, comandos matemáticos, comandos de 
tempo, criação e manipulação de variáveis e criação de subrotinas encontram-se dentro 
das cinco primeiras bibliotecas, sendo elas: 
Dentro desta biblioteca encontraremos todas as funções de controle do programa e todos 
os tipos de laçosde repetição e comandos de decisão. As funções de controle do 
programa são as funções já vistas na aula passada, a void setup( ) e a void loop ( ). Ambas 
encontram-se dentro de um mesmo bloco chamado program: 
Figura 4 - Bloco que implementa as funções void setup( ) e void loop ( ). 
Na prática, só necessitamos colocar o bloco da Figura 4 quando precisamos iniciar uma 
variável com um valor pré-definido diferente de 0, ou quando alguma configuração que não 
seja a padrão dos programas precisa ser implementada. Caso contrário podemos usar 
somente o bloco sempre faça, que é o equivalente à função void loop ( ). 
Isso ocorre pois o ArduBlocké inteligente a ponto de entender todas as configurações e 
declarações necessárias para que o programa seja executado corretamente. Assim, ele 
automaticamente já cria para nós todas as declarações e entende também que qualquer 
função que não esteja ligado ao bloco da Figura 5, deve ser implementado fora de void 
loop ( ). 
Figura 5 - Bloco que implementa a função void loop ( ). 
Além das funções principais, esta biblioteca contém todas os blocos que implementam as 
lógicas de repetição e comparação, como podemos ver na Figura 6 abaixo: 
1ª)
2ª)
3ª)
4ª)
5ª)
6ª)
BIBLIOTECA :
Figura 6 - Blocos da Biblioteca Controle. 
Algo interessante de se ressaltar é que quando abrimos a biblioteca, se passarmos o 
mouse em cima de cada nome de cada bloco, uma janela com uma rápida explicação do 
que cada um é abrir-se-á. Isso mostra uma ferramenta muito interessante em caso de 
dúvidas na utilização de cada bloco. 
 
Nesta biblioteca encontraremos todas as funções relacionadas a manipulação dos valores 
lidos ou escritos nos pinos de I/O da placa. É aqui que encontraremos blocos que irão ler 
um valor ou escrever um valor para uma porta do Arduino por exemplo. As funções 
contidas nesta biblioteca são as ilustradas na Figura 7 abaixo: 
Figura 7 - Blocos da Biblioteca Pinos. 
BIBLIOTECA :
Nesta biblioteca encontremos os blocos de teste e comparação de valores para os 
Comandos de repetição while loop e comando if/else. Os blocos desta biblioteca são 
mostrados na Figura 8 abaixo:
Figura 8 - Blocos da Biblioteca Tests. 
. 
Se atentarmos à Figura 8, perceberemos que há vários blocos de comparações iguais 
porém com formatos internos diferentes. Como dito anteriormente, o Scratch trabalha 
como um quebra-cabeças cujas peças tem que se encaixar perfeitamente através do 
formato do mesmo. Assim, cada bloco de comparação acima é para um tipo de variável 
diferente e somente a variável correta terá o mesmo formado compatível para encaixe, 
como veremos logo a frente. Os comandos de comparação são idênticos aos usados em 
linguagem C. 
Nesta biblioteca, encontraremos todas as funções de manipulação matemática. Funções 
como soma, subtração, divisão e multiplicação são exemplos do que encontraremos aqui. 
Além das funções elementares, outras mais complexas também tem blocos criados dentro 
desta biblioteca e podemos ver cada um deles na Figura 9 abaixo: 
Figura 9 - Blocos da Biblioteca Matemática.
BIBLIOTECA :
BIBLIOTECA :
Nesta biblioteca, todos os blocos para criação e manipulação de variáveis são 
encontrados. Aqui haverá funções para transferir valores para variáveis, criar vetores e 
matrizes e outras funções mais complexas relacionada com as variáveis do programa. A 
Figura 10 abaixo mostra todos os blocos desta biblioteca: 
Figura 10 - Blocos da Biblioteca Variáveis. 
Pela Figura 10 podemos ter uma visão mais clara agora dos encaixes de cada bloco com 
suas funções que estão nas outras bibliotecas (Figuras 7, 8 e 9). Percebe-se a relação de 
encaixe geométrico das peças de acordo com cada tipo de variável manipulada, seja ela 
inteira, real, booleana ou caractere. 
Esta biblioteca é uma biblioteca de funções mais específicas e avançadas. A biblioteca 
Comunicação conterá todos os blocos referentes a manipulação de dados de uma 
comunicação serial, funções de leitura e escrita em porta serial e de configurações da 
comunicação. Usaremos esta biblioteca para podermos enviar comandos do teclado do 
computador para o Arduino a fim de controlar o tempo de pisca do led built-in da placa. As 
funções desta biblioteca estão ilustradas na Figura 11 abaixo: 
Figura 11 - Blocos da Biblioteca Comunicação. 
BIBLIOTECA :
BIBLIOTECA :
PROGRAMANDO COM O ARDUBLOCK: Programar com o ArduBlocké bem intuitivo e 
fácil. Para adicionar uma função, basta selecionarmos uma biblioteca, clicarmos com o 
botão esquerdo do mouse em cima do bloco desejado e arrastá-lo para a tela. Quando 
fizermos isso ele será adicionado ao programa automaticamente. Se quisermos excluir um 
bloco, basta clicarmos com o botão esquerdo do mouse e arrastá-lo de volta para a aba 
onde encontram-se as bibliotecas. 
Para exemplos didáticos, iremos apresentar em aula como fazer um programa em 
ArduBlock que pisque o led do pino 13 um período de 2 segundos sendo 1 segundo 
ligado e 1 segundo desligado, explicando cada particularidade do ArduBlock.
Abaixo deixaremos um espaço para que vocês anotem todas as considerações e dicas 
apresentadas em aula que os ajudarão sempre que precisarem programar com o 
ArduBlock. 
ANOTAÇÕES DE AULA: 
PARTE PRÁTICA 
1. Primeiramente, abra o IDE do Arduino em seu computador e siga todos os passos de 
configurações iniciais já apresentadas na aula passada. Após configurado a placa e a porta 
de comunicação, vá em Ferramentas e clique em ArduBlock, como mostra a Figura 3. 
Quando aberto, a tela do ArduBlock deverá ser idêntica, ou pelo menos parecida, com a 
mostrada na Figura 2. Após tudo aberto, implemente a lógica de blocos mostrada na Figura 
12 Abaixo: 
Figura 12 - Código Scratch de Controle do Pisca. 
Após implementados os blocos acima, vá para o topo da tela de edição e clique em Enviar 
para o Arduino. Ao fazer isso, o ArduBlock irá traduzir os blocos para linguagem C e criará 
o Sketch referente ao programa. Automaticamente o IDE já irá compilar o Sketch e 
transferir o programa para placa. Quando a mensagem de Done Upload aparecer, o 
programa então foi descarregado com sucesso e o led do pino 13 irá piscar a uma 
frequência de 2 segundos, sendo 1 segundo ligado e 1 segundo desligado. 
2. Após descarregar o programa, clique em Monitor Serial, no topo da tela do ArduBlock. 
Uma tela de comunicação serial parecida com a da Figura 13 abaixo irá abrir. 
Figura 13 - Tela para Comunicação Serial (Monitor Serial). 
Vá em No line ending e troque para Newline. Na primeira janela, a de edição, que possui 
o botão send (enviar) e digite a letra ‘a’ e dê um enter no teclado. Veja o que acontece 
com a placa e com a tela do Serial Monitor. Continue digitando a letra ‘a’ aos poucos e 
diga o que acontece. Descreva abaixo o que o comando ‘a’ faz com a placa e o que o 
Serial Monitor imprime, com detalhes: 
3. Agora envie o comando ‘s’ para a placa, digitando uma vez só a letra. Você perceberá 
que nada irá acontecer. Mesmo que você envie diversas vezes o comando, a placa irá se 
comportar do mesmo jeito. Contudo, digite na tela de enviar duas vezes seguidas a letra ‘s’ 
como segue: ‘ss’. Quando enviado em duplicidade, o comando que deveria ser executado 
quando enviássemos somente uma vez o s irá acontecer. Informe abaixo o que acontece 
com a placa quando enviamos o comando ‘ss’ e também o que o Serial Monitor Imprime, 
com detalhes e tente explicar porque que só com o comando ’s' é que devemos enviar em 
duplicidade para que a placa entenda o comando enviado. Qual solução poderíamos dar, 
ou seja, qual proposta de alteração de programa podemos fazer para evitar essa 
duplicidade? 
4. Após analisar o comando ’s’, diga o que acontece com a placa e com o Serial Monitor 
quando o led estiver totalmente desligado (tempo ligado = 0) e mandarmos o comando ’s’ 
para a placa? Por quetemos esse fenômeno e qual o valor que o Serial Monitor vai 
imprimir na tela? Qual solução podemos dar para corrigir esse fenômeno? 
EXERCÍCIOS COMPLEMENTARES 
1. Após a análise do programa acima e de todos os “problemas” encontrados no mesmo, 
proponha um novo código para corrigir tais detalhes. Cole uma imagem do diagrama de 
blocos que implementa a solução proposta pelo grupo. 
2. Com o programa corrigido, acrescente à ele mais alguns blocos de tal forma que o 
programa continue executando os comandos já existentes, ou seja, se mandar ‘a' pela 
serial ele aumenta o tempo de ligado e se mandar ’s' ele diminui o tempo de ligado e 
também altere o tempo de desligado, ou seja, se enviarmos a letra ‘j' o programa 
aumenta o tempo de desligado e se mandarmos a letra ‘k' ele diminui o tempo de 
desligado. O comando que altera o tempo de ligado não pode influenciar no valor do 
tempo de desligado e vice-versa. Faça seu programa também imprimir o tempo de 
desligado sempre que ele for alterado. Ao ligar a placa e abrirmos o Serial Monitor, 
CONCLUSÕES: 
REFERÊNCIAS BIBLIOGRÁFICAS 
• __; Arduino Oficial Website. Disponível em: www.arduino.cc; último acesso em setembro 
de 2016. 
• ALVES,R. M.; SAMPAIO, F. F.; ELIA, M. F. DuinoBlocks: Desenho e Implementação de 
um Ambiente de Programação Visual para Robótica Educacional. Revista Brasileira 
de Informática na Educação, V. 22, nº 3. 2014. p. 15. 
• MIT; Scratch Oficial Website. Disponível em: https://scratch.mit.edu; último acesso em 
setembro de 2016. 
• Wikipedia; Skratch (programming language). Disponível em: https://en.wikipedia.org/wiki/
Scratch_(programming_language); último acesso em setembro de 2016.

Outros materiais