Impressão 3D

Dispenser de Doces 3D Controlado por Arduino

Eletrogate 25 de novembro de 2021

Introdução

Neste artigo você aprenderá como construir seu próprio dispenser para doces, controlado por Arduino e com sua estrutura impressa em 3D. Será uma estrutura baseada no esquema de cartucho, onde cada slot do cartucho comportará um doce em seu interior, exceto o que ficará, por padrão, já na saída, impossibilitando a presença de algum objeto em seu interior. Seu acionamento será realizado por um botão, enquanto um motor de passo irá rotacionar o eixo. 


Como Funcionará o Dispenser

Como antes dito, o dispenser será baseado no esquema de slots, em que cada compartimento, exceto o que estará na saída, comportará um doce. Ao todo, a estrutura terá 8 slots, além de, nas laterais, espaços para a instalação de leds e do botão, assim como teremos um furo na parte superior que irá permitir a saída dos doces. Sempre que acionado pelo botão, o motor de passo que estará no eixo irá rotacionar este em um valor de 45°, colocando na direção da saída um slot que tenha um doce, resultando na queda deste. Um sistema baseado em leds será utilizado para indicar a atual capacidade de doces dentro dos slots. Serão 5 leds, que se acenderão seguindo o seguinte modelo:

  • 7 doces – 5 leds acesos;
  • 5 doces – 4 leds acesos;
  • 3 doces – 3 leds acesos;
  • 1 doces – 2 leds acesos;
  • Nenhum doce – 1 led aceso (vermelho).

Materiais Necessários para o Projeto Dispenser de Doces 3D Controlado por Arduino


Modelando o Dispenser

Para modelar o nosso dispenser, será utilizado o software Fusion 360, da Autodesk, entretanto, por não ser o foco do artigo, sua instalação poderá ser conferida neste outro artigo.

Siga os seguintes passo para modelar o dispenser (se tiver dúvidas, olhe as fotos):

1- Crie um novo sketch e desenhe um quadrado de 100mm de lado;

2- Crie uma borda neste quadrado, ou seja, um outro quadrado de lado de 102mm;

3- Na parte frontal deste quadrado, crie uma “entrada” retangular, formada de dois retângulos que possuem entre si uma distância de 1mm. A distância de uma parte lateral externa até a outra mais externa será de 42mm, e a distância da lateral do quadrado maior (102mm de lado) para a parede interna da entrada será de 41mm;

4- Na parte traseira, crie uma abertura de 21mm partindo de cada lado da parede;

5- Na parte traseira, partindo do início da abertura de cada lado, faça uma linha construtora de 12.50mm, e do fim dela, faça outra em direção ao interior do quadrado, medindo 42.089mm (o número estranho acontece em detrimento das dimensões do motor);

6- Em cada ponto das linhas anteriormente traçadas, crie uma circunferência de 3.90mm de diâmetro;

7- Finalize este sketch, e realize uma extrusão nos dois maiores quadrados anteriores de 1mm;

8- Para finalizar a base do dispenser, realize uma extrusão de 49.80mm nas paredes, e de 26mm nas circunferências;

9- Para criar a primeira tampa, crie um novo sketch e faça um quadrado de 100mm de lado e em cada ponta crie uma estrutura em formato de “L”, com cada lado medindo 15mm;

10- No centro da tampa, crie uma circunferência de 10mm de diâmetro, e 20mm afastado da borda, crie outra com 18mm de diâmetro;

11- Crie uma borda para este quadrado, com 1mm de espessura em cada um dos lados, resultando em outro quadrado com 102mm de lado;

12- Para finalizar a tampa, realize uma extrusão de 1mm na parte inferior, e de 6mm apenas nas peças em “L”;

13- Para o eixo, crie um novo sketch e faça duas circunferências, uma medindo 5.34mm, e outra medindo 7.34mm;

14- Para completar o eixo, realize uma extrusão de 56.70mm na sua borda exterior;

15- Para fazer os cartuchos, crie um novo sketch, e, partindo de um mesmo ponto, faça 3 circunferências, uma com diâmetro de 7.34mm, outra com 10mm e outra com 60mm;

16- Partindo de um ponto da circunferência maior, faça outras duas, uma com diâmetro de 18mm e outra de 20mm;

17- Utilizando a ferramenta de padrões circulares, e baseando-se no ponto central, replique a dupla de circunferências externas 8 vezes e partindo do ponto central, faça outra circunferência com 62mm de diâmetro;

18- Retire as linhas interiores das circunferências e traçe dois retângulos, com o lado mais estreito medindo 2mm, em cruz, ligando circunferências opostas;

19- Para finalizar os cartuchos, faça uma extrusão de 30mm;

20- A tampa dos cartuchos será feita baseada no desenho de dois círculos, um com diâmetro de 80mm, e no centro, um outro com 4.90mm de diâmetro;

