quinta-feira, 23 de abril de 2020

Revista Maker

O post de hoje é um compilado das Revista Maker que serão atualizadas semana a semana e que trazem atividades das quatro áreas da Educação Maker do SESI SENAI SC para estudantes KIDS (7-10 anos) e TEENS (10-17 anos). Essas atividades em sua maioria são realizadas utilizando materiais simples que você encontra na sua casa.



Revista Maker Kids:



Revista Maker Teens:



terça-feira, 18 de fevereiro de 2020

Construindo um aplicativo de controle de gastos

Controlar seus gastos e ter uma boa saúde financeira é essencial para não acabar entrando em situações problemáticas como dívidas financeiras. Ter ao seu alcance um aplicativo que gerencie seus gastos é essencial e o post de hoje vai abordar essa possibilidade. Mas você deve estar se perguntando: existem tantos aplicativos de gerenciamento de gastos na rede, porque construir mais um? Pelo simples fato de que estar construindo este aplicativo, você já vai entender um pouco da dinâmica da Matemática Financeira e o controle de gastos. O aplicativo denominado Game Money que será abordado no post de hoje pode ser encontrado em: ai2.appinventor.mit.edu/?galleryId=5021055000903680.


Resumidamente esse aplicativo tem entradas numéricas para você colocar seu salário total, diversas despesas (aluguel, água, luz, etc.) e ao fim ele dá o valor que sobrou (se é que sobrou algo) por meio dos blocos de operações de soma e subtração que agem diretamente com os textos (no caso números) inseridos (destacado em vermelho), sem a necessidade de transformar esse dados em valores numéricos dentro da programação:


Como podemos ver acima, existe a possibilidade de armazenar esse valor em um arquivo .txt dentro do celular (opção dentro do Design>Armazenamento>Arquivo) que pode ser resgatado a qualquer hora, funcionando como um banco de dados simplificado (e off-line). Os blocos roxos com que advém da opção "Arquivo" (destacados em vermelho e verde) são responsáveis por guardar informações no arquivo, fazer a leitura e apagar totalmente os dados. Note que, mesmo que você saia do aplicativo sem limpar o "Arquivo", todos os dados ficarão lá armazenados para uma próxima utilização, a única coisa que não ficará guardada é o contador dos meses que será reiniciado após cada vez que a aplicação for encerrada. Na figura abaixo, mostra como fica a base de dados (usando um arquivo) que foi interrompido a contagem dos meses (foi fechado o aplicativo) e sua relação com a estrutura de texto que foi mencionada acima (destacada em vermelho na figura acima):


Assim encerramos a construção do aplicativo de finanças, mas é apenas o começo. Se você parar para pensar é possível adicionar diversas outras funcionalidades e customizações que vão deixar o aplicativo ainda melhor e mais funcional para você. Hora de botar a mão na massa e construir sua própria versão do Game Money, afinal tempo é dinheiro! Até a próxima.

sexta-feira, 24 de janeiro de 2020

Construindo um placar para jogos de mesa.

Se você é fã de um bom carteado (canastra, buraco, truco, etc.) ou um dominó com os amigos, sabe muito bem que anotar os resultados das partidas é essencial para salvar um pouco da sua memória pro jogo. Mas nem sempre você tem a disposição uma caneta e papel (o mundo anda muito tecnológico ultimamente) para isso e se tivesse a disposição um aplicativo para a contagem dos pontos das partidas desses jogos, seria incrível, não é mesmo!? Seus problemas acabaram, o post de hoje é voltado a construir esse aplicativo usando Appinventor2, que pode ser encontrado o modelo em: ai2.appinventor.mit.edu/?galleryId=5965204793458688


Como você pode ver na imagem acima, existem duas possibilidades de construção da marcação de placares: digitando os pontos obtidos somando eles ao final e clicar nos valores pré-estabelecidos para fazer a soma dos pontos. Vamos entender como cada um deles foi construído?

Na primeira opção, temos a construção de um placar com campos de entrada numéricos (essa opção está na área de designer nas propriedades da caixa de texto) que serão coletados e transformados em valores para serem somados de acordo com a variável global a que pertencem. Importante ressaltar que para diminuir o placar (ou seja subtrair do total) deve-se colocar o simbolo do negativo na frente do valor digitado, porém o placar inicial começa zerado por padrão:


Na segunda opção, temos a construção de um placar com botões com os principais valores numéricos positivos e negativos (+1, -1, +10, -10, +100, -100) e que irão alterar o valor do placar diretamente, sem necessidade de digitação de valores: 


Com isso finalizamos a construção do aplicativo de marcação de pontos de jogos de mesa. É possível você fazer outras customizações, tais como acrescentar mais do que dois times ou focar em placares para outros tipos de jogos de mesa. Deixe nos comentários suas impressões sobre o aplicativo e como você montou a sua versão. Até a próxima!

quarta-feira, 22 de janeiro de 2020

Construindo um game de naves espaciais.

