Índice:
- Etapa 1: o conteúdo do kit
- Etapa 2: O Projeto e Design
- Etapa 3: montagem da base
- Etapa 4: Montagem das peças do Spool Motion Engine
- Etapa 5: Concluindo a montagem do motor de movimento
- Etapa 6: Bônus: como personalizei o suporte para gerenciar o kit
- Etapa 7: Fiação e conexão ao Arduino
- Etapa 8: O Software e o Conjunto de Comandos de Controle
Vídeo: O dispensador de filamentos robóticos para Arduino: 8 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Por que uma ferramenta motorizada
O filamento de impressoras 3D - geralmente quase robusto - é puxado pela extrusora enquanto o rolo é colocado próximo à impressora, livre para girar. Tenho observado diferenças significativas no comportamento do material dependendo do nível de uso, referido a rolos de filamento de 1 kg. Uma bobina de filamento novo (cheia) flui quase bem, mas a força aplicada pela extrusora deve ser relativamente relevante: o peso é de pelo menos 1,5 kg.
O motor da extrusora (na maioria dos casos um passo Nema17) tem potência suficiente para fazer o trabalho, mas as duas engrenagens da extrusora empurrando o filamento para o lado da extremidade quente enquanto trabalham coletam as partículas do filamento devido às forças aplicadas; isso requer manutenção frequente da extrusora para evitar o entupimento do bico. Essas partículas tendem a se desprender e se misturar com o filamento limpo durante a alimentação, aumentando os problemas do bico e um desgaste mais frequente do bico; isso ocorre com mais frequência com bicos de 0,3 mm de diâmetro.
Quando o rolo de filamento é usado pela metade ou mais, suas espirais tornam-se menores e em algumas condições ambientais o filamento tende a quebrar com muita frequência. Longos trabalhos de impressão tornam-se menos confiáveis e estressantes; Não posso deixar a impressora trabalhando sozinha por uma noite inteira sem controlá-la. Controlando assim a alimentação do filamento por figuras motoras resolvendo uma série de problemas.
O kit está disponível em Tindie.com
Etapa 1: o conteúdo do kit
O kit inclui todas as peças impressas em 3D e a mecânica para montar o dispensador de filamento motorizado. Em vez disso, existem duas partes opcionais: o motor e a placa do controlador do motor.
Na minha configuração, usei um motor escovado com engrenagem de 12 V McLennan, mas qualquer motor com engrenagem de 37 mm de diâmetro pode se encaixar corretamente dentro do suporte do motor.
Os melhores desempenhos são alcançados com um escudo TLE94112LE Arduino da Infineon (análise completa aqui); esta placa controladora de motor DC pode suportar até 6 kits de dispensadores robóticos diferentes ao mesmo tempo.
Testei todo o sistema em um Arduino UNO R3 e no kit de inicialização XMC1100 da placa compatível com Arduino da Infineon e o sistema respondeu muito bem com ambas as placas de microcontrolador.
O uso da blindagem TLE94112LE é sugerido, mas não essencial. Qualquer controlador de motor DC para Arduino - incluindo seu próprio projeto! - pode funcionar bem com esta ferramenta
O kit é dividido em dois conjuntos de componentes, pois duas partes são construídas para funcionarem juntas. A plataforma de base suportará o rolo de filamento girando sobre os quatro rolamentos de roda livre. A base é fixada no sensor de peso para controlar o mecanismo giratório que aciona seu acionamento e também monitorar as condições do filamento: peso, metros e porcentagem. Muitas informações, bem como um conjunto de comandos completo, podem ser acessados no Arduino por meio de um terminal serial.
Ferramentas que você precisa
Para completar a montagem, você precisa de uma cola plástica robusta para algumas peças, uma chave de fenda e um conjunto de parafusos Allen.
Etapa 2: O Projeto e Design
Este projeto é a terceira evolução da série de dispensadores de filamento para impressora 3D Há alguns tempos criei a base giratória para otimizar o fluxo do filamento quando puxado pela extrusora de impressora 3D.
O segundo modelo incluiu um sensor de peso para monitorar em tempo real o uso do filamento com uma placa Arduino. Este último projeto inclui a liberação automática do filamento dependendo das necessidades do trabalho da impressora 3D. Baseia-se na variação virtual do peso quando a extrusora começa a puxar o filamento. Este evento aciona o microcontrolador por meio do sensor de peso e o rolo de filamento motorizado começa a liberar alguns centímetros de material, em seguida desacelera e para.
Os componentes foram exportados em formato STL e impressos em 3D, depois refinados e montados juntos. Eu criei um suporte personalizado para alinhar a peça de movimento à base. O trilho de alumínio mais longo também foi usado para apoiar o Arduino e a blindagem do motor para tornar toda a ferramenta compacta e fácil de mover.
Ao criar o design, segui uma série de premissas:
- Tornando o mecanismo automatizado quase simples e fácil de reproduzir
- Reduza o máximo possível o número de componentes imprimíveis não 3D para torná-lo
- Reduza o máximo possível o estresse aplicado à extrusora durante a impressão
- Use uma placa de microcontrolador de baixo custo e fácil de programar
- Use o sensor de carga de peso para manter sob controle o consumo de filamento e alimentação de filamento Gerenciar o ruído ambiental que interfere nas medidas de peso do filamento
Este é o resultado que alcancei.
Etapa 3: montagem da base
O primeiro passo é montar a base com o sensor de peso.
- Insira o pequeno tubo do eixo do rolamento no orifício do rolamento
- Coloque os dois discos separadores nas laterais do rolamento
- Introduza os componentes dentro do suporte de rolamento tamanho "U" alinhando os orifícios
- insira o parafuso allen de um lado e a arruela e a porca do outro lado fechando a porca sem muito esforço
Você deve repetir a operação em todos os quatro suportes de rolamento. Em seguida, teste a montagem: os rolamentos devem girar livremente.
Agora fixe com os parafusos Allen os quatro suportes de rolamento na base superior com os quatro orifícios de regulação. Alinhe os suportes do rolamento para mantê-los paralelos. Regule a distância dependendo da largura dos rolos de filamento.
A próxima etapa é montar a barra do sensor de peso segurando a base inferior e superior juntas. O sensor de peso tem dois parafusos Allen diferentes em ambos os lados e você deve orientá-lo de forma que a etiqueta de peso máximo seja legível quando a base estiver posicionada corretamente. A base inferior possui dois orifícios laterais extras para fixar o amplificador A / D do sensor de peso. O amplificador baseado no HX711 IC será alimentado e conectado à placa Arduino por meio dos quatro fios, conforme mostrado na folha de dados do sensor anexada.
A última etapa é a montagem da base superior completa sobre o sensor de peso já fixado na parte inferior.
O primeiro componente foi configurado!
Etapa 4: Montagem das peças do Spool Motion Engine
O procedimento mais fácil para montar o motor de movimento do carretel é montar separadamente os quatro componentes mais importantes e, em seguida, concluir a construção final:
O motor DC engrenado na caixa de transmissão do motor
O motor DC deve ser montado na parte central do suporte da estrutura; antes de aparafusar o motor deve-se decidir qual será o seu lado preferido onde colocar o lado das engrenagens para alinhar corretamente os dois braços que seguram o motor e a grande engrenagem acionada.
A grande engrenagem acionada
A engrenagem grande deve ser aparafusada com o bloco cônico truncado com os quatro parafusos Allen. Esta engrenagem será bloqueada no eixo de rotação por porcas; a parte cônica manterá o carretel de filamento que está travado do outro lado por uma contraporca semelhante dentro de outro bloco cônico truncado. Esta solução não apenas mantém o mecanismo de movimento no lugar, mas direciona todo o peso para a base e é o peso da tara do sistema.
O suporte da trava do carretel
Este é o bloco cônico truncado que, junto com o lado de travamento semelhante da engrenagem acionada, manterá o mecanismo de movimento no carretel de filamento. Por uma questão de tato, é o rolo de filamento que completa a construção enquanto o movimento de suporte de dois braços é livre para se mover do outro lado.
Conforme mostrado nas imagens, o suporte da trava do carretel é construído em duas partes. Insira primeiro a porca M4 na parte maior do bloco e depois cole a segunda parte (a tampa) mantendo os blocos juntos. A porca fica presa dentro do suporte da trava que será aparafusada ao eixo acionado roscado.
A caixa de rolamentos
A caixa de rolamentos tem duas funções: garantir um bom suporte às engrenagens de transmissão e um movimento suave e silencioso. Para montar a caixa de rolamento, siga estas etapas fáceis:
- Aparafuse a primeira porca M4 a uma das duas extremidades do eixo acionado do porta-carretel roscado
- Insira o primeiro rolamento
- Insira o separador
- Insira o segundo rolamento
- Aparafuse a segunda porca e trave moderadamente. O separador de plástico interno irá opor força suficiente para manter as coisas no lugar também para uso por muito tempo.
- Insira os rolamentos montados na caixa de rolamentos. Deve ser feito de forma forçada para garantir os melhores resultados, portanto não dilate muito o interior da caixa ao refinar as peças plásticas.
Estamos prontos para a montagem final dos componentes!
Etapa 5: Concluindo a montagem do motor de movimento
Estamos prestes a terminar a montagem da estrutura, então podemos passar para testar o movimento. Agora você precisa novamente de um pouco de cola. A caixa de rolamento - montada na etapa anterior - deve ser inserida no orifício porta-caixa do suporte de dois braços do motor e possivelmente colada antes de aparafusar a tampa da caixa.
Atenção: não cole a tampa da caixa, apenas parafuse. A tampa é importante para proteção contra poeira e deve ser removível para qualquer operação de manutenção futura.
Quando esta configuração estiver concluída antes de adicionar a engrenagem acionada (a maior) adicione o pequeno anel separador: ele mantém a engrenagem grande alinhada com a engrenagem do motor atuando como uma arruela para fixar o conjunto móvel acionado.
Em seguida, insira a engrenagem acionadora (a pequena) no eixo do motor. Observe que há um lado plano no motor, bem como no orifício central da engrenagem para manter a rotação da engrenagem acionada pelo motor CC.
Última etapa, insira a engrenagem acionada grande conforme mostrado nas imagens e trave-a no eixo roscado com duas porcas M4.
A construção da mecânica está concluída!
Etapa 6: Bônus: como personalizei o suporte para gerenciar o kit
Para manter o kit no lugar, fiz uma estrutura muito simples baseada em dois tubos quadrados de alumínio para suportar a base e a estrutura de movimento. A base foi fixada com quatro parafusos aos dois trilhos (cerca de 25 cm de comprimento) e com alguns pequenos suportes impressos em 3D fixei o motor de movimento livre para ser movido para facilitar a inserção e remoção do rolo de filamento.
Qualquer um pode escolher sua própria solução dependendo de como sua bancada está organizada.
Etapa 7: Fiação e conexão ao Arduino
Conforme explicado na etapa de conteúdo do kit, usei um protetor de motor Infineon TLE94112LE DC para Arduino e testei o motor no Arduino UNO R3 e no kit de inicialização Infineon XMC110.
Se você for controlar o motor (precisa de recursos PWM) com uma placa controladora DC de sua escolha, basta adaptar as instruções às especificações técnicas de sua blindagem.
Uma observação sobre o TLE04112LE Arduino Shield
Um dos limites que experimentei com outras blindagens de controle de motor para Arduino é que elas usam os recursos do mesmo microcontrolador (ou seja, pinos PWM e GPIO); isso significa que sua placa se torna dedicada a essas tarefas enquanto apenas alguns outros recursos (MPU e GPIO) estão disponíveis para outros usos.
Tendo a possibilidade de colocar as mãos no escudo TLE94122LE Arduino para testes de estrada, a vantagem mais evidente do IC em que a placa se baseia é apenas sua completude. A placa Arduino se comunica com o escudo por meio do protocolo SPI usando apenas dois pinos. Cada comando que você envia para o escudo é processado de forma autônoma pelo TLE94112LE IC sem consumir recursos MPU. Outra característica marcante da placa Infineon é a possibilidade de controlar até seis motores escovados com três canais PWM programáveis. Isso significa que o Arduino pode configurar um ou mais motores, iniciá-los e continuar trabalhando em outras tarefas. Esta blindagem revelou-se perfeita para suportar até seis rolos de filamento diferentes ao mesmo tempo, o movimento é apenas uma das tarefas a cargo do MPU. Considerando a possibilidade de gerenciar seis carretéis de filamento diferentes com um único Arduino + blindagem os impactos de custo do microcontrolador em cada controlador de filamento por menos de 5 euros.
O sensor de peso
Depois de fazer alguns experimentos, vi que era possível controlar todo o sistema - monitoramento e alimentação automática - com um único sensor; uma célula de carga (sensor de peso) é capaz de medir dinamicamente as variações de peso do carretel de filamento fornecendo todas as informações de que precisamos.
Usei uma célula de carga barata na faixa de 0-5 Kg junto com uma pequena placa baseada no amplificador AD HX711, um IC específico para gerenciar os sensores das células de carga. Não houve problemas de interface, pois está disponível uma biblioteca Arduino que funciona bem.
Três etapas para configurar o hardware
- Insira a blindagem na parte superior da placa Arduino ou do kit de inicialização Infineon XMC110
- Conecte os fios do motor aos conectores aparafusados Out1 e Out2 da blindagem
- Conecte a alimentação e os sinais do amplificador do sensor de peso HX711 AD aos pinos do Arduino. Neste caso, usei os pinos 2 e 3, mas todos os pinos livres estão bem.
Aviso: p ins 8 e 10 são reservados pela blindagem TLE94113LE para a conexão SPI
Isso é tudo! Pronto para configurar o software? Vá em frente.
Etapa 8: O Software e o Conjunto de Comandos de Controle
O software documentado completo pode ser baixado do repositório GitHub 3DPrinterFilamentDispenserAndMonitor
aqui, consideramos apenas as partes mais significativas e os comandos de controle.
Existe um motivo imposto pelo número de pinos disponíveis no Arduino UNO. Decidi controlar o sistema através do terminal serial USB; Como toda unidade motorizada é baseada em um sensor de peso, o controle de seis distribuidores de filamentos diferentes requer a leitura de dados de seis sensores de peso. Cada célula de carga "consome" dois pinos, os pinos 0 e 1 são reservados (Tx / Rx) para o serial e os pinos 8 e 10 são reservados para o canal SPI conectando a blindagem TLE94112LE.
Status do sistema
O software de controle funciona em quatro estados diferentes, definidos em filament.h:
#define SYS_READY "Pronto" // Sistema pronto
#define SYS_RUN "Running" // Filamento em uso #define SYS_LOAD "Load" // Roll carregado #define SYS_STARTED "Started" // Aplicativo iniciado // Códigos de status #define STAT_NONE 0 #define STAT_READY 1 #define STAT_LOAD 2 #define STAT_RUN 3
Status: Iniciado
Este status ocorre após uma reinicialização do hardware ou quando o sistema é ligado. A inicialização (e a chamada de configuração () quando o esboço começa) inicializa os valores padrão internos e deve ser iniciada sem nenhum peso extra na plataforma, como parte da sequência de inicialização é a aquisição da tara absoluta para atingir o peso zero físico.
Status: Pronto
O estado pronto ocorre após uma reinicialização suave (enviada do terminal serial). É semelhante à ressecção física, mas nenhuma tara é calculada; o comando reset também pode ser iniciado quando o sistema está em execução.
Status: Carregar
O status de carregamento ocorre quando o comando de carregamento é enviado pelo terminal. Isso significa que o rolo de filamento foi carregado e a tara dinâmica calculada. O peso exato do filamento é obtido pelo tipo de configuração do rolo subtraindo o peso da unidade do motor e o rolo vazio.
Status: em execução
Este status permite o cálculo automático do peso e o dispensador automático de filamentos.
Mensagens de terminal
A versão atual do software retorna mensagens legíveis por humanos ao terminal, dependendo dos comandos. As mensagens de string são definidas em dois arquivos de cabeçalho: commands.h (mensagens e respostas relacionadas ao comando) e filament.h (strings usadas pelo analisador para criar mensagens compostas).
Comandos
Dois arquivos diferentes estão envolvidos no gerenciamento de comandos: commands.h incluindo todos os comandos e parâmetros relacionados e filament.h incluindo todas as constantes e definições usadas pelo sistema de ponderação e pelo analisador.
Enquanto os cálculos internos são feitos automaticamente pelo software, implementei uma série de comandos para definir o comportamento do sistema e controlar manualmente alguns parâmetros.
Palavras-chave de comando diferenciam maiúsculas de minúsculas e devem ser enviadas apenas do terminal. Se um comando não for apropriado para o status atual do mesmo não for reconhecido, uma mensagem de comando incorreta será retornada, caso contrário, o comando será executado.
Comandos de status
Altere o status atual do sistema e o comportamento também será adaptado
Comandos de filamento
Usando comandos separados, é possível configurar as características do filamento e do rolo com base nos pesos e tamanhos mais comuns hoje disponíveis no mercado
Comandos de unidades
Estes são alguns comandos para definir a visualização das unidades de medida em gramas ou centímetros. Na verdade, é possível eliminar esses comandos e sempre representar os dados em ambas as unidades.
Comandos de informação
Mostrar grupos de informações dependendo do status do sistema
Comandos do motor
Controle o motor para alimentação ou tração do filamento.
Todos os comandos do motor seguem um caminho de aceleração / desaceleração. Os dois comandos feed e pull executam uma sequência curta, conforme definido em motor.h pela constante FEED_EXTRUDER_DELAY, enquanto os comandos feedc e pullc são executados indefinidamente até que um comando de parada não seja recebido.
Comandos do modo de execução
O status de execução aceita dois modos; O homem de modo apenas lê periodicamente o peso e o motor se move até que um comando de controle do motor não seja enviado. Em vez disso, o modo automático executa dois comandos de alimentação quando a extrusora precisa de mais filamento.
O princípio é baseado nas leituras de peso, contextualizadas para este ambiente particular. Esperamos que o consumo de filamentos seja relativamente lento, as impressoras 3D são quase lentas e as oscilações de peso normal dependem da vibração do ambiente (melhor se você não colocar tudo na impressora 3D)
Quando a extrusora puxa o filamento, a diferença de peso aumenta dramaticamente (50 g ou mais) em muito pouco tempo, normalmente entre duas ou três leituras. Essas informações são filtradas pelo software que "deduz" aquele novo filamento necessário. Para evitar leituras erradas, variações de peso enquanto o motor está funcionando são ignoradas.
Lógica de aplicação
A lógica do aplicativo é distribuída no principal.ino (o esboço do Arduino) ao longo de três funções: setup (), loop () e parseCommand (commandString)
O esboço usa duas classes separadas: classe FilamentWeight para gerenciar todos os cálculos de filamento e leitura do sensor por meio do IC HX711 e classe MotorControl fazendo interface com os métodos de baixo nível do escudo TLE94112LE Arduino.
configurar()
Lançado uma vez ao ligar ou após uma reinicialização do hardware, inicializa as instâncias das classes, configura o hardware e a comunicação do terminal.
ciclo()
A função de loop principal gerencia três condições diferentes.
Embora existam duas classes de sensores de peso e motores relativamente complexos, há a vantagem de que o esboço resultante é realmente fácil de entender e gerenciar.
- Verifique (no modo automático) se a extrusora precisa de mais filamento
- Se o motor estiver funcionando, verifique se há erros de hardware (retornados pelo TLE94112LE)
- Se houver dados seriais disponíveis, analise o comando
parseCommand (commandString)
A função de análise analisa as strings que vêm do serial e, quando um comando é reconhecido, ele é imediatamente processado.
Cada comando atua como uma máquina de estado impactando em algum parâmetro do sistema; seguindo esta lógica todos os comandos são reduzidos a três ações sequenciais:
- Envie um comando para a classe FilamentWeight (comandos de peso) ou para a classe MotorControl (comandos do motor)
- Executa um cálculo para atualizar os valores de peso ou atualizar um dos parâmetros internos
- Mostrar no terminal e saída de informações quando a execução for concluída
Instale a biblioteca HX711 Arduino, baixe o software do GitHub e carregue-o na placa Arduino e divirta-se!
Recomendado:
Óculos robóticos DEAL WITH IT: 5 etapas
Óculos robóticos DEAL WITH IT: Este projeto mostra como fazer óculos robóticos DEAL WITH IT. Incluído neste projeto está um suporte impresso em 3D que fará um atuador linear se combinado com peças de pinhão e rack robótico barato. Comece baixando o suporte aqui: https: //www.th
Os 5 carros robóticos Arduino que vão explodir sua mente: 11 etapas
Top 5 de carros robóticos Arduino que vão explodir sua mente .: Olá amigos neste tutorial, veremos os 5 carros-robôs inteligentes de 2020 com etapas completas, código e diagrama de circuito. No vídeo superior você pode ver o funcionamento de todos esses robôs. Nestes projetos, você fará interface com: " A borda da mesa evita
Adicionar polia (ponto de montagem do 2º eixo) em micro servos para projetos robóticos: 4 etapas
Adicionar Idler (Ponto de Montagem do 2º Eixo) em Micro Servos para Projetos Robóticos: Em projetos robóticos humanóides, servos são usados em articulações para mover diferentes segmentos do robô, na maioria das vezes é melhor montar cada segmento em 2 ou mais pontos em o eixo de rotação do servo para estabilidade e transferência adequada de torque..Sma
Usando o Arduino Uno para posicionamento XYZ de 6 braços robóticos DOF: 4 etapas
Usando o Arduino Uno para o posicionamento XYZ do braço robótico 6 DOF: Este projeto é sobre a implementação de um esboço Arduino curto e relativamente fácil para fornecer o posicionamento cinemático inverso XYZ. Eu tinha construído um braço robótico de 6 servo, mas quando se tratava de encontrar software para executá-lo, não havia muito lá fora, exceto para cust
Sistema de direção inteligente para carros robóticos usando motor de passo da unidade de disquete / CD antiga: 8 etapas (com fotos)
Sistema de direção inteligente para carros robóticos usando motor de passo da unidade de disquete / CD antigo: Sistema de direção inteligente para carros robóticos Você está preocupado em fazer um bom sistema de direção para o seu carro robô? Aqui está uma solução excelente usando apenas suas unidades de disquete / CD / DVD antigas. assista e tenha uma ideiaVisit georgeraveen.blogspot.com