Criando a sua própria Lixeira Inteligente: Programação e simulação com Arduino e Tinkercad (Parte 1)

O campo da Robótica Educacional é mesmo fascinante, fornecendo muitas possibilidades pedagógicas para professores e estudantes dentro da sala de aula. Dentre as possibilidades pedagógicas possíveis, temos as abordagens de Problem Based Learning ou Project Based Learning, que são, respectivamente, Aprendizado Baseados em Projetos e Aprendizado Baseado em Problemas, projetos interdisciplinares, que consistem-se na integração de diversas disciplinas durante a elaboração de um projeto de robótica, dentre outras abordagens possíveis. O projeto da Lixeira inteligente, apresentado pelo professor Ciro Chaves na MNR – Mostra Nacional de Robótica 2021 é um exemplo de projeto rico para aplicação das abordagens pedagógicas citadas. Mostraremos neste artigo, que será dividido em três partes, o procedimento para projeto da Lixeira Inteligente, seguindo um paradigma de projeto, simulação e implementação física do projeto, fornecendo para professores e estudantes a possibilidade de construir a sua própria lixeira inteligente, de forma prática e simples.

A preparação para o projeto: Discussão do tema

Partindo do paradigma do Pensamento Computacional e do Aprendizado Baseado em Projetos e Problemas, o primeiro passo é apresentar aos estudantes o problema em si. Na apresentação do problema, o levantamento de requisitos é necessário, como por exemplo: Qual é o problema que temos em mente para resolver? Que materiais e métodos serão necessários para a resolução deste problema? Qual o custo? Quanto tempo terei para resolver este problema? No caso do problema da Lixeira Inteligente, inicialmente a temática pode ser abordada pelo professor partindo de inferências sobre questões ambientais, como por exemplo a necessidade de separação do lixo, coleta seletiva, bem como pesquisas, pela Web, sobre as mudanças climáticas e poluição. Claro, a escolha da plataforma, sensores e atuadores usadas no projeto também devem ser feitas nessa etapa. Partindo do diálogo e brainstorming inicial, podemos colocar a mão na massa!

Reprodução: Banco de imagens Pixabay.

Mãos na massa: Montando o circuito no Tinkercad

Após a discussão inicial em sala de aula, estamos aptos a iniciar o nosso projeto. Um ponto muito importante é a simulação do protótipo. Com a simulação, é possível definir o código e testar o projeto antes mesmo de efetuar qualquer montagem física, o que poupa tempo e recursos. Além disso, é importante mostrarmos aos estudantes a importância de um bom projeto antes mesmo de começar a construir o protótipo. É na fase de projeto que dúvidas são levantadas e a melhor escolha de materiais e alocação de recursos é feita.

Para o projeto da lixeira inteligente, iremos utilizar a plataforma Arduino, que é uma placa eletrônica Microcontrolada de software e hardware abertos, com extensa comunidade contribuindo para a sua manutenção e evolução. Além disso, a ferramenta computacional Tinkercad será utilizada para simular o projeto. No Tinkercad, é possível escrever o código em linguagem de programação em blocos, além de podermos simular a ação dos sensores, atuadores e a montagem do protótipo em si.

Caso você queira aprender um pouco mais sobre programação do Arduino utilizando o simulador Tinkercad, assista a este vídeo, em que mostramos o passo a passo para iniciar com o Arduino no Tinkercad.

Acessando o Tinkercad e fazendo o login na sua conta, ou se inscrevendo para uma nova conta, no canto superior direito da tela, você irá abrir a sua janela de trabalho, onde poderá iniciar o seu novo projeto. Se preferir, você pode acessar diretamente o projeto desenvolvido por nós, que está disponível livremente na plataforma. Basta acessá-lo na janela abaixo e poderás visualizar o código, simular o projeto, visualizar a lista de materiais, dentre outras ações. Enfim, pode testar à vontade! No entanto, se preferir, podes acessar este link e copiar diretamente o projeto para a sua conta, já pronto para usar, no ícone que irá aparecer na tela disponível para copiar o projeto.

Continuando, com a sua janela do Tinkercad aberta, após efetuar o login ou inscrição da sua conta, acesse a opção circuitos, à direita. Após isso, você pode criar um novo circuito.

Reprodução: Tinkercad.

Com a janela aberta, iremos buscar os seguintes componentes para montar o nosso projeto:

ComponenteQuantidade
Arduino Uno R31 unidade
Sensor de distância ultrassônico 1 unidade
Posicional Microservo 1 unidade
Placa de ensaio pequena1 unidade
Reprodução: Do próprio autor.

Os componentes podem ser pesquisados na barra de busca abaixo, que é encontrada na barra lateral direita de componentes. Após isso, basta efetuar a conexão dos elementos com um simples “clique e arraste”.

Reprodução: Tinkercad.

Definindo variáveis para o código

