Hoje vamos falar sobre o Kit Braço Robótico em MDF. Este kit consiste em todas as peças necessárias para montar um braço robótico genuíno, com dois eixos de controle e uma garra. Todos os movimentos são controlados por 4 servomotores, que não vêm inclusos no kit. Os servos são responsáveis por controlar os movimentos do braço em seus diferentes eixos e a garra.
É o produto ideal para que makers, amantes da eletrônica e qualquer pessoa que deseja montar e ter o seu próprio braço robótico. Todas as peças são cortadas à laser, com base em placas de MDF. Foi pensado para ser utilizado em projetos com o Arduino, Pic, ESP e outros microcontroladores. Vamos mostrar como programar o Arduino para controlar o braço de forma satisfatória.
Introdução
O Braço Robótico MDF é um típico braço mecânico desenvolvido para aplicações de robótica. Feito em MDF de 3mm de espessura e de forma modular e fácil de ser montado, é ideal para projetos de prototipação e validação de sistemas robóticos. Este é o equipamento ideal para ser o primeiro braço robótico de quem está começando no mundo da robótica.
As peças são todas cortadas a laser e os parafusos, porcas e demais componentes de montagem(exceto os servos) já vêm todos incluídos no kit. Pode ser montado por qualquer pessoa. Basta seguir o manual de instruções com bastante atenção. Para fazer o download do manual e ver como é feita a montagem, acesse esse link.
A figura 1 acima apresenta o braço robótico montado com os 4 servos para controle das suas articulações. A figura 2, logo abaixo, mostra o conjunto de peças que compõem o kit. As peças devem ser cuidadosamente montadas para que o braço funcione corretamente.
Todas as articulações do Braço Robótico são movimentadas por um conjunto com 4 servomotores TowerPro SG90. Enviando comandos a cada servo, é possível controlar a posição de seu eixo de rotação de forma a controlar as articulações do braço mecânico de forma desejada. As articulações executam movimentos de até 180°. Além de tudo, o braço também conta com uma garra de aproximadamente 60mm para segurar e soltar pequenos objetos.
É comum que projetos em que servomotores são utilizados que os mesmos sejam conectados diretamente ao Arduino. Neste caso, são 4 servos, de forma que é necessário ter uma fonte de alimentação externa, pois o Arduino não é capaz de suprir toda a potência para o conjunto de 4 motores. Vamos utilizar uma fonte de protoboard em nosso projeto, conforme será explicado mais adiante.
As aplicações desse braço robótico em MDF são principalmente:
Por ser um braço de bancada, aplicações industriais ou em processos comerciais são mais restritas. Apesar de que é uma ótima ferramenta para validar conceitos e testar algoritmos para braços robóticos mais robustos.
Neste projeto vamos montar o kit Braço Robótico em MDF e programar um Arduino UNO com uma Sensor Shield V5.0 para controlar os quatro servos do braço. Como o Arduino no USB não fornece potência para todos os servos, vamos utilizar uma fonte externa de 9V para alimentar os servoacionamentos. Com o Arduino, vamos utilizar como software base a aplicação desenvolvida aqui no blog para controlar uma garra robótica. A garra robótica deste outro projeto é diferente da utilizada no braço robótico. Feita em acrílico e vendida apenas como garra (sem componentes maiores como o braço mecânico), a garra é aplicada para segurar e soltar objetos e pode ser afixada em diferentes superfícies.
Esse software base utiliza um potenciômetro para ler o sinal comandado pelo usuário e proporcionalmente a esse sinal modula a saída PWM aplicada ao servomotor. Em nosso projeto com o braço mecânico, como são 4 servos, vamos expandir esse projeto para fazer a leitura de 4 potenciômetros, cada um para acionar um dos servos do braço mecânico.
Materiais necessários para o projeto do Kit Braço Robótico MDF com Arduino
Com o manual disponibilizado na parte introdutória não há muito segredo para montar o projeto, basta apenas seguir com atenção as instruções do manual de montagem. Com o braço pronto para ser ligado, temos que fazer a montagem do Arduino para controlar os servos. Veja a figura abaixo:
O nosso software deve fazer a leitura de quatro potenciômetros, cada qual para controlar um servomotor. Assim, no nosso firmware, devemos utilizar quatro canais analógicos para fazer as leituras e quatro canais PWM, cada um para um servomotor diferente. Como são muitos sinais de de controle ligados no mesmo circuito, pode ser que os servos fiquem instáveis devido à ruídos. Principalmente se toda a montagem for feita em uma protoboard ao invés da sensor shield. Certifique de que a protoboard está sendo alimentada pela Sensor Shield pelo 5V e GND, bem como o VCC e GND de alimentação de cada potenciômetro.
No código abaixo temos a definição dos pinos de leitura, cada um para um potenciômetro, e a declaração de quatro objetos do tipo Servo. Para declarar objetos da classe Servo é preciso incluir a biblioteca Servo.h.
Você também pode conferir o código completo e atualizado visitando o repositório desse post no GitHub da Eletrogate.
// BLOG Eletrogate // Kit Braço Robótico MDF com Arduino // https://blog.eletrogate.com/kit-braco-robotico-mdf-com-arduino/ #define potpin1 2 #define potpin2 3 #define potpin3 4 #define potpin4 5 #include <Servo.h> Servo myservoBase; // Objeto servo para controlar a base Servo myservoGarra; //Objeto servo para controlar a garra Servo myservoAltura; //Objeto servo para controlar a altura do braço Servo myservoProfundidade; //Objeto servo para profundidade a altura do braço int val; // variable to read the value from the analog pin void setup() { //Associa cada objeto a um pino pwm myservoBase.attach(3); myservoGarra.attach(5); myservoAltura.attach(9); myservoProfundidade.attach(11); } void loop() { val = map(analogRead(potpin1), 0, 1023, 0, 179); myservoBase.write(val); val = map(analogRead(potpin2), 0, 1023, 0, 179); myservoGarra.write(val); val = map(analogRead(potpin3), 0, 1023, 0, 179); myservoAltura.write(val); val = map(analogRead(potpin4), 0, 1023, 0, 179); myservoProfundidade.write(val); }
Na função void loop vamos sempre atualizar os valores lidos dos potenciômetros e usá-los como referência para setar a posição de cada servo. Assim, qualquer controle feito no knob de um dos quatro potenciômetros será convertido em uma mudança de posição em um dos quatro servos. Dessa forma podemos controlar separadamente a base do braço, bem como as articulações(altura e profundidade do braço) e a abertura e fechamento da garra.
Repare como nós fazemos a leitura de cada pino analógico diretamente dentro da função map(), já passando o resultado da leitura como argumento da função map().
Com o kit Braço Robótico em MDF e quatro micro servos TowerPro SG90 você pode implementar um braço robótico só seu. Um aspecto prático da montagem é o ruído que a montagem no protoboard e possíveis contatos mal fixados podem acarretar. Deixe todas as ligações firmes e verifique se todos os componentes estão bem referenciados ao GND.
Uma dica prática na hora de montar o braço seguindo o manual do fabricante: Nenhum dos parafusos deve ser apertado demais. Como é um conjunto de peças móveis, você deve usar os parafusos apenas para juntar as peças, aplicando o mínimo de força necessário. O mesmo vale para os parafusos usados para prender os “chifres” dos servo motores. Quando esses parafusos ficam muito apertados pode acontecer de até travar o giro do servo. Sendo assim, em todos os parafusos, use o mínimo de força possível, apenas o necessário para deixar as peças fixas.
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!