Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construa um servoatuador linear de precisão com feedback de posição – guia passo a passo


Neste tutorial aprenderemos como fazer um servoatuador linear. Ao contrário dos atuadores lineares regulares que se movem em uma direção específica quando uma tensão é aplicada, este servoatuador linear personalizado fornece movimentos precisos e repetíveis que podem ser facilmente controlados.

É chamado de servoatuador porque possui um sistema de feedback através do qual podemos controlar o movimento de saída do atuador com precisão.

Você pode assistir ao vídeo a seguir ou ler o tutorial escrito abaixo.

Visão geral


A entrada para controlar este servoatuador linear pode ser analógica ou digital. No caso de entrada analógica, pode ser qualquer tipo de potenciômetro como mostrado aqui. Um potenciômetro linear, um potenciômetro rotativo comum ou, por exemplo, um joystick que é novamente um potenciômetro rotativo e assim por diante.

No caso de entrada digital podemos controlar o atuador com um Transmissor RC. Claro, para esta configuração também precisamos de um receptor RC que sirva de entrada para o atuador.

Para ambos os modos de entrada analógica e digital, precisamos apenas de 3 fios para fazer uma conexão, 2 dos quais são para alimentar o dispositivo de entrada e o 3º é para o sinal de entrada.

Um recurso interessante que este servoatuador linear personalizado possui é que podemos definir uma posição inicial e final personalizada para a haste de saída, bem como ajustar a sensibilidade ou a rapidez com que o atuador responderá à nossa entrada. 

Porém, meu recurso favorito é a capacidade de controlar este atuador a partir de um PC ou laptop por meio de uma comunicação de porta serial. Podemos inserir valores em milímetros através do monitor serial do Arduino IDE e o atuador se moverá para essa posição.

O que é ainda mais legal, podemos fazer movimentos repetíveis, ou armazenar as posições, digitando “save” no monitor serial em cada posição que quisermos, e depois dizer ao atuador para repetir os movimentos em loop, digitando “run” no monitor serial.

Agora deixe-me explicar tudo o que você precisa saber sobre este servoatuador linear personalizado, como ele funciona e como eu o projetei, para que você também possa construir um por conta própria. 

Como funciona


Assim, o sistema de controle de malha fechada é baseado no sensor de posição rotativo magnético AS5600 e no controle PID implementado para acionamento do motor DC.

Na verdade, estou usando a mesma placa controladora de servo motor personalizada que fiz no vídeo anterior, que inclui seu próprio microcontrolador e tudo mais para transformar facilmente qualquer motor DC em um servo motor independente.

Você pode conferir esse tutorial para obter uma explicação detalhada de como funcionam um servo motor e um sistema de controle de malha fechada.  

Muito rápido, um servo motor é um sistema de controle de circuito fechado onde o sinal de entrada, ou a posição desejada, é comparado com a posição real do motor que obtemos do sensor de feedback de posição.

A diferença que ocorre, chamada de erro, é então processada no controlador que comanda o movimento do motor até atingir a posição desejada. 

Portanto, este servoatuador linear tem o mesmo princípio de funcionamento de um servomotor, mas com uma etapa adicional de conversão do movimento rotacional do motor em um movimento linear com a ajuda de um mecanismo de parafuso de avanço.

Projeto de Servo Atuador Linear


Aqui está o modelo 3D deste servoatuador linear, de onde podemos ver como tudo funciona.

O sensor de posição rotativo magnético AS5600 está localizado na parte traseira do atuador e monitora a rotação do parafuso de avanço. O parafuso de avanço que utilizo tem passo de 8 mm, o que significa que, a cada rotação completa, a porca do parafuso de avanço faz um movimento linear de 8 mm.

O AS5600 é um codificador de 12 bits, o que significa que pode produzir 4.096 posições por volta. Se dividirmos 8 por 4096, obteremos uma resolução de 0,001953 mm. Essa é a menor mudança de posição que o codificador AS5600 pode detectar. Isso é bastante impressionante, eu acho. 

O motor DC que utilizo é um motor de 12 V com caixa de redução incluída que produz 480 RPM. Se dividirmos 480 por 60, obtemos um valor de 8 rotações por segundo, e se multiplicarmos esse número por 8, porque o parafuso de avanço tem passo de 8 mm, obtemos uma velocidade linear de 64 mm/s do atuador.