No post de hoje iremos construir um game de batalhas entre naves espaciais e que pode ser baixado o modelo em: ai2.appinventor.mit.edu/?galleryId=6701208106041344. O objetivo nesse game é apenas desviar das naves inimigas, que com o passar do tempo o nível aumenta e, faz com que as naves cheguem mais rápido ou mudem completamente sua aceleração. O game só termina quando sua nave (a do jogador) encosta na dos inimigos e fica salvo o seu placar máximo.


Ao jogar o game percebemos que existem dois tipos de naves que se movimentam de formas diferentes:
  • Naves inimigas: se movimentam no eixo Y, descendo em direção da sua nave do jogador e repetindo o processo quando alcançam a borda. Além disso, quando tocam na nave do jogador dá-se o fim do jogo:

  • Nave amiga (sua nave): se movimenta ao longo do eixo X (com valor fixado em Y) que possui dias interfaces com o usuário diferentes: usando o botão (nível fácil ou game 02) ou usando o toque do dedo para deslizar (níveis médio e difícil ou game 01):
Todos os níveis (fácil, médio e difícil) do game são baseados em fases contínuas (como foi dito acima) que acabam acelerando e dificultando propositalmente  o game, mas existe uma diferença entre os game 01 (nível fácil) e game 02 (níveis médio e difícil):

  • No game 01, as naves inimigas se movem de acordo com a programação que gera um número aleatório entre um e cinquenta divididos por cinco para cada um deles e, sempre que muda a fase, muda o número aleatório gerado para cada uma delas, tornando o game nada linear ao ser jogado. Além disso, a sua nave (a do jogador), aumenta de tamanho conforme o nível avança, até um limite máximo em que acabará encostando em uma das naves inimigas e temos o fim do game.
  • No game 02, as naves inimigas se movem de acordo com três intervalos numéricos diferentes que são sorteados apenas ao iniciar o game (variável global Dados) e que vão aumentar a velocidade de acordo com o nível (quanto maior o nível alcançado, maior a velocidade). Esse modo do game acaba sendo mais linear que o primeiro, mas existe uma chance em três do game ter a velocidade das naves trocadas ao ser reiniciado.

Isso é o básico para criar a movimentação em um game de naves espaciais. É possível fazer customizações referente a personalização de novas fases ou fazer aprimoramentos, tal com, ter a possibilidade de atirar com a nave. Todas essas possibilidades são com você e nos vemos nos próximos posts. Até a próxima!

segunda-feira, 2 de dezembro de 2019

Customizando um jogo da memória no AppInventor2

Hoje iremos mostrar como é possível customizar um jogo da memória no AppInventor2 (ele está disponível em: ai2.appinventor.mit.edu/?galleryId=5991369509830656) com poucos passos (caso queira entender a programação utilizada, em um futuro post iremos detalhar isso). O visual desse game pode ser visto abaixo:


Uma das possíveis customizações é usar novas imagens para o jogo da memória. Para carregar elas você deve ir na aba de Designer e na opção Mídia, carregar os arquivos de imagem que você quer, lembrando de delatar os antigos e de salvar imagens leves pois os quadros do jogo da memória são pequenos:


Como podemos ver acima, é necessário que os nomes na entrada da programação sejam os mesmos que os das imagens carregadas (você pode digitar novos nomes e eles não precisam estar ordenados). Note que o nome de cada imagem deve aparecer duas vezes na programação justamente por se tratar de um jogo da memória que funciona por pares de imagens.
Agora vamos falar de outra possibilidade de customização, que é a de alterar o quantitativo de níveis, o tempo disponível por nível e a quantidade máxima de cliques. Para isso, devem ser alterados os valores nas variáveis globais destacadas (em verde, vermelho e laranja) na figura abaixo (lembre-se de deixar valores coerentes para não tornar o game impossível de ser jogado):


Como você pode ver acima na figura a direita, tanto o tempo disponível quanto a quantidade máxima de cliques dependem diretamente de uma fórmula de calculo baseada no nível e esta pode ser alterada de modo a aumentar ou diminuir a dificuldade (destacado na cor vinho). Faça uns testes e veja qual são os melhores valores a serem implementados. Você deve ter notado ainda, que existe uma outra tela com um jogo da memória secreto (Screen2), do qual podem ser feitas alterações parecidas com as listadas acima, embora lá o código esteja simplificado para possuir apenas um contador de tempo (60 segundos).
Agora você deve estar se perguntando como alterar o quantitativo de opções para o jogo da memória de modo a inserir mais ou menos duplas de figuras. Isso exige um pouco mais de esforço, mas não é complexo! Observe as dicas dadas na figura abaixo:


E com isso finalizamos algumas possibilidades para construir o seu próprio jogo a memória. Fique a vontade para usar o projeto e o alterar a vontade. Não esqueça de deixar nos comentários as suas impressões e até a próxima.

segunda-feira, 25 de novembro de 2019

Correção de tela inicial no AppInventor2

