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 Robô SCARA DIY com Arduino – Guia Passo a Passo

Neste tutorial, aprenderemos como construir um Robô SCARA baseado em Arduino. Mostrarei todo o processo de construção, começando do design do robô ao desenvolvimento de nossa própria Interface Gráfica de Usuário para controlá-lo.

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

Visão Geral

O robô tem 4 graus de liberdade e é acionado por 4 motores de passo NEMA 17. Além disso, tem um pequeno motor servo para controlar o efetuador final ou a garra do robô neste caso. O cérebro deste robô SCARA é uma placa Arduino UNO emparelhada com um CNC Shield e quatro drivers de passo A4988 para controlar os motores.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Usando o ambiente de desenvolvimento Processing, fiz uma Interface Gráfica de Usuário que possui tanto controle de Cinemática Direta quanto Inversa. Com a Cinemática Direta, podemos mover manualmente cada junta do robô para obter a posição desejada. Usando os sliders no lado esquerdo, podemos definir o ângulo de cada junta. A posição final do efetuador final, os valores X, Y e Z, são calculados e mostrados no lado direito da tela.

Por outro lado, usando Cinemática Inversa, podemos definir a posição desejada do efetuador final, e o programa calculará automaticamente os ângulos para cada junta para que o robô alcance essa posição desejada.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Na verdade, fiz o programa de forma que possamos usar ambos os métodos ao mesmo tempo, na mesma tela. Os ângulos das juntas, bem como os valores X, Y e Z do efetuador final, estão conectados e sempre presentes na tela.

Claro, o robô também pode operar automaticamente. Usando o botão "Save" no programa, podemos salvar cada movimento ou posição do robô. Então, quando pressionamos o botão "Run", o robô executará os movimentos armazenados em loop, do primeiro ao último, repetidamente. Também podemos ajustar a velocidade de movimento e a aceleração na Interface do Usuário.

Modelo 3D do Robô SCARA

Para começar, vamos dar uma olhada no modelo 3D.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Projetei este robô SCARA usando o 3DEXPERIENCE SOLIDWORKS, que também são os patrocinadores deste vídeo.

O 3DEXPERIENCE SOLIDWORKS é basicamente o SOLIDWORKS com capacidades na nuvem que obtemos através da plataforma 3DEXPERIENCE. Tudo funciona através da nuvem, então você ou qualquer pessoa da sua equipe pode ter acesso aos dados ou modelos a qualquer momento, de qualquer lugar do mundo. A plataforma 3DEXPERIENCE também inclui muitos apps úteis de produtividade e gerenciamento.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Por exemplo, o Project Planner é uma ótima maneira de organizar suas tarefas, definir prazos e acompanhar seu progresso. Com o app 3D Markup, você pode visualizar, explorar e fazer anotações nos modelos de qualquer dispositivo, como notebook, tablet ou até smartphone.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Também há um modelador 3D separado baseado na nuvem chamado SOLIDWORKS xDesign, que roda dentro do seu navegador. Pode ser usado em conjunto com Solidworks ou por conta própria e é ótimo para modelagem, em qualquer lugar, a qualquer hora e em qualquer dispositivo.

Então, muito obrigado à Solidworks por patrocinar conteúdo educacional como este. Se você gostaria de saber se o SOLIDWORKS e a plataforma 3DEXPERIENCE podem funcionar para você, confira os links abaixo.

Experimente 3DEXPERIENCE grátis com meu link especial: www.solidworks.com/HTMTryNow

Saiba mais sobre 3DEXPERIENCE SOLIDWORKS: www.solidworks.com/HTMLearnMore

Ok, vamos voltar ao modelo e explicar como cheguei a este design. Meu objetivo para o robô era que a maioria das peças fosse impressa em 3D. Então, tudo que você vê aqui pode ser impresso em 3D mesmo em uma impressora com mesa de impressão menor. As polias GT2 também são impressíveis em 3D. Usei design paramétrico para fazê-las, então, se necessário, podemos facilmente alterar seus tamanhos. Só temos que mudar o número de dentes, e todas as dimensões atualizarão automaticamente para fazer a polia no tamanho adequado.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Para a primeira junta, temos redução 20:1, alcançada em dois estágios com estas polias projetadas customizadas. As duas correias GT2 que uso aqui são de loop fechado com 200 mm e 300 mm de comprimento. As juntas do robô são compostas por dois rolamentos de esferas de empuxo e um rolamento radial.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Para a segunda junta, temos redução 16:1, alcançada da mesma forma, e a terceira junta tem redução 4:1 com apenas um estágio de redução único. As juntas são ocas, então podemos usar isso para passar os fios dos motores e micro interruptores. Para cada uma das correias, há slots nos quais podemos anexar polias tensionadoras para tensioná-las.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

