8- Atividades Educacionais: Ligue as Palavras

Olá pessoal, tudo bem com vocês?

Hoje vamos explorar como automatizar uma atividade educacional que simplifica o trabalho de professores e educadores. Vamos criar uma rotina que permite unir palavras a imagens, facilitando a análise e o aprendizado dos alunos.

Vamos lá?


Tópicos:

  • Introdução
  • Posicionamento
  • Embaralhando as palavras
  • Múltiplos Arquivos
  • Fluxo para download

Introdução

Nesta etapa, o foco será criar uma rotina que automatize a atividade de ligar palavras a imagens.
Utilizando as imagens disponíveis e o modelo de atividade, uniremos as informações em uma atividade final.
O objetivo é que o aluno analise a palavra e a ligue com a imagem correspondente, simplificando o processo de ensino.


Posicionamento

Para realizar essa atividade, utilizaremos tanto textos quanto imagens.
Isso significa que duas variáveis são importantes: as posições das imagens e as posições dos textos.
Na caixinha de “configs” é possível ver as variáveis definidas. Ao definir essas posições, garantimos que a atividade seja clara e organizada para o aluno.

# Imagens
{
  0: { x: 145, y: 540 },
  1: { x: 145, y: 880 },
  2: { x: 145, y: 1230 },
  3: { x: 145, y: 1570 },
}

# Textos
{
  0: { x: 900, y: 620 },
  1: { x: 900, y: 960 },
  2: { x: 900, y: 1300 },
  3: { x: 900, y: 1615 },
}

Embaralhando as palavras

Para evitar que as palavras fiquem diretamente alinhadas com suas imagens correspondentes, implementamos uma função de sorteio.
Essa função embaralha as palavras, permitindo que ocupem posições aleatórias na atividade.
Isso adiciona um elemento de desafio e engajamento para os alunos.

function embaralharJsonPalavras(resultado) {
  // Extrai todas as palavras atuais
  const palavras = resultado.map(item => item.json.palavra);

  // Embaralha as palavras (Fisher-Yates)
  for (let i = palavras.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [palavras[i], palavras[j]] = [palavras[j], palavras[i]];
  }

  // Atribui as palavras embaralhadas de volta
  return resultado.map((item, index) => {
    item.json.palavra = palavras[index];
    return item;
  });
}

Múltiplos Arquivos

No N8N, é possível selecionar múltiplos arquivos, e utilizamos essa funcionalidade em nosso fluxo.
Combinamos informações de textos no formato JSON, permitindo mesclar conteúdos e associá-los às imagens. Isso torna o processo mais dinâmico e eficiente.

const mockup = $input.first().binary.data
const palavra = 
  $("redimensiona_imagem").first().json.palavra
const origem = $("redimensiona_imagem").first().json.origem
const image = $("redimensiona_imagem").first().binary[origem]
const position = $('redimensiona_imagem').first().json.position
const texts = $('redimensiona_imagem').first().json.texts

return [
  {
    json: {
      position,
      texts
    },
    binary: {
      mockup: mockup,
      image: image
    }
  }
];

Fluxo para download

Por hoje é só! Disponibilizamos o fluxo para download. Lembre-se de alterar para a sua planilha Google Sheets e ajustar o caminho onde estão os mockups criados. Até a próxima!


Postagens relacionadas