Achei que estava certo, porque o curso máximo desta haste do atuador é de 150 mm, então levaria cerca de 2,5s da posição inicial até a final na velocidade máxima, ou cerca de 3s se incluirmos a aceleração e desaceleração. Portanto, usei a relação de engrenagem de 1:1 para acionar o parafuso de avanço. 

O projeto de todo o atuador linear é baseado no tamanho da PCB do controlador do servo motor customizado e no parafuso de avanço e na porca do parafuso de avanço, é claro. A PCB tinha dimensão de 40x40mm, então esse era o tamanho mínimo do bloco de cilindros.

A porca do parafuso de avanço de 8 mm tinha dimensão externa de 22 mm, então de acordo com ela projetei a haste. A porca e a haste são conectadas com quatro parafusos M3 e inserções roscadas. No topo da haste existe um rolamento que desliza sobre o bloco de cilindros e serve para guiar a haste e evitar que ela gire. 

Na tampa do cilindro de saída, temos 4 pequenos rolamentos que guiam a haste para fora do bloco de cilindros.

No geral, acho que o atuador linear ficou compacto o suficiente considerando todos os componentes utilizados.

Também consegui instalar uma micro chave fim de curso dentro do bloco de cilindros, que é usada para direcionar e definir a posição inicial do atuador.

Baixar modelo 3D


Você pode visualizar e explorar o modelo 3D deste servoatuador linear personalizado diretamente em seu navegador com Onshape. (você precisa de uma conta Onshape para isso, você pode criar uma conta gratuita para uso doméstico)

Você pode obter os arquivos STL necessários para impressão 3D, bem como o arquivo STEP deste modelo 3D em Cults3D.

Mais uma coisa a mencionar aqui é que você pode facilmente aumentar o comprimento máximo de deslocamento deste atuador linear, simplesmente aumentando o comprimento do bloco de cilindros e da haste. Escolhi essas dimensões porque queria que todas as peças cabessem em uma impressora 3D com uma mesa de impressão menor de 220x220mm. A maior parte aqui é a haste, que tem 215 mm de comprimento.

Impressão 3D


Minha nova Creality Ender-3 V3 SE fez um ótimo trabalho ao imprimi-la na orientação horizontal ao longo do eixo Y. Embora precisemos enviar um pouco, imprimir a haste nesta orientação contribuirá para uma operação mais suave e uma haste mais forte.

Ao imprimir em 3D, é importante usar o recurso Expansão Horizontal em seu software de fatiamento para compensar a expansão do filamento e obter peças dimensionalmente mais precisas.

Usei um valor de –0,1 mm, mas você deve fazer alguns testes de impressão para ver qual valor será adequado para sua impressora 3D. 

Imprimi o bloco de cilindros ao longo do eixo Z para evitar imprimir muito material de suporte. A Creality Ender-3 V3 SE também fez um ótimo trabalho nesta impressão.

Fiquei agradavelmente surpreso com a qualidade de impressão que esta impressora 3D oferece considerando seu preço. É super fácil de configurar a impressora 3D, possui nivelamento automático da cama, extrusora direta, ótima qualidade de impressão e velocidades de impressão aumentadas de até 250mm/s. Tudo isso por pouco menos de US$ 200 a torna uma das melhores impressoras 3D para quem está com orçamento limitado.

Confira esta impressora 3D na loja Creality ou Amazon . Confira também minha análise detalhada sobre ele no meu site.

Montagem


De qualquer forma, aqui estão todas as peças impressas em 3D, então podemos agora começar com a montagem do atuador linear.

Lista de peças


Você pode obter os componentes necessários para este projeto de Servo Atuador Linear nos links abaixo:

Mecânico:

Eletrônica:

Divulgação:Estes são links afiliados. Como associado da Amazon, ganho com compras qualificadas.

Montagem do mecanismo do parafuso de avanço


Primeiro, precisamos instalar o parafuso de avanço no bloco de base do cilindro. Para isso, primeiro precisamos inserir esta porca impressa em 3D que tem a mesma rosca do parafuso de avanço.

É um pouco difícil parafusar a porca no parafuso de avanço, pois é um ajuste apertado, mas é disso que precisamos aqui. Esta porca retém toda a força quando a haste está empurrando, portanto, quanto mais apertado o encaixe, mais força será capaz de segurar. Além disso, a porca também possui um orifício para inserção de um inserto roscado para fixação ao eixo por meio de um parafuso sem cabeça.

O parafuso de avanço é fixado no bloco de base do cilindro com a ajuda de dois rolamentos de esferas com diâmetro externo de 22 mm.