A garra do robô é acionada por um motor servo MG996R e podemos facilmente trocar as pontas da garra para alcançar diferentes tamanhos de abertura. O eixo Z do robô é acionado por um fuso de rosca de 8 mm, enquanto toda a montagem do braço desliza em quatro hastes lisas de 10 mm e rolamentos lineares de esferas. A altura do robô simplesmente depende do comprimento das hastes lisas, que neste caso são 40 cm. O fuso de rosca precisa ser 2 cm mais curto para caber nesta configuração, ou, se não, o motor Z pode ser elevado em 2 cm usando porcas espaçadoras.

Você pode encontrar e baixar este modelo 3D, bem como explorá-lo no seu navegador no Thangs:

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Baixe o modelo 3D de montagem no Thangs.

Arquivos STL para Impressão 3D:

Impressão 3D das Peças do Robô

Certo, então podemos passar à impressão 3D das peças. Usei minha impressora 3D Creality CR-10 para imprimir todas as peças, que é uma impressora 3D realmente ótima com preço acessível. Como mencionei, as peças são projetadas para caber em uma impressora 3D menor também, por exemplo, a Ender 3.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Para a maioria das peças usei material PLA+, o azul, bem como PLA normal para as polias e a garra. Levou cerca de 120 horas para imprimir todas as peças a 60 mm/s de velocidade de impressão. A base foi a maior peça para imprimir, levando cerca de 32 horas. No entanto, se aumentarmos a velocidade de impressão, definitivamente podemos imprimir as peças mais rápido.

Veja também: Melhores Impressoras 3D para Iniciantes e Makers [Atualização 2021]

Aqui estão todas as peças impressas em 3D.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Uma observação rápida: imprimi todas com Expansão Horizontal de -0,1 mm ativada no software de fatiamento. Isso permite que as peças tenham dimensões mais precisas e encaixem melhor com as outras peças mecânicas como rolamentos, hastes e parafusos.

Montagem do Robô

Aqui está a lista de componentes necessários para montar este robô SCARA baseado em Arduino. A lista de componentes eletrônicos pode ser encontrada abaixo na seção do diagrama de circuito do artigo.

  • 4x Haste lisa – 10mm 400mm……… Amazon / Banggood / AliExpress
  • 1x Fuso de rosca – 8mm 400mm ………………… Amazon / Banggood / AliExpress
  • 4x Rolamentos lineares 10mm …………………..……. Amazon / Banggood / AliExpress
  • 1x Rolamento de esferas de empuxo 40x60x13mm …..… Amazon / AliExpress
  • 2x Rolamento de esferas de empuxo 35x52x12mm …..… Amazon / AliExpress
  • 5x Rolamento radial 8x22x7mm ……………. Amazon / Banggood / AliExpress
  • Vários comprimentos parafusos e porcas M3, M4 e M5

Aqui estão os tamanhos de parafusos necessários para este projeto:

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Começamos a montagem pela base. Aqui, primeiro inserimos um rolamento radial com 35 mm interno e 47 mm externo.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Então, vem o primeiro rolamento de empuxo que tem 40 mm interno e 60 mm externo. Este rolamento ficará entre a polia e a base.

No outro lado da base, usamos outro rolamento de empuxo do mesmo tamanho junto com o acoplador de junta.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Então, podemos acoplar a polia e a parte superior usando quatro parafusos M4 com 55 mm de comprimento. Precisamos usar porcas auto-travantes aqui e apertá-las adequadamente para que a junta seja robusta, mas ainda possa girar livremente.

Em seguida, precisamos instalar a polia do meio. Esta polia é emparelhada com a polia da junta com uma correia GT2 de 300 mm. Para instalar esta polia, usamos dois rolamentos 608, um no topo e outro na parte inferior da base. Então, usando parafuso M8 de 45 mm, uma arruela e uma porca auto-travante, podemos fixar a polia no lugar.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Em seguida, precisamos instalar o motor de passo para esta junta. O motor será emparelhado com a polia do meio com uma correia de 200 mm. Para fixá-lo à base, precisamos de quatro parafusos M3.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Antes de apertar os parafusos, precisamos esticar a correia o máximo que pudermos. Uma observação rápida: na verdade, substituí o parafuso M8 da polia do meio com a cabeça na parte inferior para que caiba dentro da base.

