Za pomocą AS5600 z Raspberry Pi

Using the AS5600 with the Raspberry Pi

AS5600 jest obrotowym czujnikiem pozycji magnetycznej o wysokiej rozdzielczości, który może mierzyć kąty do 360 °. Dzięki interfejsowi I2C łatwo jest zintegrować się z Raspberry Pi dla precyzyjnych pomiarów kąta w robotyce, automatyzacji i innych aplikacjach. Ten przewodnik wyjaśnia, jak korzystać z AS5600 z Raspberry Pi do czytania pozycji kątowych.


Czego będziesz potrzebować

  1. Raspberry Pi (Każdy model z obsługą I2C, np. PI 3, PI 4)
  2. AS5600 Magnetyczny moduł enkodera obrotowego
  3. Magnes (diametrycznie magnetyzowane)
  4. Druty chleba i skoczków
  5. Komputer z dostępem do SSH do Raspberry Pi lub podłączonej klawiatury i monitorowania
  6. Python zainstalowany na Raspberry Pi

Krok 1: Włącz I2C na Raspberry Pi

  1. Otwórz terminal na Raspberry Pi.
  2. Uruchom narzędzie konfiguracyjne Raspberry Pi:
    sudo raspi-config
    
  3. Przejść do Opcje interfejsu> i2ci włącz to.
  4. Uruchom ponownie Raspberry Pi:
    sudo reboot
    

Krok 2: Okablowanie AS5600 do Raspberry Pi

AS5600 wykorzystuje protokół I2C do komunikacji. Podłącz go do Raspberry Pi w następujący sposób:

AS5600 PIN Pin Raspberry Pi
VCC 3,3 V (pin 1)
GND Uziemienie (pin 6)
SDA SDA (pin 3, GPIO2)
Scl SCL (pin 5, GPIO3)

Notatka: Upewnij się, że napięcie robocze modułu AS5600 pasuje do poziomu logiki Raspberry Pi.


Krok 3: Zainstaluj wymagane narzędzia i biblioteki

  1. Zaktualizuj Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Zainstaluj narzędzia I2C:
    sudo apt install -y i2c-tools
    
  3. Zainstaluj biblioteki Python do komunikacji I2C:
    pip install smbus2
    

Krok 4: Sprawdź połączenie I2C

  1. Wykryj AS5600 w autobusie I2C:
    sudo i2cdetect -y 1
    
  2. Powinieneś zobaczyć adres urządzenia (np. 0x36) W wyjściu. Jeśli nie, sprawdź okablowanie.

Krok 5: Przeczytaj dane z AS5600

AS5600 zapewnia 12-bitowe dane kąta za pośrednictwem I2C. Możesz użyć następującego skryptu Pythona, aby odczytać i wyświetlać pozycję kątową.

Przykład kodu Pythona

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

Krok 6: Zastosowania AS5600

AS5600 jest wszechstronny i może być używany w różnych projektach:

  1. Robotyka: Zmierz kąty złącza lub koła dla precyzyjnej kontroli.
  2. Enkodery: Utwórz enkodery obrotowe DIY dla maszyn CNC lub drukarek 3D.
  3. Kontrola pokrętła: Używaj jako pokrętło o wysokiej rozdzielczości do nawigacji głośności lub menu.
  4. Śledzenie pozycji: Śledź pozycje kątowe w systemach automatyzacji.

Rozwiązywanie problemów

  1. Urządzenie nie wykryte:

    • Sprawdź połączenia SDA i SCL.
    • Upewnij się, że I2C jest włączony na Raspberry Pi.
    • Sprawdź napięcie robocze AS5600.
  2. Niedokładne odczyty:

    • Upewnij się, że magnes jest poprawnie wyrównany z czujnikiem AS5600.
    • Użyj diametrycznie magnetycznego magnesu do dokładnych pomiarów.
  3. Błędy I2C:

    • Sprawdź sprzeczne urządzenia w autobusie I2C za pomocą i2cdetect.
    • Sprawdź, czy adres AS5600 pasuje do skryptu.

Wniosek

Magnetyczny czujnik pozycji obrotowej AS5600 jest potężnym i łatwym w użyciu narzędziem do pomiaru kąta. Postępując zgodnie z tym przewodnikiem, możesz zintegrować AS5600 z Raspberry Pi, aby stworzyć precyzyjne systemy pomiaru rotacyjnego dla robotyki, automatyzacji i innych. Eksperymentuj z różnymi aplikacjami, aby odblokować pełny potencjał tego wszechstronnego czujnika!

Zostaw komentarz

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.