Índice:
- Etapa 1: Teoria por trás do projeto
- Etapa 2: Projetando PCB
- Etapa 3: Fazendo PCB
- Etapa 4: projetando o braço
- Etapa 5: impressão das peças
- Etapa 6: juntando tudo
- Etapa 7: Programação do Arduino
- Etapa 8: Programação em Python
- Etapa 9: Lista de peças
- Etapa 10: Reflexões Finais
Vídeo: Braço robótico controlado por Arduino e PC: 10 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Os braços robóticos são amplamente utilizados na indústria. Seja para operações de montagem, soldagem ou mesmo um é usado para atracar na ISS (Estação Espacial Internacional), eles ajudam humanos no trabalho ou substituem totalmente humanos. O braço que eu construí é uma representação menor do braço robótico que deve ser usado para mover objetos. É controlado pelo arduino pro mini, que já possui uma biblioteca embutida para controlar servos. Os servos são controlados por PWM (Pulse Width Modulation) que não é difícil de programar, mas esta biblioteca torna isso mais fácil. O usuário pode controlar esses servos por potenciômetros que são projetados para atuar como divisores de tensão ou a partir de um programa no PC que usa 4 controles deslizantes para controlar os servo motores.
Para este projeto eu tive que projetar meu PCB customizado e fazê-lo, criar modelos 3D de braço e escrever o código que controla tudo. Além disso, codifiquei um programa adicional em python que envia sinais para o arduino, que consegue decodificar esse sinal e mover os servos para a posição que o usuário definiu.
Etapa 1: Teoria por trás do projeto
O Arduino é ótimo porque oferece uma biblioteca gratuita para trabalhar. Para este projeto eu usei a biblioteca Servo.h que torna o controle dos servos muito mais fácil.
O servo motor é controlado por PWM -Pulse Width Modulation- o que significa que para controlar o servo você precisa fazer pulsos de tensão curtos. O servo pode decodificar o comprimento desse sinal e girar para determinada posição. E foi aqui que usei a biblioteca já mencionada. Eu não tive que calcular o comprimento do sinal sozinho, mas usei as funções da biblioteca para as quais eu apenas passo o parâmetro em graus e faz o sinal.
Para controlar servos, usei potenciômetros que atuam como divisores de tensão. As placas Arduino têm vários conversores analógico / digital que usei para o projeto. Basicamente, o Arduino está monitorando a tensão no pino do meio do potenciômetro e se ele gira para um lado, a tensão é 0 Volts (valor = 0) e do outro lado é 5 Volts (valor = 1023). Este valor é então escalado do intervalo 0 - 1023 a 0 - 180 e então é passado para a função já mencionada.
Outro tópico é a comunicação serial com o arduino, que abordarei brevemente. Basicamente, o programa escrito no PC envia o valor escolhido pelo usuário, o arduino pode decodificá-lo e mover o servo para determinada posição
Etapa 2: Projetando PCB
Eu projetei 2 PCBs - um para o controle principal onde está o arduino e os pinos para os servos e o segundo são os potenciômetros. O motivo para 2 PCBs é que eu queria controlar o braço robótico de uma distância segura. Ambos os circuitos são conectados por cabo de determinado comprimento - no meu caso 80 cm.
Para fonte de alimentação eu escolhi um adaptador externo porque os servos que usei consomem muito mais energia do que o Arduino pode fornecer. Como você pode ver, existem alguns capacitores que ainda não mencionei. Eles são capacitores usados para filtração. Como você sabe agora, o servo motor é controlado por impulsos curtos. Esses impulsos podem fazer com que as quedas de tensão de alimentação e os potenciômetros que antes tinham faixa de 0-5 volts agora tenham uma faixa menor. Isso significa que a tensão no pino do meio muda e o arduino obtém esse valor e muda a posição em que está o servo motor. Isso pode continuar indefinidamente e causa oscilações indesejadas que podem ser eliminadas por alguns capacitores paralelos à alimentação.
Etapa 3: Fazendo PCB
Para fazer o PCB, eu sugiro que você leia isto.
Usei o método Ferro sobre papel brilhante e funcionou muito bem.
Então eu soldei as peças no PCB. Você pode ver que usei o soquete arduino caso precise dele no futuro.
Etapa 4: projetando o braço
Esta não foi a parte mais difícil de fazer este projeto.
Toda a configuração é feita de 8 partes, sendo 4 partes não móveis - caixa para potenciômetros e base onde o arduino está localizado - e outras quatro são o próprio braço. Não vou entrar em muitos detalhes, exceto que o design é bastante intuitivo e de certa forma simples. Ele é projetado para caber em meu PCB personalizado e servos que incluirei na lista de peças.
Etapa 5: impressão das peças
As peças foram impressas na impressora Prusa. Algumas faces precisaram ser um pouco retificadas e orifícios perfurados. Também os pilares de suporte precisaram ser removidos.
Etapa 6: juntando tudo
Nesta etapa, como o título diz, eu coloquei tudo junto.
No começo eu soldava os fios nos potenciômetros e depois os fios no PCB. Os potenciômetros se encaixam perfeitamente nos orifícios e colei o PCB a quente nos pilares que estavam impressos na parte inferior da caixa. Você pode fazer furos na placa e na caixa, mas descobri que colar é mais do que suficiente. Então fechei as duas partes da caixa e as fixei na posição com 4 parafusos que se encaixam nos orifícios que projetei.
Como próximo passo, fiz um cabo flat ribbon para conectar as duas placas.
Na caixa principal eu soldava os fios do pino VCC do conector ao switch e depois ao Vcc da placa e do GND da placa ao GND do conector. Em seguida, colei a quente o conector no lugar e coloquei nos pilares. O conector se encaixa perfeitamente no orifício, portanto, não é necessária cola quente.
Em seguida, usando parafusos, conectei o servo inferior ao fundo da caixa.
Depois coloquei a parte superior da caixa na parte inferior e igual à caixa do potenciômetro fixei com 4 parafusos.
A próxima parte foi um pouco complicada, mas consegui juntar o resto do braço com várias porcas e calços e não ficou tão apertado quanto eu esperava porque projetei algumas tolerâncias entre as peças, então é mais fácil trabalhar com elas.
E como passo final, coloquei um pouco de fita adesiva no fundo das caixas, porque senão elas estariam deslizando.
Etapa 7: Programação do Arduino
Já mencionei como o programa funciona na teoria por trás do projeto, mas vou dividi-lo ainda mais.
Portanto, no início, precisamos definir algumas variáveis. Geralmente é copiado 4 vezes porque temos 4 servos e na minha opinião é desnecessário fazer lógicas mais complicadas apenas para tornar o programa um pouco mais curto.
Em seguida, há uma configuração vazia onde os pinos dos servos são definidos.
Depois, há o loop vazio - parte do programa que executa um loop infinito. Neste programa de peças pega o valor das escalas do potenciômetro e coloca na saída. Mas há um problema que o valor do potenciômetro salta um pouco, então eu precisei adicionar um filtro que faz a média dos últimos 5 valores e então colocar a saída. Isso evita oscilações indesejadas.
A última parte do programa lê os dados da porta serial e decide o que fazer com base nos dados enviados.
Para entender o código completamente, sugiro que você visite os sites oficiais do arduino.
Etapa 8: Programação em Python
Essa parte desse projeto não é necessária, mas acho que só dá mais valor a esse projeto.
Python oferece toneladas de bibliotecas de uso gratuito, mas neste projeto estou usando apenas tkinter e serial. Tkinter é usado para GUI (Graphical User Interface) e serial, como o próprio nome diz, é usado para comunicação serial.
Este código cria GUI com 4 controles deslizantes que têm valor mínimo de 0 e máximo de 180. Pode ser uma dica para você que está em graus e cada controle deslizante está programado para controlar um servo. Este programa é bastante simples - ele pega o valor e o envia para o arduino. Mas a forma como ele envia é interessante. Se você escolher alterar o valor do primeiro servo para 123 graus, ele enviará para o valor 1123 do arduino. O primeiro número de cada número enviado informa qual servo está prestes a ser controlado. O Arduino tem um código que pode decodificar isso e mover o servo certo.
Etapa 9: Lista de peças
- Arduino Pro Mini 1 peça
- Servo FS5106B 1 peça
- Servo Futaba S3003 2 peças
- Cabeçalho do pino 2x5 1 peça
- Pin header 1x3 6 peças
- Capacitor 220uF 3 peças
- Micro Servo FS90 1 peça
- Conector AWP-10 2 peças
- Conector FC681492 1 peça
- Switch P-B100G1 1 peça
- Soquete 2x14 1 peça
- TTL-232R-5v - conversor de 1 peça
- Potenciômetro B200K 4 peças
- e muitos mais parafusos, almofadas e porcas
Etapa 10: Reflexões Finais
Obrigado por ler isso e espero ter pelo menos motivado. Este é o meu primeiro grande projeto que fiz sozinho sem copiar coisas da internet e primeiro postar instructables. Eu sei que o braço poderia ser atualizado, mas estou satisfeito com ele por enquanto. Todas as peças e códigos-fonte são gratuitos, você está convidado a usá-los e alterá-los da maneira que desejar. Se você tiver alguma dúvida, fique à vontade para perguntar na seção de comentários. Você também pode ver os vídeos, eles não são de grande qualidade mas mostram funcionalidades do projeto.
Recomendado:
Um braço robótico simples controlado pelo movimento real da mão: 7 etapas (com imagens)
Um braço robótico simples controlado pelo movimento real da mão: Este é um braço robótico DOF muito simples para iniciantes. O braço é controlado pelo Arduino. Ele é conectado a um sensor que é colocado na mão do operador. Portanto, o operador pode controlar o cotovelo do braço dobrando o próprio movimento do cotovelo
Braço robótico controlado do Arduino com 6 graus de liberdade: 5 etapas (com imagens)
Arduino Controlled Robotic Arm W / 6 Degrees of Freedom: Sou membro de um grupo de robótica e todos os anos nosso grupo participa de uma Mini-Maker Faire anual. A partir de 2014, decidi construir um novo projeto para cada evento anual. Na época, eu tinha cerca de um mês antes do evento para arrumar algo
Braço robótico controlado por Arduino do Lego Mindstorm: 6 etapas
Arduino Controlled Robotic Arm de Lego Mindstorm: reaproveite dois velhos motores Lego Mindstorm em um braço de garra controlado por um Arduino Uno. Este é um projeto Hack Sioux Falls onde desafiamos crianças a construir algo legal com um Arduino
Braço robótico controlado por Nunchuk (com Arduino): 14 etapas (com imagens)
Braço robótico controlado por Nunchuk (com Arduino): os braços robóticos são fantásticos! Fábricas em todo o mundo os possuem, onde pintam, soldam e transportam coisas com precisão. Eles também podem ser encontrados na exploração espacial, veículos submarinos operados remotamente e até mesmo em aplicações médicas! E agora você pode
Braço robótico controlado por luva: 6 etapas (com imagens)
Braço robótico controlado por luva: Objetivo: ganhar experiência e habilidades de resolução de problemas criando um projeto para completarOutline- Use uma luva para conectar através de um arduino para controlar um " braço " impresso robótico 3-D. Cada uma das juntas do braço impresso 3-D tem um servo que co