Neste ponto, devemos verificar se as correias estão apertadas o suficiente. Se não, podemos usar algumas polias tensionadoras para apertá-las melhor. Aqui estou usando um parafuso M5 de 35 mm e algumas porcas para fazer a polia tensionadora.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Ela pode ser anexada nos slots em ambos os lados da correia e assim podemos tensionar a correia quanto quisermos. Acabei tensionando a correia em ambos os lados. Com isso, a primeira junta está completa.

Passei à instalação do micro interruptor para esta junta. Antes de fixá-lo no lugar, já soldei os fios nele, pois é um pouco apertado aqui para fazer isso depois. Precisamos de um parafuso M3 de 20 mm e uma porca para fixar o micro interruptor no lugar.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

O acoplador de junta passa tão perto do interruptor que acabei usando apenas um parafuso para fixá-lo. No outro furo, apenas inseri um parafuso mais curto e colei na parte inferior. Dessa forma, o interruptor fica seguro o suficiente e funciona corretamente.

Ok, então agora podemos começar a montar o eixo Z. Primeiro, sobre o acoplador de junta, precisamos fixar a peça da placa inferior do eixo Z.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Sobre ela, podemos fixar os quatro grampos para as hastes lisas. Então, podemos inserir as hastes lisas no lugar. Elas devem encaixar firmemente e ir até a peça do acoplador de junta. Podemos então apertar as hastes com os grampos com alguns parafusos e porcas M4.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Neste ponto, precisamos inserir o rolamento para o fuso de rosca. Para terminar esta seção, podemos apenas deslizar uma tampa simples que esconderá tudo e dará aparência mais limpa ao robô.

Em seguida, podemos passar à montagem do primeiro braço do robô. O braço será feito de duas peças parafusadas juntas. A primeira peça é onde precisamos instalar os rolamentos lineares que deslizarão pelas hastes lisas. Inseri-los no lugar pode ser um pouco difícil, pois encaixam bem apertado.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Na verdade, isso depende de quão precisa sua impressora consegue imprimir as peças. Portanto, sugiro usar o recurso Expansão Horizontal ao imprimir as peças e ajustá-lo de acordo com sua impressora. No meu caso, não consegui encaixar dois dos rolamentos até o fim, mas não é grande problema.

Ok, então agora podemos emparelhar as duas peças do braço. Para isso, usaremos quatro parafusos M5 de 25 mm.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Em seguida, podemos instalar o segundo motor de passo. Aqui usarei uma polia GT2 impressa em 3D com 20 dentes. Fiz esta polia usando o design paramétrico que mencionei anteriormente e funciona muito bem. Aqui também precisamos fixar a porca do fuso de rosca no lugar.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Em seguida, podemos instalar as correias e polias para a segunda junta. Aqui precisamos de uma correia com 400 mm e uma com 300 mm. O procedimento para instalá-las é praticamente o mesmo explicado para a primeira junta.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Aqui, para a segunda e terceira juntas, na verdade usamos rolamentos menores comparados à primeira. O rolamento radial tem 30 mm interno e 42 mm externo, e o rolamento de empuxo tem 35 mm interno e 52 mm externo.

Antes de instalar o acoplador da segunda junta, precisamos inserir seis parafusos M4 de 20 mm nos slots hexagonais.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Eles servirão para fixar o segundo braço ao acoplador. Se necessário, para tensionar as correias, podemos usar o mesmo método explicado anteriormente com polias tensionadoras. Finalmente, fixei o segundo micro interruptor no lugar e a montagem do braço número um foi completada.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Continuei anexando o segundo braço ao acoplador da junta. Aqui usamos aqueles parafusos no acoplador que instalamos anteriormente, para fixar a parte superior do segundo braço.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Neste ponto, quis testar quanto backlash as juntas tinham. Claro, esperava algum backlash devido às correias, mas na verdade havia muito mais folga entre as duas partes das juntas. Percebi que o problema era que os furos onde os parafusos vão são ligeiramente maiores que os próprios parafusos. Para resolver o problema, precisamos de encaixe mais apertado entre os parafusos e os furos.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Então, no meu caso, alarguei os furos usando broca de 4,5 mm e usei parafusos M5, em vez dos parafusos M4, para fixar as duas partes da junta. No entanto, atualizei o modelo 3D para que os furos sejam 3,5 mm e você possa usar parafusos M4 para unir estas duas partes. Também voltei à primeira junta e fiz a mesma coisa. Agora a folga nas juntas é quase zero, exceto pelo pequeno backlash que temos das correias.

