AS5600 عبارة عن مستشعر موضع مغناطيسي دوار عالي الدقة يمكنه قياس الزوايا حتى 360 درجة. من خلال واجهة I2C ، من السهل الاندماج مع Raspberry Pi لقياسات الزاوية الدقيقة في الروبوتات والأتمتة والتطبيقات الأخرى. يشرح هذا الدليل كيفية استخدام AS5600 مع Raspberry Pi لقراءة المواضع الزاوية.
ماذا ستحتاج
- التوت بي (أي نموذج مع دعم I2C ، على سبيل المثال ، PI 3 ، PI 4)
- AS5600 وحدة تشفير دوار مغناطيسي
- مغناطيس (مغناطيسي مقطوع)
- الأسلاك الأسلاك والبلوز
- جهاز كمبيوتر به وصول SSH إلى Raspberry Pi أو لوحة مفاتيح متصلة وشاشة
- 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 للاتصال. قم بتوصيله بالتوت على النحو التالي:
AS5600 دبوس | التوت بي دبوس |
---|---|
VCC | 3.3V (دبوس 1) |
GND | الأرض (دبوس 6) |
SDA | SDA (PIN 3 ، GPIO2) |
SCL | SCL (PIN 5 ، GPIO3) |
ملحوظة: تأكد من أن الجهد التشغيلي الخاص بـ AS5600 يطابق مستوى منطق Raspberry PI 3.3V.
الخطوة 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 التالي لقراءة وعرض الموضع الزاوي.
مثال رمز بيثون
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 متعدد الاستخدامات ويمكن استخدامه في مختلف المشاريع:
- الروبوتات: قياس زوايا المفصل أو العجلات للتحكم الدقيق.
- برامج الترميز: قم بإنشاء ترميزات دوارة DIY لآلات CNC أو الطابعات ثلاثية الأبعاد.
- عناصر التحكم في المقبض: استخدم مقبضًا عالي الدقة للتنقل أو التنقل في القائمة.
- تتبع الموقف: تتبع المواقف الزاوية في أنظمة الأتمتة.
استكشاف الأخطاء وإصلاحها
-
لم يتم اكتشاف الجهاز:
- تحقق من اتصالات SDA و SCL.
- تأكد من تمكين I2C على Raspberry Pi.
- تحقق من الجهد التشغيلي لـ AS5600.
-
قراءات غير دقيقة:
- تأكد من محاذاة المغناطيس بشكل صحيح مع مستشعر AS5600.
- استخدم المغناطيس المغنطيسي للقطاعات لقياسات دقيقة.
-
أخطاء I2C:
- تحقق من وجود أجهزة متضاربة على ناقل I2C باستخدام
i2cdetect
. - تحقق من عنوان AS5600 يطابق البرنامج النصي.
- تحقق من وجود أجهزة متضاربة على ناقل I2C باستخدام
خاتمة
يعد مستشعر الموضع المغناطيسي AS5600 أداة قوية وسهلة الاستخدام لقياس الزوايا. من خلال اتباع هذا الدليل ، يمكنك دمج AS5600 مع Raspberry Pi لإنشاء أنظمة قياس دوران دقيقة للروبوتات والأتمتة والمزيد. تجربة مع تطبيقات مختلفة لفتح الإمكانات الكاملة لهذا المستشعر متعدد الاستخدامات!