AS5600 adalah sensor posisi magnetik putar resolusi tinggi yang dapat mengukur sudut hingga 360 °. Dengan antarmuka I2C -nya, mudah untuk diintegrasikan dengan Raspberry Pi untuk pengukuran sudut yang tepat dalam robotika, otomatisasi, dan aplikasi lainnya. Panduan ini menjelaskan cara menggunakan AS5600 dengan Raspberry Pi untuk membaca posisi sudut.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan I2C, mis., Pi 3, pi 4)
- As5600 Modul Encoder Rotary Magnetic
- Magnet (Magnetis secara diametris)
- Papan tempat memotong papan dan kabel jumper
- Komputer dengan akses SSH ke Raspberry Pi atau keyboard yang terhubung dan monitor
- Python dipasang di Raspberry Pi
Langkah 1: Aktifkan I2C di Raspberry Pi
- Buka terminal di Raspberry Pi Anda.
- Jalankan alat konfigurasi Raspberry Pi:
sudo raspi-config
- Navigasikan ke Opsi Antarmuka> I2C, dan aktifkan.
- Reboot Raspberry Pi:
sudo reboot
Langkah 2: Kabel AS5600 ke Raspberry Pi
AS5600 menggunakan protokol I2C untuk komunikasi. Hubungkan ke Raspberry Pi sebagai berikut:
Pin AS5600 | Raspberry Pi Pin |
---|---|
Vcc | 3.3V (pin 1) |
Gnd | Ground (pin 6) |
SDA | SDA (Pin 3, GPIO2) |
Scl | SCL (pin 5, gpio3) |
Catatan: Pastikan tegangan operasi modul AS5600 cocok dengan level logika 3.3V Raspberry Pi.
Langkah 3: Instal alat dan perpustakaan yang diperlukan
- Perbarui Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Instal I2C Tools:
sudo apt install -y i2c-tools
- Instal Perpustakaan Python untuk Komunikasi I2C:
pip install smbus2
Langkah 4: Verifikasi Koneksi I2C
- Mendeteksi AS5600 di Bus I2C:
sudo i2cdetect -y 1
- Anda harus melihat alamat perangkat (mis.,
0x36
) dalam output. Jika tidak, periksa kabel Anda.
Langkah 5: Baca data dari AS5600
AS5600 menyediakan data sudut 12-bit melalui I2C. Anda dapat menggunakan skrip Python berikut untuk membaca dan menampilkan posisi sudut.
Contoh Kode 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...")
Langkah 6: Aplikasi AS5600
AS5600 serba guna dan dapat digunakan dalam berbagai proyek:
- Robotika: Ukur sudut sambungan atau roda untuk kontrol yang tepat.
- Encoders: Buat encoder putar DIY untuk mesin CNC atau printer 3D.
- Kontrol kenop: Gunakan sebagai kenop resolusi tinggi untuk navigasi volume atau menu.
- Pelacakan Posisi: Lacak posisi sudut dalam sistem otomasi.
Pemecahan masalah
-
Perangkat tidak terdeteksi:
- Verifikasi koneksi SDA dan SCL.
- Pastikan I2C diaktifkan di Raspberry Pi.
- Periksa tegangan operasi AS5600.
-
Bacaan yang tidak akurat:
- Pastikan magnet selaras dengan sensor AS5600 dengan benar.
- Gunakan magnet bermagnet yang diametri untuk pengukuran yang akurat.
-
Kesalahan I2C:
- Periksa perangkat yang bertentangan di bus I2C menggunakan
i2cdetect
. - Verifikasi alamat AS5600 cocok dengan skrip.
- Periksa perangkat yang bertentangan di bus I2C menggunakan
Kesimpulan
Sensor posisi putar magnetik AS5600 adalah alat yang kuat dan mudah digunakan untuk mengukur sudut. Dengan mengikuti panduan ini, Anda dapat mengintegrasikan AS5600 dengan Raspberry Pi untuk membuat sistem pengukuran rotasi yang tepat untuk robotika, otomatisasi, dan banyak lagi. Eksperimen dengan aplikasi yang berbeda untuk membuka potensi penuh dari sensor serbaguna ini!