Certo, então agora podemos continuar com a montagem do segundo braço. Aqui, primeiro precisamos instalar o motor de passo para a terceira junta.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Estou usando um motor de passo menor neste caso para que o braço fique um pouco mais leve. Ainda é um motor de passo NEMA 17, mas com comprimento menor de 24 cm.

Novamente, temos o mesmo procedimento para instalar as correias e a polia para a terceira junta, exceto que aqui usamos apenas redução de estágio único com correia de 400 mm. Em seguida, antes de anexar esta parte inferior do braço à superior, precisamos conectar o motor e o micro interruptor e passar seus fios pela segunda junta.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Neste ponto, também precisamos inserir os fios para o efetuador final. No meu caso, inseri um cabo de 4 fios de um motor de passo que usarei para acionar o motor servo da minha garra, que requer 3 fios.

Em seguida, precisamos inserir porcas M4 nos slots do braço superior que servirão para fixar a parte inferior a ele.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Logo antes de uní-los, devemos passar os fios sob aqueles ganchos para que fiquem longe das peças móveis.

Os fios saindo da segunda junta podem ser pegos pelas porcas na polia, então fiz um suporte de fio simples para manter os fios longe das porcas.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Devemos arranjar os fios para passar de um lado do braço para evitar contato com as peças móveis. Finalmente, podemos inserir a tampa do primeiro braço.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

A tampa é fixada ao braço com junta de encaixe. Com isso, a montagem dos braços do robô está completa.

Então, a seguir, podemos inserir toda esta montagem nas hastes do eixo Z.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Então, precisamos preparar a placa superior do eixo Z que segurar as extremidades superiores das hastes. Aqui, primeiro podemos instalar o micro interruptor para o eixo Z, e fixar os quatro grampos à placa.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Antes de colocar a placa superior no lugar, primeiro inseri uma tampa simples, igual à de baixo, para esconder os grampos, parafusos e micro interruptor. Então, podemos inserir e apertar a placa superior nas hastes usando os grampos.

Em seguida, precisamos inserir o fuso de rosca no lugar.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

O que eu tinha era um pouco mais longo, então cortei para 38 cm usando serra manual para metal. Em seguida, podemos fixar o quarto motor de passo no lugar. Aqui precisamos usar um acoplador de eixo de 5 mm para 8 mm para conectar o motor ao fuso de rosca.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Finalmente, podemos passar os fios pela tampa e fixá-la à placa superior usando dois parafusos.

Ok, então, agora podemos fazer algum gerenciamento de cabos. Usei mangas para cabos para juntar os fios e limpar a bagunça. Também usei algumas abraçadeiras para isso.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Antes de colocar os fios nas mangas, é boa ideia marcar cada um deles para não conectar nada errado.

O que resta agora é fazer o efetuador final do robô. Podemos realmente fazer e anexar qualquer tipo de efetuador final ao robô. Escolhi fazer uma garra simples acionada por um motor servo MG996R. A garra é baseada em duas hastes de 6 mm nas quais os dois lados deslizam.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Os dois lados deslizantes são conectados ao servo com uma chaveta de servo, alguns links impressos em 3D e parafusos e porcas M3. Usei parafusos e porcas M3 para toda a montagem da garra. Você pode encontrar uma lista completa de parafusos e porcas necessários para este projeto no artigo do site. O espaço para fixar os parafusos e porcas é bem apertado, então você precisa de paciência para montar algumas dessas peças.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Porém, o que é bom neste design é que podemos facilmente trocar as pontas da garra. Elas podem ser mais largas ou estreitas ou ter formato específico. Podemos fixar a garra ao braço do robô usando alguns parafusos e porcas M4.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Finalmente, podemos conectar o motor servo aos fios que instalamos anteriormente.

