Índice:

Cobra Robótica Bioinspirada: 16 Passos (com Imagens)
Cobra Robótica Bioinspirada: 16 Passos (com Imagens)

Vídeo: Cobra Robótica Bioinspirada: 16 Passos (com Imagens)

Vídeo: Cobra Robótica Bioinspirada: 16 Passos (com Imagens)
Vídeo: Bioinformática 2024, Novembro
Anonim
Image
Image

Fiquei inspirado para começar este projeto depois de ver vídeos de pesquisa de cobras robóticas que escalam árvores e enguias robóticas. Esta é minha primeira tentativa de construir robôs usando locomoção em serpentina, mas não será a última! Inscreva-se no YouTube se quiser ver desenvolvimentos futuros.

Abaixo, descrevo a construção de 2 cobras diferentes junto com os arquivos para impressão 3D e uma discussão sobre o código e algoritmos para obter um movimento semelhante ao de uma cobra. Se você deseja continuar aprendendo mais, depois de ler este instrutível, sugiro a leitura dos links na seção de referências na parte inferior da página.

Este instrutível é tecnicamente um 2 em 1, em que explico como fazer 2 versões diferentes de uma cobra robótica. Se você está interessado apenas em construir uma das cobras, ignore as instruções para a outra cobra. Essas 2 cobras diferentes serão doravante referidas usando as seguintes frases de forma intercambiável:

  1. Cobra de eixo único, cobra 1D ou cobra amarela e preta
  2. Cobra de eixo duplo, cobra 2D ou cobra branca

Claro que você pode imprimir as cobras em qualquer filamento de cor que desejar. A única diferença entre as duas cobras é que na cobra 2D cada motor é girado 90 graus em relação ao anterior, enquanto na cobra 1D todos os motores estão alinhados em um único eixo.

Um prefácio final é que, embora cada uma das minhas cobras tenha apenas 10 servos, é possível fazer as cobras com mais ou menos servos. Uma coisa a considerar é que com menos servos você obterá menos movimento bem-sucedido, e com mais servos você provavelmente terá mais sucesso com o movimento serpentino, mas você precisará considerar o custo, o consumo de corrente (ver comentários posteriores) e o número de pinos disponível no Arduino. Sinta-se à vontade para alterar o comprimento da cobra; no entanto, lembre-se de que você também precisará alterar o código para compensar essa alteração.

Etapa 1: Componentes

Esta é uma lista de peças para uma única cobra, se você quiser fazer as duas cobras, você precisará dobrar o volume dos componentes.

  • 10 servos MG996R *
  • Filamento de impressão 3D de 1,75 mm
  • 10 rolamentos de esferas, número da peça 608 (eu salvei o meu da borda externa dos botões giratórios Jitterspin fidget)
  • 20 pequenos rolamentos de esferas, número da peça r188, para as rodas ** (eu salvei o meu da parte interna dos spinners Jitterspin fidget)
  • 40 parafusos Philips 6-32 x 1/2 "(ou similar)
  • 8 parafusos mais longos (não tenho um número de peça, mas eles têm o mesmo diâmetro que os parafusos acima)
  • Pelo menos 20 peças de zipties de 4 polegadas (depende de quantos você deseja usar)
  • 5m cada de fio vermelho e preto calibre 20 ou mais grosso ***
  • Fio padrão de calibre 22
  • 30 pinos de cabeçalho machos (divididos em 10 lotes de 3)
  • Arduino Nano
  • Peças impressas em 3D (consulte a próxima seção)
  • Alguma forma de energia (consulte a seção: "Ligando a cobra" para mais informações), eu pessoalmente usei uma fonte de alimentação ATX modificada
  • Capacitor eletrolítico 1000uF 25V
  • Tubo termorretrátil de vários tamanhos, solda, cola e outras ferramentas diversas

* você pode usar outros tipos, mas precisará redesenhar os arquivos 3D para caber em seus servos. Além disso, se você tentar usar servos menores como o sg90, poderá descobrir que eles não são fortes o suficiente (eu não testei isso e caberá a você experimentar).

** você não precisa usar rolamentos de esferas pequenos para as rodas, eu apenas tinha muitos disponíveis. Alternativamente, você pode usar rodas LEGO ou outras rodas de brinquedo.

