Använda AS5600 med Raspberry Pi

Using the AS5600 with the Raspberry Pi

AS5600 är en högupplöst roterande magnetpositionsensor som kan mäta vinklar upp till 360 °. Med sitt I2C -gränssnitt är det lätt att integrera med en Raspberry Pi för exakta vinkelmätningar inom robotik, automatisering och andra applikationer. Den här guiden förklarar hur man använder AS5600 med en Raspberry Pi för att läsa vinkelpositioner.


Vad du behöver

  1. Hallon (Varje modell med I2C -stöd, t.ex. PI 3, PI 4)
  2. AS5600 Magnetic Rotary Encoder Module
  3. Magnet (diametralt magnetiserad)
  4. Breadboard och jumpertrådar
  5. En dator med SSH -åtkomst till Raspberry Pi eller ett anslutet tangentbord och monitor
  6. Python installerad på Raspberry Pi

Steg 1: Aktivera i2c på Raspberry Pi

  1. Öppna terminalen på din Raspberry Pi.
  2. Kör Raspberry PI -konfigurationsverktyget:
    sudo raspi-config
    
  3. Navigera till Gränssnittsalternativ> i2coch aktivera det.
  4. Starta om Raspberry Pi:
    sudo reboot
    

Steg 2: Kopplar AS5600 till Raspberry Pi

AS5600 använder I2C -protokollet för kommunikation. Anslut den till Raspberry Pi enligt följande:

AS5600 -stift Hallon pi
Vcc 3.3V (stift 1)
Gard Mark (stift 6)
SDA SDA (stift 3, GPIO2)
SCL SCL (stift 5, GPIO3)

Notera: Se till att AS5600 -modulens driftspänning matchar Raspberry Pis 3.3V logiknivå.


Steg 3: Installera nödvändiga verktyg och bibliotek

  1. Uppdatera Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installera i2c -verktyg:
    sudo apt install -y i2c-tools
    
  3. Installera pythonbibliotek för I2C -kommunikation:
    pip install smbus2
    

Steg 4: Verifiera I2C -anslutningen

  1. Upptäck AS5600 på i2c -bussen:
    sudo i2cdetect -y 1
    
  2. Du bör se en enhetsadress (t.ex. 0x36) i utgången. Om inte, kolla dina ledningar.

Steg 5: Läs data från AS5600

AS5600 tillhandahåller 12-bitars vinkeldata genom I2C. Du kan använda följande Python -skript för att läsa och visa vinkelläget.

Python -kodexempel

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...")

Steg 6: ASS5600: s tillämpningar

AS5600 är mångsidig och kan användas i olika projekt:

  1. Robotik: Mät fog- eller hjulvinklar för exakt kontroll.
  2. Kodare: Skapa DIY -rotationskodare för CNC -maskiner eller 3D -skrivare.
  3. Knappkontroller: Använd som en högupplöst knopp för volym- eller menynavigering.
  4. Positionsspårning: Spåra vinkellägen i automatiseringssystem.

Felsökning

  1. Enheten inte upptäckt:

    • Verifiera SDA- och SCL -anslutningar.
    • Se till att I2C är aktiverad på Raspberry Pi.
    • Kontrollera driftspänningen för AS5600.
  2. Felaktiga avläsningar:

    • Se till att magneten är korrekt inriktad med AS5600 -sensorn.
    • Använd en diametralt magnetiserad magnet för exakta mätningar.
  3. I2C -fel:

    • Kontrollera om det är motstridiga enheter på I2C -bussen med i2cdetect.
    • Verifiera AS5600: s adress matchar skriptet.

Slutsats

AS5600 magnetisk rotationsläget är ett kraftfullt och lättanvänt verktyg för att mäta vinklar. Genom att följa den här guiden kan du integrera AS5600 med en Raspberry PI för att skapa exakta rotationsmätningssystem för robotik, automatisering och mer. Experimentera med olika applikationer för att låsa upp hela potentialen för denna mångsidiga sensor!

Lämna en kommentar

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.