terça-feira, 29 de maio de 2018

Problemas matemáticos sobre a perspectiva do Scratch.

Considere o seguinte problema matemático:

"Dona Wanda precisa assar um bolo de aniversário para o seu neto. No supermercado ela compra uma duzia de ovos por R$ 2,94, o óleo vegetal por R$ 2,05 e acaba levando a farinha de trigo sem olhar o preço. Ao chegar no caixa ela gasta um total de R$ 6,75, mas Dona Wanda fica encucada com quanto pagou pela farinha de trigo. Você poderia ajudar Dona Wanda a resolver esse mistério?"

Antes de sair fazendo cálculos, que tal fazer uma coisa diferente? Que tal recontar esse problema usando o Scratch?


Como podemos ver no projeto Matemática no Supermercado (https://scratch.mit.edu/projects/170259962/), o problema proposto é contado por meio de diálogos e ao final temos a personagem Wanda fazendo o pedido do cálculo conforme o problema original acima pede.
Essa é uma forma de trabalhar Scratch voltado a resolução de problemas matemáticos, já que você passa por todas as fases de resolução de um problema (Polya): compreender, planejar, executar e revisa. Claro que cada um deles de maneira um pouco diferente do modo tradicional, mas com a vantagem de promover uma ludicidade ainda maior do que a apresentada no papel. 
Pronto para mais desafios? Que outros problemas matemáticos podem ser contextualizados na ferramenta Scratch? E que tal o desafio de criar uma HQ que conte um problema matemático usando o Pixton (se não souber como usar ele, acesse esse post: https://vemfazermatematicaegames.blogspot.com/2018/03/criacao-de-uma-hq-matematica.html)? Deixe nos comentários os links das suas produções. Até a próxima.

terça-feira, 15 de maio de 2018

Flappy Bird e o sensor ultrassônico

Hoje vamos criar um jogo em Scratch que utilize comando externos por meio de sensores. A ideia é usar um sensor ultrassônico para para comandar o game Flappy Bird da Matemática-2 (https://scratch.mit.edu/projects/116027398/). Para isso é necessário usar o HackEduca que foi visto nessa postagem do blog: https://vemfazermatematicaegames.blogspot.com.br/2018/05/hackeduca-usando-arduino-via-scratch.html.


Na programação desse game do Flappy Bird, note que deve ser alterado a entrada que aceita a barra de espaço como comando, e trocado pela seguinte programação que usa o sensor ultrassônico:


Essa programação só irá funcionar com o HackEduca ativo e usa o loop de aproximação no sensor ultrassônico: quando não detecta nada, adiciona -4 a y fazendo com que o personagem caia, quando a mão ou um objeto está na frente adiciona +4 a y, fazendo com que o personagem suba. Com a alternância desses dois movimentos controla-se o jogo de uma maneira diferente. Gostou da proposta? Que tal criar outras? Deixe nos comentários abaixo, quais outros jogos você utiliza com sensores plugados em um Arduíno. Até a próxima!

HackEduca: usando Arduíno via Scratch

O Arduíno é uma placa microcontroladora onde é possível programar nela e conectar diversos sensores que conversam com essa programação. Existem diversos tipos de programação que dão aporte ao uso do Arduíno, mas a que vamos apresentar aqui é a possibilidade de usar o Scratch. 


Para poder usar essa possibilidade você deve baixar o HackEduca http://www.hackeduca.com.br/download/), software que faz ligação entre o Scratch e o Arduíno, que tem nele várias bibliotecas já prontas. É necessário um registro para baixar (é gratuito) e após baixar em seu computador, você deve descompactar e instalar (ele instala o HackEduca e o Scratch versão off line). Além disso, plugue o seu Arduíno no computador via USB. Ao clica no ícone do HackEduca você verá a seguinte imagem:


Siga os seguintes passos para configurar na primeira vez de uso:

1-Clique na porta serial até encontrar em qual está o arduíno (em amarelo está conectada a COM5). Pode ser necessário instalar o drive do arduíno disponível em: https://www.arduino.cc/en/Main/Software.
2-Clique em Ferramentas (em vermelho), em Upload Firmware - Firmata Plus. Vai ser pedido a senha que é: hackeducafirmata. Vai abrir uma janela do prompt comando que mostrará a progressão de instalação. Ao final aperte qualquer tecla para encerrar.
3-Clique novamente em Ferramentas, em Upload Firmware - Firmata Plus, e selecione o seu tipo de Arduíno. Verifique novamente se a porta escolhida continua ativa, senão clique nas setinhas em amarelo para dar refresh.

A partir de agora é uso cotidiano do Scratch com o Arduíno. Clique na caixinha que está selecionada em verde. Se quiser, deixe selecionado o Abrir Exemplos, para ter exemplos prontos para poder alterar. Em seguida irá abrir o Scratch. Note que os blocos relativos ao uso do Arduíno devem estar em preto, caso estejam em vermelho, significa que tem algo de errado (um possível erro é ter mais do que um editor de Scratch e ele estar abrindo com o errado).
Ao abrir o modo exemplo, existem vários exemplos, por isso não se preocupe, utilize cada um em separado. Vamos aqui fazer o Hello Word do Arduíno, que nada mais é que piscar o LED presente na própria placa (é a primeira programação), conforme a imagem abaixo:


Quando você clicar na bandeira verde do Scratch, você irá observar que o LED presente na placa de Arduíno irá piscar a cada 0,5 segundos, enquanto o gato na tela do Scratch muda de posição (fantasia). E fica nessa repetição. Divertido, certo?! E que tal o desafio de acender o LED com tempo alternado? Ou ainda conectar um motor ou algum outro sensor? Use os exemplos presentes para ir descobrindo novas possibilidades e deixe nos comentários abaixo suas investigações. Até a próxima!

quinta-feira, 10 de maio de 2018

ScratchJr: Programação para não alfabetizados

Quando se apresenta programação para estudantes, um dos obstáculos que sempre se esbarra é a alfabetização na língua materna (no nosso caso o português). Porém, com o ScratchJr (https://www.scratchjr.org/) isso deixa de ser argumento, pois com seus blocos que tem símbolos ao invés de palavras, tudo fica extremamente intuitivo mesmo para crianças que não saibam ler.


A programação do ScratchJr dá suporte a fazer narrativas e simulações simples em um tablet. Para poder usar você deve baixar o aplicativo na Play Store e instalar. Ao abrir, crie um novo projeto que é salvo automaticamente na memória do tablet, portanto não é possível deixar o projeto disponível em um repositório on line como o Scratch. Para a nossa primeira experiência, que tal criar um "Hello World!" (frase simbólica na programação, que equivale a uma fala de um personagem se apresentando com um "Alô Mundo!) no ScratchJr? No exemplo abaixo temos a programação usada: 


Você deve estar se perguntando aonde isso se encaixa no contexto matemático. Simples, pode-se dar vida a problemas matemáticos. Vamos a um exemplo:

"Joana é uma menina que adora animais. Ela foi ao parque aonde vivem 2 gatos e um cachorro. Ela adotou um gato e um cachorro para poder brincar com eles. Quantos animais ficaram ainda sem dono?"

Matematicamente faríamos o cálculo 3-2=1 e obteríamos a resposta. Agora com o Scratch Jr. podemos encenar todo esse problema e ainda apresentar a solução. Veja como ficaria a programação dos atores utilizados nesse problema:   

Gato não adotado:
Gato adotado:

Cachorro adotado:

Joana: 

Ao final é só clicar na bandeira verde e ver como fica no ScratchJr. Gostou? Se quiser saber mais, acesse esse link (https://www.youtube.com/watch?v=ciWPaEgscr0&list=PL7TD0NhZOn0fhP-cz3KHGIs1Ldjsu0gdR) aonde tem tutoriais de como usar e construir projetos no ScratchJr. Apesar do tutorial estar em inglês, você pode ativar a tradução de legendas e dá para compreender perfeitamente. Conseguiu construir algo novo no ScratchJr? Deixe nos comentários abaixo as suas criações e compartilhe com o mundo. Até a próxima.

terça-feira, 8 de maio de 2018

Relacionando comandos entre Scratch e Gcode

No post sobre .gcode (http://vemfazermatematicaegames.blogspot.com.br/2018/05/o-segredo-de-um-arquivo-gcode.html) entendemos um pouco da Matemática envolvida nesse importante arquivo de posicionamento na arte de construção de objetos. Mas agora a missão é outra. Vamos relacionar um .gcode aos comandos em Scratch. Como você acha que ficaria o seguinte .gcode em Scratch?

G0 X200 Y300 Z0.250
G0 X-300 Y300 Z0.250


Parece que está faltando valores no Scratch? Sim, você está certo. O Scratch é baseado em um plano 2D ou seja, apenas valores de XY, por isso os valores relacionados a Z são desprezados. Existem muitos .gcode que são voltados ao trabalho em 2D, como o utilizados em máquinas CNC (cortadora de madeira), o que nos leva a um desafio, é possível montar programações em Scratch que reproduzam figuras cortadas numa CNC? A resposta é sim. Veja um exemplo de um simples quadrado:

G0 X200 Y300 
G0 X-300 Y300
G0 X-300 Y-200 
G0 X200 Y-200
G0 X200 Y300 


Note que temos duas formas de representar o quadrado no Scratch (pode ser necessário tirar o ator para o lado, pois a construção fica embaixo dele). A primeira é marcando ponto a ponto, que nem em um .gcode e a segunda, mais enxuta, é centrar no ponto inicial (x,y) e em seguida, repete-se por quatro vezes o valor do tamanho do lado e usa-se o valor do angulo interno de um quadrado que é 90 graus. É possível seguir esse raciocínio para figuras mais complexas, como as elaboradas nos post sobre Criando um Gerador de Polígonos (http://vemfazermatematicaegames.blogspot.com.br/2018/03/criando-um-gerador-de-poligonos.html) e Figuras de Lissajous (http://vemfazermatematicaegames.blogspot.com.br/2018/03/figuras-de-lissajous.html). Pronto para o desafio? Deixe nos comentários as novas obras de arte que você irá produzir. Até a próxima.

O segredo de um arquivo Gcode

Um arquivo muito utilizado nas impressões 3D é o .gcode. Logo após você modelar algo em um CAD, um passo essencial para poder fazer uma impressão em 3D é transformar seu .stl nesse arquivo .gcode. 
Esse tipo de arquivo é responsável por dar os pontos em que a impressora 3D deve ir durante a construção de um objeto. Se você abrir esse arquivo em um bloco de notas irá notar uma disposição muito semelhante (com outros valores) a que se encontra destacado na figura abaixo:


Todo arquivo .gcode é uma sequência de comandos G e comandos M. Numa impressora 3D, um comando G é escrito na seguinte maneira: Gn Xnnn Ynnn Znnn Ennn Fnnn Snnn, onde os n são os valores numéricos (em milímetros) que tem o seguinte significado:

Xnnn é o valor da posição no eixo X;
Ynnn é o valor da posição no eixo Y;
Znnn é o valor da posição no eixo Z;
Ennn é o valor relacionado a quantidade de extrusão de filamento;
Fnnn é o valor da velocidade entre pontos no plano;
Snnn é o valor relacionado se o sensor de fim de curso foi atingido.

Note que estamos mais preocupados para os valores de X, Y e Z, que são pontos do plano cartesiano. O que significaria o seguinte código?

G0 X200 Y300 Z0.250
 G0 X-300 Y300 Z0.250



Como podemos ver, os dois pontos dados em G0 formam pontos no plano XYZ e que uma impressora 3D entende como o caminho a ser percorrido, formando uma linha (em uma camada de Z). Agora imagine todos os pontos necessários para formar uma simples caneca ou cadeira?
No blog parceiro Vem Fazer Tecnologia & Robótica existe um post/atividade que trabalha com .gcode em um Arduíno GRBL ligado a motores de passo (http://vemfazerrobotica.blogspot.com.br/2018/05/cnc-com-arduino.html). Pronto para o desafio? Deixe nos comentários abaixo suas investigações em .gcodes e até a próxima.

Como não perder nenhum compromisso: Meu App Agenda

No nosso dia a dia a agenda é um instrumento de grande importância que as pessoas utilizam para fazer anotações de compromissos ou informaçõ...