*** Este fio pode ter até 10 amperes passando por ele, muito fino e a corrente irá derretê-lo. Veja esta página para mais informações.

Etapa 2: Componentes de impressão 3D

Assembleia das Cobras
Assembleia das Cobras

Se você estiver fazendo a cobra 1D, imprima essas peças.

Se você estiver fazendo a cobra 2D, imprima essas peças.

Nota importante: a escala pode estar errada! Eu projetei meus componentes no Fusion 360 (em unidades de mm), exportei o projeto como um arquivo.stl para o software MakerBot e o imprimi em uma impressora Qidi Tech (uma versão clone do MakerBot Replicator 2X). Em algum lugar ao longo desse fluxo de trabalho, há um bug e todas as minhas impressões saem muito pequenas. Não consegui identificar a localização do bug, mas tenho uma correção temporária de dimensionar cada impressão para o tamanho de 106% no software MakerBot. Isso corrige o problema.

Diante disso, esteja avisado que se você imprimir os arquivos acima, eles podem ser dimensionados incorretamente. Eu sugiro imprimir apenas uma peça e verificar se ela se encaixa com seu servo MG996R antes de imprimir todas.

Se você imprimir qualquer um dos arquivos, diga-me qual é o resultado: se a impressão for muito pequena, perfeita, muito grande e em quanto por cento. Trabalhando juntos como uma comunidade, podemos solucionar o problema de localização do bug usando diferentes impressoras 3D e divisores.stl. Assim que o problema for resolvido, atualizarei esta seção e os links acima.

Etapa 3: montagem das cobras

Assembleia das Cobras
Assembleia das Cobras
Assembleia das Cobras
Assembleia das Cobras
Assembleia das Cobras
Assembleia das Cobras

O processo de montagem é basicamente o mesmo para as duas versões da cobra. A única diferença é que na cobra 2D cada motor é girado 90 graus em relação ao anterior, enquanto na cobra 1D todos os motores estão alinhados em um único eixo.

Comece desparafusando o servo, guarde os parafusos e remova as peças superior e inferior da moldura de plástico preto, e tome cuidado para não perder nenhuma das engrenagens! Deslize o servo no quadro impresso em 3D, orientado como nas fotos acima. Substitua a parte superior da caixa do servo e aparafuse-a no lugar com quatro parafusos 6-32 1/2 . Guarde a parte inferior da estrutura do servo (caso você queira usá-la novamente em projetos posteriores) e substitua-a pelo 3D caixa impressa, a única diferença é o botão adicional para um rolamento de esferas deslizar. Aparafuse o servo novamente, repita 10 vezes.

IMPORTANTE: Antes de continuar, você deve fazer upload do código para o Arduino e mover cada servo para 90 graus. Deixar de fazer isso pode resultar na quebra de um ou mais servo e / ou quadros impressos em 3D. Se você não tiver certeza de como mover um servo a 90 graus, consulte esta página. Basicamente, conecte o fio vermelho do servo a 5V no Arduino, o fio marrom ao GND e o fio amarelo ao pino digital 9, depois carregue o código no link.

Agora que cada servo está a 90 graus, continue:

Conecte os 10 segmentos inserindo o botão impresso em 3D de uma caixa de servo no orifício de uma segunda peça de segmento e, em seguida, com um pouco de força, empurre o eixo do servo em seu orifício (veja as imagens acima e o vídeo para maior clareza). Se você estiver fazendo a cobra 1D, todos os segmentos devem estar alinhados, se você estiver fazendo a cobra 2D, cada segmento deve ser girado 90 graus em relação ao segmento anterior. Observe que a cauda e a estrutura da cabeça têm apenas metade do comprimento dos outros segmentos, conecte-os, mas não comente as peças em forma de pirâmide antes de terminar a fiação.

Prenda o braço servo em forma de x e aparafuse-o na posição. Deslize o rolamento de esferas sobre o botão impresso em 3D, isso exigirá que aperte suavemente os 2 postes semicirculares juntos. Dependendo da marca do filamento que você usa e da densidade do preenchimento, os postes podem ser muito quebradiços e quebram, não acho que seja esse o caso, mas mesmo assim não use força excessiva. Eu pessoalmente usei o filamento PLA com 10% de preenchimento. Quando o rolamento de esferas estiver ativado, ele deve permanecer travado pelas saliências do botão.

