Manual

do

Maker

.

com

Robôs quadrúpedes com Arduino

Robôs quadrúpedes com Arduino

Robôs Quadrúpedes

Começando com um esclarecimentos, Os robôs quadrúpedes se comportam de forma parecida aos aracnídeos, mas não podem ser chamados de "robôs aranha de 4 pernas". Os robôs que imitam aranhas são chamados "hexapod", tendo 6 pernas e utilizando 3 servos por perna. Daí você tem que pensar em um shield I²C para os servos e uma boa alimentação externa para suprir o consumo, que é realmente alto. No caso desses quadrúpedes, seu comportamento ainda é similar ao da aranha, porém são bem mais econômicos em todos os aspectos, uma vez que o modelo mais simples utiliza 8 servos e o mais completo utiliza 12 servos. Com isso, pode-se utilizar diretamente os GPIO do Arduino, mas se quiser evitar fios, utilize um sensor shield. Nesse artigo mostro apenas a imagem dos meus 3 quadrúpedes, sendo um deles impresso em 3D pelo Italo (3D Ninja) e os outros 2 em MDF, vendidos pelo Nadiel (que pausou todas as vendas para o final de ano) e o tutorial de hoje é para o menor deles.

Lista de materiais

Não basta apenas o robô, claro. Você precisa da controladora, do shield, boas baterias e um meio de comunicação, caso deseje controlar o robô. Vou mostrar 3 modos de operação do robô, sendo que um deles será automático (modo demo), outro será autônomo (desviando de obstáculos) e o terceiro será controlado por RF. Escolha o que deseja fazer e selecione o material da lista a seguir.

Todo esse material é barato, com excessão do servo-motor que não é custoso, porém serão necessários vários deles. Mas pense na diversão de mostrar isso para os amigos e família!

Montagem dos robôs quadrúpedes

A montagem dos robôs é bastante simples e divertida, qualquer um consegue montar. Ao comprá-lo, lhe será enviado um link para o manual de montagem que é todo desenho, não tem como errar. Nesse primeiro artigo sobre o mesmo robô impresso em 3D eu  deixei algumas dicas, dê uma olhada, você poderá reparar que mesmo ligando a uma fonte step down o consumo do robô é superior ao que a fonte fornece e ele ficou meio lento, mas deu pra fazer a demonstração. Dessa vez vou mostrá-lo novamente em modo demo mas alimentado pelas baterias que recomendei.

Uma coisa necessária é o alinhamento dos servos. Para isso, utilize esse tester de servo motores (a atualizar com link, sorry), que permite você ajustar a posição manualmente, testar o funcionamento automaticamente ou centralizá-lo apenas conectando-o ao servo. Ou faça manualmente um a um conforme descrito no manual. Claro que preferi utilizar o tester e em um breve segundo ter os motores alinhados sem o risco de estragar o mecanismo forçando-o manualmente. Veja no início do video o alinhamento dos motores.

Programação

Gostaria muito de mostrar o funcionamento dos 3 robôs nesse artigo, mas inclusive desse próprio robô terei que fazer um artigo continuado porque como você já deve ter percebido, o post ficou longo. Como no primeiro post eu mostrei o modo demo, vou focar primeiramente no robô que desvia sozinho de obstáculos utilizando um sensor ultrassônico. Vou fazer reaproveitamento de código mas dando uma leve modificada nas funções de movimento básico. O robô apenas irá para frente e para os lados, procurando outro caminho quando se deparar com um obstáculo. Nesse momento, ele disparará o "laser vermelho da morte", não importando se é uma pessoa ou uma parede. Outra opção para o laser é fazê-lo disparar somente se a distância medida pelo sensor ultrassonico tiver uma mudança abrupta. Em outro projeto onde esse robô será guiado por um Raspberry, adicionaremos inteligência artificial para outros fins.

Vou detalhar a aplicação do sensor ultrassonico nesse robô já no próximo artigo, mas se ainda não utilizou um sensor ultrassonico, recomendo a leitura desse artigo que escrevi jxá há algum tempo.

PlatformIO

Convencionemos que a IDE do Arduino é ruim; muito ruim. E pra desenvolver de forma mais prazerosa, eu sugiro fortemente que utilize a mesma IDE que eu utilizo - a PlatformIO, que por sua vez utiliza o Atom, incluindo nele o suporte para multiplas plataformas como ESP8266 etc. Ela possui auto-complete, visualização do fluxo de código (à direita), estrutura de projeto (à esquerda), compilação, upload, plugins e mais um monte de coisas legais. Se quiser confirmar antes a extensa lista de boards suportadas, você poderá fazê-lo a partir desse link. Se preferir diretamente o download, pode seguir para esta página.

Primeiro o "hello world"

Antes de modificar o código do exemplo, é bom vê-lo funcionando. O código é muito grande para dispor diretamente no artigo, então copiei na integra para o git do site. Está ali no menu lateral de redes sociais, mas nesse caso de hoje deixo o link aqui também.

Enfatizo que esse código não é meu e não estou tomando posse, apenas disponibilizando-o com os méritos ao criador e adicionarei apenas as funcionalidades desejadas sobre o código original, que  também estarão disponíveis no mesmo repositório.

Conexão dos servos ao Arduino Nano

Os "pivot" são os servos próximos ao corpo do robô e os "lift" são os servos que movimentam as pontas das pernas. Você deverá escolher o que será frente e o que será direita, então conectar conforme essa lógica. Isso é simples, hum? Os pares de servos de cada perna são sequenciais, o que facilita a conexão. Ainda, antes de colocá-lo no chão, apoie-o sobre uma base elevada qualquer, conecte-o ao computador e veja na serial o que será impresso para saber se tudo está funcionando de acordo.

O procedimento da conexão dos servos é simples mesmo, basta escolher uma das pernas para ser a esquerda, então conecte o pivot dessa perna ao pino 2 do seu expansor de I/O. Conecte o lift dessa mesma perna ao pino 3 e continue repetindo o processo girando o quadpod no sentido anti-horário. Os conectores estarão de forma sequencial, portanto não há o que errar.

Alimentação

Vale enfatizar que a alimentação precisa obrigatoriamente ser feita pelo conector jack do expansor de I/O. Isso porque através do Arduino não há corrente suficiente para suprir a alimentação dos servos. No video eu demonstro que ainda que utilizasse um power bank (brutal esse que conectei) na USB do Nano, não passaria dos 550mA, conforme demonstrado. Alimentando pelo conector jack não há limitação de corrente da fonte de alimentação e ainda por cima o shield faz a alimentação do Arduino.

A fonte deve suprir um pico de até 3A e não ví outra forma que não através dessas baterias li-ion.

Ela é maior que uma pilha e possui suporte próprio, duplo ou quadruplo. Eu optei por esse suporte para apenas duas baterias por preguiça, senão teria que usar regulador para controlar a tensão. Já no suporte duplo, a tensão fica dentro do limite para testar sem queimar, mas claro que uma autonomia alta é sempre bem quisto. Também, ao adquirir o suporte verifique se ele possui o conector jack para reduzir sua mão-de-obra, senão vai ter que fazê-lo.

Esse video já trata dos processos iniciais. Eu mostro a alimentação de forma inadequada, o testador/alinhador de servos etc. No próximo artigo finalizamos com o sensor ultrassonico e os lasers.

 

https://youtu.be/mzBU87wdxiU

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.