21- Para finalizar esta tampa, realize a extrusão do círculo maior em 1mm, e do menor em 8.50mm;22- Para finalizar a modelagem, retorne para a base para perfurar o local dos leds e do botão. em um dos lados, faça 5 furos com 5.10mm de diâmetro, e do outro, faça um quadrado com 6.10mm de lado. Ao término do desenho, recorte estas partes.

Para exportar os modelos para impressão, transforme cada corpo em um componente, e depois clique com o botão direito em cada componente e exporte para outro arquivo, para assim ser transformado para .stl, algo ensinado neste artigo.

Nota-se também que o modelo foi produzido para só ter em seu interior o motor, os leds e o botão, então outras partes, a exemplo do Arduino, ficarão na parte exterior.


Imprimindo o Dispenser

Para imprimir cada peça do dispenser, será necessário um fatiamento da peça, ou seja, transformá-la em uma sequência de instruções para a sua impressora 3D. No projeto de hoje, o software utilizado foi o Ultimaker Cura. Visto que não é o foco deste artigo ensinar como utilizar o programa, você pode acessar este artigo para obter tais informações.

Para as impressões, foi utilizada uma altura de camada de 0.2mm, com uma velocidade de 60mm/s e infill (preenchimento) de 15%. Na base principal, em nosso caso, foi utilizado 0% de infill, o que resultou no encurvamento das paredes, por isso, é extremamente recomendado utilizar o infill em todas as peças. Veja abaixo como as impressões ficaram.

Para instalar os leds, solde fios em cada perna positiva deles, e solde todas as negativas em um fio comum, a fim de simplificar a conexão, do outro lado, solde um fio em um dos lados do botão, e outro no outro lado. Se necessário, utilize cola quente para fixar os leds e o botão no lugar.

Para montar a estrutura, coloque o motor de passo com os buracos destinados a parafusos nas hastes criadas no centro da base, com a ponta rotativa voltada para o interior da peça. Depois, cole o eixo no curaco central dos cartuchos, e encaixe a outra ponta do eixo no motor, ajustando corretamente o cartucho em relação ao buraco na base. Por fim, coloque a tampa.


Esquemático do Circuito

Confira abaixo o esquema do circuito do nosso projeto.


Programando o Sistema

O código comentado abaixo foi carregado no Arduino para podermos utilizar o dispenser. Para instalar a biblioteca necessária, utilize o atalho “Ctrl + Shift + i” para abrir o gerenciador de bibliotecas, e pesquise por “Stepper”.

Código:

/*
 * Dispenser de doces com arduino
 * Autor: Miguel Sena
 * blog.eletrogate.com
 */

#include <Stepper.h> //Inclusão da biblioteca

byte estoque = 7; //Define a capacidade
const int spr = 500; //Define a quantidade de passos por rotação do motor
Stepper mot(spr, 8, 10, 9, 11); //Cria o objeto do motor, de acordo com os parâmetros

void setup() {
  mot.setSpeed(60); //Defien a velocidade do motor
  pinMode(2, OUTPUT); //Define os leds como saída
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, INPUT_PULLUP); //Define o botão como entrada
  acende_leds(estoque); //Chama a função que controla os leds
}

void loop() {
  byte estado = digitalRead(7); //Lê o estado do botão

  if (!estado) {  //Caso o botão seja pressionado e o estoque for maior que 0:
    if (estoque > 0) {
      mot.step(-256); //Move o motor
      estoque--; //Diminui uma unidade do estoque
      acende_leds(estoque); //Chama a função dos leds
      delay(1000);  //Atraso de 1 segundo
    }
  }
}

void acende_leds(byte estoque) { //Função dos leds, recebe um número como parâmetro
  byte capacidade_leds[] = {1, 2, 3, 3, 4, 4, 5, 5}; //Quantos leds serão acesos ao depender da quantidade de doces no estoque (o estoque varia de 0 a 7)
  byte entradas_leds[] = {2, 3, 4, 5, 6}; //Pinos onde estão os leds

  for (byte x = 0; x <= 6; x++) { //Desliga todos os leds
    digitalWrite(entradas_leds[x], LOW);
  }

  for (byte i = 0; i < capacidade_leds[estoque]; i++) { //Liga os leds de acordo com o valor da capacidade atual
    digitalWrite(entradas_leds[i], HIGH);
  }
}

Resultado Final

E assim ficou nosso projeto após a montagem. Confira o funcionamento no vídeo a seguir:


Conclusão

No post de hoje você aprendeu a construir do zero um dispenser automático impresso em 3D e controlado por Arduino, partindo desde a modelagem no Fusion360 até o processo de impressão e programação. Esperamos que esse post contribua para seu aprendizado e expanda seus horizontes diante das infinitas possibilidades que a impressão 3D e o Arduino proporcionam.

Um forte abraço e até a próxima!

Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.


Sobre o Autor


Miguel Sena
@arduuno

Estudante e hobbista na parte de eletrônica e programação. Gosto de desenvolver projetos no Arduino e ESP-32 voltados á robótica e automação residencial, e de desenvolver projetos em Python, assim como a integração dele com o Arduino.


Eletrogate

25 de novembro de 2021

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!