Na parte traseira está a engrenagem que aciona o parafuso de avanço. Esta engrenagem também possui uma rosca correspondente e dois furos para inserções roscadas para fixá-la ao parafuso de avanço com parafusos sem cabeça.

Esta conexão também é crítica porque transfere todo o torque do motor para o parafuso de avanço, portanto ele não deve escorregar. 

Para fazer esta submontagem, primeiro precisamos instalar os insertos roscados na engrenagem e na porca, bem como alguns no bloco de cilindros.

Aparafusamos a engrenagem e a porca na direção oposta, mas não muito apertadas, pois isso adiciona forças axiais aos rolamentos. Em seguida, usando alguns parafusos sem cabeça, podemos fixar a porca e a engrenagem ao parafuso de avanço.

Uma vez fixado, podemos notar que o parafuso de avanço ainda não está fixado no lugar. Precisamos adicionar esta placa ao bloco de cilindros, o que garantirá que os rolamentos permanecerão no lugar no bloco de cilindros.

Isto completa esta submontagem; o parafuso de avanço agora está firmemente no lugar enquanto pode girar livremente. 

A seguir podemos preparar a haste. A haste é oca em todo o seu comprimento para acomodar o parafuso de avanço. Para conectar a porca do parafuso de avanço e a haste, primeiro precisamos instalar alguns insertos roscados. 

Na parte superior da haste, precisamos instalar o rolamento guia com diâmetro externo de 13 mm e interno de 6 mm.

Colocamos o rolamento em um eixo oco de 6 mm impresso em 3D e o fixamos à haste com um parafuso escareado M3 de 10 mm de comprimento. A haste agora está pronta e podemos ver como ela deslizará nos trilhos-guia do cilindro.

Em seguida, precisamos fixar o cilindro ao bloco base do cilindro. Antes de fazermos isso, devemos instalar o micro interruptor de limite no lugar.

Primeiro precisamos soldar os fios nele, na conexão NC. Os fios devem ter cerca de 15 cm de comprimento. Os fios são passados ​​​​por um orifício na parte superior do cilindro, e então podemos fixar a micro chave fim de curso ao cilindro com a ajuda de dois parafusos M2 com 8 mm de comprimento.

Você precisará especificamente deste micro interruptor de limite para que o rolamento guia o acione no momento certo, sem bater em outra coisa.

Se você não conseguir encontrar o modelo exato da chave fim de curso, é claro, você pode modificar os furos e o mecanismo. 

Para fixar o cilindro ao bloco base, precisamos instalar algumas inserções roscadas aqui. Depois podemos fixá-lo no lugar usando dois parafusos M4 com 25 mm de comprimento. Devemos inserir apenas os dois parafusos superiores neste momento.

Os dois inferiores irão um pouco mais tarde ao instalar a caixa de engrenagens e a tampa da placa de circuito impresso, porque os mesmos orifícios são usados para fixar a tampa. 

Em seguida, podemos aparafusar a haste no parafuso de avanço. O rolamento guia deve ficar entre os trilhos guia do cilindro.

Ao girar a engrenagem na parte traseira, a haste se moverá para trás, até atingir o micro interruptor de limite. 

Então, podemos colocar a tampa do cilindro no lugar. A tampa do cilindro acomodará quatro rolamentos pequenos com diâmetro externo de 9 mm. Os eixos desses rolamentos podem ser impressos em 3D.

Devemos ter cuidado ao inseri-los no lugar, pois a parte onde vão esses eixos é bem pequena e pode quebrar facilmente. Aconteceu algumas vezes comigo, então certifique-se de que sejam fáceis de encaixar. Esses rolamentos apoiarão e guiarão a haste para uma operação mais suave.

A tampa do cilindro é fixada com quatro parafusos M4.

Instalando o motor CC


Ok, então podemos inserir o motor DC no lugar. Fixamos o motor DC com seis parafusos M3. Então podemos instalar a engrenagem no eixo do motor.

Para fixar a engrenagem no lugar, usamos duas inserções roscadas e parafusos sem cabeça. 

Depois que as engrenagens estiverem devidamente emparelhadas, podemos prosseguir com a fixação das engrenagens e da tampa da PCB na parte traseira do atuador linear. Para isso, primeiro precisamos instalar mais algumas inserções roscadas no bloco base do cilindro.

Então podemos conectar os fios ao motor DC. No meu caso, soldei-os diretamente ao motor DC.