E pronto, nosso braço robô SCARA está completamente montado. O que resta agora é conectar os componentes eletrônicos deste projeto.

Diagrama de Circuito do Robô SCARA

Então, usaremos uma placa Arduino UNO em combinação com um CNC Shield e quatro drivers de passo A4988.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Embora seja um robô e pareça mais complicado, essa é toda a eletrônica que precisamos para este projeto. Vale notar que, em vez de Arduino UNO, também poderíamos usar um Arduino MEGA em combinação com uma placa controladora de impressora 3D RAMPS.

No entanto, imprimi em 3D um case para o Arduino UNO que pode ser facilmente anexado à base do robô. Usarei resolução de quarto de passo para acionar os steppers, então coloquei alguns jumpers nos pinos apropriados. Agora podemos conectar os motores de passo e os micro interruptores ao CNC Shield.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Aqui está o diagrama de circuito deste robô SCARA e como tudo precisa ser conectado.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

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

  • Motor de Passo – NEMA 17………………
  • Driver de Passo A4988…………………..…
  • Arduino CNC Shield ………………………. Amazon / Banggood / AliExpress
  • Arduino Uno………………………………..…
  • Motor Servo MG996R………………….….
  • Interruptor de Fim de Curso …………………………………. Amazon / Banggood / AliExpress
  • Fonte de Alimentação DC …………………………. Amazon / Banggood / AliExpress

Para alimentar o robô, precisamos de fonte de 12V capaz de fornecer mínimo de 4A, mas sugiro fonte de 12V 6A. Claro, isso depende de como a limitação de corrente dos drivers de passo é definida, e sugiro defini-la no nível mais baixo possível.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

No final, apertei todos os fios no case, tentando deixar os dissipadores de calor dos drivers livres, e adicionei a tampa.

Finalizando a Montagem

O robô SCARA está agora completo, e o que precisamos fazer agora é fixar a base a algo. Para isso, usarei peça de madeira de 20 mm de espessura. Na parte inferior da base do robô, temos 12 furos disponíveis para fixação. Então, imprimi um desenho da base do robô e usei para fazer os furos na madeira.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Na parte inferior, fiz contra-furos, pois usarei parafusos de cabeça chata para que fiquem nivelados com a superfície da madeira. Inseri porcas M4 nos slots da base e então fixei a base de madeira à base do robô.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Agora, idealmente, para fixar o robô no lugar, poderíamos parafusá-lo à mesa ou usarei simplesmente grampos para esse propósito.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Então, é isso, nosso robô SCARA está agora completamente pronto. O que resta neste vídeo, porém, é ver como o robô funciona.

Veja também: Braço Robô Arduino DIY com Controle por Smartphone

Como o Robô SCARA Funciona

Existem dois métodos para controlar robôs em termos de posicionamento e orientação: cinemática direta e cinemática inversa.

Cinemática direta é usada quando precisamos encontrar a posição e orientação do efetuador final a partir dos ângulos das juntas dados.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Por outro lado, cinemática inversa é usada quando precisamos encontrar os ângulos das juntas para uma dada posição do efetuador final. Este método faz mais sentido em robótica, pois na maioria das vezes queremos que o robô posicione sua ferramenta em uma localização específica ou coordenadas X, Y e Z particulares.

Com cinemática inversa, podemos calcular os ângulos das juntas de acordo com as coordenadas dadas.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

As equações que usarei para tanto a cinemática direta quanto a inversa vêm de regras e fórmulas de trigonometria.

Programação do Robô SCARA – Código Arduino e Processing

No final do artigo, você encontra tanto o código Arduino quanto o código Processing.

Aqui está como as equações ficam no código, escrito no ambiente de desenvolvimento Processing.

// CINEMÁTICA DIRETA void forwardKinematics() { float theta1F = theta1 * PI / 180; // graus para radianos float theta2F = theta2 * PI / 180; xP = round(L1 * cos(theta1F) + L2 * cos(theta1F + theta2F)); yP = round(L1 * sin(theta1F) + L2 * sin(theta1F + theta2F)); }

Então, com cinemática direta, calculamos o valor X e Y do efetuador final, de acordo com os ângulos das juntas definidos dos dois braços do robô, theta1 e theta2, bem como seus comprimentos L1 e L2.

Por outro lado, com cinemática inversa, calculamos os ângulos das juntas, theta2 e theta1, de acordo com a posição dada ou coordenadas X e Y.

