Finalmente chegamos ao episódio final da nossa série de Posts sobre o nosso projeto da Lixeira Inteligente! Depois de estudarmos como escolhemos os componentes, simularmos o circuito eletrônico e montarmos o circuito prático do protótipo com Arduino e Protoboard, iremos estudar como montar a lixeira em si, adicionando os componentes eletrônicos necessários para o seu funcionamento. Legal, né? Venham conosco e vamos aprender agora mesmo!
Quer se atualizar sobre os artigos anteriores desta série? Não perca a Parte 1 e a Parte 2 e monte já a sua própria Lixeira Inteligente, programada por você! Boa leitura!
Preparando a montagem da Lixeira
A escolha dos materiais para a construção da sua Lixeira Inteligente está diretamente ligada à escolha dos componentes eletrônicos. Por exemplo, quando escolhemos o motor Microservo que utilizamos no projeto, temos que estar atentos à carga que esse motor deve suportar. Por isso, para que haja torque suficiente para movimentar a tampa da lixeira, é importante que escolha uma lixeira leve e plástica, para possibilitar que possamos fazer os furos para encaixe dos componentes. Em nosso caso, escolhemos uma lixeira plástica comumente encontrada em supermercados, leve e fácil de desmontar e adaptar os componentes eletrônicos.
Basicamente, foi necessário fazer furos laterais para o encaixe do motor e passagens dos cabos, além de um furo frontal para encaixe do sensor de distância ultrassônico utilizado. Aliás, bem que os “olhos” deram uma cara para a Lixeira, não é mesmo? Acho que vale a pena até tentar desenhar um rosto, que tal? Vamos usar a criatividade?
A escolha deste modelo, de tampa móvel, é importante, como mencionado, para que o motor possa realizar o movimento. Temos que nos lembrar que este é um motor de pequeno porte. Além do mais, caso o interesse seja de usar uma lixeira maior ou mais pesada, provavelmente será necessário, além de um motor de maiores dimensões, uma fonte externa para alimentar a sua placa Arduino. Lembre-se de que a placa alimentada via cabo USB do seu Notebook não fornece energia suficiente para um motor maior desenvolver o seu torque. Fiquem atentos a este detalhe!
Em relação ao eixo do motor, atente-se de que estes motores possuem em seu kit pequenas peças plásticas com furinhos em que você pode encaixá-los em seu eixo. Utilize essa peça para poder acoplar uma haste metálica – pode ser um pequeno arame – no eixo e na tampa do motor, conforme detalhe nas imagens anteriores. Lembre-se de que este é apenas um dos métodos, e aqui a criatividade comanda!
Tudo pronto! Analisando o funcionamento
Muito bem! Depois de escolher o modelo e alocar os furos e montar o aparado para movimentar a tampa da lixeira, o seu protótipo está pronto para ser testado! Aqui, vai uma observação: A vida real é um tanto quanto diferente das simulações e do mundo “ideal”. É necessário ajustar os delays que ajustam os tempos de acionamento do atuador e o quanto a lixeira permanecerá aberta, por exemplo. É necessário, nesta etapa, efetuar testes práticos e ir ajustando o seu código, conforme testa. Ajuste, programe de novo o Arduino, e repita o processo até encontrar os instantes de tempo ideais para a sua execução!
Conclusão
Parabéns! Você acabou de montar a sua própria Lixeira Inteligente. Não é demais? Realmente, é fascinante quando algum projeto de Robótica toma vida própria e sai do campo da ideia e da simulação para a realidade. Agora você pode ter uma lixeira prática no seu quarto. Aliás, se você é professor ou professora de Robótica, pense em ideias para usar este projeto com seus alunos! Temos muitas abordagens de projeto interessantes que podem ser utilizadas para acompanhar essa construção. Use a capacidade de pesquisa dos alunos e peça para que eles façam pesquisas sobre a temática da reciclagem, responsabilidade ambiental, e, de quebra, oriente-os para construírem a própria lixeira inteligente deles!
Vimos, na Parte 1deste artigo, os procedimentos básicos para a seleção de componentes eletrônicos, compreensão da lógica e programação do código da nossa Lixeira Inteligente em linguagem de blocos. Foi possível simular no Tinkercad e atestar o princípio de funcionamento. Agora, iremos montar o protótipo físico que irá compor os componentes eletrônicos do projeto, exatamente como montamos em ambiente de simulação Tinkercad. Vamos lá?
Montagem do Circuito em Protoboard
Em primeira instância, devemos selecionar os componentes a serem utilizados para a montagem do projeto. Basta escolher os mesmos componentes utilizados para a simulação.
Componente
Quantidade
Arduino Uno R3 e cabo USB
1 unidade
Sensor de distância ultrassônico
1 unidade
Posicional Microservo
1 unidade
Placa de ensaio pequena
1 unidade
Cabos Jumper Macho/Macho
Reprodução: Do próprio autor.
Reprodução: Do próprio autor.
Em primeira instância, devemos efetuar a montagem do circuito na Protoboard, a matriz de contatos elétrica que comumente utilizamos para efetuar uma rápida conexão entre os elementos. Neste modelo utilizado em nosso exemplo, usamos uma versão mini da Protoboard, em que temos trilhas horizontais no centro para conexão dos componentes e trilhas verticais nas laterais para a alimentação do seu circuito, conforme indicadas pelas setas na imagem à seguir. Ao efetuar o encaixe dos componentes, devemos nos certificar que pontos de conexão de um mesmo componente mão estejam em uma mesma linha, mas em linhas diferentes. Esse detalhamento é, também, demonstrado na imagem à seguir.
Indicação de trilhas de alimentação (seta vermelha) e de encaixe de componentes (seta azul).
Forma correta de encaixe do componente sensor na Protoboard.
Forma incorreta de enxaixe do componente sensor na Protoboard.
Reprodução: Do próprio autor.
Para a montagem, basta seguir o esquemático disponibilizado na página do projeto, no site do Tinkercad. Reproduza exatamente conforme o esquema da simulação, com atenção ao detalhamento da alimentação da placa, sensor e motor. Ao plugar o seu Arduino no computador, a placa será automaticamente alimentada, e você deverá, agora, efetuar a conexão “+” e “-” nas trilhas da Protoboard, ligando, em seguida, aos terminais de alimentação do sensor ultrassônico e do Servomotor, conforme imagens à seguir.
Conexão dos cabos dos pinos Trigger, Echo e Alimentação (5 V e GND ou + e – ) nas trilhas correspondentes da Probotoard.
Conexão da alimentação da placa Arduino para a Protoboard, energizando as trilhas + e – .
Conexão do motor às trilhas de alimentação junto a conexão do pino de controle.
Reprodução: Do próprio autor.
Chegou a hora! Vamos carregar o código e programá-lo no Arduino!
Sim, chegou o momento mais esperado, que é quando iremos ver, na prática, o funcionamento do protótipo que irá compor a nossa Lixeira Inteligente! Aqui, vai a grande sacada: Depois de ter programado o seu código com a linguagem de programação em Blocos, você poderá converter na linguagem textual necessária para carregar o firmware no Arduino! Neste caso, iremos precisar converter a linguagem de blocos para a linguagem nativa da IDE do Arduino, que é uma linguagem quase integralmente baseada no C++, uma das mais conhecidas linguagens de programação em uso atualmente.
Para tal, basta selecionar a opção Blocos + Texto no menu, copiar o código e colar na IDE do Arduino, em um novo projeto. Fácil, não?
Reprodução: Do próprio autor.
Reprodução: Do próprio autor.
Reprodução: Do próprio autor.
Conclusão
É muito legal quando olhamos o nosso projeto, antes simulado, tomar vida com uma montagem prática, não é mesmo? E olhe que nem montamos a Lixeira Inteligente ainda… Pudemos perceber, com este exercício, algumas diferenças entre as variáveis no campo da teoria e no campo da prática. Na simulação, tudo ou mais constante, a tendência é que as coisas sempre funcionem como planejado. E, você, conforme esteja iniciando as suas montagens em Protoboard e suas aventuras em robótica, deve ter percebido que, volta e meia, aparecem alguns inconvenientes: Uma má conexão, conexão em uma trilha errada, algum cabinho jumper com mal funcionamento, etc. O importante aqui é manter o foco, concentração e disciplina para montar tudo certinho e ver o seu circuito funcionamento perfeitamente!
Para que possa saber em mais detalhes, preparemos esse vídeo abaixo, para que possas revisar todo o procedimento de montagem feito nesse artigo. Aguarde pela Parte 3, em breve!
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:
Componente
Quantidade
Arduino Uno R3
1 unidade
Sensor de distância ultrassônico
1 unidade
Posicional Microservo
1 unidade
Placa de ensaio pequena
1 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!
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!
Não se esqueça de conferir a Parte 2 do nosso artigo, já disponível: