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á
- Raspberry Pi (Qualquer modelo com suporte I2C, por exemplo, PI 3, PI 4)
- Módulo de codificador rotativo magnético AS5600
- Ímã (diametralmente magnetizado)
- Fios de pão e jumper
- Um computador com acesso SSH ao Raspberry Pi ou um teclado conectado e monitor
- Python instalado no Raspberry Pi
Etapa 1: Ativar I2C no Raspberry Pi
- Abra o terminal no seu Raspberry Pi.
- Execute a ferramenta de configuração do Raspberry Pi:
sudo raspi-config
- Navegar para Opções de interface> i2c, e habilitá -lo.
- 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
- Atualize o Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Instale as ferramentas I2C:
sudo apt install -y i2c-tools
- Instale as bibliotecas Python para a comunicação I2C:
pip install smbus2
Etapa 4: Verifique a conexão I2C
- Detecte o AS5600 no barramento i2C:
sudo i2cdetect -y 1
- 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:
- Robótica: Meça os ângulos da junta ou da roda para controle preciso.
- Codificadores: Crie codificadores rotativos DIY para máquinas CNC ou impressoras 3D.
- Controles do botão: Use como um botão de alta resolução para navegação por volume ou menu.
- Rastreamento de posição: Rastreie as posições angulares em sistemas de automação.
Solução de problemas
-
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.
-
Leituras imprecisas:
- Verifique se o ímã está alinhado corretamente com o sensor AS5600.
- Use um ímã diametralmente magnetizado para medições precisas.
-
Erros i2c:
- Verifique se há dispositivos conflitantes no barramento i2c usando
i2cdetect
. - Verifique se o endereço do AS5600 corresponde ao script.
- Verifique se há dispositivos conflitantes no barramento i2c usando
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!