// CINEMÁTICA INVERSA void inverseKinematics(float x, float y) { theta2 = acos((sq(x) + sq(y) - sq(L1) - sq(L2)) / (2 * L1 * L2)); if (x < 0 & y < 0) { theta2 = (-1) * theta2; } theta1 = atan(x / y) - atan((L2 * sin(theta2)) / (L1 + L2 * cos(theta2))); theta2 = (-1) * theta2 * 180 / PI; theta1 = theta1 * 180 / PI; // Ajuste dos ângulos dependendo do quadrante da coordenada final x,y if (x >= 0 & y >= 0) { // 1º quadrante theta1 = 90 - theta1; } if (x < 0 & y > 0) { // 2º quadrante theta1 = 90 - theta1; } if (x < 0 & y < 0) { // 3º quadrante theta1 = 270 - theta1; phi = 270 - theta1 - theta2; phi = (-1) * phi; } if (x > 0 & y < 0) { // 4º quadrante theta1 = -90 - theta1; } if (x < 0 & y == 0) { theta1 = 270 + theta1; } // Calcular ângulo "phi" para que a garra fique paralela ao eixo X phi = 90 + theta1 + theta2; phi = (-1) * phi; // Ajuste do ângulo dependendo do quadrante da coordenada final x,y if (x < 0 & y < 0) { // 3º quadrante phi = 270 - theta1 - theta2; } if (abs(phi) > 165) { phi = 180 + phi; } theta1=round(theta1); theta2=round(theta2); phi=round(phi); cp5.getController("j1Slider").setValue(theta1); cp5.getController("j2Slider").setValue(theta2); cp5.getController("j3Slider").setValue(phi); cp5.getController("zSlider").setValue(zP); }

Dependendo de qual quadrante a posição é definida, fazemos alguns ajustes nos ângulos das juntas com estas declarações "if". Para esta configuração do robô, estamos calculando cinemática inversa com apenas dois elos. O terceiro ângulo que chamo de "phi" é usado para definir a orientação da garra.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

A Interface Gráfica é feita usando a biblioteca controlP5 para o IDE Processing. Com esta biblioteca, podemos facilmente criar botões, sliders, campos de texto e assim por diante.

Por exemplo, usamos os sliders no lado esquerdo para controlar os ângulos das juntas, e usando os campos de texto podemos inserir a posição onde queremos que nosso robô vá. Com cada ação que fazemos aqui com o programa, enviamos dados para a placa Arduino através da porta serial.

