Usando o AS5600 com o Raspberry Pi

Using the AS5600 with the Raspberry Pi

O AS5600 é um sensor de posição magnética rotativa de alta resolução que pode medir ângulos até 360 °. Com sua interface I2C, é fácil integrar a um Raspberry Pi para medições de ângulo preciso em robótica, automação e outros aplicativos. Este guia explica como usar o AS5600 com um Raspberry Pi para ler posições angulares.


O que você precisará

  1. Raspberry Pi (Qualquer modelo com suporte I2C, por exemplo, PI 3, PI 4)
  2. Módulo de codificador rotativo magnético AS5600
  3. Ímã (diametralmente magnetizado)
  4. Fios de pão e jumper
  5. Um computador com acesso SSH ao Raspberry Pi ou um teclado conectado e monitor
  6. Python instalado no Raspberry Pi

Etapa 1: Ativar I2C no Raspberry Pi

  1. Abra o terminal no seu Raspberry Pi.
  2. Execute a ferramenta de configuração do Raspberry Pi:
    sudo raspi-config
    
  3. Navegar para Opções de interface> i2c, e habilitá -lo.
  4. Reinicie o Raspberry Pi:
    sudo reboot
    

Etapa 2: Fiação do AS5600 para o Raspberry Pi

O AS5600 usa o protocolo I2C para comunicação. Conecte -o ao Raspberry Pi da seguinte forma:

AS5600 PIN Pino de framboesa pi
VCC 3.3V (pino 1)
Gnd Terra (pino 6)
SDA SDA (pino 3, gpio2)
SCL SCL (pino 5, gpio3)

Observação: Verifique se a tensão operacional do módulo AS5600 corresponde ao nível lógico de 3.3V do Raspberry Pi.


Etapa 3: Instale as ferramentas e bibliotecas necessárias

  1. Atualize o Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Instale as ferramentas I2C:
    sudo apt install -y i2c-tools
    
  3. Instale as bibliotecas Python para a comunicação I2C:
    pip install smbus2
    

Etapa 4: Verifique a conexão I2C

  1. Detecte o AS5600 no barramento i2C:
    sudo i2cdetect -y 1
    
  2. Você deve ver um endereço de dispositivo (por exemplo, 0x36) na saída. Caso contrário, verifique sua fiação.

Etapa 5: Leia os dados do AS5600

O AS5600 fornece dados de ângulo de 12 bits através do i2C. Você pode usar o seguinte script python para ler e exibir a posição angular.

Exemplo de código Python

import smbus2
import time

# Define I2C address and bus
AS5600_ADDR = 0x36
ANGLE_REG = 0x0E

bus = smbus2.SMBus(1)

def read_angle():
    # Read two bytes from the angle register
    raw_data = bus.read_i2c_block_data(AS5600_ADDR, ANGLE_REG, 2)
    angle = (raw_data[0] << 8) | raw_data[1]  # Combine MSB and LSB
    angle = angle & 0x0FFF  # Mask to 12 bits
    return (angle / 4096.0) * 360.0  # Convert to degrees

try:
    while True:
        angle = read_angle()
        print(f"Angle: {angle:.2f} degrees")
        time.sleep(0.5)
except KeyboardInterrupt:
    print("Exiting...")

Etapa 6: Aplicações do AS5600

O AS5600 é versátil e pode ser usado em vários projetos:

  1. Robótica: Meça os ângulos da junta ou da roda para controle preciso.
  2. Codificadores: Crie codificadores rotativos DIY para máquinas CNC ou impressoras 3D.
  3. Controles do botão: Use como um botão de alta resolução para navegação por volume ou menu.
  4. Rastreamento de posição: Rastreie as posições angulares em sistemas de automação.

Solução de problemas

  1. Dispositivo não detectado:

    • Verifique as conexões SDA e SCL.
    • Verifique se I2C está ativado no Raspberry Pi.
    • Verifique a tensão de operação do AS5600.
  2. Leituras imprecisas:

    • Verifique se o ímã está alinhado corretamente com o sensor AS5600.
    • Use um ímã diametralmente magnetizado para medições precisas.
  3. Erros i2c:

    • Verifique se há dispositivos conflitantes no barramento i2c usando i2cdetect.
    • Verifique se o endereço do AS5600 corresponde ao script.

Conclusão

O sensor de posição rotativa magnética AS5600 é uma ferramenta poderosa e fácil de usar para medir ângulos. Seguindo este guia, você pode integrar o AS5600 com um Raspberry Pi para criar sistemas de medição rotacional precisos para robótica, automação e muito mais. Experimente aplicativos diferentes para desbloquear todo o potencial desse sensor versátil!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.