เดอะ AS5600 เป็นเซ็นเซอร์ตำแหน่งแบบแม่เหล็กหมุนความละเอียดสูงที่สามารถวัดมุมได้ถึง 360°. ด้วยอินเทอร์เฟซ I2C จึงสามารถเชื่อมต่อกับ Raspberry Pi ได้อย่างง่ายดายเพื่อการวัดมุมที่แม่นยำในงานหุ่นยนต์ ระบบอัตโนมัติ และการใช้งานอื่นๆ คู่มือนี้อธิบายวิธีการใช้งาน AS5600 กับ Raspberry Pi เพื่ออ่านตำแหน่งเชิงมุม.
สิ่งที่คุณต้องมี
- Raspberry Pi (รุ่นใดก็ได้ที่รองรับ I2C เช่น Pi 3, Pi 4)
- โมดูลเอ็นโค้ดเดอร์หมุนแม่เหล็ก AS5600
- แม่เหล็ก (ถูกทำให้เป็นแม่เหล็กตามเส้นผ่านศูนย์กลาง)
- เบรดบอร์ดและสายจัมเปอร์
- คอมพิวเตอร์ที่สามารถเข้าถึง Raspberry Pi ผ่าน SSH หรือมีคีย์บอร์ดและจอภาพที่เชื่อมต่ออยู่
- Python ที่ติดตั้งบน Raspberry Pi
ขั้นตอนที่ 1: เปิดใช้งาน I2C บน Raspberry Pi
- เปิดเทอร์มินัลบน Raspberry Pi ของคุณ
- เรียกใช้เครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config - ไปที่ ตัวเลือกอินเทอร์เฟซ > I2C, และเปิดใช้งานมัน.
- รีบูต Raspberry Pi:
sudo reboot
ขั้นตอนที่ 2: การเดินสายไฟ AS5600 ไปยัง Raspberry Pi
AS5600 ใช้โปรโตคอล I2C สำหรับการสื่อสาร เชื่อมต่อกับ Raspberry Pi ดังนี้:
| AS5600 เข็มกลัด | พิน Raspberry Pi |
|---|---|
| VCC | 3.3V (พิน 1) |
| GND | กราวด์ (ขา 6) |
| SDA | SDA (ขา 3, GPIO2) |
| SCL | SCL (ขา 5, GPIO3) |
หมายเหตุ: ให้แน่ใจว่า ของโมดูล AS5600 แรงดันใช้งานสอดคล้องกับระดับลอจิก 3.3V ของ Raspberry Pi
ขั้นตอนที่ 3: ติดตั้งเครื่องมือและไลบรารีที่จำเป็น
- อัปเดต Raspberry Pi:
sudo apt update && sudo apt upgrade -y - ติดตั้งเครื่องมือ I2C:
sudo apt install -y i2c-tools - ติดตั้งไลบรารี Python สำหรับการสื่อสาร I2C:
pip install smbus2
ขั้นตอนที่ 4: ตรวจสอบการเชื่อมต่อ I2C
- ตรวจจับ AS5600 บนบัส I2C:
sudo i2cdetect -y 1 - คุณควรเห็นที่อยู่ของอุปกรณ์ (เช่น,
0x36) ในผลลัพธ์ หากไม่เป็นเช่นนั้น ให้ตรวจสอบการเดินสายของคุณ
ขั้นตอนที่ 5: อ่านข้อมูลจาก AS5600
เดอะ AS5600 ให้ข้อมูลมุม 12-bit ผ่าน I2C คุณสามารถใช้สคริปต์ Python ต่อไปนี้เพื่ออ่านและแสดงตำแหน่งเชิงมุม
ตัวอย่างโค้ด Python
import smbus2
import time
# กำหนดที่อยู่ I2C และบัส
AS5600_ADDR = 0x36
ANGLE_REG = 0x0E
bus = smbus2.SMBus(1)
def read_angle():
# อ่านไบต์ 2 ตัวจากเรจิสเตอร์มุม
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...")
ขั้นตอนที่ 6: การประยุกต์ใช้ของ AS5600
นั้น AS5600 มีความอเนกประสงค์และสามารถนำไปใช้ในโครงการได้หลากหลาย:
- โรบอติกส์: วัดมุมข้อต่อหรือมุมล้อเพื่อการควบคุมอย่างแม่นยำ.
- ตัวเข้ารหัส: สร้างโรตารีเอ็นโค้ดเดอร์แบบ DIY สำหรับเครื่อง CNC หรือเครื่องพิมพ์ 3D
- การควบคุมด้วยลูกบิด: ใช้เป็นปุ่มหมุนความละเอียดสูงสำหรับการปรับระดับเสียงหรือการนำทางเมนู
- การติดตามอันดับ: ติดตามตำแหน่งเชิงมุมในระบบอัตโนมัติ
การแก้ไขปัญหา
-
ไม่พบอุปกรณ์:
- ตรวจสอบการเชื่อมต่อ SDA และ SCL
- ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน I2C บน Raspberry Pi แล้ว
- ตรวจสอบแรงดันไฟฟ้าขณะทำงานของ AS5600.
-
การอ่านค่าไม่ถูกต้อง:
- ตรวจให้แน่ใจว่าแม่เหล็กจัดแนวได้อย่างถูกต้องกับ เซ็นเซอร์ AS5600.
- ใช้แม่เหล็กที่ถูกทำให้มีขั้วตามเส้นผ่านศูนย์กลางเพื่อการวัดที่แม่นยำ
-
ข้อผิดพลาด I2C:
- ตรวจสอบอุปกรณ์ที่ขัดแย้งกันบนบัส I2C โดยใช้
i2cdetect. - ยืนยัน AS5600ที่อยู่ของ ' ตรงกับสคริปต์.
- ตรวจสอบอุปกรณ์ที่ขัดแย้งกันบนบัส I2C โดยใช้
สรุป
AS5600 เซ็นเซอร์วัดตำแหน่งแบบหมุนแม่เหล็ก เป็นเครื่องมือที่ทรงพลังและใช้งานง่ายสำหรับการวัดมุม ด้วยการทำตามคู่มือนี้ คุณสามารถผสานรวม AS5600 กับ Raspberry Pi เพื่อสร้างระบบวัดการหมุนที่แม่นยำสำหรับหุ่นยนต์ ระบบอัตโนมัติ และอื่น ๆ ลองใช้งานกับแอปพลิเคชันหลากหลายเพื่อปลดล็อกศักยภาพสูงสุดของเซนเซอร์อเนกประสงค์ตัวนี้!




