Controle de servo motor com Beaglebone Black (Parte 6/15)

Controle de servo motor preto Beaglebone

Este tutorial explica o uso fundamental do PWM onde o servo motor é controlado por potenciômetro. É um motor DC que opera com pulso elétrico. Você pode fazer a interface direta do servo motor com o Beaglebone black sem qualquer driver IC. Para isso você deve escrever um programa em script python com adafruit PWM e biblioteca ADC.

Ferramentas necessárias:

  • Beaglebone Preto
  • Servo motor (micro servo 9g)
  • Potenciômetro (5kΩ)
  • Resistor de 1 k Ω
  • Tábua de ensaio
  • Conectores fêmea para fêmea

Configuração do ambiente de software

Instale a versão mais recente do python no BBB conforme explicado no tutorial Como fazer o primeiro programa python com Beaglebone Black. Instale a biblioteca adafruit python-GPIO chamada adafruit_BBIO.

Trabalhando

É um tutorial de aprendizagem simples no qual fiz a interface do servo motor e do potenciômetro com o Beaglebone preto. Quando o script está sendo executado, ele entra em um loop contínuo. A posição do servo motor varia de acordo com o valor do potenciômetro. Se você variar o valor do potenciômetro, o ângulo de rotação do servo motor também muda. Quando o valor do ângulo inserido atingir o valor limite do servo motor, saia do loop contínuo e pare o programa. Imprensa Ctrl+C para interromper a execução do programa no terminal de comando SSH.

Descrição

Vamos primeiro preparar a conexão do circuito. Pegue uma placa de ensaio e forneça VCC e aterramento do BBB até a linha da placa de ensaio. O servo motor requer 4,8 V, enquanto o potenciômetro precisa de apenas 3,3 V. O BBB possui 5 V no sistema de chip e 3,3 V no conector do pino, o que permite extrair ambas as fontes do Beaglebone Black. O sistema 5 V é consumido para o servo motor e 3,3 V é consumido para o potenciômetro. Em um lado da placa de ensaio, conecte a alimentação de 3,3 V do pino número 3terceiro do cabeçalho P9 e aterramento do pino número 2e do cabeçalho P8. Outro lado da placa de ensaio conecta o sistema de alimentação de 5 V do pino número 8º do cabeçalho P9 e torna o aterramento comum com o pino número 2e do cabeçalho P8.

O potenciômetro possui três terminais. O do meio é o terminal de saída e está conectado ao pino ADC (40º pino do cabeçalho P9) de Beaglebone preto. A saída do potenciômetro é um valor analógico, por isso está conectado ao pino ADC. Qualquer pino esquerdo ou direito do potenciômetro é conectado a 3,3 V e os pinos restantes são conectados ao pino de aterramento ADC (34º pino do cabeçalho P9).

O servo motor também possui três terminais:

Fio laranja – entrada de pulso

Fio vermelho – Vcc

Fio marrom – Terra

Servomotor controlado por Beaglebone

O servo motor é um atuador rotativo que controla a posição linear ou angular do motor. É controlado por pulso elétrico com várias larguras ou modulação por largura de pulso. BBB tem pino PWM no chip. O servo motor é conectado ao pino PWM (13º pino do cabeçalho P8) do BBB. Eu conectei um resistor de 1k ohm entre os dois para protegê-lo de danos desnecessários.

Código-fonte do projeto

 

Código-fonte do projeto

###


importar Adafruit_BBIO.PWM como PWM
importar Adafruit_BBIO.ADC como ADC
servo_pin = "P8_13" pino_sensor = 'P9_40' ADC.setup dever_min = 85 dever_máx = 95 dever_span = dever_max - dever_min PWM.start(servo_pin, (100-duty_min), 60,0) enquanto Verdadeiro: leitura = ADC.read(sensor_pin) ângulo = leitura * 1800 se ângulo > 270: PWM.stop(servo_pin) PWM.limpeza quebrar ângulofl = float(ângulo) dever = 100 - ((ângulofl / 180) * dever_span + dever_min) PWM.set_duty_cycle(servo_pin, dever)

###

Diagramas de circuito

servo-BBB6 controlado por beagleblack

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.