الـ MCP2515 هو وحدة تحكم CAN (شبكة وحدات التحكم) شائعة تتيح لأجهزة Raspberry Pi التواصل مع الأنظمة المُمكّنة لـ CAN. وهذا يجعلها مثالية للمشاريع السياراتية، وأتمتة المصانع، وتطبيقات إنترنت الأشياء. يشرح هذا الدليل كيفية إعداد واستخدام الـ MCP2515 مع Raspberry Pi.
ما ستحتاج إليه
- راسبيري باي (أي طراز يدعم GPIO، مثل Pi 3، Pi 4)
- وحدة MCP2515 CAN
- لوح تجارب وأسلاك توصيل
- كمبيوتر مزوّد بإمكانية SSH للوصول إلى Raspberry Pi أو لوحة مفاتيح وشاشة متصلتان
- تم تثبيت Python على Raspberry Pi
- وحدة إرسال واستقبال CAN (إذا لم تكن مرفقة مع الـ MCP2515)
الخطوة 1: توصيل الأسلاك MCP2515 إلى Raspberry Pi
الـ MCP2515 يتواصل مع Raspberry Pi باستخدام بروتوكول SPI.
الاتصالات (وضع SPI)
| MCP2515 دبوس | دبوس Raspberry Pi |
|---|---|
| VCC | 3.3V (الدبوس 1) |
| أرضي | الأرضي (Pin 6) |
| CS | GPIO8 (المسمار 24، SPI0_CE0) |
| SO | GPIO9 (الدبوس 21، SPI0_MISO) |
| SI | GPIO10 (الدبوس 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حزمة لاتصال CAN:sudo apt install -y can-utils
الخطوة 4: تهيئة واجهة CAN
-
افتح الـ
/boot/config.txtfile:sudo nano /boot/config.txt -
أضِف الأسطر التالية لتمكين الـ MCP2515 تراكب:
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=spi-bcm2835احفظ واخرج.
-
أعد تشغيل Raspberry Pi:
sudo إعادة التشغيل -
تشغيل واجهة CAN:
sudo ip link set can0 up type can bitrate 500000 -
تحقّق من واجهة CAN:
ifconfig can0
الخطوة 5: اختبار الـ MCP2515
-
إرسال رسالة CAN: استخدم الـ
cansendأمر لإرسال رسالة اختبار:cansend can0 123#DEADBEEF -
استلام رسالة CAN: استخدم ال
candumpأمر لمراقبة الرسائل الواردة:candump can0
الخطوة 6: استخدام Python للتواصل مع الـ MCP2515
ثبّت الـ python-can مكتبة لإرسال واستقبال رسائل CAN عبر Python.
التثبيت
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)
استكشاف الأخطاء وإصلاحها
-
واجهة CAN غير موجودة:
- تحقق من تمكين واجهة SPI.
- تحقّق من التوصيلات بين Raspberry Pi و MCP2515.
- Ensure the
/boot/config.txtالملف مُهيأ بشكل صحيح.
-
لا توجد رسائل CAN
- تحقق من أن حافلة CAN مُنتهية بشكل صحيح بمقاومات 120 أوم.
- تأكد من تطابق معدل البت عبر جميع الأجهزة على ناقل CAN.
-
أخطاء Python:
- Ensure the
python-canتم تثبيت المكتبة. - تحقق من وجود أخطاء إملائية أو أخطاء في الإعداد في برنامج Python النصي.
- Ensure the
تطبيقات الـ MCP2515
- تشخيص ومراقبة السيارات
- أنظمة الأتمتة الصناعية
- شبكات اتصالات الروبوتات
- مشاريع إنترنت الأشياء التي تتطلب بروتوكولات اتصال موثوقة
الخلاصة
الـ وحدة متحكم CAN MCP2515 يضيف إمكانيات اتصال قوية إلى Raspberry Pi الخاص بك، مما يجعله مثاليًا لتطبيقات السيارات والصناعة وإنترنت الأشياء. باتباع هذا الدليل، يمكنك إعداد واختبار MCP2515 وابدأ ببناء مشاريع قوية تستفيد من بروتوكول CAN.