O código pode ser programado de forma simples. Mas, antes, é importante compreender o princípio de funcionamento que deve ser fornecido ao nosso protótipo: Basicamente, teremos que monitorar o sensor de distância ultrassônico, conforme ele identifique um obstáculo, que é a própria mão do usuário da lixeira. O primeiro passo será definir uma variável. Entenda a variável como um espaço na memória do Arduino que irá permitir que você adicione algum dado. E, para entender ainda melhor, pense que a esse espaço físico na memória nos daremos um nome, da mesma forma que ocorre ao termos um endereço para a nossa casa, com nome da rua, número da casa, e etc. Portanto, na opção variáveis, devemos criar uma variável chamada distância.

Reprodução: Tinkercad.

Após isso, devemos configurar o nosso sensor ultrassônico: Iremos usar o bloco de definir o conteúdo da variável distância, ainda na opção de variáveis, como sendo uma entrada, que será ler sensor de distância ultrassônico no pino acionador 7 pino eco 6 e unidade em cm. Esta escolha de pinos foi a mesma que escolhemos para o nosso Arduino na montagem que disponibilizamos para cópia no Tinkercad.

Programando e entendendo o código: Teste condicional para acionamento do motor

Pois bem, agora é a hora de criarmos o código com a lógica de funcionamento da nossa Lixeira. Bom, a lógica é simples: Nós iremos utilizar um sensor de distância ultrassônico, que é explicado pelo Prof. Ciro Chaves neste vídeo, para efetuar a identificação de um obstáculo, que nada mais é do que a mão do usuário em frente à lixeira, pronto para colocar o lixo em seu lugar. Portanto, a lógica definida será a seguinte:

Reprodução: Elaboração própria via Lucidchart,

Inicialmente, o motor é definido na posição de 0°, que é a posição angular que mantém a tampa da lixeira fechada. O código deverá monitorar, dentro de um loop, se há a identificação de um obstáculo a uma distância menor que 20 cm do sensor de presença montado na lixeira. Se um obstáculo for identificado, o motor irá ser acionado para a posição de 180°, mantendo a tampa da lixeira aberta, e será um delay de 10 segundos ocorrerá até que seja verificado novamente a identificação de obstáculo, e somente quando não houver obstáculo, o código sairá do laço de repetição e a posição do servomotor é acionada novamente para a posição inicial de 0°. Sobre a condicional do laço de repetição, ela irá fornecer um desvio na execução do nosso código, à partir da análise da veracidade da condição: Enquanto a leitura da distância feita pelo sensor ultrassônico for menor que 20 cm, o motor deve manter-se na posição de 180° (tampa aberta). À todo momento, estaremos presos no loop de repetição, fazendo a leitura da distância e verificando se essa distância é menor que 20 cm. Quando a distância for maior, o programa irá sair do laço de repetição e voltar a posição do motor para a posição de 0° (tampa fechada). O fluxograma acima é uma boa forma de visualizar este princípio de funcionamento.

O código em linguagem de blocos programado na lixeira é mostrado abaixo. Inicialmente, para que seja possível visualizar as mudanças de estado, adicionamos alguns delays em pontos específicos do código, não só após a abertura da lixeira, para que o código pare a execução por um curto intervalo de tempo, tornando os movimentos mais previsíveis e visíveis. Em relação ao restante do funcionamento do código, além da já citada configuração da leitura do sensor de distância ultrassônico na variável distância e os delays adicionados em pontos específicos, implementamos o laço de repetição, que se repete enquanto a distância medida for menor que 20 cm, conforme já explanado acima. É importante, a cada iteração, atualizar o estado da variável distância, para que o código possa se atualizar periodicamente e poder sair do laço, quando a leitura do sensor não indicar obstáculo.

Reprodução: Desenvolvimento próprio no Tinkercad.

Caso queira ver em mais detalhes e com explicação ainda mais dinâmica, o Prof. Ciro Chaves desenvolveu um vídeo no YouTube, demonstrando o passo-a-passo da criação do código no canal da InovaEdu.tech do YouTube. Aprecie abaixo!

Reprodução: InovaEduTech Channel

Conclusão

Como podemos observar, uma temática simples é capaz de fornecer ricas possibilidades para aplicação no campo da robótica educacional. A possibilidade de trazer uma importante temática para a sala de aula, como questões ambientais relacionadas às mudanças climáticas e destinação do lixo, culminando em um projeto de robótica, com certeza engaja os estudantes no processo ensino-aprendizagem. Imagine você, professor, trazendo professores de ciências, geografia e matemática para debaterem as mudanças climáticas, a destinação do lixo no Brasil e o conceito de ângulos, todos aplicados a um único projeto de robótica? Esta é, com certeza, uma excelente oportunidade. Fiquem ligados, pois iremos dar continuidade nessa série, com as partes 2 e 3 da criação do protótipo da lixeira inteligente, para aplicação na sua escola. Ah, e se você gostou, não deixe de comentar abaixo e nos dizer o que achou. Estamos ansiosos para te ouvir! Até o próximo artigo, pessoal!