تعد MCP2515 وحدة تحكم شائعة (شبكة منطقة التحكم) CAN (شبكة وحدة التحكم) تتيح أجهزة Raspberry PI للتواصل مع الأنظمة الممكّنة. هذا يجعلها مثالية لمشاريع السيارات والأتمتة الصناعية وتطبيقات إنترنت الأشياء. يشرح هذا الدليل كيفية إعداد واستخدام MCP2515 مع Raspberry Pi.
ماذا ستحتاج
- التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
- MCP2515 يمكن الوحدة النمطية
- الأسلاك الأسلاك والبلوز
- جهاز كمبيوتر به وصول SSH إلى Raspberry Pi أو لوحة مفاتيح متصلة وشاشة
- Python مثبت على Raspberry Pi
- يمكن أن وحدة الإرسال والاستقبال (إن لم تكن متضمنة مع MCP2515)
الخطوة 1: توصيل MCP2515 إلى Raspberry Pi
يتواصل MCP2515 مع Raspberry Pi باستخدام بروتوكول SPI.
الاتصالات (وضع SPI)
MCP2515 دبوس | التوت بي دبوس |
---|---|
VCC | 3.3V (دبوس 1) |
GND | الأرض (دبوس 6) |
CS | GPIO8 (PIN 24 ، SPI0_CE0) |
لذا | GPIO9 (PIN 21 ، SPI0_MISO) |
سي | GPIO10 (PIN 19 ، SPI0_MOSI) |
SCK | GPIO11 (PIN 23 ، SPI0_SCLK) |
int | GPIO25 (دبوس 22) |
الخطوة 2: تمكين واجهة SPI على Raspberry Pi
- افتح أداة تكوين Raspberry Pi:
sudo raspi-config
- انتقل إلى خيارات الواجهة> SPI وتمكينها.
- أعد تشغيل Raspberry Pi:
sudo reboot
الخطوة 3: تثبيت المكتبات والأدوات المطلوبة
- قم بتحديث Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- تثبيت
can-utils
حزمة للاتصالات العلبة:sudo apt install -y can-utils
الخطوة 4: تكوين واجهة العلبة
-
افتح
/boot/config.txt
file:sudo nano /boot/config.txt
-
أضف الأسطر التالية لتمكين تراكب MCP2515:
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835
حفظ والخروج.
-
أعد تشغيل Raspberry Pi:
sudo reboot
-
إحضار الواجهة العلبة:
sudo ip link set can0 up type can bitrate 500000
-
تحقق من الواجهة العلبة:
ifconfig can0
الخطوة 5: اختبار MCP2515
-
أرسل رسالة علبة: استخدم
cansend
الأمر لإرسال رسالة اختبار:cansend can0 123#DEADBEEF
-
تلقي رسالة علبة: استخدم
candump
أمر لمراقبة الرسائل الواردة:candump can0
الخطوة 6: استخدام Python للتواصل مع MCP2515
تثبيت python-can
مكتبة لإرسال واستقبال الرسائل عبر بيثون.
تثبيت
pip install python-can
مثال Python السيناريو
import can
# Create a CAN bus instance
bus = can.interface.Bus(channel='can0', bustype='socketcan')
# Send a CAN message
msg = can.Message(arbitration_id=0x123, data=[0xDE, 0xAD, 0xBE, 0xEF], is_extended_id=False)
bus.send(msg)
print("Message sent: ", msg)
# Receive a CAN message
print("Waiting for a message...")
message = bus.recv()
print("Received message: ", message)
استكشاف الأخطاء وإصلاحها
-
لا يمكن العثور على الواجهة:
- تحقق من تمكين واجهة SPI.
- تحقق من الأسلاك بين Raspberry Pi و MCP2515.
- ضمان
/boot/config.txt
تم تكوين الملف بشكل صحيح.
-
لا يمكن الرسائل:
- تحقق من إنهاء الحافلة CAN بشكل صحيح مع مقاومات 120 أوم.
- تأكد من مباريات البت عبر جميع الأجهزة على حافلة CAN.
-
أخطاء بيثون:
- ضمان
python-can
تم تثبيت المكتبة. - تحقق من البرنامج النصي Python للأخطاء المطبعية أو أخطاء التكوين.
- ضمان
تطبيقات MCP2515
- تشخيصات السيارات والمراقبة
- أنظمة الأتمتة الصناعية
- شبكات الاتصالات الروبوتات
- مشاريع إنترنت الأشياء التي تتطلب بروتوكولات اتصال موثوقة
خاتمة
تضيف وحدة تحكم MCP2515 قدرات اتصال قوية إلى Raspberry Pi ، مما يجعلها مثالية لتطبيقات السيارات والصناعية وإنترنت الأشياء. باتباع هذا الدليل ، يمكنك إعداد واختبار MCP2515 والبدء في بناء مشاريع قوية تستفيد من بروتوكول CAN.