Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Usando IoT para controlar remotamente um braço robótico

Componentes e suprimentos

Arduino MKR1000
× 1

Ferramentas e máquinas necessárias

Cortador a laser (genérico)

Aplicativos e serviços online

MATLAB
Arduino IDE

Sobre este projeto





Introdução


Eu realmente queria tentar projetar um braço robótico completamente do zero. Existem muitos designs de código aberto disponíveis, mas achei que seria gratificante se pudesse projetar, construir e programar um do nada (e foi).

Vou falar sobre as fases de design e programação. Mas vou me concentrar mais no lado da programação, uma vez que não se trata apenas de controlar os ângulos do servo.

Aqui está um link para o vídeo do projeto final em ação - https://www.mathworks.com/videos/how-to-control-a-robotic-arm-from-a-remote-location-using-iot-1538564659095. html.

Usei o Simulink para programar um Arduino MKR1000 que é o MCU que controla o braço robótico. Em seguida, adicionei a capacidade de controlar o braço do robô de praticamente qualquer lugar por meio do ThingSpeak, uma plataforma IoT aberta com análises MATLAB.

Hardware Necessário
  • Contraplacado de 15 "x 20" 1/8 de polegada
  • Arduino MKR1000
  • 5x servo GS9025MG
  • Jack de cano DC compatível com placa de ensaio de 2,1 mm
  • Fonte de alimentação de conector cilíndrico de 6 V DC
  • Jumper fios
  • 3x 2n2222a transistores
  • 10x porcas M2
  • parafusos 10x M2 x 10
  • 40x porcas M3
  • parafusos 40x M3 x 25

Software usado
  • MATLAB
  • Simulink
  • Pacote de suporte MATLAB para hardware Arduino
  • Pacote de suporte Simulink para hardware Arduino
  • Pacote de suporte MATLAB para ThingSpeak





Design


Eu queria manter o custo das peças baixo, então projetei isso para servos de hobby, especificamente o modelo GS-9025MG. Isso significava que o peso e o tamanho finais eram limitados. Isso ocorria porque os microsservos não podiam exercer muito torque e, como resultado, não podiam levantar braços de alavanca pesados.

Tentei fazer um protótipo com compensado de 1/4 de polegada, que se mostrou muito pesado para os servos. Reduzi o comprimento dos braços e usei compensado de 1/8 de polegada, e isso resolveu o problema do controle do servo. Elaborei o design usando o Fusion 360 e baixei o design como um arquivo ..dxf, que cortei a laser.

Além disso, o fornecimento de tensão contínua DC de uma tomada de parede provou ser necessário porque a corrente retirada das baterias era muito alta e as drenava muito rapidamente.

Em relação ao controle dos motores, o Arduino MKR1000 tem 4 pinos PWM, mas precisei de 5 para controlar os 5 servos. Eu fui criativo e usei um pino PWM para controlar 2 servos e um pino digital para alternar entre os dois servos e controlar um de cada vez.

Aqui está o circuito que descreve isso:

Aqui está a fiação dos servos para o Arduino:





Programação


Havia duas partes da programação, a fase de prototipagem, onde montei e fiz os servos comandarem para um determinado local, e a fase de controle preciso, onde fui capaz de comandar um local para o servo usando o ThingSpeak.





Prototipagem


Usando controles deslizantes e blocos constantes, fui capaz de comandar os servos no Arduino para se moverem para certos ângulos. Usei este modelo para descobrir os vieses entre o ângulo comandado e os ângulos reais do braço, bem como a faixa de ângulos permitidos para cada servo.

Os blocos com a engrenagem sobre eles são os blocos de gravação PWM para comandar o saque a um certo ângulo entre 0 e 180.

Usei cinemática inversa para um braço em movimento plano 2D para resolver os ângulos necessários para mover o braço para uma coordenada XY. Descobri que este link explica a cinemática bastante bem:https://appliedgo.net/roboticarm/