O comprimento dos fios deve ficar em torno de 20cm. Existe um orifício na base do cilindro por onde devemos passar os fios do motor CC e da chave fim de curso.

Depois devemos também passá-los por dois suportes na tampa, que farão com que fiquem afastados do equipamento. 

Neste ponto, podemos fixar a tampa ao bloco base. Para isso, primeiro precisamos inserir os dois parafusos M4 na parte inferior, mas não totalmente.

Devemos deixar cerca de 2mm ou 3mm, para que possamos colocar o suporte da tampa no meio, e depois apertar esses parafusos junto com a tampa.

Toda essa operação é um pouco confusa, mas tinha que ser assim porque eu queria que a tampa fosse a menor possível e com uma única impressão, e os suportes da PCB estavam bloqueando o caminho dos parafusos.

Instalando a PCB do servocontrolador personalizada


De qualquer forma, assim que terminarmos a tampa, podemos instalar a placa controladora do servo motor personalizada no lugar. Como eu disse, é o mesmo controlador do vídeo anterior onde mostrei como você pode transformar qualquer motor DC em um servo motor.

O principal componente aqui é o codificador de posição rotativa magnética AS5600, que monitora a posição angular do ímã fixado no eixo de saída. Neste caso, fixaremos o ímã na engrenagem de saída do parafuso de avanço. O ímã fica perfeitamente alinhado com o sensor AS5600 quando a PCB é colocada.

Para fixar a placa de circuito impresso, primeiro precisamos inserir porcas M2 nas ranhuras dos suportes e, em seguida, apertar a placa de circuito impresso com quatro parafusos M2.

O que resta fazer agora é conectar os fios no lugar. Os fios do motor CC vão para o bloco terminal do motor e a polaridade deve ser verificada adicionalmente para corresponder ao programa do controlador.

Na verdade, antes de conectar o motor à placa de circuito impresso, podemos aplicar alguma tensão nele para verificar se o mecanismo do parafuso de avanço funciona corretamente.

Quanto aos fios da chave fim de curso, como não possuo pinos dedicados para essa finalidade, soldei o fio terra no bloco de aterramento do capacitor eletrolítico, e o fio de conexão NC no pino SCK, que é o pino digital número 13 do microcontrolador ATMEGA328.

O bloco de terminais de alimentação fica bem próximo à lateral da tampa, então há um orifício através do qual conectei um conector de alimentação de 5,5 mm.

Também adicionei um dissipador de calor ao driver do motor DC. Por fim podemos colocar a tampa de encaixe na parte de trás e pronto, finalizamos este projeto. 

Agora podemos conectar qualquer tipo de potenciômetro ou receptor RC aos pinos de entrada apropriados e podemos controlar a posição do atuador linear com ele.

Como já mencionei, no meu vídeo anterior expliquei detalhadamente como funciona esse controlador, seu esquema de circuito e como fiz a PCB.

Então, você deve conferir esse tutorial se quiser fazer esta placa controladora. 

Esquema do Circuito


Muito rápido, o componente principal é o sensor magnético AS5600, que monitora a posição da saída do atuador. Os dados do sensor vão para o cérebro desta placa servocontroladora, o microcontrolador Atmega328, que faz as contas e informa ao driver do motor DC DRV8871 como acionar o motor DC.

O driver do motor DC DRV8871 pode suportar até 3,6A de corrente de pico. Para alimentar a placa, podemos usar 12V que depois cai para 5V com um regulador de tensão ASM1117 para o Atmega328 e os outros componentes de 5V. Existe uma chave DIP de dois canais através da qual selecionamos o modo de entrada do atuador, seja analógico ou digital, ou através da comunicação da porta serial.

Um dos potenciômetros trimmer é usado para ajustar a sensibilidade do atuador, e o botão SDM é usado para definir as posições inicial e final.

Encomendei o PCB da PCBWay. Aqui podemos simplesmente fazer upload do arquivo Gerber, escolher as propriedades do nosso PCB e encomendá-lo a um preço razoável.

Projetei a PCB para ter 4 camadas, as do meio são para GND, o que aumenta um pouco o preço. Não alterei nenhuma das propriedades padrão, exceto a cor do PCB que escolhi para ser branco, e marquei que aceito a alteração do acabamento da superfície para ouro de imersão, se aplicável, sem custo extra.

Você pode encontrar e baixar o Gerber na comunidade de compartilhamento de projetos PCBWay, por meio da qual você também pode solicitar o PCB diretamente.

