Robô de quatro patas controlado por Arduino





Estou ativamente interessado em robôs, e recentemente fiz um robô bípede movido por Arduino. Depois disso, eu queria fazer um robô de quatro patas que imitasse animais como cães ou gatos. Neste artigo, falarei sobre como projetar e montar um robô de quatro patas.



O principal objetivo deste projeto foi tornar o sistema confiável o suficiente para que durante o experimento com diferentes andadas eu não tivesse que me preocupar com possíveis falhas no equipamento. Isso me permitiu levar o robô ao limite, dando-lhe andadas complexas e movimentos diferentes. Um objetivo adicional era fazer um protótipo relativamente barato usando componentes de prateleira e impressão 3D para prototipagem rápida. Juntos, esses dois objetivos fornecem uma base sólida para vários experimentos e o desenvolvimento de robôs de quatro patas mais especializados com objetivos mais específicos - navegação, prevenção de obstáculos, adaptação dinâmica de movimento.



























Etapa 1: informações gerais e processo de design















Desenvolvi o robô no software de modelagem 3D grátis da Autodesk - Fusion 360. Comecei importando os servo motores em torno dos quais desenhei pernas e um torso. Em seguida, projetei os suportes de retenção do motor para dar a eles um segundo ponto de fixação, diametralmente oposto ao eixo. Os eixos em cada lado do motor fornecem resistência à estrutura e eliminam a possibilidade de inclinação quando as pernas são carregadas. Os rolamentos são inseridos em suportes especiais e os parafusos são usados ​​como eixo nos suportes. Uma vez que os suportes são fixados aos eixos com uma porca, o rolamento fornece um ponto de articulação seguro no lado oposto do servo motor ao eixo.



Outro objetivo durante o desenvolvimento foi tornar o modelo o mais compacto possível, a fim de aproveitar ao máximo o torque dos servo motores. Os braços foram dimensionados para proporcionar mobilidade máxima com comprimento mínimo. Se eu os fizesse muito curtos, os colchetes colidiriam uns com os outros, o que reduziria a mobilidade. Se for muito longo, os motores teriam que aplicar torque desnecessário. Por último, mas não menos importante, projetei a caixa do robô com acessórios para o Arduino e outros componentes eletrônicos. Forneci montagens adicionais na parte superior do painel para uma futura expansão do projeto. Algum dia será possível adicionar sensores de distância, câmeras ou outros mecanismos para o robô, por exemplo, garras.



Etapa 2: materiais necessários











Lista de materiais necessários para criar seu próprio robô quadrúpede alimentado por Arduino. Todos os componentes são comuns e disponíveis.



Eletrônicos:

  • Arduino Uno x 1.
  • Servo motor Towerpro MG995 x 12.
  • Arduino Sensor Shield (tenho a versão 4, mas recomendo comprar a versão 5).
  • Fios de conexão, 10 pcs.
  • MPU6050 IMU (opcional).
  • Sensor ultrassônico de distância (opcional).




Componentes:

  • Rolamentos (8x19x7 mm, 12 unidades).
  • Parafusos e porcas M4.
  • Plástico para uma impressora 3D.
  • Plexiglass 4 mm.




Ferramentas

  • impressora 3d.
  • Cortador a laser.




A maior parte dos resíduos é gasta em 12 servo motores. Eu ainda recomendo não usar motores de plástico baratos, pois eles quebram facilmente. Exceto pelas ferramentas, tudo junto me custou US $ 60.



Etapa 3: componentes impressos















Os componentes do robô tiveram que ser especialmente desenvolvidos - para isso aproveitamos as capacidades do design digital e CAD. A maioria dos componentes é impressa em 3D e alguns são cortados em folha de acrílico de 4 mm. Impresso com 40% de cobertura, 2 perímetros, bico de 0,4 mm, camada de 0,1 mm de altura com PLA. Alguns dos componentes requerem escoras devido ao seu formato complexo com peças salientes, mas são acessíveis e fáceis de remover com alicate. Você pode escolher a cor de acordo com seu gosto. Abaixo está uma lista de componentes e links STL para impressão, bem como desenhos 2D para a cortadora.



Componentes para impressão 3D:

  • Suporte do servo motor femoral x 2.
  • Suporte do espelho do servo motor femoral x 2.
  • Suporte do servomotor de joelho x 2.
  • Suporte de joelho do servo motor do espelho x 2.
  • Suporte de rolamento x 2.
  • Suporte de rolamento do espelho x 2.
  • Pernas x 4.
  • Suportes do servo motor x 4.
  • Suportes de rolamento x 4.
  • Hardware Arduino x 1.
  • Fixação do sensor de distância x 1.
  • Fixadores de canto x 4.
  • Luva de rolamento x 4.
  • Arruela servo x 24.




Componentes para corte a laser:

  • Painel de montagem do servo x 2.
  • Painel superior x 1.




Há um total de 30 peças para imprimir, excluindo as várias lavadoras, e o número total de peças produzidas digitalmente é 33. Imprimi tudo em 30 horas.



content.instructables.com/ORIG/FBK/9YPN/KFZEKVED/FBK9YPNKFZEKVED.rar



content.instructables.com/ORIG/FZS/65E0/KFZEKVEE/FZS65E0KFZEKVEE.pdf



Etapa 4: preparação dos suportes de rolamento















Se você começar a montar com certos componentes, todo o processo será mais rápido. Você pode começar com os titulares. Para fazer isso, primeiro lixe os orifícios dentro do suporte e, em seguida, insira o rolamento nele nivelado. Tive de imprimir algumas arruelas em 3D porque os parafusos que vinham com os motores eram muito longos e iriam atingir os motores durante a operação.



Etapa 5: preparar os suportes do servo motor















Para montar a joelheira, basta inserir o parafuso no orifício e apertar com a porca. Esta junta atuará como o segundo eixo do motor. Passe os dois parafusos pelos orifícios da cinta da coxa e aperte com as porcas. Em seguida, pegue o suporte do servo dobrado e prenda-o à parte elevada do suporte com duas porcas. Finalmente, pegue a luva do rolamento e insira o rolamento nela. Pode ser necessário lixar um pouco a superfície interna da manga. As fotos anexas mostram as diferentes etapas da montagem.



Etapa 6: montagem das pernas































Com todos os suportes e suportes montados, você pode começar a montar suas pernas. Primeiro aparafuse os servomotores nos suportes com parafusos e porcas. Alinhe o eixo do motor com o parafuso que se projeta do outro lado.



Em seguida, conecte o servomotor de coxa ao servomotor de joelho com o suporte. Não aperte a porca ainda - mais tarde, pode ser necessário aparar algo. No outro lado, prenda os suportes com dois rolamentos aos parafusos salientes com porcas.



Colete todas as quatro pernas assim.



Etapa 7: montagem do torso



Agora você pode começar a montar o torso. Ele contém quatro servo motores proporcionando o terceiro grau de liberdade das pernas. Comece com 4 parafusos M4 para prender os motores ao painel de corte a laser.



Monte os servomotores de forma que os eixos fiquem voltados para fora - veja as fotos.



Em seguida, parafuse os suportes de canto em ambos os lados do painel. Eles ajudam a prender com segurança o painel de montagem do motor ao painel superior.



Com todos os suportes fixos, prenda o painel do motor ao painel superior. Comece com os parafusos externos localizados na frente e atrás. Os parafusos no meio prendem a montagem do Arduino ao mesmo tempo. Veja as fotos no início da seção. Anexe o painel do Arduino ao painel superior de forma que os parafusos passem pelos orifícios nos suportes de canto.



Etapa 8: juntando tudo



































Quando as pernas e o torso estão montados, o robô pode ser montado. Prenda as pernas aos quatro servomotores usando os suportes angulares presos ao suporte do servomotor femoral. Finalmente, use suportes de rolamento para apoiar o eixo oposto no suporte da coxa. Rosqueie o eixo através do rolamento e prenda com uma porca. Prenda os suportes de rolamento ao painel superior com parafusos e porcas.



O robô de quatro patas está pronto.



Etapa 9: fios e eletrônicos











































Decidi usar uma placa de expansão para conectar a blindagem do sensor, onde há contatos para os servo motores. Eu recomendaria sua 5ª versão - há um conector separado para conectar a alimentação externa. Mas minha placa não tinha essa opção. Eu o estudei e percebi que ele consome 5 V da placa Arduino (quando se trata de consumidores poderosos como servo motores, essa é uma ideia terrível que pode danificar o Arduino). Resolvi esse problema dobrando o pino de 5 V para que ele não se conectasse ao barramento de alimentação do Arduino. Dessa forma, você pode fornecer alimentação externa ao pino de 5 V sem danificar o Arduino.



A seguir estão as conexões para os servomotores e os contatos da placa. Nota: Hip1Servo são servo motores de quadril conectados ao torso. Hip2Servo - servo motores de quadril conectados à perna. KneeServo - servo motores de joelho.



Perna 1 (frente esquerda):



Hip1Servo - 2

Hip2Servo - 3

KneeServo - 4



Perna 2 (frente direita):



Hip1Servo - 5

Hip2Servo - 6

KneeServo - 7



Perna 3 (traseira esquerda):



Hip1Servo - 8

Hip2Servo - 9

JoelhoServo - 10



pés 4 (traseira direita):



Hip1Servo - 11

Hip2Servo - 12

KneeServo - 13



Etapa 10: configuração inicial











Antes de começar a programar movimentos complexos, é necessário definir as posições iniciais de cada servomotor. Eles darão ao robô um ponto de referência a partir do qual construir diferentes movimentos.



Para evitar danos acidentais aos motores, você pode primeiro remover os suportes de canto dos motores. Em seguida, faça upload do código para o Arduino (link abaixo). O código gira todos os servomotores para a posição de 90 °. Em seguida, aparafuse os suportes de volta para que todas as pernas fiquem absolutamente niveladas e os servo motores fixados no tronco fiquem perpendiculares ao painel superior.



Algumas juntas podem não estar perfeitamente alinhadas. Em seguida, você precisará corrigir os valores do array zeroPositions localizado na 4ª linha do código. Cada número representa a posição zero do servo motor correspondente (sua ordem é a mesma listada na lista de conexão do Arduino). Brinque com os valores até que suas pernas estejam perfeitamente retas.



Por exemplo, obtive os seguintes valores:



int zeroPositions[12] = {93, 102, 85, 83, 90, 85, 92, 82, 85, 90, 85, 90};




content.instructables.com/ORIG/F9K/WO73/KFZEKX13/F9KWO73KFZEKX13.ino



Etapa 11: um pouco sobre cinemática















Para forçar o robô a realizar ações úteis - caminhar, correr e outras - as trajetórias de movimento devem ser programadas para os servo motores. Essas são as trajetórias ao longo das quais o efetor se move (no nosso caso, a perna). Isso pode ser alcançado de duas maneiras:

  1. . , – .
  2. , . . , , . , , . . , , pos, , , , .




12:







Assim que terminar de conectar e inicializar, você pode começar a programar seu robô e fornecer trajetórias interessantes para realizar tarefas interessantes. No código da 4ª linha, altere os valores para aqueles que você produziu na etapa de inicialização. Depois de enviar o código, o robô deve começar a andar. Se você notar que as direções de algumas juntas estão invertidas, altere o valor correspondente na matriz na linha 5 (-1 para 1 e vice-versa).



content.instructables.com/ORIG/FA6/3ZNJ/KFZEKX4Y/FA63ZNJKFZEKX4Y.ino



Etapa 13: resumo e tempo dos experimentos



























O robô pode dar passos de 2 a 5 cm de comprimento. A velocidade de caminhada também varia. O robô é uma plataforma confiável para experimentar andamentos e outras coisas, como pular ou realizar tarefas complexas. Recomendo mudar as trajetórias de movimento, experimentando diferentes andamentos, observando como eles afetam o trabalho do robô. Eu forneci vários suportes na parte superior do tronco para que sensores como um telêmetro ou um sensor inercial possam ser fixados lá. Você pode tentar consertar algum tipo de aderência lá.



All Articles