quinta-feira, 7 de junho de 2018

TinkerCAD e a subtração de volumes

Prototipar peças no TinkerCAD pode ser muito prático, mas as vezes se você não souber usar os recursos de modo adequado, pode ser um fator complicante. Vamos ao desafio de fazer um furo cilíndrico em um cubo.


Como podemos ver acima, ao utilizar a opção "orifício" na forma geométrica, ela assume o papel de subtração do seu volume em relação ao que já existe. Isso é perfeito para criar furos, encaixes, dentre outras possibilidades.
Que tal construir o jogo Tetraedro Puzzle (jogo de duas peças que forma um tetraedro)? Vamos a esse desafio. 


Primeiramente notamos que para construir as duas peças (que são idênticas) precisamos ter o cuidado nas medidas e proporções. Existe várias estratégias de construção, mas a utilizada aqui é de forma a usar a opção "orifício" do TinkerCAD.
Logo nota-se que o Tetraedro não é uma forma básica no TinkerCAD (está em uma outra seção, porém rotacionada o que traz alguns problemas). Podemos usar a forma "Telhado" (que nada mais é do que um prisma de base triangular) e fazer os ajuste necessários na suas pontas.
Na construção da peça usando o formato "Telhado", sendo necessário ser um triângulo equilátero, por isso use Pitágoras para calcular a altura adequada, onde um exemplo é os valores de lado 40 mm e altura 34,64 mm.
No corte das pontas utilize a forma "Pirâmide" com os valores de base (lados do triângulo) e a altura que foram utilizados na peça "Telhado". Faço o encaixe adequado em cada lado da figura original, lembrando em manter os valores de proporcionalidade, conforma a figura abaixo (cada valor de x igual a metade do valor de lado do triângulo):


E obtemos o seguinte resultado no TinkerCad:


E impresso obtemos o seguinte resultado (link do projeto: https://www.tinkercad.com/things/9TgqOuvgrSL ):


Gostou? Que tal os próximos desafios? Vamos prototipar o mundo? Deixe nos cometários as suas prototipagens. Até a próxima.

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çõ...