Etapa 4: circuito

O circuito
O circuito
O circuito
O circuito
O circuito
O circuito

O circuito é o mesmo para ambas as cobras robóticas. Durante o processo de fiação, certifique-se de que haja espaço de fiação suficiente para que cada segmento gire completamente, especialmente na cobra 2D.

Acima está um diagrama de circuito para a fiação com apenas 2 servos. Tentei fazer um desenho de circuito com 10 servos, mas ficou superlotado. A única diferença entre esta imagem e a vida real é que você precisa conectar mais 8 servos em paralelo e conectar os fios de sinal PWM aos pinos no Arduino Nano.

Ao fazer a fiação das linhas de energia, usei uma única peça de fio de bitola 18 (grosso o suficiente para suportar 10 amperes) como a linha principal de 5 V que percorre o comprimento da cobra. Usando desencapadores de fio, removi uma pequena seção do isolador em intervalos regulares de 10 e soldei um pequeno pedaço de fio de cada um desses intervalos um grupo de 3 pinos coletores machos. Repita isso uma segunda vez para o fio GND preto de calibre 18 e um segundo pino macho da plataforma. Por fim, solde um fio mais longo no terceiro pino do conector macho, este pino levará o sinal PWM para o servo do Arduino Nano na cabeça da cobra (o fio deve ser longo o suficiente para alcançar, mesmo quando os segmentos dobram). Conecte o tubo termorretrátil conforme necessário. Conecte os 3 pinos coletores machos aos 3 pinos coletores fêmeas dos fios do servo. Repita 10 vezes para cada um dos 10 servos. Em última análise, o que isso consegue é conectar os servos em paralelo e executar os cabos de sinal PWM para o Nano. A razão para os pinos de encaixe macho / fêmea era que você pode facilmente desmontar segmentos e substituir os servos se eles quebrarem sem desoldar tudo.

Solde os fios GND e 5V em uma placa perfurada de 3x7 na cauda com um capacitor e terminais de parafuso. O objetivo do capacitor é remover quaisquer picos de consumo de corrente causados ao inicializar os servos, que podem reiniciar o Arduino Nano (se você não tiver um capacitor, provavelmente poderá escapar sem ele, mas é melhor estar seguro). Lembre-se de que o pino longo dos capacitores eletrolíticos precisa ser conectado à linha de 5 V e o pino mais curto à linha GND. Solde o fio GND ao pino GND do Nano e o fio 5V ao pino 5V. Observe se você estiver usando uma voltagem diferente (consulte a próxima seção), digamos uma bateria Lipo com 7,4 V, então conecte o fio vermelho ao pino Vin, NÃO ao pino 5V, isso destruirá o pino.

Solde os 10 fios de sinal PWM nos pinos do Arduino Nano. Eu conectei o meu na seguinte ordem, você pode escolher conectar o seu de forma diferente, mas lembre-se de que você precisará alterar as linhas servo.attach () no código. Se você não tem certeza do que estou falando, apenas conecte da mesma maneira que eu fiz e você não terá problemas. Na ordem do servo na cauda da cobra para a cabeça da cobra, eu conectei ambas as minhas cobras na seguinte ordem. Conectando os pinos de sinal a: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Use zipties para limpar a fiação. Antes de continuar, verifique se todos os segmentos podem se mover com espaço suficiente para os fios se moverem sem serem separados. Agora que a fiação está pronta, podemos aparafusar as tampas da cabeça e da cauda em forma de pirâmide. Observe que a cauda tem um orifício para a saída da corda e a cabeça tem um orifício para o cabo de programação do Arduino.

Etapa 5: Powering the Snake

Powering the Snake
Powering the Snake
Powering the Snake
Powering the Snake
Powering the Snake
Powering the Snake

Como os servos são ligados em paralelo, todos recebem a mesma voltagem, mas a corrente deve ser adicionada. Olhando para a ficha técnica dos servos MG996r, eles podem consumir até 900mA cada durante o funcionamento (assumindo que não haja travamento). Assim, o consumo total de corrente se todos os 10 servos se moverem ao mesmo tempo é 0,9A * 10 = 9A. Como tal, um adaptador de tomada de parede normal de 5v, 2A não funcionará. Decidi modificar uma fonte de alimentação ATX, capaz de 5v a 20A. Não vou explicar como fazer isso, pois já foi muito discutido no Instructables e no YouTube. Uma rápida pesquisa online mostrará como modificar uma dessas fontes de alimentação.