De qualquer forma, você também pode fazer esse projeto de atuador linear mesmo sem esse servo controlador customizado, é claro.

Você pode usar o sensor AS5600 em uma placa breakout em combinação com uma placa Arduino para controlar o motor DC.

Código


Agora vamos dar uma olhada no código deste servoatuador linear:
07 

Descrição do código


Assim, iniciamos o loop lendo o valor do codificador ou a posição atual do atuador e convertendo-o em milímetros.
16 
Então, se estivermos no “modo de comunicação serial”, lemos os dados recebidos que inserimos no monitor serial. Se a entrada for “salvar” armazenamos a posição atual do atuador, ou se estiver “limpar” limpamos todas as posições já armazenadas.
24 
Se a entrada for inteira ou um número, de 0 a 150, utilizamos esse valor como setpoint.
38 
Inserimos os valores em milímetros, mas para acompanhar o eixo giratório, estamos usando graus, portanto convertemos os valores em milímetros em valores de graus multiplicando por 45. Isso porque para um movimento linear de 1 mm, o parafuso de avanço deve girar 45 graus. Caso você tenha passo diferente no seu parafuso de avanço, esse número deve ser diferente. 

Se digitarmos “run”, com a ajuda de alguns loops while e for, o programa percorrerá repetidamente as posições armazenadas.
46 
Por outro lado, se estivermos no modo de controle do Potenciômetro e do receptor RC, verificamos se temos entrada analógica ou digital.
54 
Se for analógico, lemos a entrada analógica do potenciômetro e usamos esse valor como Setpoint, ou posição desejada para o atuador ir. Da mesma forma, se a entrada for digital, lemos os dados recebidos do receptor RC e usamos esse valor como ponto de ajuste. 

Em seguida, chamamos as funções personalizadas readEncoder() e runMotor() para ler a posição atual do atuador e executar o controle PID. Com a função readEncoder() lemos o valor atual do sensor em valores de ângulo, e com essas instruções if rastreamos em qual quadrante está a posição atual do eixo.
67 
Com essas informações, podemos acompanhar como o eixo gira e quando ele dará uma volta completa. O ângulo total é o valor de entrada para o controlador PID. 

Usando a entrada analógica do potenciômetro trimmer podemos ajustar o ganho proporcional do controlador PID e, finalmente, executamos o processo PID para obter um valor de saída.
79 
86 
Usamos esse valor de saída para acionar os motores DC com sinal PWM, esquerdo ou direito, ou em posição imóvel dependendo do valor de saída do controlador PID, ou dependendo do erro entre a posição desejada e a real que o encoder lê.

Os três termos do controlador PID, proporcional, integral e derivativo, são definidos na parte superior e, ajustando-os, podemos obter várias respostas de saída.
96 
A qualidade, quão bem o atuador funcionará ou responderá às nossas entradas depende diretamente desses valores.

Teste


Aqui estou testando a precisão do atuador. Ele volta ao lugar decentemente. Então comecei a mover a haste um milímetro de cada vez. O primeiro movimento foi de 0,8 mm em vez de 1 mm, mas os próximos 4 foram próximos o suficiente de 1 mm.  Então o movimento de 4 mm estava com cerca de 0,15 mm de diferença. 

Devemos notar que a haste tem uma folga de cerca de 0,25 mm. Esta folga ocorre entre o parafuso de avanço e a porca do parafuso de avanço. Além disso, provavelmente temos alguma folga nas engrenagens impressas em 3D, bem como nas engrenagens do próprio motor DC.  

Se aplicarmos uma força na haste e testarmos a precisão agora, é claro que obteremos um erro ainda maior, mas isso pode ser melhorado ajustando o controlador PID. 

No entanto, isso seria tudo para este tutorial. Espero que você tenha gostado e aprendido algo novo.

Processo de manufatura

  1. Diferentes tipos de cultura de manutenção para fins industriais
  2. Tiara
  3. Um guia rápido para torno CNC tipo suíço
  4. Diferentes tipos de equipamentos de soldagem a gás
  5. Usinagem de furos de alta velocidade e alta precisão
  6. Entendendo um sistema de injeção de combustível multiponto
  7. Brandy
  8. BME280 Temperatura, Umidade e Pressão na Tela Nextion
  9. Moeda de papel
  10. Robô evitando parede baseado em Raspberry Pi - FabLab NerveCentre