Índice:

Braço robótico com módulos Zio Parte 2: 11 etapas
Braço robótico com módulos Zio Parte 2: 11 etapas

Vídeo: Braço robótico com módulos Zio Parte 2: 11 etapas

Vídeo: Braço robótico com módulos Zio Parte 2: 11 etapas
Vídeo: Sua Língua é assim também?? #shorts 2024, Julho
Anonim
Braço Robótico com Módulos Zio - Parte 2
Braço Robótico com Módulos Zio - Parte 2

No tutorial de hoje, iremos utilizar todos os 4 servos e um controlador sem fio PS2 para controlar o braço robótico.

Esta postagem do blog faz parte da Série Zio Robotics.

Introdução

Em nosso blog anterior, postamos o tutorial da Parte 1 sobre como controlar um braço robótico usando módulos Zio. A Parte 1 concentrou-se principalmente em controlar automaticamente a garra do braço robótico para abrir e fechar.

No tutorial de hoje, vamos melhorar um pouco, incluindo um controlador PS2 Wireless para controlar o braço robótico. Para este projeto, estaremos utilizando 4 servos.

Etapa 1: Visão geral do projeto

Nível de dificuldade:

Zio Padawan

Recursos úteis:

Você deve ter um conhecimento básico de como instalar placas de desenvolvimento Zio. Neste tutorial, presumimos que sua placa de desenvolvimento já esteja configurada e pronta para ser configurada. Se você ainda não configurou sua placa, confira nosso tutorial do Guia de início Zio Qwiic abaixo para começar:

Zio Zuino M UNO Guia de início Qwiic

Etapa 2: esquemas

Esquemas
Esquemas

Aqui está o esquema de fiação do projeto da parte 2 do braço robótico, bem como o diagrama do controlador PS2 necessário para entender sua parte de codificação.

Etapa 3: Diagrama do controlador PS2

Diagrama do controlador PS2
Diagrama do controlador PS2

Etapa 4: Configuração da conexão dos módulos Zio

Abaixo está a conexão de nossos módulos Zio para serem configurados com o Braço Robótico. Conectar todos os módulos é muito fácil e não leva mais de 10 minutos para configurar.

Etapa 5: conectar o servo do braço robótico ao servo controlador Zio 16

Conecte o servo do braço robótico ao servo controlador Zio 16
Conecte o servo do braço robótico ao servo controlador Zio 16

Etapa 6: Conecte seu 16 Servo ao Booster DC / DC e configure-o para 6,0V

Conecte seu 16 Servo ao Booster DC / DC e configure-o para 6.0V
Conecte seu 16 Servo ao Booster DC / DC e configure-o para 6.0V

Usamos um Booster DC / DC para aumentar e ajustar a tensão de alimentação da bateria para 6,0.

Use o potenciômetro no DC Booster para ajustar a tensão até chegar a 6,0. Pressione o botão In / Out até que o display mostre 6.0. Você precisa fornecer energia (bateria de 3,7 V) primeiro ao seu Booster DC / DC para ajustar a tensão.

Etapa 7: Conecte o Zuino M Uno ao Zio 16 Servo Controlador

Conecte Zuino M Uno ao Zio 16 Servo Controlador
Conecte Zuino M Uno ao Zio 16 Servo Controlador

Qwiic conecte Zuino M Uno ao controlador Zio Servo com cabo qwiic.

Etapa 8: Conectando o Uno ao receptor PS2

Conectando Uno ao receptor PS2
Conectando Uno ao receptor PS2

Aqui está um diagrama de pinos das conexões. Você precisa de 5 fios de jumper macho para fêmea para esta parte.

Etapa 9: Código para braço robótico

Estaremos usando a PS2 Arduino Library para codificar nosso PS2 Wireless Controller para funcionar com nosso braço robótico. Você pode encontrar e baixar o código-fonte deste projeto Robotic Arm Parte 2 em nossa página do Github.

Baixe e instale as seguintes bibliotecas e salve-as na pasta de bibliotecas do Arduino IDE local:

  • Biblioteca de drivers servo Adafruit PWM
  • Biblioteca PS2 Arduino