Supondo que você modificou a fonte de alimentação, é simplesmente um caso de conectar um cabo longo entre a fonte de alimentação e os terminais de parafuso na cobra.

Outra opção é usar uma bateria lipo integrada. Eu não tentei fazer isso, então caberá a você projetar um suporte para as baterias e conectá-las. Lembre-se das tensões de operação, consumo de corrente dos servos e do Arduino (não solde nada além de 5v para o pino 5v no Arduino, vá para o pino Vin se você tiver uma tensão mais alta).

Etapa 6: teste se tudo está funcionando

Antes de continuar vamos testar se tudo está funcionando. Faça upload deste código. Sua cobra deve mover cada servo individualmente entre 0-180 e, em seguida, terminar colocando em uma linha reta. Se não, então algo está errado, provavelmente a fiação está incorreta ou os servos não foram inicialmente centralizados em 90 graus conforme mencionado na seção "Montagem das cobras".

Etapa 7: Código

Atualmente não há controle remoto para a cobra, todo o movimento é pré-programado e você pode escolher o que quiser. Vou desenvolver um controle remoto na versão 2, mas se você quiser controlá-lo remotamente, sugiro procurar outros tutoriais no Instructables e adaptar o snake para ser compatível com bluetooth.

Se você está fazendo a cobra 1D, carregue este código.

Se você está fazendo o snake 2D, carregue este código.

Eu o encorajo a brincar com o código, fazer suas próprias alterações e criar novos algoritmos. Leia as próximas seções para obter uma explicação detalhada de cada tipo de locomoção e como o código funciona.

Etapa 8: Escalas Vs Rodas

Balança Vs Rodas
Balança Vs Rodas
Balança Vs Rodas
Balança Vs Rodas
Balança Vs Rodas
Balança Vs Rodas
Balança Vs Rodas
Balança Vs Rodas

Uma das principais formas pelas quais as cobras são capazes de se mover é através do formato de suas escamas. As escalas permitem um movimento mais fácil para a frente. Para mais explicações, assista a este vídeo de 3:04 em diante para ver como as escamas ajudam a cobra a avançar. Olhando para 3:14 no mesmo vídeo mostra o efeito quando as cobras estão em uma manga, removendo o atrito das escamas. Conforme mostrado em meu vídeo no YouTube, quando a cobra robótica 1D tenta deslizar na grama sem escamas, ela não se move para frente ou para trás, pois a soma das forças é zero. Como tal, precisamos adicionar algumas escalas artificiais à parte inferior do robô.

A pesquisa sobre a recriação da locomoção por meio de escalas foi feita na Universidade de Harvard e demonstrada neste vídeo. Não consegui conceber um método semelhante para mover as escalas para cima e para baixo no meu robô e, em vez disso, resolvi anexar escalas impressas em 3D passivas à parte inferior.

Infelizmente, isso se mostrou ineficaz (veja no meu vídeo no YouTube em 3:38), pois as escamas ainda deslizavam sobre a superfície do tapete, em vez de prender nas fibras e aumentar o atrito.

Se você deseja experimentar as escalas que fiz, você pode imprimir em 3D os arquivos do meu GitHub. Se você fizer o seu próprio com sucesso, deixe-me saber nos comentários abaixo!

Usando uma abordagem diferente, tentei usar rodas feitas de rolamentos de esferas r188 com tubo termorretrátil sobre o lado externo como 'pneus'. Você pode imprimir em 3D os eixos das rodas de plástico a partir dos arquivos.stl no meu GitHub. Embora as rodas não sejam biologicamente precisas, elas são análogas às escalas, pois a rotação para a frente é fácil, mas o movimento lateral é significativamente mais difícil. Você pode ver o resultado bem-sucedido das rodas no meu vídeo do YouTube.

Etapa 9: movimento deslizante (cobra de eixo único)

Primeiro prêmio no concurso Make it Move

Recomendado: