Pular para o conteúdo principal

Motor Bridge Cape v1.0

O Motor Bridge Cape possui controle de motor bidirecional usando dois TB6612FNG integrados de ponte H dupla, então ele pode controlar dois motores de passo ou quatro motores DC escovados com alimentação DC de 6 ~15V e cerca de 1A de consumo de corrente por motor. O cape fornece alimentação regulada de 5V para BBG ou BBB com tensão de entrada máxima de 15V. Ele também possui seis interfaces de controle de servo e seis I\O de expansão. Todas as funcionalidades são fornecidas pelo coprocessador STM32F0 integrado. O MCU pode se comunicar com o BeagleBone® pela interface I2C ou UART.

Recursos

  • Pode acionar 4 motores DC ou 2 motores de passo
  • Pode acionar 6 servos
  • Plataforma Mbed
  • Coprocessador STM32F0
  • Dois TB6612FNG
  • 6 I\Os de expansão
  • Comunicação com BBG por interface I2C ou UART

Especificações

  • Tensão de entrada da bateria: 6~15V
  • Tensão de trabalho da ponte H: 6~15V
  • Corrente de saída DC/DC 5V: máx. 2A
  • Corrente de saída 3V3: máx. 350mA
  • 4 drivers de ponte H, cada um com corrente nominal: 1.2A, corrente de pico: 3.2A
  • 6 drivers de servo, tensão de trabalho: 5V, corrente total não maior que 1.5A
  • Proteção contra conexão reversa de entrada
  • Proteção contra sobrecorrente: fusível rápido único de 3A

Visão geral do hardware

  • Fusível único de 3A: Proteção contra sobrecorrente
  • Botão de reset: Reinicia o coprocessador
  • Interface SWD: Interface de depuração
  • Placa de prototipagem: Estender outros circuitos
  • GPIOs: Estender outros circuitos
  • Servos: Interface para motor de servo
  • STM32F030R8: O coprocessador
  • DC/DC: Circuito de conversão de tensão
  • TB6612FNG: CI de ponte H
  • Indicador: Lâmpada indicadora para direção do motor
  • Chave de modo de trabalho: Standby ou Trabalhando
  • Proteção contra reversão de entrada: Proteger o circuito
  • Motor4/Motor3: Aciona 2 motores DC ou 1 motor de passo
  • Motor2/Motor1: Aciona 2 motores DC ou 1 motor de passo
  • Bateria: Fornece energia para o motor

Primeiros passos

Após esta seção, mostrarei como usar o Motor Bridge Cape no BBG. Antes de começar, faça o download do código da biblioteca do Motor Bridge Cape Driver a partir do Github.

Para usar a biblioteca Motor Bridge Cape, simplesmente adicione o arquivo MotorBridge.py ao seu projeto. Depois, importe o arquivo python para o seu projeto e crie um objeto do Motor Bridge Cape.

import MotorBridge
motor = MotorBridge.MotorBridgeCape()

Instalar as dependências

sudo apt-get update
sudo apt-get install build-essential python-pip python-dev python-smbus git
sudo pip install Adafruit-GPIO

Motor de passo

A interface de Motor de Passo do Motor Bridge Cape é mostrada na figura abaixo.

As funções do Motor de Passo

Aqui está uma breve descrição sobre a função do motor de passo.

StepperMotorAInit()

Description: Inicializa a porta do Motor de Passo A.

StepperMotorAMove(MoveSteps,StepDelayTime)

Description: Aciona o Motor de Passo A.

MoveSteps: Quantos passos o motor de passo irá mover. Positivo significa direção no sentido horário. Negativo significa direção no sentido anti-horário.

StepDelayTime: O tempo morto para cada passo. unidade: µs.

StepperMotorBInit()

Description: Inicializa a porta do Motor de Passo B.

StepperMotorBMove(MoveSteps,StepDelayTime)

Description: Aciona o Motor de Passo B.

MoveSteps: Quantos passos o motor de passo irá mover. Positivo significa direção no sentido horário. Negativo significa direção no sentido anti-horário.

StepDelayTime: O tempo morto para cada passo. unidade: µs.

Exemplo de Motor de Passo

Copie o código a seguir para o seu projeto e salve-o como um arquivo python.

import MotorBridge
import time

def StepperMotorATest():
print 'Hello From MotorBridge'
motor.StepperMotorAInit()
motor.StepperMotorAMove(1000,1000) # 1000 steppers 1000us every step
time.sleep(1)
motor.StepperMotorAMove(-1000,1000) #1000 steppers 1000us every step
time.sleep(1)

def StepperMotorBTest():
print 'Hello From MotorBridge'
motor.StepperMotorBInit()
motor.StepperMotorBMove(1000,1000) # 1000steppers 1000us every step
time.sleep(1)
motor.StepperMotorBMove(-1000,1000) # 1000 steppers 1000us every step
time.sleep(1)


if __name__=="__main__":
motor = MotorBridge.MotorBridgeCape()
StepperMotorATest()
StepperMotorBTest()

Motor DC

A interface de Motor DC do Motor Bridge Cape é mostrada na figura abaixo.

As funções do Motor DC

Aqui está uma breve descrição sobre as funções do motor DC.

DCMotorInit(MotorName,Frequency)

Description: Inicializa o Motor DC e define a frequência.

MotorName: 1 ~ 4 significa Motor1 ~ Motor4.

Frequency: Define a frequência do motor DC.

nota

Se você alterar a frequência do motor DC, a frequência dos outros motores DC também será alterada.

DCMotorMove(MotorName,Direction,PWMDuty)

Description: Aciona o Motor DC. Define a direção e o PWMDuty.

MotorName: 1 ~ 4 significa Motor1 ~ Motor4.

Direction: 1 significa sentido horário. 2 significa sentido anti-horário. 3 para o motor.

PWMDuty: 0 ~ 100 significa 0% ~ 100% do ciclo de trabalho pwm.

motor.DCMotorStop(MotorName)

Description: Para o Motor DC.

MotorName: 1 ~ 4 significa Motor1 ~ Motor4.

Exemplo de Motor DC

Copie o código a seguir para o seu projeto e salve-o como um arquivo python.

import MotorBridge
import time

MotorName = 1
ClockWise = 1
CounterClockWise = 2
PwmDuty = 90
Frequency = 1000

if __name__=="__main__":
motor = MotorBridge.MotorBridgeCape()
motor.DCMotorInit(MotorName,Frequency)
while True:
motor.DCMotorMove(MotorName,ClockWise,PwmDuty)
time.sleep(2)
motor.DCMotorMove(MotorName,CounterClockWise,PwmDuty)
time.sleep(2)
print "hello"
motor.DCMotorStop(MotorName)
time.sleep(2)

Servo

A interface de Servo do Motor Bridge Cape é mostrada na figura abaixo.

As funções do Servo

Aqui está uma breve descrição sobre as funções do Servo.

ServoInit(ServoName,Frequency)

Description: Inicializa o Servo e define a frequência.

ServoName: 1 ~ 6 significa Servo1 ~ Servo6.

Frequency: Define a frequência do Servo, o valor padrão é 50 Hz.

ServoMoveAngle(ServoName,Angle)

Description: Aciona o Servo. Define o ângulo do Servo.

ServoName: 1 ~ 6 significa Servo1 ~ Servo6.

Angle: 0 ~ 180 significa de 0 graus a 180 graus.

Exemplo de Servo

Copie o código a seguir para o seu projeto e salve-o como um arquivo python.

import MotorBridge
import time
ServoName = 2
Frequency = 50
Angle1 = 20
Angle2 = 160

if __name__=="__main__":
motor = MotorBridge.MotorBridgeCape()
motor.ServoInit(ServoName,Frequency)

while True:
print 'Servo Test'
motor.ServoMoveAngle(ServoName,Angle1)
time.sleep(2)
motor.ServoMoveAngle(ServoName,Angle2)
time.sleep(2)

Atualizar o firmware

Se houver algo errado com o seu cape, tente atualizá-lo. Esta seção mostra como atualizar o firmware do Motor Bridge Cape usando o BeagleBone® Green. Também funciona em BBGW e BBB.

1.Insira o Motor Bridge Cape no BBG/BBGW/BBB e conecte o BBG ao seu computador via cabo USB.

2.Conecte o seu BBG à internet e acesse-o via SSH como mostrado na figura abaixo.

3.Faça o download do código do Github executando os seguintes comandos

git clone https://github.com/Seeed-Studio/MotorBridgeCapeFirmware

4.Navegue até "MotorBridgeCapeFirmware" e execute o comando "make flash" para gravar o firmware.

cd MotorBridgeCapeFirmware/ && make flash

Após alguns segundos, você poderá ver a informação "Verification OK" no terminal

5.Verifique se o firmware foi gravado corretamente executando o seguinte comando

i2cdetect -y -r 1

Se você encontrar o endereço I2C 0x4b, isso significa que você já atualizou o firmware com sucesso.

Problemas conhecidos

Não é possível encontrar o endereço I2C

P: Eu já atualizei o firmware, mas não consigo detectar o endereço i2c?

R: Certifique-se de que o pino P9_23 esteja em nível Alto, já que o P9_23 está conectado ao pino de Reset do STM32. Eu configuro o pino P9_23 para nível alto na função de inicialização da classe MotorBridgeCape.

Não é possível atualizar o firmware

P: Quando atualizo o firmware, a mensagem de erro diz que não é possível encontrar a UART2?

R: Você deve habilitar o BB-UART2, já que o BBG grava o firmware no Motor Bridge Cape pela UART2..

vi /boot/uEnv.txt

Em seguida, descomente "cape_enable=capemgr.enable_partno=BB-UART2". Salve e saia do editor e, por fim, reinicie sua placa.

O Cape ainda não está funcionando

P: Eu já atualizei o firmware com sucesso e consigo detectar o endereço I2C, mas por que ainda não consigo fazer o cape funcionar?

R: Por favor, note que há uma chave de modo de trabalho na placa; certifique-se de que a chave esteja na posição de trabalho. Se você ainda tiver outras perguntas, por favor, vá ao nosso fórum.

falha ao executar make flash

P: Não é possível executar make flash com o código de erro "Can't init. Ensure BOOT0=1 BOOT1=0, and reset Device"

R: Siga as etapas abaixo para resolver o problema.

  • Etapa 1: Execute sudo nano /boot/uEnv.txt e então adicione as 2 linhas abaixo no final do uEnv.txt.
uboot_overlay_addr0=/lib/firmware/BB-UART2-00A0.dtbo
enable_uboot_cape_universal=1
  • Passo 2. Reinicie o BBGW
  • Passo 3. Execute o Sudo make flash novamente.

Visualizador Online de Esquemático

Temos esta peça disponível no geppetto, design eletrônico modular fácil com Seeed e Geppeto. Construa agora. geppetto.seeedstudio.com

Recursos

Suporte Técnico & Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...