AS5600 เป็นเซ็นเซอร์ตำแหน่งแม่เหล็กความละเอียดสูงที่สามารถวัดมุมได้สูงถึง 360 ° ด้วยอินเทอร์เฟซ I2C มันง่ายที่จะรวมเข้ากับ Raspberry Pi สำหรับการวัดมุมที่แม่นยำในหุ่นยนต์ระบบอัตโนมัติและแอปพลิเคชันอื่น ๆ คู่มือนี้อธิบายวิธีการใช้ AS5600 กับ Raspberry Pi เพื่ออ่านตำแหน่งเชิงมุม
สิ่งที่คุณต้องการ
- Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน I2C เช่น PI 3, PI 4)
- AS5600 โมดูลเครื่องเข้ารหัสแบบโรตารี่แม่เหล็ก
- แม่เหล็ก (Magnetized Diametrically)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่มีการเข้าถึง SSH ไปยัง Raspberry Pi หรือแป้นพิมพ์และจอภาพที่เชื่อมต่อ
- Python ติดตั้งบน Raspberry Pi
ขั้นตอนที่ 1: เปิดใช้งาน I2C บน Raspberry Pi
- เปิดเทอร์มินัลบน Raspberry Pi ของคุณ
- เรียกใช้เครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config
- นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2cและเปิดใช้งาน
- รีบูตราสเบอร์รี่ pi:
sudo reboot
ขั้นตอนที่ 2: เดินสาย AS5600 ไปยัง Raspberry Pi
AS5600 ใช้โปรโตคอล I2C สำหรับการสื่อสาร เชื่อมต่อกับ Raspberry Pi ดังนี้:
As5600 PIN | Raspberry Pi Pin |
---|---|
VCC | 3.3V (พิน 1) |
gnd | พื้นดิน (พิน 6) |
SDA | SDA (พิน 3, GPIO2) |
SCL | SCL (PIN 5, GPIO3) |
บันทึก: ตรวจสอบให้แน่ใจว่าแรงดันไฟฟ้าของโมดูล AS5600 ตรงกับระดับตรรกะ 3.3V ของราสเบอร์รี่ 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 บิตผ่าน I2C คุณสามารถใช้สคริปต์ Python ต่อไปนี้เพื่ออ่านและแสดงตำแหน่งเชิงมุม
ตัวอย่างรหัส 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...")
ขั้นตอนที่ 6: แอปพลิเคชันของ AS5600
AS5600 มีความหลากหลายและสามารถใช้ในโครงการต่าง ๆ :
- หุ่นยนต์: วัดมุมข้อต่อหรือล้อเพื่อการควบคุมที่แม่นยำ
- encoders: สร้างตัวเข้ารหัสแบบโรตารี่ DIY สำหรับเครื่อง CNC หรือเครื่องพิมพ์ 3 มิติ
- ปุ่มควบคุม: ใช้เป็นลูกบิดความละเอียดสูงสำหรับการนำทางหรือการนำทางเมนู
- การติดตามตำแหน่ง: ติดตามตำแหน่งเชิงมุมในระบบอัตโนมัติ
การแก้ไขปัญหา
-
ไม่พบอุปกรณ์:
- ตรวจสอบการเชื่อมต่อ SDA และ SCL
- ตรวจสอบให้แน่ใจว่า I2C เปิดใช้งานบน Raspberry Pi
- ตรวจสอบแรงดันไฟฟ้าของ AS5600
-
การอ่านที่ไม่ถูกต้อง:
- ตรวจสอบให้แน่ใจว่าแม่เหล็กสอดคล้องกับเซ็นเซอร์ AS5600 อย่างถูกต้อง
- ใช้แม่เหล็กแม่เหล็กแบบ diametrically สำหรับการวัดที่แม่นยำ
-
ข้อผิดพลาด I2C:
- ตรวจสอบอุปกรณ์ที่ขัดแย้งกันบนบัส I2C โดยใช้
i2cdetect
. - ตรวจสอบที่อยู่ของ AS5600 ตรงกับสคริปต์
- ตรวจสอบอุปกรณ์ที่ขัดแย้งกันบนบัส I2C โดยใช้
บทสรุป
เซ็นเซอร์ตำแหน่งโรตารี่ AS5600 เป็นเครื่องมือที่ทรงพลังและใช้งานง่ายสำหรับการวัดมุม โดยทำตามคำแนะนำนี้คุณสามารถรวม AS5600 เข้ากับ Raspberry Pi เพื่อสร้างระบบการวัดการหมุนที่แม่นยำสำหรับหุ่นยนต์ระบบอัตโนมัติและอื่น ๆ ทดลองกับแอพพลิเคชั่นที่แตกต่างกันเพื่อปลดล็อกศักยภาพทั้งหมดของเซ็นเซอร์อเนกประสงค์นี้!