Para instalar as bibliotecas, abra seu Arduino IDE, vá para a guia Sketch, selecione Incluir Biblioteca -> Add. Zip Library. Selecione as bibliotecas acima para serem incluídas em seu IDE.

Arduino tem um guia prático sobre como instalar bibliotecas em seu IDE Arduino. Confira aqui!

Etapa 10: execute seu código

Execute o seu código
Execute o seu código

Abra o IDE do Arduino. Em Arquivos> Exemplos> PS2_Arduino_Library, selecione PS2X_Servo

Nota: Antes de poder controlar o seu braço robótico com o Controlador PS2, verifique os seguintes passos: Ligue o seu Controlador PS2. Verifique se o LED de modo acende. Caso contrário, pressione o botão Mode em seu controlador. Depois de fazer o acima, você precisa pressionar o botão reset em seu Zuino M Uno para que ele leia as configurações do controlador. Você precisa pressionar L1 e o Joystick para mover seu braço robótico.

  • Joystick esquerdo controla a flexão do braço para cima ou para baixo
  • O joystick direito controla a garra para abrir ou fechar e girar a garra para a esquerda ou direita.

Etapa 11: Explicação do código

O uso da biblioteca PS2X Arduino é simples, exigindo apenas uma inicialização, uma configuração e, em seguida, um comando de leitura.

Para definir a conexão de seu controlador PS2 com seu Uno, abaixo estão os pinos que você precisa definir em seu código:

/ *************************************************** *************** * conjunto de pinos conectado ao controlador PS2: * - coluna 1e: original * - coluna 2e: Stef? * substitua os números dos pinos pelos que você usa ****************************************** *********************** / # define PS2_DAT 13 // 14 # define PS2_CMD 11 // 15 # define PS2_SEL 10 // 16 # define PS2_CLK 12 // 17

Substituímos os pinos pelos que usamos para conectar ao nosso Uno, conforme descrito no diagrama de pinos acima.

/ ************************************************** ***************** selecione os modos do controlador PS2: * - pressões = leitura analógica de botões * - ruído = ruído do motor * descomente 1 das linhas para cada seleção de modo ** ************************************************** ************ / // # define pressões true # define pressures false // # define rumble true # define rumble false

Aqui, definimos o modo PS2 para pressões e ruído como falso. Comentamos os que não usamos.

Usaremos apenas o comando Joystick do controlador e L1 para controlar o movimento de nosso braço robótico.

void loop () {/ * Você deve Ler Gamepad para obter novos valores e definir valores de vibração ps2x.read_gamepad (motor pequeno ligado / desligado, força maior do motor de 0-255) se você não habilitar o ruído, use ps2x.read_gamepad (); sem valores Você deve chamar isso pelo menos uma vez por segundo * / if (erro == 1) // pula o loop se nenhum controlador for encontrado return; else {// Controlador DualShock ps2x.read_gamepad (falso, vibrar); // lê o controlador e define o motor grande para girar na velocidade de 'vibração' if (ps2x. Button (PSB_START)) // será TRUE enquanto o botão for pressionado Serial.println ("A partida está sendo mantida"); if (ps2x. Button (PSB_SELECT)) Serial.println ("A seleção está sendo mantida"); vibrar = ps2x. Analog (PSAB_CROSS); // isso definirá a grande velocidade de vibração do motor com base em quão forte você pressiona o botão azul (X) if (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// imprimir os valores do stick se algum for TRUE RY_Value = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Stick Values:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

O código abaixo é onde codificamos nossos servos que controlam nosso braço robótico que incluímos na chamada de função em ps2x.button (PSB_L1) || ps2x.button (PSB_R1).

Você precisa pressionar o botão L1 ou R1 junto com o Joystick para controlar seu braço robótico.

O joystick esquerdo controla os servos 2 e 3 para a parte do braço - controla a flexão para cima e para baixo do braço, respectivamente, enquanto o joystick direito controla os servos 0 e 1 da garra do braço robótico para abrir ou fechar e girar para a esquerda ou direita.

SERVO 0, 1 - Garra SERVO 2, 3 - Braço

Você pode fazer alterações nos valores nesta seção para controlar o grau do ângulo do braço robótico:

pulselen0 = mapa (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = mapa (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = mapa (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = mapa (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Recomendado: