Braço Robótico para Arduino

APLICAÇÃO E FUNCIONAMENTO – O Braço Robótico é um braço mecânico desenvolvido para quem está iniciando no ramo de automação de robôs, proporcionando diversas possibilidades de movimento e ações....

APLICAÇÃO E FUNCIONAMENTO

– O Braço Robótico é um braço mecânico desenvolvido para quem está iniciando no ramo de automação de robôs, proporcionando diversas possibilidades de movimento e ações. Comumente utilizado para executar determinado movimento, ele é utilizado junto de plataformas de prototipagem como, Raspberry Pi e Arduino.

braco-robotico-capa-

– Desenvolvido com o intuito de ser considerado uma ferramenta de baixo custo e grande funcionalidade, o Braço Robótico MDF deve ser montado junto de 4 Micro Servo Motores de 180º, responsáveis pelos movimentos executados pelo mesmo.

– Comumente os Servos são conectados diretamente ao Arduino, porém neste caso como trabalhamos com uma maior quantidade de servos, faremos uso de um drive controlador capaz de alimentar e controlar os servos motores em questão sem reduzir a sua capacidade e conseguindo suprir a corrente necessário por todos os equipamentos.

– Para aumentar a capacidade do Arduino e expandir o seu número de portas de entrada e saída, vamos utilizar um Arduino Sensor Shield – Expansor de Entradas e Saídas V5.0 alimentado com 6V.

modulo-para-servo.fw

– Para realizar o controle do movimento de cada motor, vamos utilizar um joystick que conforme será movimentado, irá realizar o movimento do servo e consequentemente do braço robótico de forma instantânea.

– Para saber mais sobre o Micro Servo Motor SG90, acesse o link do nosso projeto e tire suas dúvidas referentes a este pequeno e funcional servo motor.

– Micro Servo Motor: http://blog.usinainfo.com.br/controle-de-posicao-do-micro-servo-motor-180/.

– Para realizar o referente projeto, precisará de uma biblioteca especial não existente em seu histórico do Arduino, deste modo, entre no site Github, disponível no seguinte link: https://github.com/netlabtoolkit/VarSpeedServo e faça o download da biblioteca principal.

– Ao clicar no link acima, uma janela semelhante a esta irá aparecer e então você devera ir até o botão verde escrito “Clone or download” e realizar o Download da biblioteca clicando em Download ZIP, observe:

Untitled-1.fw

– Depois de ter baixado o arquivo, descompacte o mesmo em uma parta denominada “VarSpeedServo” dentro da pasta libraries da IDE do seu Arduino.

 

TESTE PRÁTICO

– Para pormos o nosso braço robótico em funcionamento, vamos utilizar um Expansor de entradas e saídas com uma alimentação de aproximadamente 6V conectado diretamente em um Arduino, onde conectaremos os quatro servos e os dois joysticks utilizados em nosso projeto.

PRODUTOS UTILIZADOS NO TESTE:

– 1 Arduino UNO;

– 1 Arduino Sensor Shield – Expansor de Entradas e Saídas V5.0;

– 1 Braço Robótico MDF com Parafusos e Micro Servo Motor;

– 2 Joysticks;

– Jumper Fêmea -Fêmea.

 

MONTAGEM FÍSICA (HARDWARE)

– Para fazer a ligação correspondente basta observar com atenção o esquema abaixo e reproduzir em seu projeto a pinagem utilizada.

novostick.fw

FUNCIONAMENTO DO PROGRAMA (SOFTWARE)

// Código para teste de funcionamento do Braço Robótico para Arduino;
// Controle de movimento realizado por Joysticks;
// Usinainfo - www.usinainfo.com.br
 
#include <VarSpeedServo.h> // Inclui a Biblioteca VarSpeedServo.h
 
VarSpeedServo servo_sobe; //Cria objeto para controlar o servo sobe
VarSpeedServo servo_frente; //Cria objeto para controlar o servo frente
VarSpeedServo servo_garra; //Cria objeto para controlar o servo garra
VarSpeedServo servo_corpo; //Cria objeto para controlar o servo corpo
 
int pino_x = A0; //Inicializa o pino analógico ao eixo X do joystick
int pino_y = A1; //Inicializa o pino analógico ao eixo Y do joystick
int pino_z = A3; //Inicializa o pino analógico ao eixo Z do joystick
int pino_w = A4; //Inicializa o pino analógico ao eixo W do joystick
int val_x; //Armazena o valor lido pelo eixo X do joystick
int val_y; //Armazena o valor lido pelo eixo Y do joystick
int val_z; //Armazena o valor lido pelo eixo Z do joystick
int val_w; //Armazena o valor lido pelo eixo W do joystick
 
void setup() {
 servo_sobe.attach(5, 1, 180); //Define que o servo está conectado a porta 5 do Arduino
 servo_frente.attach(3, 1, 180); //Define que o servo está conectado a porta 3 do Arduino
 servo_garra.attach(10, 1, 180); //Define que o servo está conectado a porta 10 do Arduino
 servo_corpo.attach(11, 1, 180); //Define que o servo está conectado a porta 11 do Arduino
}
 
void loop() {
 val_x = analogRead(pino_x); //Recebe o valor lido pelo eixo X do joystick
 val_x = map(val_x, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_sobe.slowmove(val_x, 60); //Movimenta o servo até a posição definida pelo eixo X

 val_y = analogRead(pino_y); //Recebe o valor lido pelo eixo Y do joystick
 val_y = map(val_y, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_sobe.slowmove(val_y, 60); //Movimenta o servo até a posição definida pelo eixo Y
 
 val_z = analogRead(pino_z); //Recebe o valor lido pelo eixo Z do joystick
 val_z = map(val_z, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_garra.slowmove(val_z, 60); //Movimenta o servo até a posição definida pelo eixo Z

 val_w = analogRead(pino_w); //Recebe o valor lido pelo eixo W do joystick
 val_w = map(val_w, 0, 1023, 1, 180); //Converte o valor lido para um valor em graus (1 a 180º)
 servo_corpo.slowmove(val_w, 60); //Movimenta o servo até a posição definida pelo eixo W

 delay(30);
}

 

CONCLUSÃO

– O Braço Robótico é um produto de grande funcionalidade que pode ser aplicado nos mais diversificados projetos, no entanto, quando utilizado junto de um potenciômetro deve-se ter mais atenção e evitar movimentos bruscos devido à “delay” de comunicação, o que pode acarretar na falha dos movimentos do servo. Quanto à utilização do joystick, vale ressaltar que assim como o próprio, o Braço também volta ao seu estado inicial quando em repouso, ou seja, não fixa sua localização e acompanha todos os movimentos reproduzidos através do joystick.

Categorias
ProjetosTeste de Produto
23 Número de Comentários
  • denilson de araujo azarias
    22 agosto 2016 at 21:43
    Enviar Resposta

    desculpe a pergunta,mas onde vai os potenciômetros nesse projeto? não visualizei ele no vídeo, somente no vídeo que mostra o teste do servo.

    • Equipe Usinainfo
      23 agosto 2016 at 13:21
      Enviar Resposta

      Olá Denilson, o projeto foi atualizado e retiramos os potenciômetros.
      Qualquer dúvida estamos a disposição
      Att Equipe Usinainfo

  • Alexandre Telles Estanieski
    3 abril 2017 at 12:49
    Enviar Resposta

    Olá, gostaria de adquirir esse kit BRAÇO ROBÓTICO PARA ARDUINO, mas onde consigo a lista completa de componentes que preciso comprar?

  • S.RAMOS
    11 abril 2017 at 17:12
    Enviar Resposta

    O código está pronto para uso ou tem que adicionar mais alguma coisa ?

    • Equipe Usinainfo
      12 abril 2017 at 14:36
      Enviar Resposta

      Olá, sim o código esta pronto para uso.
      Att Equipe Usinainfo

  • S.RAMOS
    11 abril 2017 at 17:15
    Enviar Resposta

    Esse pino do joystick que não está conectado é o SW ?

    • Equipe Usinainfo
      12 abril 2017 at 14:40
      Enviar Resposta

      Sim, é o SW.
      Att Equipe Usinainfo

  • S.RAMOS
    12 abril 2017 at 14:51
    Enviar Resposta

    O que está alimentando os servos motores ?

    • Equipe Usinainfo
      13 abril 2017 at 13:11
      Enviar Resposta

      Bom dia, para complementarmos a corrente necessária para o funcionamento dos servos, utilizamos uma fonte de bancada.
      Att Equipe Usinainfo

  • ose Carlos
    24 junho 2017 at 00:43
    Enviar Resposta

    Boa noite, a alimentação poder ser feita por uma fonte de 9V – 1A? E a ligação é feita no Arduíno ou na outra placa?

    • Equipe Usinainfo
      27 junho 2017 at 12:59
      Enviar Resposta

      Olá, devido as especificações do servo motor utilizado, o recomendado é a utilização de uma fonte de alimentação 6V 1A.

  • Jose carlos
    27 junho 2017 at 00:00
    Enviar Resposta

    Boa noite, a alimentação esta sendo feita pelo Arduino, ou pela outra placa? E esta dando um erro na compilação do meu arduino, segue erro ”
    C:\Users\Carlos.Bueno\Desktop\Bra_o_teste\Bra_o_teste.ino:5:66: fatal error: VarSpeedServo.h: No such file or directory

    #include // Inclui a Biblioteca VarSpeedServo.h

    compilation terminated.

    exit status 1
    Erro compilando para a placa Arduino/Genuino Uno”

    • Equipe Usinainfo
      30 junho 2017 at 13:35
      Enviar Resposta

      Bom dia, para garantir as funcionalidades de todos os Servos e do Arduino, utilizamos duas alimentações independentes, uma alimentação para o Arduino e outra para os Servos através do Shield.
      Quanto ao erro que está ocorrendo, é devido a um problema com a biblioteca necessária para o funcionamento do código.

  • Carolina
    10 julho 2017 at 00:25
    Enviar Resposta

    Olá, eu montei o braço perfeitamente, fiz as ligações elétricas e utilizei a programação que está acima. Só que o braço fica se mexendo bem fraco e os Joystick nem manda comando, o que pode ser , só utilizei alimentação do USB.

    • Equipe Usinainfo
      10 julho 2017 at 17:30
      Enviar Resposta

      Olá Carolina, possivelmente é falta de energia, pois a corrente do USB é de no máximo 250mA.
      O recomendado é utilizar alimentação externa.
      Att Equipe Usinainfo

    • Equipe Usinainfo
      10 julho 2017 at 17:34
      Enviar Resposta

      Olá Carolina, possivelmente é falta de energia, pois a corrente do USB é de no máximo 250m,
      o recomendado é utilizar alimentação externa.
      Att Equipe Usinainfo

  • natan
    16 agosto 2017 at 01:58
    Enviar Resposta

    o meu esta dando o seguinte erro Arduino: 1.8.4 Hourly Build 2017/08/10 11:33 (Windows 7), Placa:”Arduino/Genuino Uno”

    C:\Users\NATAN\AppData\Local\Temp\arduino_modified_sketch_972105\ISRBlink.pde:1:66: fatal error: VarSpeedServo.h: No such file or directory

    #include // Inclui a Biblioteca VarSpeedServo.h

    ^

    compilation terminated.

    exit status 1
    Erro compilando para a placa Arduino/Genuino Uno

    Este relatório teria mais informações com
    “Mostrar a saida detalhada durante a compilação”
    opção pode ser ativada em “Arquivo -> Preferências”

    O que eu faço ?????

    • Equipe Usinainfo
      21 agosto 2017 at 13:22
      Enviar Resposta

      Bom dia Natan!
      Pelo que vejo o código não está conseguindo encontrar a biblioteca VarSpeedServo.h dentro da libraries.
      Para isto basta seguir os passos especificados no transcorrer deste mesmo artigo, na área que falamos do GitHub.
      Qualquer duvida estamos a disposição.
      Att Equipe UsinaInfo

  • VITOR ARLEI BOEIRA DA SILVA
    28 agosto 2017 at 23:05
    Enviar Resposta

    Esse projeto funciona com programação? Ou só com os joystick??
    Queria comprar só o arduíno e a shild,tem como adaptar um Bluetooth para controlar pelo Cell??

    • Equipe Usinainfo
      29 agosto 2017 at 18:14
      Enviar Resposta

      Boa tarde!
      Sim, este projeto necessita de uma programação para realizar a leitura do joystick e movimentar os servos motores.
      Possivelmente tenha como controlar pelo celular, vai depender do aplicativo utilizado e da programação executada.

  • VITOR ARLEI BOEIRA DA SILVA
    30 agosto 2017 at 23:37
    Enviar Resposta

    Mas ele funciona sem os joystick?? Só com a programação??

    • Equipe Usinainfo
      31 agosto 2017 at 14:51
      Enviar Resposta

      Bom dia!
      Caso seja devidamente programado ele pode ser utilizado sem Joystick não há problema algum.
      Att Equipe UsinaInfo

    Enviar Resposta

    *

    *

    Responda o cálculo abaixo: *

    Sobre nós

    Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

    Sugestões

    Artigos Relacionados