Controle preciso


Embora pareça mais complicado do que o outro, a lógica ainda é a mesma. Os blocos de saída ainda são os blocos de gravação do servo com as engrenagens. Os blocos de entrada agora não são as entradas do controle deslizante / bloco constante, mas estão sendo lidos no canal ThingSpeak. Vou elaborar mais tarde, usando ThingSpeak. As entradas são as posições X e Y do braço, que usando o bloco de função loc2angles MATLAB são convertidos em ângulos comandados para o braço. O bloco angles2loc na parte superior do modelo é apenas uma forma de monitorar o sistema para garantir que o servo ângulos traduzidos para a posição de entrada correta usando cinemática direta. Uma das ferramentas legais do Simulink que usei neste projeto é o Modo Externo . Isso me permitiu monitorar o sistema enquanto ele estava sendo executado no próprio Arduino.

Os blocos com a nuvem cinza sobre eles são o bloco de leitura ThingSpeak embutido no pacote de suporte Simulink para Arduino. Eu insiro o ID do canal, o número do campo de dados que desejo recuperar e a chave de leitura da API, e ele produz os dados desse canal e campo. Não se preocupe, se você não estiver familiarizado com qualquer um desses termos, irei elaborar em breve.





Usando ThingSpeak:Criando e usando um canal


1. Vá para https://thingspeak.com/

2. Clique em ‘entrar’ no canto superior direito e faça o login usando sua conta gratuita do MathWorks.

3. Na página do painel, clique em ‘Novo canal’

4. Preencha os dados como abaixo. Os dados mostrados são tudo que você precisa preencher.

5. Clique em ‘Salvar canal’ na parte inferior

6. Agora você criou um canal ThingSpeak

7. Na janela de comando MATLAB ou usando o aplicativo móvel MATLAB, você pode inserir comandos semelhantes a:thingSpeakWrite (chID, [0.6963.94 -12 0 0], 'WriteKey', APIKEY, 'Fields', [1 2 3 4 5]);

Isso grava novos dados nos campos especificados no canal ThingSpeak. Você pode alterar os valores no segundo argumento da chamada de função para alterar o valor do campo correspondente. Depois de alterar os valores, os dados do canal devem ficar assim:





Executando o modelo


Ao terminar de configurar o canal ThingSpeak, você pode executar o modelo no Arduino no modo externo ou implantando no hardware. No modelo Simulink, vá para 'Parâmetros de configuração do modelo' clicando na pequena engrenagem no painel do menu superior, selecione 'Implementação de hardware' e certifique-se de que a 'Placa de hardware' seja o Arduino MKR 1000.Em 'Recursos de hardware de destino' em Na mesma guia, clique em Propriedades de WiFi e insira as credenciais de WiFi para acessar a rede.

Clique no botão verde de execução para executar o modelo no modo externo ou no botão azul de implantação para implantá-lo no hardware.

Assim que o modelo estiver em execução, você pode gravar novos dados nos campos do canal ThingSpeak do MATLAB ou MATLAB mobile em seu telefone e observar como ele move o braço do seu robô!





Código


https://www.mathworks.com/matlabcentral/fileexchange/68880-controlling-a-robotic-arm-from-anywhere-using-iot

Processo de manufatura

  1. Controle remoto universal usando Arduino, 1Sheeld e Android
  2. Aceitar moeda de controle com Arduino
  3. Arduino Control Center
  4. Monitor de freqüência cardíaca usando IoT
  5. IOT - Jar inteligente usando ESP8266, Arduino e sensor ultrassônico
  6. Arduino 3D-Printed Robotic Arm
  7. Controle o Arduino Rover usando Firmata e o controlador do Xbox One
  8. Controle do umidificador Arduino
  9. Braço robótico controlado por Nunchuk (com Arduino)
  10. Braço robótico simples e inteligente usando Arduino