if (gripperValuePrevious != gripperValue) { if (activeIK == false) { // Verifica se modo cinemática inversa está ativo, Executa cinemática direta apenas se modo inverso estiver desligado ou false gripperAdd = round(cp5.getController("gripperValue").getValue()); gripperValue=gripperAdd+50; updateData(); println(data); myPort.write(data); } }

Estes dados incluem os ângulos das juntas, valor da garra, velocidade e aceleração, e indicadores para saber se clicamos nos botões save ou run.

public void updateData() { data = str(saveStatus) +","+str(runStatus) +","+str(round(cp5.getController("j1Slider").getValue())) +","+str(round(cp5.getController("j2Slider").getValue())) +","+str(round(cp5.getController("j3Slider").getValue())) +","+str(round(cp5.getController("zSlider").getValue())) +","+str(gripperValue) +","+str(speedSlider) +","+str(accelerationSlider); }

Todos esses dados vêm como uma String longa no Arduino. Então, aqui, primeiro precisamos extrair os dados dessa string e colocá-los em variáveis separadas.

if (Serial.available()) { content = Serial.readString(); // Ler dados vindos do Processing // Extrair dados da string e colocar em variáveis inteiras separadas (array data[]) for (int i = 0; i < 10; i++) { int index = content.indexOf(","); // localizar a primeira "," data[i] = atol(content.substring(0, index).c_str()); // Extrair número do início até a "," content = content.substring(index + 1); // Remover o número da string } /* data[0] - status botão SAVE data[1] - status botão RUN data[2] - ângulo Junta 1 data[3] - ângulo Junta 2 data[4] - ângulo Junta 3 data[5] - posição Z data[6] - valor garra data[7] - valor velocidade data[8] - valor aceleração */

Agora, com estas variáveis, podemos realizar ações com o robô. Por exemplo, se pressionarmos o botão SAVE, armazenamos os valores atuais dos ângulos das juntas em um array separado.

// Se botão SAVE pressionado, armazenar dados nos arrays apropriados if (data[0] == 1) { theta1Array[positionsCounter] = data[2] * theta1AngleToSteps; // armazenar valores em passos = ângulos * variável angleToSteps theta2Array[positionsCounter] = data[3] * theta2AngleToSteps; phiArray[positionsCounter] = data[4] * phiAngleToSteps; zArray[positionsCounter] = data[5] * zDistanceToSteps; gripperArray[positionsCounter] = data[6]; positionsCounter++; }

Se clicarmos no botão RUN, executamos os passos armazenados e assim por diante.

Para controlar os motores de passo, usei a biblioteca AccelStepper. Embora seja uma ótima biblioteca para controlar múltiplos steppers ao mesmo tempo, tem algumas limitações quando se trata de controlar um robô como este. Ao controlar múltiplos steppers, a biblioteca não consegue implementar aceleração e desaceleração, que são importantes para operação mais suave do robô.

stepper1.moveTo(stepper1Position); stepper2.moveTo(stepper2Position); stepper3.moveTo(stepper3Position); stepper4.moveTo(stepper4Position); while (stepper1.currentPosition() != stepper1Position || stepper2.currentPosition() != stepper2Position || stepper3.currentPosition() != stepper3Position || stepper4.currentPosition() != stepper4Position) { stepper1.run(); stepper2.run(); stepper3.run(); stepper4.run(); }

Consegui implementar aceleração e desaceleração com a biblioteca, mas não são tão suaves quanto eu queria.

Aqui estão os códigos completos Arduino e Processing para este projeto de robô SCARA Arduino:

Conclusão

Então, finalmente, uma vez que carregamos o código no Arduino, podemos rodar o programa Processing, conectar a energia e o robô SCARA começará a mover-se para sua posição home.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

A partir daí, podemos fazer o que quisermos com ele. Podemos brincar manualmente ou configurá-lo para trabalhar automaticamente. Claro, podemos anexar qualquer tipo de efetuador final e fazer coisas legais com ele. Por exemplo, podemos até anexar um hotend de impressora 3D ao robô e transformá-lo em uma impressora 3D, ou anexar uma cabeça a laser e torná-lo um cortador a laser. Planejo tentar estas duas ideias, então certifique-se de se inscrever no meu canal para não perdê-las em alguns dos meus vídeos futuros.

Antes de terminar este vídeo, gostaria de dar mais algumas notas sobre este projeto. Achei o robô não tão rígido quanto esperava.

Construa um Robô SCARA DIY com Arduino – Guia Passo a Passo

Acho que o problema é que quase todo o robô SCARA, o eixo Z e os braços são suportados apenas pela primeira junta. Todo o peso e as forças inerciais geradas ao mover podem causar bastante tensão na base onde a primeira junta está localizada, e como é apenas plástico, tende a dobrar um pouco. Além disso, estas correias não são livres de backlash, então reduzimos a rigidez do robô com isso também. No entanto, acho que o projeto geral é bom o suficiente para você aprender como robôs SCARA funcionam, e te dá coragem para construir um por conta própria.

Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo e confira minha Coleção de Projetos Arduino.

Processo de manufatura

  1. Construa Sensores de Objeto Personalizados para LEGO Mindstorms EV3: "Olhos" DIY Baseados em Luz
  2. Construa um Robô de Streaming de Vídeo Controlado por Internet com Arduino e Raspberry Pi
  3. Whitepaper: Desbloqueie Seu Potencial de Automação – 7 Passos Comprovados para Projetos de Robôs de Baixo Risco e Alta Recompensa
  4. Construa Sauron: O Robô Semi-Humanoide – Guia Completo com Arduino Mega 2560
  5. Monitore e Registre Energia com Arduino – Guia Passo a Passo (Dr. Wattson)
  6. Construa um Controle Remoto IR Universal com Arduino: Guia Passo a Passo
  7. Escolhendo o Robô SCARA Ideal: Guia Completo para Fabricantes
  8. LittleArm 2C: Braço Robótico Arduino 3D-Printado Durável para Educação STEM
  9. Porta Automática com Arduino e Sensor Ultrassônico HC-SR04
  10. 7 Passos para Construir um Roteiro de Automação Bem-Sucedido