El AS5600 es un sensor de posición magnética rotativa de alta resolución que puede medir ángulos de hasta 360 °. Con su interfaz I2C, es fácil integrarse con una Raspberry Pi para mediciones de ángulo precisos en robótica, automatización y otras aplicaciones. Esta guía explica cómo usar el AS5600 con una Raspberry Pi para leer posiciones angulares.
Lo que necesitarás
- Frambuesa pi (Cualquier modelo con soporte I2C, por ejemplo, PI 3, PI 4)
- AS5600 Módulo de codificador rotativo magnético
- Imán (Diametralmente magnetizado)
- Cables de placa y jersey
- Una computadora con acceso SSH a la Raspberry Pi o un teclado y monitor conectado
- Python instalado en la Raspberry Pi
Paso 1: Habilite I2C en la Raspberry Pi
- Abra la terminal en su Raspberry Pi.
- Ejecute la herramienta de configuración de Raspberry Pi:
sudo raspi-config
- Navegar por Opciones de interfaz> I2C, y habilitarlo.
- Reinicie la Raspberry Pi:
sudo reboot
Paso 2: Cableado el AS5600 al Raspberry Pi
El AS5600 usa el protocolo I2C para la comunicación. Conéctelo a la Raspberry Pi de la siguiente manera:
As5600 pin | Pin de frambuesa Pi |
---|---|
VCC | 3.3V (pin 1) |
Gnd | Tierra (pin 6) |
SDA | SDA (pin 3, GPIO2) |
SCL | SCL (pin 5, GPIO3) |
Nota: Asegúrese de que el voltaje operativo del módulo AS5600 coincida con el nivel lógico de 3.3V de Raspberry Pi.
Paso 3: Instale herramientas y bibliotecas requeridas
- Actualice la Raspberry PI:
sudo apt update && sudo apt upgrade -y
- Instalar herramientas I2C:
sudo apt install -y i2c-tools
- Instale las bibliotecas de Python para la comunicación I2C:
pip install smbus2
Paso 4: Verifique la conexión I2C
- Detectar el AS5600 en el bus I2C:
sudo i2cdetect -y 1
- Debería ver una dirección de dispositivo (por ejemplo,
0x36
) en la salida. Si no, consulte su cableado.
Paso 5: Lea los datos del AS5600
El AS5600 proporciona datos de ángulo de 12 bits a través de I2C. Puede usar el siguiente script de Python para leer y mostrar la posición angular.
Ejemplo de código de 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...")
Paso 6: Aplicaciones del AS5600
El AS5600 es versátil y se puede usar en varios proyectos:
- Robótica: Mida los ángulos de la junta o la rueda para el control preciso.
- Codificadores: Cree codificadores rotativos de bricolaje para máquinas CNC o impresoras 3D.
- Controles de la perilla: Use como una perilla de alta resolución para la navegación de volumen o menú.
- Seguimiento de posición: Seguimiento de posiciones angulares en sistemas de automatización.
Solución de problemas
-
Dispositivo no detectado:
- Verifique las conexiones SDA y SCL.
- Asegúrese de que I2C esté habilitado en la Raspberry Pi.
- Verifique el voltaje operativo del AS5600.
-
Lecturas inexactas:
- Asegúrese de que el imán esté correctamente alineado con el sensor AS5600.
- Use un imán magnetizado diametralmente para mediciones precisas.
-
Errores I2C:
- Verifique los dispositivos conflictivos en el bus I2C usando
i2cdetect
. - Verifique que la dirección de AS5600 coincida con el script.
- Verifique los dispositivos conflictivos en el bus I2C usando
Conclusión
El sensor de posición rotativa magnética AS5600 es una herramienta potente y fácil de usar para medir ángulos. Siguiendo esta guía, puede integrar el AS5600 con una Raspberry Pi para crear sistemas de medición rotacionales precisos para robótica, automatización y más. ¡Experimente con diferentes aplicaciones para desbloquear todo el potencial de este sensor versátil!