Aposto que já aconteceu com você: "Você fez um aplicativo da hora no AppInventor2 e quando está dando os retoques iniciais percebe que esqueceu de fazer a tela inicial ou introdutória". Isso é uma situação extremamente incomoda no AppInventor2 pois por padrão ele inicial sempre na tela "Screen1" sem possibilidade de alterar qual sera a tela inicial do aplicativo. Se você procurar no Youtube, existem vídeos falando em como baixar essa versão em um .apk e ao abrir o código no bloco de notas você pode fazer a alteração via código, porém dá um trabalhinho. Mas no post de hoje vamos apresentar uma possibilidade um pouco mais elegante que depende apenas de você programar via blocos de códigos.
Para usar esse método de mudança de screen inicial vamos usar o TinyDB, que é uma ferramenta de armazenamento de dados dentro do próprio aplicativo, da qual você pode saber um pouco mais nesse post: https://vemfazermatematicaegames.blogspot.com/2018/06/appinventor-2-construindo-um-placar.html. Para usar o TinyDB você "arrasta" ele para dentro do celular em programação conforme a figura abaixo:


Para esse exemplo, teremos duas telas sendo trabalhadas em paralelo: "Screen1" (tela inicial padrão do AppInventor2 que não será mais a padrão no aplicativo construído) e "Inicio" (tela criada posteriormente que no aplicativo construído se tornará a inicial). Dito isso, você deve ter o TinyDB presente nessas duas telas e construir a programação exatamente como a mostrada na figura abaixo:


Note que na parte indicada pela seta laranja é onde você deve encaixar o início da programação anteriormente construída na "Screen1". Sugiro inclusive que você deixe na forma de procedimento para não carregar por demais esse bloco pois ele precisa ser ágil.
Mas afinal de conta o que essa construção faz? Ela apenas criou um contador entre as duas telas (usando o TinyDB) na qual sempre que o aplicativo iniciar obrigatoriamente pela "Screen1", ela irá redirecionar automaticamente para a tela "Inicio" por não ter o valor armazenado no TinyDB igual a 1. Esse valor é gerado apenas na situação em que estamos na tela "Inicio" e ao apertar o botão de Iniciar (Botão1) temos esse valor igual a 1 no Tiny DB. Após clicado no botão Iniciar voltamos a tela "Screen1" executando as ações previamente construídas que estão designadas no "se então" construído. Simples, não é mesmo? Essa construção pode ser utilizada sempre, desde que respeitado os nomes construídos ou fazer as adaptações necessárias.
Espero que essa dica seja útil para você assim como está sendo para mim e até a próxima!

quinta-feira, 14 de novembro de 2019

Comandando seu personagem por voz usando o ML

Que tal construir um game no Scratch  em que você possa dar as instruções por comandos de voz? Gostou da ideia? Então esse post é para você. Usando o MachineLearningForKids (ML abreviado) é possível gravar sons (além de reconhecimento de fotos, textos, etc.) cuja integração é realizada com o Scratch e viram blocos do tipo Extensão. Para acessar você deve ir no site do ML (https://machinelearningforkids.co.uk/) e criar a sua conta (é possível usar sem registro, mas não fica salvo deu projeto depois que fechar o navegador), em seguida você deve clicar em "Projetos" (destacado em vermelho), conforme figura abaixo:


Em seguida, clique no bloco "Adicionar um novo projeto" (destacado em azul) dando o nome do projeto e o tipo, no caso, aqui usaremos a voz. Após salvar, clique no nome do projeto escolhido (flecha azul) e você irá para a próxima janela (na figura acima a direita) onde temos duas opções destacadas: "Treinar" (em verde) que é o local onde você irá gravar os sons de comandos) e "Faça" (em laranja) que é a janela que irá redirecionar para abrir os blocos no Scratch.
Na primeira opção "Treinar" você irá gravar dois tipos de sons: 
  • Background Noise (destacado em azul): é responsável por gravar sons de fundo que serão ignorados na hora de fazer o reconhecimento de voz;
  • Bloco Customizado (destacados em vermelho): esses blocos são criados na opção "Adicionar um novo rótulo" (flecha verde) no qual você dá o nome do bloco e depois em "adicionar exemplo" (flecha vermelha) você grava os sons de entrada (que vão ser reconhecidos) para o game.


Após gravar os sons desejados, volte para a página anterior e clique na opção "Faça" (destacado em laranja na primeira figura desse post), onde você deve clicar na opção "Scratch 3" e será redirecionado para uma nova página do Scratch, como podemos ver abaixo:


Em extensões (flecha em laranja) se encontram os blocos de comando de voz prontos para serem usados, porém é necessário seguir a construção destacada em vermelho, pois ela é responsável pela inicialização e carregamento das opções de reconhecimento de voz. As programações em verde são os blocos de voz criados anteriormente e com os valores de passo para o ator gato andar para a esquerda e para a direita.
Tome cuidado ao gravar os sons em ambientes com barulho excessivo pois mesmo com o "background noise", pode acontecer de novos sons aparecerem e dar ruim no seu projeto! Na hora de executar os comandos de voz fale calmamente e respeite o delay da programação pois senão o personagem pode não conseguir fazer o que você pede ou mesmo te ignorar.
Existem outros projetos prontos no site do ML que podem ser acessados nesse link: https://machinelearningforkids.co.uk/#!/worksheets. Agora é a sua vez de por a mão na massa e fazer seus projetos ficarem mais interativos. 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çõ...