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ć
- Raspberry Pi (Każdy model z obsługą I2C, np. PI 3, PI 4)
- AS5600 Magnetyczny moduł enkodera obrotowego
- Magnes (diametrycznie magnetyzowane)
- Druty chleba i skoczków
- Komputer z dostępem do SSH do Raspberry Pi lub podłączonej klawiatury i monitorowania
- Python zainstalowany na Raspberry Pi
Krok 1: Włącz I2C na Raspberry Pi
- Otwórz terminal na Raspberry Pi.
- Uruchom narzędzie konfiguracyjne Raspberry Pi:
sudo raspi-config
- Przejść do Opcje interfejsu> i2ci włącz to.
- 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
- Zaktualizuj Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Zainstaluj narzędzia I2C:
sudo apt install -y i2c-tools
- Zainstaluj biblioteki Python do komunikacji I2C:
pip install smbus2
Krok 4: Sprawdź połączenie I2C
- Wykryj AS5600 w autobusie I2C:
sudo i2cdetect -y 1
- 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:
- Robotyka: Zmierz kąty złącza lub koła dla precyzyjnej kontroli.
- Enkodery: Utwórz enkodery obrotowe DIY dla maszyn CNC lub drukarek 3D.
- Kontrola pokrętła: Używaj jako pokrętło o wysokiej rozdzielczości do nawigacji głośności lub menu.
- Śledzenie pozycji: Śledź pozycje kątowe w systemach automatyzacji.
Rozwiązywanie problemów
-
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.
-
Niedokładne odczyty:
- Upewnij się, że magnes jest poprawnie wyrównany z czujnikiem AS5600.
- Użyj diametrycznie magnetycznego magnesu do dokładnych pomiarów.
-
Błędy I2C:
- Sprawdź sprzeczne urządzenia w autobusie I2C za pomocą
i2cdetect
. - Sprawdź, czy adres AS5600 pasuje do skryptu.
- Sprawdź sprzeczne urządzenia w autobusie I2C za pomocą
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!